数据库的范式
- 第一范式
- 每一列都是不可分割德原子数据类型
- 第二范式
- 在1NF的基础上,非码属性必须完全依赖于码(在1NF基础上消除非主属性对主码的部分函数依赖)
- 第三范式
- 在2NF基础上,任何非主属性不依赖于其他非主属性(在2NF基础上消除传递依赖)
- 一般情况满足前面三个范式就好了。
- 巴斯-科德范式
- 第五范式
- 第六范式也称为完美范式
数据库的备份和还原
1.命令行
备份与还原:
备份:mysqldump -u用户名 -p密码 数据库的名称 > 保存的路径
还原:
1. 登录数据库
2. 创建数据库
3. 使用数据库
4. 执行文件。source 文件路径
2.图形化工具
页面上点击备份,将文件备份到桌面。然后执行数据库
多表查询
两个表一起查
笛卡尔积:有两个集合A,B取这两个集合的所有组成情况,要多表查询需要消除无用的数据
例如:
– 隐式内连接查询
select
*
from
emp t1,
dept t2
where
t1.dept_id = t2.id
– 显式内连接查询
语法:
select * from emp t1 inner join dept t2 on t1.dept_id = t2.id
select * from emp t1 join dept t2 on t1.dept_id = t2.id;(inner)可以省略
– 内连接怎么使用:
1.从那些表中查询数据
2.条件是什么
3,查询那些字段
外连接查询
左外连接查询
select * from 表1 left [outer] join 表2 on 条件
-- 查询左表所有的记录后,将两个表符合条件的数据也查询出来。
如:
select t1.*,t2.name from emp t1【左表】 left join dept t2【右表】 on t1.dept_id = t2.id;
右外连接查询
select * from 表1 right [outer] join 表2 on 条件
-- 查询右表所有的记录后,将两个表符合条件的数据也查询出来。
如:
select t1.*,t2.name from emp t1【左表】 right join dept t2【右表】 on t1.dept_id = t2.id;