赞
踩
目录
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。
添加数据 insert
修改数据 update
删除数据 delete
1、给指定字段添加数据
insert into 表名 (字段名1,字段名2,....) values (值1,值2);
2、给全部字段添加数据
insert into 表名 (值1,值2,值3)
3、批量添加数据
insert into 表名 (字段名1,字段名2,....) values (值1,值2,....),(值1,值2)...
注意事项:
update 表名 set 字段名1 = 值1 , 字段名2 = 值2, ... [where 条件];
注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
情况一:
情况二:
delete from 表名 [where 条件]
注意:
情况一:
情况二:
DQL-介绍:
DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。
查询关键字:select
语法:
select
字段列表
from
表名列表
where
条件列表
group by
分组列表
having
分组后条件列表
order by
排序字段列表
limit
分页参数
1、查询多个字段
select * from 表名; // 查询所有字段
2、查询指定字段
select 字段1,字段2,字段3,.... 表名
3、设置别名
select 字段1 [as 别名1] ,字段2[as 别名2] ... from 表名;
4、去除重复记录
select distinct 字段列表 from 表名
语法:select 字段列表 from 表名 where 条件列表;
条件:
DQL-聚合函数
什么是聚合函数?
回答:将一列数据作为一个整体,进行纵向计算。或理解为对一组数据进行计算并返回单一值的函数。
核心知识点:1、一列数据为一个整体,意思就是:表中的一个字段的一组数据。
2、通过聚合函数计算后,会得到一个单一的值。
3、null值是不会参数所有的聚合函数运算的。
常见的聚合函数
语法
count()聚合函数
select 聚合函数(字段列表) from 表名
注意:下面可以看见,查询身份证的数量时,因为有null的存在,所以数据量变少了,因为null值是不参与计算的
注意:count函数只允许接受单个字段或使用 * 来表示所有行
max聚合函数
select max(字段) from 表名; 【max函数只能接受一个字段】
min函数
select min(字段) from 表名 【min函数只能接受一个字段】
avg函数
select avg(字段) from 表名
sum函数
select sum(字段) from 表名
语法格式:
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where 与 having的区别
1、执行时机不同:where 是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤;
2、判断条件不同:where不能对聚合函数进行判断,而having可以。
示例1:性别分组
示例2:查询出男,女分别有多少人
示例3:查询出男,女的平均年龄
示例4:查询年龄大于45,且同一工作地址人数大于20的地址信息
注意:
1、执行顺序为:where > 聚合函数 > having
2、分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
例如:在mysql8.0版本的中,直接就报错了,此时是ONLY_FULL_GROUP_BY SQL模式
那么你可以先临时禁用该模式,让其不报错:
SET SESSION sql_mode = (SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''));
然后继续执行:可以看见下面的结果,name将毫无意义
语法格式:
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2
示例1:按照年龄升序排序
注意:如果是升序排序 asc,是mysql的默认排序方式,所以在编写语句时,可以省略asc
示例2:根据入职时间,进行降序排序
示例3:根据年龄进行降序排序,如果年龄相同,再按照入职时间进行降序排序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二字段进行排序
语句格式:
select 字段列表 from 表名 limit 起始索引,查询记录数;
注意事项:1、起始索引从0开始。 起始索引 = (查询页码 - 1 ) * 每页显示记录数。
2、分页查询是数据库的方言,不同的数据库有不同的实现方式,MySQL中是limit。
3、如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。
示例1:查询第一页员工数据,每页展示10条数据
示例2:查询第二页员工数据,每页展示10条数据
完整的DQL语句:
select
字段列表
from
表名列表
where
条件列表
group
分组字段列表
having
分组后条件列表
order by
排序字段列表
limit分页参数
执行顺序:
1、from
2、where
3、group by
4、select 字段列表
5、order by
6、limit
作用:用来管理数据库用户,控制数据库的访问权限。
use mysql;
select * from user;
create user '用户名'@'主机名' identified by '密码';
注意:刚创建好的用户是没有分配权限的。
alter user '用户名'@'主机名' identified with 加密方式 by '新密码';
注意:mysql_native_password 是加密方式
drop user '用户名'@'主机名';
注意:
1、主机名可以使用%通配。
2、这类sql开发人员操作的比较少,主要是数据库管理员使用。
mysql中定义了很多种权限,但是常用的就是以下几种:
show grants for '用户名'@'主机名';
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。