上次课程回顾:
在上一次课程中, 我们熟悉了如下操作
1> 使用服务管理器启动,暂停,停止SQLServer服务
2> 使用企业管理器来创建组,添加注册操作
3> 使用企业管理器创建数据库,修改数据库相关属性
4> 使用企业管理器删除数据库
5> 使用企业管理器分离附加数据库
上机课程准备
在上一次课程之中,我们通过使用企业管理器为学员管理系统创建了数据库,数据库保存在了STUDataBase文件夹下,数据库的名字为Student.
在课后同学们把Student数据库分离,拷贝到了各自的U盘上,在今天的课程中,我们在开始今天的上机课程之前需要先把U盘里面数据库信息拷贝到机房的F盘之中,然后在企业管理器中进行附加操作.
第二章SQLServer数据库表管理
一. 上机目标
a. 熟练使用企业管理器创建数据表
b. 为实现数据表中间数据完整性,为创建好的数据表加上约束,包括以下约束
a) 主键
b) 标识列
c) 数据类型
d) 非空约束
e) 默认值
f) 检查约束(check)
g) 外键引用约束
二. 上机步骤讲解
a. 使用企业管理器完成上次课创建的Student数据库附加操作
b. 在企业管理器中打开Student数据库,按照以下要求创建数据表
在数据库中创建4张表,表面和作用描述如下
表 | 表名 | 作用 | 备注 |
学员信息表 | StudentInfo | 存储学员的个人信息 |
|
学员成绩表 | StudentExam | 存储学员的成绩信息 |
|
班级信息表 | ClassInfo | 存储班级信息 |
|
班主任信息表 | TeacherInfo | 存储班主任信息 |
|
以上4张表的详细结构如下
表1 学员信息表
表名:StudentInfo
主键:StuID
列名 | 数据类型 | 长度 | 是否允许空 | 默认值 | 要求 | 描述 |
StuID | Int | 4 | 不允许 |
| 标识列 | 本条记录编号 |
StuNumber | Varchar | 10 | 不允许 |
|
| 学员学号 |
StuName | varchar | 32 | 不允许 |
|
| 学员姓名 |
StuAge | Int | 4 | 允许 |
| 年龄必须在16-35岁之间 | 学员年龄 |
StuSex | Varchar | 2 | 不允许 | ‘男’ | 性别必须是 ‘男’或者’女’中间的一个 | 学员性别 |
StuCard | Varchar | 20 | 允许 |
|
| 学员身份证号码 |
StuJoinTime | DateTime | 8 | 不允许 |
|
| 学员入学时间 |
StuAddress | Varchar | 50 | 允许 |
|
| 学员家庭住址 |
RClassID | Int | 4 | 允许 |
| 外键, 引用ClassInfo表的主键ClassID | 学员所在班级ID |
表2 学员成绩表
表名:StudentExam
主键: ExamID
列名 | 数据类型 | 长度 | 是否允许空 | 默认值 | 要求 | 描述 |
ExamID | Int | 4 | 不允许 |
| 标识列 | 本条记录编号 |
ExamNumber | Varchar | 32 | 不允许 |
|
| 本次考试代号 |
EStuID | Int | 4 | 不允许 |
| 外键,引用StudentInfo表的主键StuID | 学员信息ID |
ExamSubject | Varchar | 20 | 不允许 |
|
| 本次考试课程名称 |
ExamResult | Int | 4 | 允许 |
| 成绩的取值范围在0-100分之间 | 学员成绩 |
表3 班级信息表
表名:ClassInfo
主键:ClassID
列名 | 数据类型 | 长度 | 是否允许空 | 默认值 | 要求 | 描述 |
ClassID | Int | 4 | 不允许 |
| 标识列 | 本条记录编号 |
ClassNumber | Varchar | 20 | 不允许 |
|
| 班级编号(名称) |
CTeacherID | Int | 4 | 不允许 |
| 外键,引用TeacherInfo表的主键 | 班主任ID |
ClassGrade | Varchar | 2 | 不允许 | ‘s1’ | 取值范围在’s1’,’s2’,’y2’三个值之中 | 班级所在年级 |
表4班主任信息表
表名:TeacherInfo
主键:TeacherID
列名 | 数据类型 | 长度 | 是否允许空 | 默认值 | 要求 | 描述 |
TeacherID | Int | 4 | 不允许 |
| 标识列 | 本条记录编号 |
TeacherName | Varchar | 20 | 不允许 |
|
| 班主任姓名 |
TeacherTel | Varchar | 20 | 允许 |
|
| 班主任电话 |
TeacherEmail | Varchar | 20 | 允许 |
| 电子邮箱含有’@’符号 | 班主任电子邮箱(email) |
提示:电子邮箱中含有’@’符号的约束 可以采用 check约束
表达式可以写成 TeacherEmail like ‘%@%’
c. 创建以上4张表之后,为这4张表建立关系图
d. 将创建的表和关系图保存,分离数据库,拷贝STUDataBase文件夹中的文件(应该包括主数据文件.MDF和日志文件.LDF)至U盘。(数据库需要妥善保存,后续课程中需要使用)
思考:数据库中的表如何复制?
如果另一个库中没有同名的表
select * into b数据库.dbo.a表 from a数据库.dbo.a表 where 条件
如果是追加到另一个表中
inert into b数据库.dbo.a表
select * from a数据库.dbo.a表 where 条件
三.课后作业
1. 完成第二章课后习题
2. 了解论坛相关知识,完成教材第二章上机部分任务
2013.11.29 数据库第二次课