【数据库】MySQL数据库SQL语句汇总
目录
1.SQL 通用语法
MySQL 数据库的 SQL 语句不区分大小写, 关键字建议使用大写
2.SQL 分类
2.1.DDL
数据定义语言, 用来定义数据库对象
2.2.DML
数据操作语言, 用来对数据表中的数据进行增删改
2.3.DQL
数据查询语言, 用来查询数据库中表的记录
2.4.DCL
数据控制语言, 用来创建数据库用户, 控制数据库的访问权限
3.DDL
3.1.数据库操作
3.1.1.查询
-
查询所有数据库
SHOW DATABASES;
-
查询当前数据库
SELECT DATABASE();
3.1.2.创建
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
[中括号里的内容可以省略]
3.1.3.删除
DROP DATABASE [IF EXISTS] 数据库名;
3.1.4.使用
USE 数据库名;
3.2.表操作
3.2.1.查询
-
查询当前数据库所有表
SHOW TABLES;
-
查询表结构
DESC 表名
-
查询指定表的建表语句
SHOW CREATE TABLE 表名;
3.2.2.创建
CREATE TABLE 表名(
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段2类型[COMMENT 字段2注释],
字段3 字段3类型[COMMENT 字段3注释],
... ...
字段n 字段n类型[COMMENT 字段n注释],
)[COMMENT 表注释];
3.2.3.数据类型
MySQL 支持的数据类型有很多, 主要分为三类: 数值类型 \ 字符串类型 \ 日期时间类型
3.2.3.1.数值类型
-
TINYINT
-
SMALLINT
-
MEDIUMINT
-
INT \ INTEGER
-
BIGINT
-
FLOAT
-
DOUBLE
-
DECIMAL
UNSIGNED 代表使用无符号范围, 如 age TINYINT UNSIGNED
TINYINT 的 有符号范围是 (-128, 127)
无符号范围是(0, 255)
3.2.3.2.字符串类型
-
CHAR
-
VARCHAR
-
TINYBLOB
-
BLOB
-
TEXT
-
MEDIUMBLOB
-
MEDIUMTEXT
-
LONGBLOB
-
LONGTEXT
3.2.3.3.日期时间类型
-
DATE YYYY - MM - DD
-
TIME HH - MM - SS
-
YEAR YYYY
-
DATETIME YYYY - MM- DD HH:MM:SS
-
TIMESTAMP YYYY - MM- DD HH:MM:SS
3.2.4.修改
3.2.4.1.添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
3.2.4.2.修改
-
修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
-
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
-
修改表名
ALTER TABLE 表名 RENAME TO 新表名
3.2.4.3.删除字段
ALTER TABLE 表名 DROP 字段名;
3.2.5.删除
-
删除表
DROP TABLE [IF EXISTS] 表名;
-
删除指定表, 并重新创建该表
TRUNCATE TABLE 表名;
4.DML
4.1.介绍
DML 是数据操作语言, 用来对数据库中表的数据记录进行增删改操作
-
添加数据 INSERT
-
修改数据 UPDATE
-
删除数据 DELETE
4.2.添加数据
-
给指定字段添加数据
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUE (值1, 值2, ...);
-
给全部字段添加数据
INSERT INTO 表名 VALUES (值1, 值2, ...);
-
批量添加数据
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
4.3.修改数据
UPDATE 表名 SET 字段名1 = 值1, 字段名2 = 值2, ...[WHERE 条件];
4.4.删除数据
DELETE FROM 表名 [WHERE 条件];
5.DQL
DQL 是数据查询语言, 用来查询数据库中表的记录
5.1.基本查询
查询多个字段
SELECT 字段1, 字段2, 字段3 ... FROM 表名;
SELECT * FROM 表名;
设置别名
SELECT 字段1 [AS 别名1], 字段2 [AS 别名2] ... FROM 表名;
去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
5.2.条件查询
WHERE
SELECT 字段列表 FROM 表名 WHERE 条件列表
5.3.聚合函数
count max min avg sum
-
介绍
将一列数据作为一个整体, 进行纵向计算
-
常见聚合函数
-
语法
SELECT 聚合函数(字段列表) FROM 表名;
例如
SELECT count(id) FROM tb_user;
5.4.分组查询
GROUP BY
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
WHERE 与 HAVING 的区别
-
执行时机不同: WHERE 是分组之前进行过滤, 不满足WHERE 条件不参与分组; 而 HAVING 是分组之后对结果进行过滤
-
判断条件不同: WHERE 不能对聚合函数进行判断, 而HAVING 可以
5.5.排序查询
ORDER BY
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;
排序方式
ASC: 升序 (默认值)
DESC: 降序
5.6.分页查询
LIMIT
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;
5.7.编写顺序与执行顺序
-
DQL 语句的编写顺序
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
-
DQL 语句的执行顺序
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
SELECT
字段列表
ORDER BY
排序字段列表
LIMIT
分页参数
6.DCL
DCL 是数据库控制语言, 主要用于管理数据库用户, 控制数据库的访问权限
6.1.管理用户
-
查询用户
USE mysql;
SELECT * FROM user;
-
创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
-
修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
-
删除用户
DROP USER '用户名'@'主机名';
6.2.权限控制
-
查询权限
SHOW GRANTS FOR '用户名'@'主机名';
-
授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
-
撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
原文地址:https://blog.csdn.net/2302_78914800/article/details/145215960
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!