常用SQL语句分类总结(DDL, DML, DQL, DCL)

SQL语句不区分大小写,分号结尾,SQL语句中可以插入任意换行和空格,可以调整SQL语句以美观。[]中是可选的参数

一.DDL(数据定义语言)

1.数据库级别操作

查询所有数据库
SHOW DATABASES;
创建新数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则]; 

若加上可选项if,若存在则不创建,若不存在则创建,如果不加if,且数据库已存在,则报错。

删除数据库
DROP DATABASE [IF EXISTS] 数据库名;

if操作作用同上

使用数据库,在某数据库下操作(进入某数据库的空间)
USE 数据库名;

2.表级别操作

表创建
CREATE TABLE 表名{
	字段1 字段1类型[COMMENT 字段1注释],
	字段2 字段2类型[COMMENT 字段2注释],
	字段3 字段3类型[COMMENT 字段3注释],
	字段4 字段4类型[COMMENT 字段4注释],
	.....
}[COMMENT 表注释];
删除表
DROP TABLE [IF EXISTS] 表名;
删除指定表,并重新创建该表
TRUNCATE TABLE 表名

这个命令可以删除表中的全部内容重新创建一个空表,保留了原表的字段

添加表字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释][约束];
修改表字段的数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 [COMMENT 注释][约束];
删除字段
ALTER TABLE 表名 DROP 字段名;
修改表名
ALTER TABLE 表名 RENAME TO 新表名;

二.DQL(数据查询语言)

1.数据库级别查询

查询当前数据库所有表
SHOW TABLES;
查询表结构
DESC 表名;
查看建表语句
SHOW CREATE TABLE 表名;

能查看建表时的语句,能看到注释的信息

2.表级别查询

条件语句
在这里插入图片描述

字段查询
SELECT [DISTINCT(去重)] 字段列表
FROM 表名列表
WHERE 条件列表
GROUP BY 分组字段列表
HAVING 分组后条件列表
ORDER BY 排序字段列表
LIMIT 分页参数

使用聚合函数select

SELECT 聚合函数(字段列表) FROM 表名;

解释一下参数:
WHERE 是筛选过滤字段的条件,也是最先进行过滤的参数语句
GROUP BY 是按照某个字段对查询的内容进行分组,比如性别有男有女,GROUP BY会将查询按照男女分开,所以一般会跟聚合函数联合使用,比如SUM(),AVG()等
HAVING 是GROUP BY之后进行筛选的条件,比如HAVING COUNT(*) >= 10,就筛选了分组后查询超过10条的组。
ORDER BY 字段1 排序方式1,字段2 排序方式2,…;
排序方式: ASC升序, DESC降序,首先按照第一字段排序,接着是第二字段…
LIMIT 起始索引, 查询记录数,起始索引从0开始,每页显示一定的记录数

select * from employee limit 0, 5;

比如,上面的SQL语句即为从第1条记录查询,也就是第一页第一条,共查询5条记录,如果表中每一页记录10条数据,查询从第二页第一条数据开始并查询5条记录,则limit的参数应该为10,5,省略第一个参数的情况下默认从第一条记录开始(索引0)。

3. DQL语句的执行顺序

SELECT [DISTINCT(去重)] 字段列表  (5)
FROM 表名列表                    (1)
WHERE 条件列表                   (2)
GROUP BY 分组字段列表             (3)
HAVING 分组后条件列表             (4)
ORDER BY 排序字段列表             (6)
LIMIT 分页参数                    (7)

即先找表,接着按照WHERE的过滤条件筛选记录,然后将筛选的记录进行分组过滤,
然后将选择的字段取出,排序,最后按照limit取出要取的记录。可以通过给SELECT的字段和FROM 的表起别名,验证执行顺序,WHERE阶段无法使用SELECT中起的别名,因为WHERE在SELECT之前执行,而WHERE可以使用表的别名,因为FROM在WHERE之前

三.DML(数据操作语言,对数据库中的表的记录进行增删改操作)

添加数据(插入数据与指定的字段顺序一一对应,字符串和日期型数据应包含在引号中,插入的数据大小应该在字段的规定范围内)

给指定字段添加数据

INSERT INTO 表名(字段名1, 字段名2,...) VALUES(1,2, ...);

给全部字段添加数据

INSERT INTO 表名 VALUES(1,2, ...);

批量添加数据

INSERT INTO 表名(字段1, 字段2, ...) VALUES(1,2, ...), (1,2, ...), (1,2, ...);
INSERT INTO 表名 VALUES(1,2, ...), VALUES(1,2, ...), VALUES(1,2, ...);
修改数据
UPDATE 表名 SET 字段名1 =1, 字段明2 =2, ...[WHERE 条件];
删除数据
DELETE FROM 表名 [WHERE 条件]

删除语句的条件可以有,也可以没有,没有则会删除整张表的所有数据
删除语句不能删除某个字段的值(UPDATE的功能)

四.DCL(数据库控制语言)

DCL用来管理数据库用户,控制数据库的访问权限。

1.用户管理

查询用户

用户的信息都记录在mysql数据库的user表下

USE mysql;
SELECT * FROM user;
创建用户
CREATE USER '用户名'@'主机名' INDENTIFIED BY '密码';

主机名能够是访问数据库的主机,%是任意主机

修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
删除用户
DROP USER '用户名'@'主机名';

2.权限控制

权限列表如下
在这里插入图片描述

查询权限
SHOW GRANTS FOR '用户名'@'主机名';
授予权限
GRANTS 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值