MySQL - Note04 Database
DBA 命令
导出
导出整个库
1
mysqldump [database]>[path.sql] -u[name] -p[psw]
导出库中表
1
mysqldump [database] [table]>[path.sql] -u[name] -p[psw]
导入
1 |
|
*数据库设计三范式
设计表的依据,按照这个三范式设计的表不会出现数据冗余
第一范式
任何一个表都应该有主键,并且每个字段原子性不可再分
第二范式
建立在第一范式的基础之上,所有非主键字段完全依赖主键,不能产生部分依赖
多对多,三张表,关系表两个外键
t_student 学生表:
1
2
3
4sno(pk) sname
-----------------
1 vv
2 eet_teacher 讲师表:
1
2
3
4
5tno(pk) tname
-----------------
1 t1
2 t2
3 t3t_student_teacher_relation 学生讲师关系表:
1
2
3
4
5
6id(pk) sno(fk) tno(fk)
-------------------------------
1 1 1
2 1 3
3 2 2
4 2 1
第三范式
建立在第二范式基础上,所有非主键字段直接依赖主键,不能产生传递依赖
一对多,两张表,多的表加外键(蝴蝶)
班级 t_class
1
2
3
4cno(pk) cname
-----------------
1 a
2 b学生 t_student
1
2
3
4sno(pk) sname classno(fk)
-----------------------------------
101 vv 1
102 ee 2
提示:在实际开发中,以满足客户需求为主,可能会用冗余换执行速度
一对一
主键共享
t_user_login 用户登录表
1
2
3
4id(pk) username password
--------------------------------
1 vv 123
2 ee 456t_user_detail 用户详情信息表
1
2
3
4id(pk+fk) realname tel ...
---------------------------------------
1 vay 321 ...
2 yiyi 543 ...外键唯一
t_user_login 用户登录表
1
2
3
4id(pk) username password
------------------------------------
1 vv 123
2 ee 456t_user_detail 用户详情信息表
1
2
3
4id(pk) realname tel userid(fk+unique)
-----------------------------------------------------
1 vay 321 1
2 yiyi 543 2
MySQL - Note04 Database
https://wataaaame.github.io/java/2022/07/14/MySQL - Note04 Database/