上次课程回顾:
在上一次课程中, 我们熟悉了如下操作
1> 使用服务管理器启动,暂停,停止SQLServer服务
2> 使用企业管理器来创建组,添加注册操作
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 数据库第二次课