实验内容与完成情况:
一、实验目的
本次实验了解DDL语言的CREATE、DROP、ALTER对表进行操作,学会在MySQL中使用DDL语言进行对表的创建、删除和改动。
二、实验内容
1.打开Edit中的SQL Editor,取消框中的勾选,这样就可以进行批量更新
2.打开MySQL,建立用户数据库wpx。在wpx数据库中使用DDL语句建立如下四个表。
刷新后,可见新建的用户数据库wpx。
Student表:
建立Course表:
SC表:
Teacher:
3.在文本编译窗口编写SQL语句,将下列数据分别插入Student,Course,SC和Teacher表中,操作方法同上。
Student表插入中遇到的问题:
1.已经枚举了只能有‘F’或‘M’所以‘FM’是错误’
2.主键约束,唯一,所以不能再insert同样的Sno
插入后的Student表:
Course表插入中遇到的问题:
1.插入违反了参照完整性约束条件,插入前先把Cpno置null
2.学分只设置到了1-5,所以为“7”学分时插入会出错误
插入后的Course表:
SC表插入中遇到的问题:
1.SC表的Sno,Cno都是外码,而Course表中没有Cno没有值为9的数据,所以插入失败。
2.因为Sno和Cno是SC表的主码,不能为空,所以插入失败。
插入后的SC表:
Teach表插入中遇到的问题:
1.问题与Course一样,可以先把外码设置为空,再用update修改。
2.原因是Tno为110004的不存在
3.主码不能设置为空
插入后的Teacher表:
3.编写SQL语句实现修改表Teacher,添加一个字段Taddress,类型Varchar,长度30。
后加first设置在第一列
添加后的Teacher表
4.(选作)在文本编译窗口编写SQL语句,完成:
(1)求全体学生的学号和姓名;
(2)求数学系(MA)学生的学号和姓名;
(3)求选修了课程的学生学号;
(4)求开设的课程号和课程名;
(5)求计算机系(SC)教师的姓名和性别
(6)编写SQL语句实现删除Teacher表。
三、出现的问题及其解决方案(列出遇到的问题和解决办法,列出没有解决的问题)
问题1:
易错点,比如Course表中,插入违反了参照完整性约束条件
分析原因:
因为被参照的主码还没有插入
解决办法:
可以插入前先把Cpno置null,然后再用update修改,
问题2:
分析原因:
在一次退出后,再次使用wpx数据库时未选择数据库
解决办法:
输入“use wpx”运行即可