当前位置: 首页 > news >正文

mysql 常用知识点总结

MySQL 是一种广泛使用的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)。了解 MySQL 的语法对数据库管理和操作非常重要。以下是 MySQL 语法的详细完整解释,涵盖基本概念、创建表、查询、修改数据等内容。

1. 基础概念

  • 数据库 (Database): 数据库是存储数据的容器,里面可以包含多个表。
  • 表 (Table): 表是数据库中的核心元素,包含行(记录)和列(字段)。
  • 行 (Row): 一行数据代表表中的一条记录。
  • 列 (Column): 列是数据的属性,每个列都有一个特定的数据类型。
  • 数据类型 (Data Types): 定义列中数据的类型,如整数、浮点数、字符串、日期等。

2. 常见数据类型

数据类型描述
INT整数
FLOAT浮点数
VARCHAR变长字符串
CHAR固定长度字符串
TEXT大文本
DATE日期(格式:YYYY-MM-DD)
DATETIME日期和时间(格式:YYYY-MM-DD HH:MM:SS)

3. 数据库管理

  • 创建数据库

    CREATE DATABASE db_name;
    
    • db_name: 数据库名称。
  • 选择数据库

    USE db_name;
    
  • 查看现有数据库

    SHOW DATABASES;
    
  • 删除数据库

    DROP DATABASE db_name;
    

4. 表操作

  • 创建表

    CREATE TABLE table_name (column_name1 data_type constraints,column_name2 data_type constraints,...
    );
    
    • table_name: 表的名称。
    • data_type: 列的数据类型。
    • constraints: 列的约束,如 PRIMARY KEYNOT NULL 等。

    示例:

    CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,age INT,enrollment_date DATE
    );
    
  • 查看表结构

    DESCRIBE table_name;
    
  • 删除表

    DROP TABLE table_name;
    
  • 修改表结构

    • 添加新列:
      ALTER TABLE table_name ADD new_column_name data_type;
      
    • 修改列类型:
      ALTER TABLE table_name MODIFY column_name new_data_type;
      
    • 删除列:
      ALTER TABLE table_name DROP COLUMN column_name;
      

5. 数据操作

5.1 插入数据
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

示例:

INSERT INTO students (id, name, age, enrollment_date) VALUES (1, 'John Doe', 20, '2023-09-01');
5.2 查询数据
  • 基本查询

    SELECT column1, column2, ... FROM table_name;
    

    示例:

    SELECT name, age FROM students;
    
  • 查询所有列

    SELECT * FROM table_name;
    
  • 使用条件过滤查询

    SELECT column1, column2, ... FROM table_name WHERE condition;
    

    示例:

    SELECT * FROM students WHERE age > 18;
    
  • 排序

    SELECT * FROM table_name ORDER BY column1 [ASC|DESC];
    

    示例:

    SELECT * FROM students ORDER BY age DESC;
    
  • 限制查询结果

    SELECT * FROM table_name LIMIT number;
    

    示例:

    SELECT * FROM students LIMIT 5;
    
  • 聚合函数

    • COUNT():返回记录数
    • SUM():返回总和
    • AVG():返回平均值
    • MIN():返回最小值
    • MAX():返回最大值

    示例:

    SELECT COUNT(*) FROM students;
    
5.3 更新数据
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;

示例:

UPDATE students SET age = 21 WHERE id = 1;
5.4 删除数据
DELETE FROM table_name WHERE condition;

示例:

DELETE FROM students WHERE id = 1;

6. 连接 (JOIN) 操作

  • 内连接 (INNER JOIN): 返回两个表中匹配的记录。

    SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column;
    
  • 左连接 (LEFT JOIN): 返回左表中的所有记录,即使右表中没有匹配。

    SELECT columns FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
    
  • 右连接 (RIGHT JOIN): 返回右表中的所有记录,即使左表中没有匹配。

    SELECT columns FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
    

7. 索引 (Index)

索引用于提高查询速度。

  • 创建索引

    CREATE INDEX index_name ON table_name (column_name);
    
  • 删除索引

    DROP INDEX index_name ON table_name;
    

8. 事务 (Transaction)

事务确保一组 SQL 操作要么全部执行,要么全部不执行。

  • 开始事务

    START TRANSACTION;
    
  • 提交事务

    COMMIT;
    
  • 回滚事务

    ROLLBACK;
    

9. 视图 (View)

视图是基于 SQL 查询的虚拟表。

  • 创建视图

    CREATE VIEW view_name AS SELECT columns FROM table_name WHERE condition;
    
  • 删除视图

    DROP VIEW view_name;
    

10. 存储过程 (Stored Procedure)

存储过程是一组预编译的 SQL 语句,封装起来可以复用。

  • 创建存储过程

    CREATE PROCEDURE procedure_name (parameters)
    BEGINSQL_statements;
    END;
    
  • 调用存储过程

    CALL procedure_name(parameters);
    
  • 删除存储过程

    DROP PROCEDURE procedure_name;
    

11. 触发器 (Trigger)

触发器在某个事件(如插入、更新或删除)发生时自动执行。

  • 创建触发器

    CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name
    FOR EACH ROW
    BEGINSQL_statements;
    END;
    
  • 删除触发器

    DROP TRIGGER trigger_name;
    

12. 权限管理

  • 创建用户

    CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    
  • 赋予权限

    GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
    
  • 撤销权限

    REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
    
  • 删除用户

    DROP USER 'username'@'host';
    

13. 常用工具

  • EXPLAIN: 查看查询的执行计划。

    EXPLAIN SELECT * FROM table_name;
    
  • SHOW PROCESSLIST: 查看当前运行的 SQL 查询。

    SHOW PROCESSLIST;
    

这是 MySQL 的完整语法概述,适用于基本数据库操作、数据查询、表结构管理、索引、事务、存储过程等内容。通过学习和使用这些语法,能够有效管理和查询数据库。

相关文章:

mysql 常用知识点总结

MySQL 是一种广泛使用的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)。了解 MySQL 的语法对数据库管理和操作非常重要。以下是 MySQL 语法的详细完整解释,涵盖基本概念、创建表、查询、修改数据…...

conda常用指令

1、查看conda版本 conda --version 2、更新conda conda update conda 3、查看conda环境信息 conda info 4、查看已有虚拟环境 conda info --envs conda info -e conda env list 5、创建新虚拟环境 conda create --name myenv python3.8 6、激活环境和退出环境 conda…...

前后端分离项目--下载功能

文章目录 不使用代理服务器blobblob构造函数通过FormData对象的getBlob方法创建Blob对象将Blob对象转换成UR 使用代理服务器 前后端分离项目中下载与其他接口的使用不同,一般下载不走node,不通过代理服务器,而是直接在前台发送请求&#xff0…...

PMP--一模--解题--81-90

文章目录 4.整合管理81、 [单选] 一位先前不活跃的干系人参与程度突然增加,这种意外的参与导致了一些变更请求。项目经理应该做什么? 4.整合管理82、 [单选] 公司的新产品系列将在两个月内发布,95%的项目任务均已完成。但是,管理层…...

计算机网络 --- 【2】计算机网络的组成、功能

目录 一、计算机网络的组成 1.1 从组成部分看 1.2 从工作方式看 1.3 从逻辑功能看 1.4 总结 二、计算机网络的功能 2.1 数据通信 2.2 资源共享​编辑 2.3 分布式处理 2.4 提高可靠性 2.5 负载均衡 一、计算机网络的组成 1.1 从组成部分看 我们举例分析计算机网络从…...

『功能项目』切换职业技能面板【49】

我们打开上一篇48切换职业面板的项目, 本章要做的事情是制作第二职业法师技能面板、第三职业面板并且完成切换 双击打开Canvas进入预制体空间 复制三个技能栏面板 重命名 设置第一技能栏 设置第二职业技能栏 设置第三职业技能栏 修改脚本:ChangeProfess…...

寻找排名好的自闭症学校?这些关键因素不可忽视

郑州市如果有一家如星贝育园这样的自闭症公办学校,那无疑将为当地的自闭症儿童及其家庭带来巨大的福音。星贝育园所展现出的专业性、承诺的康复效果保障、以及为特殊儿童提供的全方位支持,都体现了其对自闭症儿童教育康复事业的深刻理解和高度责任感。 …...

Git常用命令(记录)

提交代码 git status 查看状态git add .或者git add xx选择提交全部或者某文件git commit -m “提交信息”git push 创建新分支提交到新的分支 git checkout -b [branch-name] 创建并切换到新分支git add [file-name] 将要上传的文件添加到暂存区git commit -m “commit mes…...

STM32+ESP8266 WiFi连接机智云平台APP远程控制教程

本文档将介绍如何用STM32ESP8266 WiFi模块从零开始连接上机智云,并通过APP进行远程控制。 机智云官网:机智云|智能物联网操作系统 (gizwits.com) 准备:STM32、ESP8266、手机、可上网的WiFi。 1.创建设备 1.1 注册登陆 请自行注册账号并登陆…...

学懂C++(六十):C++ 11、C++ 14、C++ 17、C++ 20新特性大总结(万字详解大全)

一、引言 随着计算机科学与技术的飞速发展,编程语言也在不断进化以满足日益增长的需求。C是一门集高性能和灵活性于一身的编程语言,自1983年诞生以来不断演进,逐渐成为了众多领域的主流编程语言。为了进一步提升开发效率和代码质量&#xff0…...

杭电1008电梯

提供两种做法&#xff0c;第一种不知道为啥不ac。。。 #include<iostream> using namespace std; //不清楚为什么报错了 int a[10000],x[10000]; int main(){int n;while(cin>>n,n!0){for(int i0;i<n;i){cin>>a[i];if(i0) x[i](65)*a[i]-5;else {if(a[i-…...

【Python小知识 - 2】:在VSCode中切换Python解释器版本

文章目录 在VSCode中切换Python解释器版本 在VSCode中切换Python解释器版本 在VSCode中按下快捷键CtrlShiftP&#xff0c;出现命令框。 输入以下命令&#xff1a; Python: Select Interpreter输入命令回车后即出现不同的Python解释器选项&#xff0c;选择想要切换的Python解释器…...

ubuntu meson安装

安装 sudo python3 -m pip install meson sudo python3 -m pip install ninja问题 libdrm ERROR: Dependency “libdrm” not found, tried pkgconfig and cmake Unable to correct problems, you have held broken packages. sudo apt-get update --fix-missing sudo apt in…...

记者协会评审系统-需求分析

记者协会评审系统-需求分析 文章目录 记者协会评审系统-需求分析一、参与角色二、业务流程2.1 作品推荐收集2.2 初步审核2.3 评审功能(初评)2.4&5 定评和审定三、功能清单2.1 基础功能2.2 业务功能2.3.1.单位投稿功能2.3.2.推荐作品分类管理2.3.3. 稿件初审2.3.4.评审功能…...

python 检索与该查询最相似的句子 使用库hflayers和sentence_transformers来实现遇到的问题

此篇文章总结遇到三个问题(3. OSError: We couldn’t connect to ‘https://huggingface.co’ to load this file, couldn’t find it in the cached files and it looks like sentence-transformers/all-mpnet-base-v2 is not the path to a directory containing a file nam…...

计算机毕业设计 在线新闻聚合平台的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

【机器学习随笔】概率论与实际问题的对应

主要从直观看待问题的角度&#xff0c;对概率分布进行分类。 一、时间维度 1、一个事件两次发生的时间间隔或者说&#xff0c;单位时间内发生了两次的概率&#xff0c;用指数分布 2、多个事件发生的时间间隔&#xff0c;用Gamma分布。 3、单位时间了发生了k次的概率&#xff0c…...

C++初阶学习——探索STL奥秘——模拟实现list类

1、基本框架 list 由三个类构建而成: 节点类:每个节点必须的三部分(指向前一个节点的指针、指向后一个节点的指针、当前节点存储的数据) 迭代器类:此时的迭代器为双向迭代器&#xff0c;比较特殊&#xff0c;需要对其进行封装&#xff0c;如 it并非使迭代器单纯向后移动&…...

生命之光不灭:帕金森综合征晚期,如何携手共度温暖岁月

在岁月的长河中&#xff0c;每个人都是自己故事的作者&#xff0c;而面对帕金森综合征这一挑战&#xff0c;尤其是步入晚期的老人&#xff0c;他们的故事更显坚韧与温情。今天&#xff0c;就让我们一起探索&#xff0c;如何在科学护理与人文关怀的双重滋养下&#xff0c;让帕金…...

Matlab simulink建模与仿真 第十五章(信号源库)

参考视频&#xff1a;simulink1.1simulink简介_哔哩哔哩_bilibili 一、信号源库中的模块概览 注&#xff1a;部分模块在第二章中有介绍&#xff0c;本章不再赘述。 二、from输入源模块 1、From Workspace模块 &#xff08;1&#xff09;该模块可从MATLAB工作区、模型工作区…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...