SQL分类
DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)
DML:数据操作语言,用来对数据库中的数据进行,增,删,改
DQL:数据查询语言,用来查询数据库中的表结构
DCL:数据公职语言,用来创建数据库用户,控制数据库访问权限
DDL语句
一,查询
- 查询所有数据库:show databases;
- 查询当前数据库:select databases;
二,创建
create databases [if not exists] 数据库名 [default charset 字符集] [collate 排序规则]
三,删除
drop database [if exists] 数据库名;
四,使用
user数据库名;
五,表操作
1.查询
- 查询当前数据库所有表:show tables;
- 查询表结构:DESC 表名;
- 查询指定表的建表语句:show create table 表明;
2.创建
语法结构
creat table 表名(
字段 1 字段1类型[comment 字段1注释],
字段 2 字段2类型[comment 字段2注释],
.
.
.
字段 n 字段n类型[comment 字段n注释]
)
3.数据类型
数值类型
分类 | 类型 | 描述 |
---|---|---|
TINYINT | 小整数值 | |
SMALLINT | 大整数值 | |
数 | MEDIUMINT | 大整数值 |
值 | INT\ INTEGER | ji大整数值 |
类 | BIGINT | 极大整数值 |
型 | FLOAT | 单精度浮点值 |
DOUBLIE | 双精度浮点值 | |
DECIMAL | 小数值(确定点数) |
字符串类型
分类 | 类型 | 描述 |
---|---|---|
CHAR | 定长字符 | |
VACHAR | 变长字符 | |
字 | TINYTBLOB | 不超过255个字符的二进制数 |
符 | TINYTEXT | 短文本字符串 |
串 | BLOB | 二进制形式的文本数据 |
类 | TEXT | 长文本数据 |
型 | MEDIUMBLOB | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 中长度文本数据 | |
LONGBLOB | 二进制形式的极大文本数据 | |
LONGTEXT | 极大文本数据 |
日期类型
4.修改
- 添加字段
alter table 表名 add 字段名 类型(长度)[comment 注释][约束]; - 修改数据类型
alter table 表名 modify 字段名 新数据类型(长度); - 修改字段名
alter table 表名 charge 旧字段 新字段名 类型(长度); - 删除字段
alter table 表名 drop 字段名; - 修改表名
alter table 表名 rename to 新表名; - 删除表
drop table [if exists] 表名; - 删除指定表,并重新创建该表
truncate table 表名;
DML语句
添加数据(insert)
修改数据(update)
删除数据(delete)
一、增加数据
1.给指定字段增加数据
insert into 表名(字段1,字段2)values(值1,值2);
2.给全部字段添加数据
insert into 表名(值1,值2…);
3.批量添加数据
insert into 表名(字段1,字段2)values(值1,值2)(值1,值2);
insert into 表名 values(值1,值2),(值1,值2);
二、修改数据
update 表名 set 字段名1=值1,字段名2,…【where 条件】;
【】可以有也可以没有
三、删除数据
delete from 表名【where 条件】
DQL语句
查询关键:select
一、基本查询
1.查询多个字段
select 字段1,字段2,字段3,…From 表名;
select *from 表名
2、设置别名
select 字段1【AS 别名】,字段2【AS 别名】…From 表名
3、去除重复记录
select disTinct 字段列表 From 表名;
二、条件查询
1、语法:select 字段列表 from 表名 where 条件列表
2、条件:比较运算,逻辑运算
条件列表
比较运算 | 功能 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<>或!= | 不等于 |
between…and | 在某个范围之内(包含最大最小) |
in(…) | 在is之后的列表中的值,多选一 |
like 占位符 | 模糊匹配(匹配单个字符,%匹配任意个字符) |
is Null | 是Null |
** 逻辑运算 **
逻辑运算符 | 功能 |
---|---|
AND或&& | 并且(多个特定条件同时成立) |
OR或ll | 或着 |
NOT或! | 非,不是 |
三、聚合函数
1、介绍:将一列数据作为一个整体,进行纵向计算
2、常见聚合函数
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
arg | 平均值 |
sum | 求和 |
2、语法:select 聚合函数(字段列表)from 表名;
注意:null值不参与所有聚合函数运算
四、分组查询
1、语法:select 字段列表 from 表名【where 条件】group by 分组字段名 【having 分组后过滤条件】
注意:where和having的区别
-
执行时机不同:
-where分组前进行过滤,不满足where条件不分组
-having是分组后对结果进行过滤 -
执行条件不同:where不能对聚合函数进行判断
-
执行顺序:where>聚合函数>having
分组后,查询字段一班为聚合函数和分组字段,查询其他字段也无任何意义
五、排序顺序
1、语法:select 字段列表 from 表名 Order by 字段1,排序1,字段2,排序2
2、排序方式:
- ASC:升序
- DESC:降序
注:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序
六、分页查询
1、语法:select 字段列表 from 表名 limit 起始索引,查询记录数;
注:
- 索引从零开始,起始索引=(查询页码-1)*每页显示记录数
- 分页查询时数据库方言,不同数据库有不同实现
- 如果查询的时第一页数据,起始索引可以省略,直接简写为limit 9
执行顺序
From 表名列表
Where 条件列表
group up 分组字段列表
having 分组后条件
select 字段列表
order by 排序字段列表
limit 分页参数
DCL语句
一、管理用户
1、查询用户
use mysql;
select * from user;
2、创建用户
create user ‘用户名’ @ ‘主机名’ idntified by ‘密码’;
3、修改密码
alter user ‘用户名’ @ ‘主机名’ idntified with MySQL -native-password by ‘新密码’;
4、注册用户
drop user ‘用户名’ @ ‘主机名’;
二、权限控制
1、查询权限
show grants for ‘用户名’ @ ‘主机名’;
2、授予权限
grant 权限列表 on 数据库名.表名 to ’用户名‘ @ ’主机名‘;
3、撤销权限
revoke 权限列表 哦那数据库.表名 from ’用户名‘ @ ’主机名‘;