SQL :
DDL: 操作数据库,表,列等
DML: 对表中的数据进行增删改
DQL: 对表中的数据进行查询
DCL: 对数据库进行权限控制
DDL – 操作数据库,表,列等:
- 查询:
Show Databases; - 创建:
- 创建数据库
Create databases 数据库名称; - 创建数据库(判断,如果不存在则创建)
Create Database If Not Exists 数据库名称;
- 创建数据库
- 删除
- 删除数据库
Drop Database 数据库名称; - 删除数据库(判断,如果存在则删除)
Drop Database If Exists 数据库名称;
- 删除数据库
- 使用数据库
- 查看当前使用的数据库
select database(); - 使用数据库
use 数据库名称;
- 查看当前使用的数据库
DDL – 操作表:
- 创建(Create)
- 查询(Retrieve)
- 修改(Update)
- 删除(Delete)
查询表
- 查询当前数据库下所有表名称
show tables; - 查询表结构
desc 表名称;
创建表
create table 表名 (
———— 字段名1 数据类型1,
———— 字段名1 数据类型1,
…
———— 字段名n 数据类型n,
);
注:最后一行末尾,不能加逗号
数据类型
- 数值
- 日期
- 字符串

案例:
create table student(
-> id int,
-> name varchar(10),
-> gender char(1),
-> birthday date,
-> score double(5,2),
-> email varchar(64),
-> tel varchar(15),
-> status tinyint
->
-> );
删除
-
删除表:
dorp table 表名; -
删除表时判断是否存在
drop table if exists 表名;
修改
-
修改表名
- alter table 表名 rename to 新的表名;
-
添加一列
- alter table 表名 add 列名 数据类型;
-
修改数据类型
- alter table 表名 modify 列名 新数据类型;
-
修改列名和数据类型
- alter table 表名 change 列名 新列名 新数据类型;
-
删除列
- alter table 表名 drop 列名;
DML: 对表中的数据进行增删改
- 添加数据(insert)
- 修改数据(update)
- 删除数据(delete)
添加数据(insert)
-
给指定列添加数据
- insert into 表名(列名1,列名2, …)values(值1,值2, …);
-
给全部列添加数据(不建议省略)
- insert into 表名 values(值1,值2,…);
-
批量添加数据
- insert into 表名(列名1,列名2, …)values(值1,值2, …),(值1,值2,…), (值1,值2,…)…;
- insert into 表名values(值1,值2, …),(值1,值2,…), (值1,值2,…)…;
修改数据(update)
-
修改表数据
- update 表名 set 列名1= 值1,列名2=值2,…[where 条件];
注:修改语句中如果不加条件,则将所有数据都修改!

删除数据(delete)
-
删除数据
- delect from 表名 [where 条件];
注:删除语句中如果不加条件,则将所有数据都删除!

DQL: 对表中的数据进行查询
- 基础查询
- 条件查询(where)
- 聚合函数
- 分组查询(group by)
- 排序查询(order by)
- 分页查询(limit)
基础查询
-
查询多个字段
- select 字段列表 from 表名;
- select * from 表名; -> 查询所有数据
-
去除重复记录
- select distinct 字段列表 from 表名;
-
起别名
- AS: AS也可以省略
条件查询 (where)
-
条件查询
- select 字段列表 from 表名 where 条件列表;
-
条件

排序查询(order by)
-
排序查询语法
- select 字段列表 from 表名 order by 排序字段1[排序方式1],排序字段2[排序方式2]…;
- 排序方式:
- ASC : 升序排列(默认的)
- DESC :降序排列
注:如果有多个排序条件,当前边的条件值一样时,才会根据第二条进行排序
聚合函数
-
概念
- 将一列数据作为一个整体,进行纵向计算。
-
聚合函数分类

-
聚合函数语法
- select 聚合函数名(列名) from 表;
分组查询 (group by)
-
分组查询语法
- select 字段列表 from 表名[where 分组前条件限定] group by 分组字段名[having 分组后条件过滤];
注:分组之后,查询的字段为聚合函数的分组字段,查询其他字段无任何意义
where 和 having 区别:
* 执行时集不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
* 可判断的条件不一样:where 不能对聚合函数进行判断,having可以。
执行顺序:where > 聚合函数 > having
分页查询(limit)
-
分页查询语法
- select 字段列表 from 表名 limit 起始索引,查询条目数;
- 起始索引:从0开始
计算公式:起始索引= (当前页码-1) * 每页显示条数
tips:
- 分页查询limit是MySQL数据库的方言
- Oracle 分页查询使用 rownumber
- SQL Server 分页查询使用 top


1万+

被折叠的 条评论
为什么被折叠?



