我们承接前面的内容来学习关于MySQL的新的东西
设计范式:
数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。
范式最终的设定,还是要根据实际开发去考虑,未必必须满足范式
三大设计范式
第一范式:
当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。
+—-+——+————-+
| id | name| address |
+—-+——+————-+
| 1 | 小明 | 中国武汉 |
| 2 | 小王 | 中国成都 |
| 3 | 小李 | 中国黑龙江 |
+—-+——+————-+
例如这样,在address中,字段值还可以再拆成“中国”“武汉”,这样的就明显不满足第一范式
范式设计的越详细,对某些实际操作可能更好,但是,不一定都是好处
第二范式:
必须是满足第一范式的前提下
第二范式要求,除主键外的每一列都必须依赖(由A推出B,则B依赖于A)于主键。
如果要出现不完全依赖(部分依赖),只可能发生在联合主键的情况下
例如:
老师 班级 开始 结束
张老师 0531 10:00 12:00
张老师 0425 14:00 16:00
王老师 0643 14:00 16:00
可知,上述可将 老师+班级 作为联合主键,但开始/结束时间其实由班级字段就可确定,即开始/结束时间部分依赖于联合主键
对于部分依赖,一般就拆表处理。
第三范式:
必须是满足第二范式的前提下
除开主键列的其他列之间不能有传递依赖关系。
属性不依赖于其它非主属性
示例:
+—————-+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+—————-+————-+——+—–+———+——-+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| school_name | varchar(20) | YES | | NULL | |
| school_address | varchar(20) | YES | | NULL | |
+—————-+————-+——+—–+———+——-+
主键是id,但是school_address也可以由school_name决定,存在传递依赖
分解为两个表即可:
学号、姓名、学校名称
学校名称、学校地址
数据库的导入导出:
导出:
在命令行(注意:没有进入mysql)使用命令:
mysqldump -u用户名 -p密码 数据库名 > 导出文件(.sql)
即可导出,有几个参考的参数:
-h:表示host地址
-d:表示不导出数据,只导出结构
导入:
第一中方法:
进入mysql数据库中,先用use
选择一个库
用如下命令:
source sql文件的位置
例如:
source C:\Users\lenovo\Desktop\notenow.sql;
即可导入
第二种方法:
将导出的sql文件复制到本地数据库的安装目录的data文件夹下
在cmd窗口中,切换到MYSQL数据库的安装路径,然后进入数据库
创建一个数据库
然后用如下命令导入
mysql -uroot -pminstone 数据库 < .sql文件
商业转载 请联系作者获得授权,非商业转载 请标明出处,谢谢