一、DML
除了借助命令行使用DML来管理数据库中的数据以外,还有更加简单的图形化工具来对数据库数据进行操作,图形化管理工具实际上也是通过DML语言来对数据库表中的数据进行管理的,此处主要介绍DML语法。常见的图形化工具如下图所示:
添加数据(INSERT)
修改数据(UPDATE)
删除数据(DELETE)
(一)、添加数据
1、给指定字段添加数据
INSERT INTO 表名(字段名1, 字段名2, …)VALUES(值1, 值2, …);
2、给全部字段添加数据
INSERT INTO 表名 VALUES (值1, 值2, …);
3、批量添加数据
INSERT INTO 表名(字段名1, 字段名2, …)VALUES(值1, 值2, …),(值1, 值2, …),(值1, 值2, …);
INSERT INTO 表名 VALUES (值1, 值2, …),(值1, 值2, …),(值1, 值2, …);
注意:插入数据时,指定的字段顺序需要与值的顺序一一对应。字符串和日期类型数据要用单引号括起来。插入的数据大小要在该字段规定的范围内。
select * from 表名;查询表的所有数据。
(二)、修改数据
UODATE 表名 SET 字段名1 = 值1, 字段名2 = 值2,…[WHERE 条件];
注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改该整张表的所有数据
(三)、删除数据
DELETE FROM 表名 [WHERE 条件];
注:DELETE语句的条件可以有,也可以没有;如果没有条件,则会删除整张表的所有数据。DELETE语句不能删除某一个字段的值(可以使用UPDATE)
二、DML总览
1、添加数据
INSERT INTO 表名(字段1, 字段2, …)VALUES(值1, 值2, …)[,值1, 值2, …)…]
2、修改数据
UODATE 表名 SET 字段名1 = 值1, 字段名2 = 值2,…[WHERE 条件];
3、删除数据
DELETE FROM 表名 [WHERE 条件];
三、DQL
DQL的关键字为SELECT.
(一)、基础查询
1、查询多个字段
SELECT 字段1,字段2, 字段3,… FROM 表名;
SELECT * FROM 表名;
2、设置别名
SELECT 字段1 [AS 别名1],字段2 [AS 别名2],…FROM 表名
3、去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
(二)、条件查询
1、语法:
SELECT 字段列表 FROM 表名 WHERE 条件列表;
2、条件
案例:
聚合函数介绍:将一列数据作为一个整体,进行纵向计算。常见的聚合函数:
语法:
SELECT 聚合函数(字段列表) FROM 表名;
注意:null值不参与所有聚合函数运算
(三)、分组查询
SELECT 字段列表FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
where 和having区别
1.执行时机不同:where是分组之前进行过滤,不满足where条件,不参加分组;而having是分组之后对结果进行过滤
2.判断条件不同:where不能对聚合函数进行判断,而having可以。
案例:
DQL执行顺序
五、DCL
(一)、管理用户
1、查询用户
USE mysql;
SELECT * FROM user;
2、创建用户
CREATE USER ‘用户名’@‘主机名’ IDENTIFIED BY ‘密码’;
3、修改用户密码
ALTER USER ‘用户名’@‘主机名’ IDENTIFIED WITH mysql_password BY ‘新密码’;
4、删除用户
DROP USER ‘用户名’@‘主机名’;
注意:主机名可以使用%通配。这类SQL开发人员操作的比较少,主要是DBA(Database Administrator 数据库管理员)使用。
(二)、权限控制
1、查询权限
SHOW GRANTS FOR ‘用户名’@‘主机名’;
2、授予权限
GRANT 权限列表 ON 数据库名.表名 TO ‘用户名’@‘主机名’;
3、撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM ‘用户名’@‘主机名’;
注意:多个权限之间使用逗号分隔;授权时,数据库名和表名可以使用*进行通配,代表所有。