实验一 数据库、表的创建与维护 一、实验目的 1. 掌握数据库的创建与维护 2. 熟练掌握数据表的创建和维护 3. 熟悉数据的更新操作。 二、实验内容 (请在自己的机器上完成以下操作) 1. 创建关系数据库 S_T### ,要求数据库字符集为 utf8 ,字符集校对规则默认。 说明:数据库名称中的###代表本人的后三位。如的为20160714121,其数据库名为“S_T121” 2. 在 S_T 数据库中,创建学生表 students 该表的存储引擎为 InnoDB ,采用数据库默认字符集。该表主要包括( sno )、姓名( sname )、出生日期( sbirth )和年级( grade )四个属性,每个属性的数据类型、长度及其约束要求如下: Sno : char(10) ,主码; Sname : char(4) ,不允许为空 sbirth : date , Grade : smallint 。 3. 在 S_T 数据库中,创建教师表 Teachers 主要包括教师号( Tno )、教师姓名( Tname )、性别( sex )和工资( salary )四个属性,每个属性的数据类型、长度及其约束要求如下: Tno:CHAR(8) ,主码 ; Tname : char(4) 非空约束, sex :复合型,取值为‘男’或‘女’, Salary : float 。 4. 在 S_T 数据库中,创建课程表 Courses 主要包括课号( Cno )、课名( Cname )和学时( Chour )三个属性,每个属性的数据类型、长度及其约束要求如下: Cno : char(8) 非空约束 , cname : varchar(10) 非空约束, Chour : tinyint 。 5. 在 S_T 数据库中,创建选课表 STC 包括( Sno )、教师号( Tno )、课号( Cno )和成绩( score )四个属性,每个属性的数据类型、长度及其约束要求如下: Sno : char(10) , Cno:CHAR(8), Tno:CHAR(8) , Score : int 。 设置( Sno , cno )为主码 , STC 表中的 Sno 属性为外码,参照 students 表中的 sno 。 6. 用语句修改 Students 表,增加性别 Ssex 属性置于 sname 属性之后,该属性为 enum 类型,只能取“男”或“女”; 7. 用语句修改把 STC 表中的 score 改为 smallint 型; 8. 将 Course 表中的 Cno 属性设置为主码。 9. 为 STC 表中的 cno 添加参照完整性约束,参照 Courses 表中的 Cno 属性。 10. 将下表中的数据依次输入到已经创建的四个表中。 Students 表: sno sname Ssex sbirth grade 201615121 女 1999-1-1 2016 201615122 汪洋 男 1998-12-21 2016 201615123 女 1998-6-5 2016 201715121 男 1999-4-16 2017 201715122 男 1997-6-1 2017 201715123 女 1999-8-12 2017 Teachers 表: Tno Tname Sex salary 101 男 6200 102 女 4500 103 军 男 3600 104 霞 女 4100 课程表 Courses Cno Cname Chour B001 高等数学 80 B002 计算机导论 48 B003 C 程序设计 64 B004 数据结构 72 B005 数据库系统 56 B006 模糊数学 56 课程表 STC Sno Cno Tno score 201615121 B001 101 78 201615121 B002 102 85 201615121 B003 103 69 201615121 B004 104 201615122 B002 102 98 201615122 B003 103 89 201615123 B001 101 65 201615123 B003 103 56 201615123 B004 104 201715121 B002 102 68 201715121 B004 104 78 201715123 B001 101 81 201715123 B002 102 60