MySQL语法笔记
DDL(操作数据库)
数据库 操作
创建数据库
1
create db_name;
判断数据库或表是否存在
1
if [not] exists db_name/tb_name
删除数据库
1
drop db_name;
使用(进入)数据库
1
use db_name;
查看当前使用的数据库
1
select database();
表操作
查询当前数据库中的表
1
show tables
查看表
1
desc func
创建表
1
2
3
4
5
6create table db_name (
column_name_1 type_1,
column_name_2 type_2,
...
column_name type # 注意最后一个字段后不能加逗号
);删除表
1
drop tb_name
修改表名
1
alter table tb_name rename to new_tb_name;
添加一列
1
alter table tb_name add column_name type;
修改数据类型
1
alter table tb_name modify column_name new_type;
同时修改列名和数据类型
1
alter table tb_name change column_name new_type;
删除列
1
alter table tb_name drop column_name;
常用数据类型
- 大整数 INT
- 极大整数 BIGINT
- 单精度浮点数 FLOAT
- 双精度浮点数 DOUBLE double(总长度, 小数点后保留位数)
- 日期 DATE
- 时间或持续时间 TIME
- 年份 YEAR
- 混合日期和时间 DATETIME
- 定长字符串 CHAR char(字符串长度) 存储性能高,浪费空间
- 变长字符串 VARCHAR varchar(最大字符串长度) 存储性能低,节约空间
DML(对表中数据增删改)
添加数据
给指定列添加数据
1
insert into tb_name(column_name_1, column_name_2, ...) values(value_1, value_2, ...);
给所有列添加数据
1
insert into tb_name values(value_1, value_2, ...); # 给所有列添加数据时列名可省略,但推荐列名不省略
批量添加
1
insert into tb_name(column_name_1, column_name_2, ...) values(value_1_1, value_1_2, ...), (value_2_1, value_2_2, ...), ...;
修改数据
修改表数据
1
update tb_name set column_name_1 = value_1, [where 条件] # 如果update语句后没有加where条件,则会将表中所有数据全部修改
删除数据
删除表数据
1
delete from tb_name [where 条件];
DQL(查询数据)
基本查询语法
1 | select |
基础查询
查询指定列数据
1
select column_name_1, column_name_2, ... from tb_name;
查询全部数据
1
select * from tb_name; # 不建议使用星号
去重查询数据
1
select distinct column_name from tb_name;
给列名起别名
1
column_name [as] other_name # as可省略
条件查询
基础语法
1
select column_name from tb_name where 条件;
模糊查询
1
2
3select ... from ... where column_name like '...'
% # 匹配任意个字符
_ # 匹配单个字符
排序查询
基础语法
1
select key_list from tb_name order by order_key_name_1 [order_method_1], order_key_name_2 [order_method_2], ... ;
排序方法
ASC
升序排列(不写排序方式则默认升序)DESC
降序排列
分组查询
聚合函数
- 概念:将一列数据作为一个整体,进行纵向计算。
- 分类:
count
计数max
求最大值min
求最小值sum
求和avg
求平均值
null
值不参与聚合函数运算
基本语法
1
select key_list from tb_name [where 分组前条件限定] group by 分组字段名 [having 分组后条件过滤];
执行顺序
where -> 聚合函数 -> having
分页查询
基本语法
1
select key_list from tb_name limit 起始索引 , 查询条目数; # MySQL专有语法(方言)
起始索引 = (当前页码 - 1) * 每页的条数
约束
1. 概念
约束时作用于表上的规则,用于限制加入表的数据
2. 约束的分类
primary key
主键约束not null
非空约束unique
唯一约束not null unique
主键约束(非空且唯一)auto_increment
主键且自增长(如id)default + 默认值
默认约束
3. 外键约束
- 作用:让两个表的的数据建立链接,保证数据的一致性和完整性。
基本语法:
添加约束
1
2
3
4
5create table tb_name (
column_name type,
...
[constraint] [外键名称] foreign key (外键列名) references 主表 (主表列名)
);删除约束
1
alter table tb_name drop foreign key 外键名称;