1. 库 的增删改查
# 查看库
show databases;
# 创建某个库
create database db1 charset utf8;
# 查看某个库
show create database db1;
# 修改库的编码
alter database db1 charset
# 删除某个库
drop database db1;
2. 表 的增删改查
2.1 增
create table stu(id int primary key auto_increment,name char(16) not null,age int not null)
# 数据类型
字符串 char(6) varchar(6) sql_mode 截断 char以空间换时间
整型 int
小数 float(5,2) decimal double
日期 date datetime
枚举:enum set()
# 约束条件
not null
unique
primary key 索引密切相关 查询效率
foreign key
2.2 改
# 修改表的名称
alter table stu rename stu_new;
# 修改表的数据类型
alter table stu_new modify name varchar(16);
# 修改表的字段名及数据类型(修改完字段名需要带上数据类型和约束条件)
alter table stu_new change name name_new char(16) not null;
# 新增字段
alter table stu_new add sex enum("男","女");
# 删除字段
alter table stu_new drop name,drop age;
2.3 查
# desc 表名
desc stu_new;
# show create table 表名 \G;
show create table stu_new \G;
2.4 删
# drop table 表名
drop table stu_new;
3 记录的增删改查
3.1 增
# 语法1:insert into 表名 values(值1,值2,值3....)
# 语法2:insert into 表名(字段1,字段2) values (值1,值2)
3.2 改
# 语法:update 表名 set 字段 = 新值 where 条件
3.3 删
delete from 表名 where 条件;
3.4 查(单表查询)
语法:
select distinct 字段1,字段2 [,...] from 表名
where 条件
group by field
having 筛选条件
order by filed
limit 条数
注:
group by field 根据什么进行分组,一般是某个字段或多个字段
order by filed 根据什么进行排序,一般是某个字段或多个字段
having主要配合group by使用,对分组后的数据进行过滤,里面可以使用聚合函数
where是针对select查询的过滤,各有区别和用处
优先级:
from
where
group by
select
distinct
having
order by
limit
转载自:
https://zhuanlan.zhihu.com/p/121511645
https://zhuanlan.zhihu.com/p/130937610