一、 实验目的
理解和掌握数据库DDL语言,能够使用SQL DDL语句创修改和删除数据库、模式和表。
二、 实验内容
用SQL定义语句创建符合如下条件的表C-1到C-4(注意各种完整性约束)
表C-1 Student表结构
列名 说明 数据类型 约束
Sno 学号 普通编码定长字符串,长度为7 主键
Sname 姓名 普通编码定长字符串,长度为10
Ssex 性别 普通编码定长字符串,长度为2
Sage 年龄 微整型(tinyint)
Sdept 所在系 普通编码不定长字符串,长度为20
Sid 身份证号 普通编码定长字符串,长度为10
Sdate 入学日期 日期
表C-2 Course表结构
列名 说明 数据类型 约束
Cno 课程号 普通编码定长字符串,长度为10 主键
Cname 课程名 普通编码不定长字符串,长度为20
Credit 学时数 整型
Semester 学分 小整型
表C-3 SC表结构
列名 说明 数据类型 约束
Sno 学号 普通编码定长字符串,长度为7 主键,引用Student的外键
Cno 课程号 普通编码定长字符串,长度为10 主键,引用Course的外键
Grade 成绩 小整型
表C-4 Teacher表结构
列名 说明 数据类型 约束
Tno 教师号 普通编码定长字符串,长度为8
Tname 教师名 普通编码定长字符串,长度为10
Salary 工资 定点小数,小数点前4位,小数点后2位
表C-1 Student表数据
学号 姓名 性别 年龄 系别 身份证号 入学日期
0811101 李勇 男 21 计算机系
0811102 刘晨 男 20 计算机系
0811103 王敏 女 20 计算机系
0811104 张小红 女 19 计算机系
0821101 张立 男 20 信息管理系
0821102 吴宾 女 19 信息管理系
0821103 张海 男 20 信息管理系
0831101 钱小平 女 21 通信工程系
0831102 王大力 男 20 通信工程系
0831103 张姗姗 女 19 通信工程系
表C-2 Course表中的记录
Cno Cname Credit Semester
C001 高等数学 4 1
C002 大学英语 3 1
C003 大学英语 3 2
C004 计算机文化学 2 2
C005 VB 2 3
C006 数据库基础 4 5
C007 数据结构 4 4
C008 计算机网络 4 4
表C-3 SC表中的记录
Sno Cno Grade
0811101 C001 96
0811101 C002 80
0811101 C003 84
0811101 C005 62
0811102 C001 92
0811102 C002 90
0811102 C004 84
0821102 C001 76
0821102 C004 86
0821102 C005 73
0821102 C007 NULL
0821103 C001 50
0821103 C004 80
0831101 C001 50
0831101 C004 80
0831102 C007 NULL
0831103 C004 78
0831103 C005 65
0831103 C007 NULL
表C-4 Teacher表中的记录
Tno Tname Salary
T001 张美霞 5000
T002 王洪林 5500
T003 李丽芬 4800
T004 周良水 6000
T005 吴翔 7000
三、实验环境
MySQL、Navicat 15 for MySQL
四、实验前准备
实验数据,写在了实验内容里面。
五、 实验步骤
先创建数据库:
Creat Database
接下来创建学生表:
创建课表:
创建选课表,以及两个外键(Foreign Key),分别关联student表的Sno和course表的Cno:
创建教师表:
接下来我们来看一下每个表的设计:
接下来添加数据:
因为学生表数据有两列没有,所以要写上每一个value对应的列。
课表数据:
选课表数据:
教师表数据:
接下来练习了有关用户的几个操作:
约束的学习:
直接放上学习的代码啦:
六、 实验结果
student、course、sc、teacher几个表创建完成,期望数据添加成功。
有关完整性的使用:创建时使用主键约束
更改学生姓名,使其非空: