// 插入数据
insert into 表名 value (数据1, 数据2...);
// 插入数据
insert into 表名 (字段1, 字段2...) value (数据1,数据2...);
// 插入多条数据
insert 表名 (字段名1,字段名2...) values (数据1,数据2),(数据1,数据2);
// 修改数据
update 表名 set 字段1 = 值, 字段2 = 值... where 条件
// 删除数据
delete from 表名 where 条件;
### 再插入数据中 多条数据插入尽量用一条SQL语句
更改
关键字
说明
update
更改表内数据
alter table
更改表结构
rename table
更改表名字
// 表内新增字段,指定字段的类型和约束
alter table 表名 add 字段名 类型 约束;
// 表内修改字段,指定被修改的字段和修改后的名字,字段类型和约束
alter table 表名 change 原字段名 新字段名 类型 约束;
// 表内删除字段
alter table 表名 drop 字段名;
// 修改表的名字
rename table 原表名 新表名;
删除
关键字
说明
delete
删除表内的数据
drop delete
删除整个表,可以恢复
truncate
删除表内的所有数据,速度快,不可恢复
// 删除表
drop table 表名
// 删除表内的所有数据
truncate 表名
查询
// 查看表内的所有数据
select * from 表名;
// 查看指定的字段
select 字段1,字段2 from 表名;
// 比较条件查询
select * from 表名 where 条件;
条件
命令
相等
=
不相等
!=
为空
is null
不为空
is not null
大于(大于等于)
> (>=)
小于(小于等于)
< (<=)
// 模糊查询
select * from 表名 where 字段 like "表达式";
关键字 模糊
说明
%
匹配任意多个字符
_
匹配一个字符
// 范围查询
select * from 表名 where 字段 in (可能1,可能2...);
关键字 范围
说明
and
并且
or
或
分组
select * from 表名 where 条件 group by 字段1,字段2...;
1,按照那个字段分组,那个字段就不会重复
2,group by 要写在where后面
对分组的条件
select * from 表名 where 条件 group by 字段1,字段2...
having 条件;
排序
select * from 表名 where 条件 group by 字段1,字段2...
having 条件 order by 字段1 asc|desc,字段2 asc|desc;
1,asc和desc的含义
asc:升序(默认)
desc:降序
排序优先级
先按字段1进行排序,如果字段1相同,按字段2排序
分页
select * from 表名 where 条件 group by 字段1,字段2...
having 条件 order by 字段1 asc|desc,字段2 asc|desc
limit 起始索引,数据条件;
多表之间的关系
一对多
多对多
一对一
级联类型
解释
on delete restrict
默认值抛异常
on delete cascade
如果主表被引用的外键被删除,相关联表的记录也会被删除
on delete set null
如果主表被引用的外键删除,相关联的表的外键设置为空
on delete no action
什么也不做
插入语句优化
insert into [table] (字段) value (单行数据);
insert into [table] (字段) value (单行数据);
insert into [table] (字段) value (单行数据);
// 进行一行values会更好
insert into [table] (字段) values
(单行数据),
(单行数据),
(单行数据);
索引
//建立索引
create index 索引名 on 表名 (字段名(索引长度));
//删除索引
drop index 索引名 on 表名;