SQL语言DML、DQL、DCL的使用

目录

一、DML数据操作语言

1.增 --- 添加数据

a.通用

b.批量添加

2.改 --- 修改数据

3.删 --- 删除数据

a.删除性别为男的同学

 b.删除所有学生

二、 DQL数据查询语言

1.基础查询

a.查寻多个字段

b.设置别名 (as)

c.去除重复数据(distinct)

2.条件查询

3.聚合函数

4.分组查询

5.排序查询

6.分页查询

三、DCL数据控制语言

1.管理用户

(1)查询用户

(2)创建用户

(3)修改用户密码

(4)删除用户

2.控制权限

四、总结


前言:
在湖师大学习结束了,现在就来补上SQL语言的剩下三个DML、DCL、DQL。话不多说,即刻发车~
传送门:SQL语言的介绍及DDL

一、DML数据操作语言

DML: Data Manipulation Language(数据操作语言)
作用:用来对数据库中表的数据记录进 行增、删、改操作

1.增 --- 添加数据

a.通用

写法:
insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...);

相当于在字段名1处添加对应的值1
例如:
这是没有添加数据的样子:

 

# 给对应字段添加数据
insert into student (name, age, gender) values ('luoyi', 18, '男');

 

PS:用   select * from student;  来查询字段值

如果字段太多,而且是想全部字段都加上数据,那么就可以用另一个方法
insert into 表名 values (值1,值2……);

-- 直接全部添加
insert into student values ('JingLei', 18, '男');

b.批量添加

1️⃣insert into 表名 (字段名1, 字段名2……), (字段名1, 字段名2……)  values (值1, 值2…), (值1, 值2…) ;
2️⃣insert into 表名 values (值1, 值2…), (值1, 值2…),(值1, 值2…);

-- 批量添加
insert into student values('LuoCong', 15, '男'), ('WangSiYa', '16', '女');

注意:
1.插入元素时,要注意与字段 一 一 对应 
2.如果要插入字符串或日期,要注意是在引号内
3.插入的数据,要在字段的规定范围内

2.改 --- 修改数据

语法:
update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [ where 条件 ] ;

后面where的意思是,筛选满足where后面的条件,符合的修改,不符合的保持不变
例如:

-- 将性别为女的同学的年龄
-- 修改成10岁
update student set age = 10 where gender = '女';

原来的:
 
运行后:

注:条件可以有也可以没有,如果没有的话,则是更新(修改)整张表的数据

3.删 --- 删除数据

语法:
delete from 表名 [ where 条件 ] ;

a.删除性别为男的同学
delete from student where gender = '男';

 b.删除所有学生

不使用where则是默认删除所有学生

delete from student ;

注:
1.delete 只能删除一行,如果要删除单独某个值,则需要使用update将某个值更新为null
2.delete如果没有where则会删除整张表的数据


二、 DQL数据查询语言

DQL英文全称是Data Query Language(数据查询语言),数据查询语言
用来查询数据库中表的记录

在一个正常业务系统中,查询操作的频次是要远高于增删改的,当我们去访问企业官网、电商网站, 在这些网站中我们所看到的数据,实际都是需要从数据库中查询并展示的。而且在查询的过程中,可能还会涉及到条件、排序、分页等操作

这里就相当于是一个查询操作
查询的关键字:select 

一共分为六种查询
1.基本查询(不带任何条件)
2.条件查询(where)
3.聚合函数(count、max、min、avg、sum)
4.分组查询(group by)
5.排序查询(order by)
6.分页查询(limit)

1.基础查询

a.查寻多个字段

select 字段1,字段2,字段3…… from 表名 ;

查询所有字段
select * from 表名 ;

注: * 号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)

b.设置别名 (as)

select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ] ... from 表名;
也可不加AS
select 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... from 表名;

c.去除重复数据(distinct)

select distinct  字段列表 from 表名;

2.条件查询

语法:
select 字段列表 from 表名 where 条件 ;

条件:
常用比较运算符
 

比较运算符功能
>大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
between ... and  ...在某个范围内(包含最大、最小值)
in(  …… )满足in里面的其中一个值即可
link 占位符模糊匹配(_匹配单个字符, %匹配任意个字符)
is null是null

常用的逻辑运算

逻辑运算符功能
and 和 &&逻辑与(两个条件都要满足)并且
or 和 || 逻辑或(满足一个条件即可)或者
not 和 !逻辑非(不是)

 根据情况,在where后面加上对应的条件即可

3.聚合函数

聚合函数:指只对某一列数据进行计算
比如在学生成绩表中,仅针对 “数学成绩” 这一列,计算其平均分、总分

函数功能
count统计数量
max最大值
min

最小值

avg平均值
sum求和

语法:
select 聚合函数(字段列表) from 表名; 

注:NULL不参与聚合运算

例如要求平均表中的年龄
 

select avg(age) from employee;


 

4.分组查询

语法:
select 字段列表 from 表名 [ where 条件 ] group by 分组字段名 [ having 分组 后过滤条件 ];

(1) 执行时机不同:
        where是分组之前进行过滤,不满足where条件,不参与分组
        而having是分组之后对结果进行过滤

(2)判断条件不同:
        where不能对聚合函数进行判断,而having可以

字段列表中也可以加上聚合函数来进一步查询,用 、号 隔开


图中的意思就是:
在employee表中按gender进行分组,并算出分别的人数有几个
在select中要加上gender,这样才会显示gender这一列,看看没有加gender的

 

5.排序查询

排序查询在日常生活中还是挺常见的

语法:
select 字段列表 from 表名 order by 字段1 排序方式1 , 字段2 排序方式2 ;

排序方式:
(1)ASC : 升序(默认值)   (Ascending)
(2)DESC: 降序      (Descending)

注意
当有多个字段时,先按第一个字段排,第一个字段值一样时,再按第二个字段排
也就是排完第一个字段,再按第二个字段排

6.分页查询

如图,就是分页查询的应用

语法
select 字段列表 from 表名 limit 起始索引, 查询记录数 ;


注意:
(1) 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数 
(2)分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT
(3)如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10

 例如:
 查询第1页员工数据, 每页展示10条记录
select * from employee limit 0,10;
也可将0省略
select * from employee limit 10;

查询第2页员工数据, 每页展示10条记录 --------> (页码-1) * 页展示记录数
( 2 - 1 ) * 10 = 10 

select * from employee limit 10,10 ;


三、DCL数据控制语言

DCL英文全称是Data Control Language(数据控制语言)
用来管理数据库用户、控制数据库的访问权限

1.管理用户

(1)查询用户

语法:
select * from mysql.user ;

其中 Host代表当前用户访问的主机,
如果为localhost, 仅代表只能够在当前本机访问,是不可以远程访问的。
User代表的是访问该数据库的用户名
在MySQL中需要通过Host和User来唯一标识一个用户。

(2)创建用户

create user '用户名'@'主机名' identified by '密码';

(3)修改用户密码

alter user '用户名'@'主机名' identified with mysql_native_password by '新密码' ;

(4)删除用户

drop user '用户名'@'主机名' ;

注意:
a. 在MySQL中需要通过 用户名@主机名 的方式,来唯一标识一个用户
b. 主机名可以使用 % 通配
c. 这类SQL开发人员操作的比较少,主要是DBA( Database Administrator 数据库 管理员)使用

2.控制权限

常用的权限

权限说明
all ,     all privileges所有权限
select查询数据
insert插入数据
update修改(更新)数据
delete删除数据
alter修改表
drop删除数据库 / 表 / 视图
create创建表 / 数据库

 

 

 

 

 

 

 

 
 

查询用户的权限
show grants for '用户名'@'主机名' ;

授予所有权限
creat 权限列表 on 数据库名.表名 to '用户名'@'主机名';

撤销所有权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

四、总结

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值