1、DDL - 数据库操作
show databases;
create database 数据库名
use 数据库名
select database()
drop database 数据库名
2、DDL- 表操作
show tables;
create table
desc 表名
show create table 表名
alter table 表名 add/modify/change/rename
drop table 表名
3、DML - 数据库操作语言
1、添加数据
insert into 表明(字段1, 字段2) values(值1,值2)
2、修改数据
update 表名 set 字段1 = 值1, 字段2 = 值2 where
3、删除数据
delete from 表名 where 条件
DQL - 数据库查询语言
DQL英文全称是Data Query Language(数据库查询语言),数据查询语言,用来查询数据库中表的记录
查询关键字:SELECT
select
字段列表
from
表名列表
where
条件列表
group by
分组字段列表
having
分组后条件列表
order by
排序字段列表
limit
分页参数
查询公司员工的上班地址(不要重复)
select distinct workaddress '工作地址' from emp
-
DQL - 条件查询(where)
-
DQL - 聚合函数(count, max, min, avg, sum)
1、介绍
将一列数据作为一个整体,进行纵向计算。
2、常见的聚合函数
| 函数 | 功能 |
|--|--|
| count |统计数量 |
| max| 最大值|
| min|最小值 |
|avg|平均值|
|sum| 求和|
-
DQL - 分组查询
1、语法select 字段列表 from 表名 [where 条件] gruop by 分组字段名 [having 分组后过滤条件]
2、where 与 having 区别 -
执行时机不同: where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
-
判断条件不同: where 不能对聚合函数进行判断,而having可以。
注意
- 执行顺序:where > 聚合函数 > having
- 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
DQL - 排序查询
1、语法
select 字段列表 from 表名 order by 字段1,排序方式,字段2,排序方式2;
2、排序方式
- asc: 升序
- desc: 降序
注意: 如果是多字段排序,当第一个字段相同时,才会根据第二个字段进行排序。
DQL-分页查询
1、语法
select 字段列表 from 表名 limit 起始索引,查询记录数。
注意
- 起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数。
- 分页查询是数据库的方言,不同的数据库有不同的实现,MySql中是limit
DQL - 执行顺序
from
表名列表
where
条件列表
group by
分组字段列表
having
分组后条件列表
select
字段列表
order by
排序字段列表
limit
分页参数
总结
1、DQL语句
select
字段列表 字段名[AS]别名
from
表名列表
where
条件列表【like, between, and, in , and ,or 】
group by
分组字段列表
having
分组后条件列表 分组之后过滤
order by
排序字段列表 升序asc, 降序desc
limit
分页参数
SQL
-
DCL - 介绍
DCL 英文全称是Data Contro Language(数据控制语言), 用来管理数据库用户,控制数据库的访问权限。
-
DCL - 管理用户
1、查询用户
use mysql;
select * from user;
2、创建用户
create user '用户名'@'主机名' IDENTIFIED BY '密码'
3、修改用户密码
ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_pasword BY '密码'
4、删除数据
DROP USER '用户名'@'主机名'
注意:
- 主机名可以使用通配符。
- 这类SQL开发人员操作的比较少,主要DBA使用。
SQL
- DCL - 权限控制
MySQL中定义了很多权限,但是常用的有。
权限 | 说明 |
---|---|
ALL | 所有权限 |
SELECT | 查询数据 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
1、查询权限
show grants for '用户名'@'主机名'
2、授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'
3、撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'
注意:
- 多个权限之间,使用逗号分割
- 授权时,数据库名和表名可以使用*进行统配,代表所有。
总结
1、用户管理
create user '用户名'@'主机名' IDENTIFIED BY '密码';
ALTER user '用户名'@'主机名'
drop user '用户名'@'主机名'
2、权限控制
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'
revoke 权限列表 on 数据库.表名 from '用户名'@'主机名'