1.用户名与密码做成一个表还是做成两个表?
用户表
|
|
|
|
|
密码表
|
|
|
ID
|
用户名
|
|
|
|
ID
|
密码
|
|
1
|
张三
|
|
|
|
1
|
123
|
|
做成两个表之后,数据的安全性高很多。还可以设置两个表的不同访问权限。
2.数据表操作,增删改
delete和truncate 区别
delete会记录日志,删除之后还可以恢复,但效率低。truncate不会记录日志,删除之后的数据不能恢复,但效率高。
3.查询
查询是数据库中最为常用和复杂的一种sql结构。
select。
select 【distinct】
3.刘基改刘伯温 周末作业
年龄不建议加入到表中,因为每年都要更改,使用年月日可以
delete后面不能加*号,
select后面要加*,
*号表示所有列。
数据库完整性
概述
为什么?
为了防止垃圾数据的产生,从而影响数据库的执行效率!
可靠性+准确性= 数据完整性
分类
1.实体完整性-保证一——行数据是有效的
- 保证每行所代表的实体能相互区别,布恩那个存在两条一模一样的记录
- 实现方法:
——主键约束(primary key),主键列不能为空,也不能重复,一个表中只能有一个主键。
——唯一约束(unique):指定列的所有的值必须唯一,其他列不能重复,该列在表中的每一行的值必须唯一。和主键区别是可以为空,并且可以在一张表中给多个列设置
2.域完整性 —— 列数据的输入有效性。
- 实现方法:
——非空约束:not null
——默认约束:default 如果没有值,那么就会自动填入默认值。
——检查约束:check(MYSQL)不支持
3.引用完整性 —— 保证引用的编号是有效的
- 为什么,例如,在录入学生成绩时,所使用的学号必须是在学生表中作为主键存在的编号。
- 是什么,从表外键中引用的数据,必须在主键列中出现。
- 实现方法——外键约束。语法,
- 外键和外键约束
-- 给t studentss的s classId添加外键约束,约束名为fk 1
ALTER TABLE t_studentss ADD CONSTRAINT fk_1 FOREIGN KEY (s_classId) REFERENCES t_class(c_id);
-- s classId的值,必须引用t class表中的c id的主键值。
1,二者概念不同,常常被混淆
2.外键指的是从表某列和主表某列的衣服关系
3.外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。
注意,没有建立外键约束不等于没有外键
用户自定义完整性——保证自定义规则