(二)MySQL语法笔记( DQL、DCL)

一、DOL 查询数据

DOL-语法
编写顺序

SELECT 
	字段列表
FROM
	表名列表
WHERE
	条件列表
GROUP BY
	分组字段列表
HAVING
	分组后条件列表
ORDER BY
	排序字段列表
LIMIT
	分页参数

执行顺序

SELECT 
	字段列表       4
FROM
	表名列表       1 
WHERE
	条件列表       2
GROUP BY
	分组字段列表    3
HAVING  
	分组后条件列表  3
ORDER BY
	排序字段列表    5
LIMIT
	分页参数       6

1、DQL-基本查询

查询多个字段

SELECT 字段1,字段2,字段3...FROM 表名;
SELECT * FROM 表名;

设置别名
(as可以省略)

SELECT 字段1 [AS ‘别名1],字段2 [AS ‘别名2] FROM 表名;

去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

2、条件查询

语法

SELECT 字段列表 FROM 表名 WHERE 条件列表;

条件
比较运算符

=
<
<=
=
<>或!= (不等于)
BETWEEN…AND…(在某个范围之内,包含最小、最大值)
IN(…) (在in之后的列表中的值,多选一)
LIKE 占位符 (模糊匹配( _ 代表单个字符,% 代表任意个字符))
IS NULL (是空)

逻辑运算符
AND或&&
OR或||
NOT或!

例:

--查询年零等于18
select * from table1 where age == 18;
--查询没有身份证号的员工
select * from table1 where idcard is null;
--查询有身份证号的员工
select * from table1 where idcard is not null;
--查询姓名为两个字的员工信息
select * from table1 where name like '--';
--查询身份证号最后一位是x的员工信息
select * from table1 where iscard like '%x';

3、聚合函数

将一列数据作为一个整体,进行纵向计算

常见聚合函数
count (统计数量)
max(最大值)
min (最小值)
avg(平均值)
sum(求和)

语法

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

例:

--统计总数
select count(*) from table1;
select count(id) from table1;
--统计最大年龄
select max(age) from table1;

4、分组查询

1)语法

SELECT 字段列表 FROM 表名[WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件]

2)where和having区别
执行时机不同,where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以

例:

--根据性别分组,统计男性员工和女性员工的数量
select gender, count(*) from table1 group by gender;
--根据性别分组,统计男性员工和女性员工的平局年龄
select gender ,avg(age) from table1 group by gender;
--查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select count(*) address_count  from table1 where age <45 group by workaddress having address_count   >= 3;

5、排序查询

1)语法

SELECT 子表列表 FROM 表名 ORDER BY 字段1 排序方式,字段2 排序方式;

2)排序方式
ASC:升序(默认值)
DESC:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序
例:

--根据年龄对公司的员工进行升序排序
select * from table1 order by age asc;
--根据年龄对公司的员工进行升序排序,年龄相同,再按照入职时间进行降序排序
select * from order by age,asc,entrydate desc;

6、分页排序

语法

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

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

--查询第一页的员工数据就,每页显示10条数据
select * from table1 limit 0,10;
select * from table1 limit 10;
--查询第2页员工数据,每页展示10条数据
select * from table1 1010

二、DCL

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

1、管理用户

1)查询用户

USE mysql;
SELECT * FROM user

2)创建用户

CREATE USER ‘用户名'@'主机名’  IDENTIFIED BY ‘密码’;

3)修改用户密码

ALTER USER ‘用户名'@'主机名’ IDENTIFIED  WITH mysql_native_password BY '新密码‘;

4)删除用户

DROP ’用户名‘@’主机名‘;

--创建用户 itcast,只能够在当前主机localhost访问,密码123456
create  user ’itcast‘@’localhost‘ identified by '123456';
--创建用户heima,可以在任意主机访问该数据库,密码123456
create user ’heima‘@’%‘ identified by '123456';
--修改用户heima 的访问密码为1234
alter user ’heima‘@’%‘ identified with mysql_native_password by'1234'; 
--删除itcast@localhost用户
DROP ’itcast‘@’localhost‘;

2、权限控制

ALL,ALL PRIVILEGES 所有权限
SELECT 查询数据
INSERT 插入数据
UPDATE 修改数据
DELETE 删除数据
ALTER 修改表
DROR 删除数据库/表/视图
CERATE 创建数据库/表

1)查询权限

SHOW GRANTS FOR ’用户名‘@’主机名‘;

2)授予权限

GRANT 权限列表 ON 数据库名,表名  TO ’用户名‘@’主机名‘;

3)撤销权限

REVOKE 权限列表 ON 数据库名,表名 FROM ’用户名‘@’主机名‘;

例:

--查询权限
show grents for ’heima‘@’%;
--授予权限
grant all on itcast,* to’heima‘@’%;
--撤销权限
revoke all on itcast,* from ’heima‘@’%;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值