目录
DDL (Data Definition Language) 数据定义语言:
DML (Data Manipulation Language) 数据操作语言:
DQL (Data Query Language) 数据查询语言:
DDL (Data Definition Language) 数据定义语言:
DDL 操作数据库:
1.查询数据库
-
show databases;
2.创建数据库
-
create database 数据库名; create database if not exists 数据库名; # 如果数据库不存在再执行创建
3.删除数据库
-
drop database 数据库名; drop database if exists 数据库名; #如果数据库存在再执行删除
4.使用数据库
-
use 数据库名; select database(); #查询当前使用的数据库
DDL 操作表:
1.查询表
-
show tables; #查看所在数据库下的所有表 desc 表名; #查询表的结构信息
2.创建表
-
create table 表名 ( 字段名1 数据类型1, 字段名2 数据类型2, 字段名3 数据类型3, ...... 字段名n 数据类型n );
3.数据类型(常用类型):
-
INT: age int Double: score double(总长度,小数点后保留位数)[//]: # (scroe 在0-100之间,保留小数点后两位 score double(5,2)) DATE: birthday date CHAR: name char(10) #定长字符串,若存“张三”,会有八个空字符占用空间: # (存储性能高 未知准确使用空间时比较浪费空间) VARCHAE: name varchar(10) #变长字符串,若存“张三”,会先计算字符长度然后只使用两个字符空间: # (存储性能低 节约空间)
4.删除表
-
drop table 表名; drop table if exists 表名;
5.修改表
1.修改表名
- alter table 表名 rename to 新表名;
2.添加一列
- alter table 表名 add 列名 数据类型;
3.修改数据类型
- alter table 表名 modify 列名 新数据类型;
4.修改列名和数据类型
- alter table 表名 change 列名 新列名 新数据类型;
5.删除列
- alter table 表名 drop 列名;
DML (Data Manipulation Language) 数据操作语言:
DML添加数据
1.给指定列添加数据
-
insert into 表名(列名1,列名2,列名3,...) values(值1,值2,值3,...);
2.给所有列添加数据
-
insert into 表名 values(值1,值2,...);
3.批量添加数据
-
insert into 表名(列名1,列名2,...) values (值1,值2,...),(值1,值2,...)...; insert into 表名 values(值1,值2,...),(值1,值2,...),(值1,值2,...)...;
DML修改数据
1.修改表数据
-
- update 表名 set 列名1=值1,列名2=值2,... [where 条件]; #如果update没有加where条件会将表格所有的对应数据更改
DML删除数据
1.删除数据
-
delete from 表名 [where 条件]; # 如果delete没有加where条件会将表格所有的数据删除
DQL (Data Query Language) 数据查询语言:
DQL基础查询
1.查询多个字段
- select 字段列表 from 表名;
- select * from 表名;#查询所有数据
2.去除重复记录
- select distinct 字段列表 from表名;
3.起别名
- as: as可不写
例:select name as 姓名, math as 数学成绩, English as 英语成绩 from 表名 as 表别名;
select name 姓名, math 数学成绩, English 英语成绩 from 表名;#as可不写用空格代替
DQL条件查询
1.条件查询语法
- select 字段列表 from 表名 where 条件列表;
2.条件
符号 | 功能 |
> | 大于 |
< | 小于 |
> = | 大于等于 |
< = | 小于等于 |
= | 等于 |
<>或! = | 不等于 |
BETWEEN...AND... | 在某个范围之内(都包含) |
IN(...) | 多选一 |
LIKE 占位符 | 模糊查询 _ :单个任意字符;% : 多个任意字符 |
IS NULL | 是NULL |
IS NOT NULL | 不是NULL |
AND 或 && | 并且 |
OR 或 || | 或者 |
NOT 或 ! | 非,不是 |
DQL排序查询
1.排序查询语法
- select 字段列表 from 表名 order by 排序字段名1 [排序方式1], 排序字段名2 [排序方式2]...;
**排序方式:**# 如果有多个排序条件,当前面的条件值一样,才会根据第二条件进行排序
ASC : 升序排列(默认值)
DESC :降序排列
DQL聚合函数
1.概念:
- 将一列数据作为一个整体,进行纵向计算
2.聚合函数分类
函数名 | 功能 |
count(列名) | 统计数量(一般选用不为null的列) |
max(列名) | 最大值 |
min(列名) | 最小值 |
sum(列名) | 和 |
avg(列名) | 平均值 |
3.聚合函数语法
- select 聚合函数名(列名) from 表名;
#null值一般不参与聚合函数运算
DQL分组查询
1.分组查询语法
- select 字段列表 from 表名 [where 分组限定条件] group by 分组字段名 [having 分组后条件过滤];
# 分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
- where和having区别:
1.执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
2.可判断的条件不一样:where不能对聚合函数进行判断,having可以。
# 执行顺序 where>聚合函数>having
DQL分页查询
1.分页查询语法
- select 字段列表 from 表名 limit 起始索引, 查询条目数;
# 起始索引:从0开始
# 计算公式: 起始索引 = (当前页码-1)*每页显示的条数
- tips:
1.分页查询limit是MySQL数据库的方言
2.Oracle分页查询使用rownumber
3.SQL Server分页查询使用top