数据库的导入导出
作用:使用数据库和导入导出功能 可以对数据库进行备份 迁移等操作
1 导出的数据库 导出数据库使用mysqldump 命令完成 语法:mysqldump-uroot -p (注意不要输入密码)要导出的数据库名 要导出的数据表-- > 目标文件 sql
2 导出整个数据库
mysqldump -uroot -p School > school_bak.sql
3 导出库当中的表
mysqldump -uroot -p School tpk > tpk.sql
mysqldump -uroot -p School tpk tfk > tpktfk.sql
4 导入数据库
导入数据库前 需要创建一个空的数据库
语法: mysql -uroot -p 数据库名 < 要导入的文件sql
mysql -uroot -p sch < school_bak.sql
数据表设计思想
- 需求分析: 根据用户的需求 分析出需要记录的表
- 需求设计: 根据分析出的数据,设计E-R 模型图
- 详细设计:将E-R 模型图转换成数据表
- 三大范式:使用数据库三大范式的设计思想对数据表进行审核
E-R模型图
概念: Entity-Relationship 实体关系图 组成元素
ER图应用案例: 将下面的项目需求 以ER图形式表示出来
表示关系:
三大范式(了解)
- 第一范式 : 每一列都具有原子性,也就是不能再分割
第二范式 : 每个表只描述一件事情
第三范式 : 表中不能存在冗余字段
数据表练习
- 创建数据库School
create database School ;
- 创建学生表 tStudent
tStudent 学生表结构
sid | 学生编号 |
---|---|
sName | 姓名 |
sAge | 年龄 |
sGender | 性别 |
sAddress | 地址 |
sClassId | 班级Id |
sPhone | 电话 |
sBirthday | 生日 |
sCardId | 身份证号 |
答案:
create table tStudent(sId int ,sName char(20),sAge tinyint, sGender enum('boy','girl'),sAddress varchar(50),sPhone char(11),sBirthday year,sCardId char(10),sClassId int);
创建成绩表tScore TblScore 成绩表结构
sid | 成绩id 主键 自动编号 |
---|---|
sStuId | 学生编号 |
sEnglish | 英语成绩 |
sMath( | 数学成绩 |
答案:
create table tScore(sid int unsigned auto_increment primary key,sStuId int ,sEnglish float(5,2),smath float(5,2));
创建班结表 tClass tClass 班级表结构:
cid | 班级ID |
---|---|
cName | 班级名称 |
cDescription | 班级描述 |
答案:
create table tClass(cId int,cName char(10),cDescription varchar(100));
创建老师表 tClass tTeacher 老师表:
ttid |
---|
tTname |
tTname |
tGender |
tAge |
tTSalary |
tTBirthday |
答案:
create table tTeacher(tId int ,tName, char(20),tAge tinyint,tGender enum('boy','girl'),tSalary float(10,2),tBirthday year);