实验一 教学管理数据库设计与实现原理
一、实验目的
掌握数据库基本操作;
掌握创建表结构、修改表结构、查看表结构;
掌握设置主键、外键约束,创建表联系;
掌握插入、修改、删除表记录、查看表记录。
二、实验内容
1.创建教学管理数据库tms
2.按下面关系模式图创建数据表,设计合理表结构,并创建联系。
要求:五个表分别命名为:学生表tms_stu,课程表tms_cou,教师表tms_tea,选课表tms_sc,授课表tms_tc
图1 教学管理数据库关系模式图
3.创建并导入txt文档中的记录要求:txt文档命名与数据表名一致,如学生表为tms_stu,则学生记录txt文档为tms_stu。没有外键的表中记录至少5条,有外键的表中记录至少10条。百度解决有bom的utf8开头有标记问题。
三、实验结果
要求:仅截图,不写代码。仅截取结果部分,不要截取整个窗口,注意截图中文字大小与word文档中文字大小保持一致,图片不清晰,可双击图片对其进行锐化处理。
1.tms_stu表结构和表记录
2.tms_cou表结构和表记录
3.tms_tea表结构和表记录
4.tms_sc表结构和表记录
5.tms_tc表结构和表记录
四、实验中遇到的问题及解决方法、总结
1.遇到的第一个问题就是在导入txt文档里面的数据时候,输入load data infile 'C:Users/lh/Desktop/tms_cou.txt'into table tms_cou lines terminated by '\r\n';会给我提示报一个错误ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
后面我在data后面加上一个local就能成功导入进去了。
2.遇到的第二个问题是在txt文档里面
原本txt文档里面有内容,但是提示表中没有数据,后面发现在tms_tc文档里面回车多了一行,所以系统自动检查多了一行记录,最后把txt文档里面多的一行删除掉就可以了,系统也不在报warning了。
3.遇到的第三个问题就是txt文档里面出现空格的情况
如图所示,在电话那一条记录里面少了两条数据,并且在电子邮件哪里出现记录混乱,后面发现是在tab前面多了一个空格,后面删掉后就可以了。
总结:这次实验问题多出现在txt文档里面,下次可以不用tab,可用逗号分割开,避免出现今天类似的错误。
五、附件(创建表结构相关代码)
CREATE TABLE `tms_stu` (
`snum` varchar(20) NOT NULL COMMENT '学号',
`name` varchar(20) NOT NULL COMMENT '姓名',
`sex` enum('男','女') DEFAULT NULL COMMENT '性别',
`birthday` date NOT NULL COMMENT '出生日期',
`leaguemenbers` enum('是','否') DEFAULT NULL COMMENT '是否团员',
`enroltime` date NOT NULL COMMENT '入学时间',
`classnum` varchar(20) NOT NULL COMMENT '班级编号',
`speciality` varchar(20) NOT NULL COMMENT '专业',
`score` varchar(20) NOT NULL COMMENT '入学成绩',
`photo` varchar(20) NOT NULL COMMENT '照片',
PRIMARY KEY (`snum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tms_cou` (
`coursename` varchar(20) NOT NULL COMMENT '课程名称',
`coursenum` varchar(20) NOT NULL COMMENT '课程编码',
`class` varchar(20) NOT NULL COMMENT '课时',
`credits` varchar(20) NOT NULL COMMENT '学分',
PRIMARY KEY (`coursenum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tms_tea` (
`teachernum`varchar(20) NOT NULL COMMENT '教师编号',
`teateachername` varchar(20) NOT NULL COMMENT '姓名',
`sex` enum('男','女') DEFAULT NULL COMMENT '性别',
`worktime` date NOT NULL COMMENT '工作时间',
`political` varchar(20) NOT NULL COMMENT '政治面貌',
`degree` varchar(20) NOT NULL COMMENT '学历',
`job` varchar(20) NOT NULL COMMENT '职称',
`department` varchar(20) NOT NULL COMMENT '系别',
`phone` varchar(20) NOT NULL COMMENT '联系电话',
`email` varchar(20) NOT NULL COMMENT '电子邮箱',
PRIMARY KEY (`teachernum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tms_tc` (
`coursenum` varchar(20) NOT NULL COMMENT '课程编码',
`teachernum` varchar(20) NOT NULL COMMENT '教师编号',
`classnum` varchar(20) NOT NULL COMMENT '班级编号',
`syear` varchar(20) NOT NULL COMMENT '学年',
`term` varchar(20) NOT NULL COMMENT '学期',
`place` varchar(20) NOT NULL COMMENT '授课地点',
`teachtime` varchar(20) NOT NULL COMMENT '授课时间',
KEY `coursenum` (`coursenum`),
KEY `teachernum` (`teachernum`),
CONSTRAINT `tms_tc_ibfk_1` FOREIGN KEY (`coursenum`) REFERENCES `tms_cou` (`coursenum`),
CONSTRAINT `tms_tc_ibfk_2` FOREIGN KEY (`teachernum`) REFERENCES `tms_tea` (`teachernum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tms_sc` (
`snum` varchar(20) NOT NULL COMMENT '学号',
`syear` varchar(20) NOT NULL COMMENT '学年',
`term` varchar(20) NOT NULL COMMENT '学期',
`coursenum` varchar(20) NOT NULL COMMENT '课程编码',
`score` varchar(20) NOT NULL COMMENT '成绩',
KEY `snum` (`snum`),
KEY `coursenum` (`coursenum`),
CONSTRAINT `tms_sc_ibfk_1` FOREIGN KEY (`snum`) REFERENCES `tms_stu` (`snum`),
CONSTRAINT `tms_sc_ibfk_2` FOREIGN KEY (`coursenum`) REFERENCES `tms_cou` (`coursenum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;