数据完整性
数据完整性分类
实体完整性(Entity Integrity):保证数据记录的唯一性,主键,自增,唯一
主键 primary key自增 auto_increment唯一 unique
域完整性(Domain Integrity) : 非空,默认值,外键约束
非空 not null默认值 default外键 foreign key ( 列 ) references 主表 ( 列 )
引用完整性(Referential Integrity) : 外键约束
外键 foreign key (列) references 主表(列)
用户自定义完整性(User-defined Intergrity)
增删改语句
insert 语句
INSERT [ INTO ] table_name [(COLUMN1 [,COLUMN2 [,......]])]VALUES (VALUE1 [,VALUE2 [,......]);
一次录入多行数据
INSERT [INTO] table_name [(COLUMN1 [,COLUMN2 [,......]])]
VALUES(VALUE1 [,VALUE2 [,......]),(VALUE1 [,VALUE2 [,......]),(VALUE1 [,VALUE2 [,......]);
在innodb存储引擎下,会到自增断层
INSERT [ INTO ] table_name [(COLUMN1 [,COLUMN2 [,......]])]select VALUE1,VALUE1,[,......] unionselect VALUE1,VALUE1,[,......]
update 语句
UPDATE table_name SETCOLUMN1 = {}, COLUMN2 = {}......WHERE < 表达式 >
delete 删除语句
DELETE FROM table_name WHERE <表达式>
删除表中的数据:
delete: 根据条件删除,逐行删除。
truncate:整表删除,无法设定条件,效率高,自增列会重新计数,无法恢复数据;无法直接删
除有外键引用的表。
查询
select 列名 1 , 列名 2 # 查询列from 表名 # 从 某张表中# 可选where 条件表达式group by 列名having 条件表达式order by 列名limit ?,? 分页
去重查询
去除查询结果中的重复数据
select distinct 列名 from 表名;
条件查询where语句
条件运算符:= > < >= <= 不等:<> 和 !=
算术运算符:+ - * / %(mod)
不支持
:++ -- 复合赋值 += -=
逻辑运算符:and(&&) , not(!) , or(||)
聚合函数(汇总函数)和分组查询
就是对某一列的数据进行运算获取某些列的最大值、最小值、平均值等统计分析信 息,有时候还需要计算出究竟查询到多少行数据项。分别有:sum(列),count(注意非空 值) 计数、max(列)、min(列)、avg(列),count(空值)不计入数据。 count(列名/*) 如果列名存在null值,不计入总数。
多表查询
where语句连接,内连接,外连接