1.什么是主键和外键?
良好的数据库编程规范应该要保证每条记录的唯一性,为此,增加了主键约束,也就是说,每张表都必须有一个主键,用来标识记录的唯一性
主键:Primary Key,唯一标示一条记录的字段,具有以下特点:
- 名字:xxx_id
- 类型:Integer
- 自动增长
- 准确数值由数据库决定,程序员不用关心
- 主键可以是一个字段或多个字段
- 主键字段默认就包含了not null 和 unique 两个约束
主键的设计原则
- 主键应当是对用户没有意义的
- 永远也不要更新主键
- 主键不应包含动态变化的数据
- 主键应当由计算机自动生成
外键:Foreign Key,对应其他关系表的标示,利用外键 可以和另外一个表建立起"关系"
- 方便数据维护
- 节约存储空间
2.数据库三大范式
通俗的理解数据库三大范式,对于数据库设计大有好处。
1.第一范式(1NF):数据库表中的字段都是单一属性的,不可再分
2.第二范式(2NF):第二范式建立在满足第一范式的基础上,数据表里的每一条数据记录,都是可唯一标识的,而且所有的非主键字段,都必须完全依赖主键,不能只依赖主键的一部分
3.第三范式(3NF):第三范式建立在满足第二范式的基础上,所有非主键之间不能有依赖关系,它们是互相独立的,只跟主键有直接关系
注意:
第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在于,2NF:非主键字段是否完全依赖于主键,还是依赖于主键的一部分;3NF:非主键字段是直接依赖于主键,还是直接依赖于非主键字段
3.常用的语句、运算符使用
1.WHERE子句
用来过滤记录
实例:查找typeid<3的数据
2.AND/OR运算符
用于编译多个条件来缩小在 SQLite 语句中所选的数据
and两边的条件都需要为真,or只要有一个为真即可
3.UPDATE语句
用于修改表中已有的记录
4.DELETE语句
用于删除表中已有的数据
可以删除指定行或全部数据
5. LIKE子句
用来匹配通配符指定模式的文本值
查找包含2的id
语句 | 描述 |
---|---|
WHERE SALARY LIKE '200%' | 查找以 200 开头的任意值 |
WHERE SALARY LIKE '%200%' | 查找任意位置包含 200 的任意值 |
WHERE SALARY LIKE '_00%' | 查找第二位和第三位为 00 的任意值 |
WHERE SALARY LIKE '2_%_%' | 查找以 2 开头,且长度至少为 3 个字符的任意值 |
WHERE SALARY LIKE '%2' | 查找以 2 结尾的任意值 |
WHERE SALARY LIKE '_2%3' | 查找第二位为 2,且以 3 结尾的任意值 |
WHERE SALARY LIKE '2___3' | 查找长度为 5 位数,且以 2 开头以 3 结尾的任意值 |
6.综合运用,如查询“语文”课程比“数学”课程成绩低的所有学生的学号
4.drop和delete的区别
- drop删除表结构及数据,delete只删除数据
- drop不可回滚,delete可回滚
- drop不可带where,delete可带where
- drop删除速度快,delete删除速度慢,需要逐行删除
总结:不再需要一张表的时候,用drop
想删除部分数据行时候,用delete
5.varchar和char的区别
Char是一种固定长度的类型,varchar是一种可变长度的类型