java数据库之表的完整性
一.查询语句
1.查询去重信息:关键字 distinct
2.两值相加时的判断条件IFNULL
注意: if()和ifnull()的区别
if(true,a,b), if(false,a,b) 这个就是第一个如果是true,就等于a,false就等于b,有点像三元表达式
ifnull(null, a),ifnull(a,b), ifnull里有两个数,如果第一个不是null,是a非null,就都等于a, 如果a=Null,就都为a。
eg:
SELECT IFNULL(NULL,"11"); -> 11
SELECT IFNULL("00","11"); -> 00
3.给查询的字段起别名 关键词AS 可以省略
4. 查询表记录, 按某一字段升序排序
5.聚合函数 sum avg max min count(总记录数)
可以自动去除空值
6.分组查询 GROUP BY
按什么分组,前面查询的字段就是什么,为了保证查询结果数量对等
7.where条件和关键字having
where条件要加在group by之前;
注意:
1.where后面不能使用聚合函数
2.分组之后,如果要使用添加筛选条件需要使用 Having关键词
3.having后边可以使用聚合函数
4.where条件是在分组之前进行筛选(即在group by之前)
5.Having条件是在分组之后进行筛选(即在group by之后)
8.分页查询 关键词 limit(mysql方言)
- limit 从第几条开始显示的数据,一共显示多少条数据
- 从第0条数据开始显示;
- limit关键词 要在所有的条件之后写
9.模糊查询 关键词 like
使用占位符: %(多个字符), _(一个下划线表示一个字符).
二.数据完整性
- 数据完整性(保证用户插入的数据有效)
- 引用完整性(多张表依赖的关系,单表不存在此完整性)
- 域完整性(一个单元格的完整性)
- 实体完整性(保证一条数据局的完整性)
- 主键(唯一且不能为空) 精准删除
- 唯一键(唯一的 但是可以是空)
- 主键自增
1.设置主键的三种方式:
关键字 PRIMARY KEY
2.#删除主键约束 注意:删除主键不用约束 关键词
3.唯一键约束 关键词 unique
4.主键自增 关键词 auto_increment
注意:主键只能自增,删除了也不会倒退(即删除之后,再添加会接着自增).
插入时,可以给null,让他自己自增.
5.域完整性:
not null(非空)
default(默认值)
字段类型
注意:有默认值约束时,直接插入空可以,
要使用默认值,可以不插入该默认字段(和主键不同)
6. 引用完整性(参照物约束)
表和表之间的关系
- 一对一(罕见) 一对多 多对多(常用)
- 学生表(主) 和分数表(从) (可以通过外键来建立两张表之间的关系)
建立外键的方式
删除外键(一个表中可能有多个外键)
多对多关系