实验二: 确定表中的关键字
1. 实验目的
1) 正确理解候选关键字,主关键字,组合关键字,外关键字的基本概念。 2) 能够正确判断给定的表中各种类型的关键字。
3) 在设计数据库时能正确指定各种类型的关键字,知道如何实施数据完整性。 2. 实验内容
1) 复习候选关键字,主关键字,外关键字,组合关键字以及数据完整性的基本概念。 2) 在给出的部门表和员工表中能正确标识出各种类型的关键字。
3. 实验步骤
1) 写出候选关键字,主关键字,组合关键字,外关键字,实体完整性,域完整性,参照完整性的定义。
已知部门表和员工表分别见表2-1和表2-2
表2-1部门表
部门代码 0001 0002 0003 部门名 负责人 生产部 李华江 销售部 张丽 市场部 王欣 表2-2员工表
员工代码 200001 200002 200003 200004 姓名 家庭住址 王华 杭州 李想 富阳 张丽 杭州 李华江 萧山 联系电话 86960986 85438769 67893542 82849873 邮政编码 310006 310010 310017 310101 部门代码 0001 0003 0002 0001 地点 浙江杭州 浙江宁波 浙江温州 2) 确定部门表和员工表中的候选关键字,并陈述理由。 3) 选择部门表和员工表的关键字。
4) 在部门表和员工表的结构中标注主关键字。
5) 在员工表中确定可能的组合关键字,并陈述理由。 6) 确定在部门表和员工表中共有的属性。 7) 指出哪个表中的属性是外关键字。 8) 确定哪个表是主表,哪个表是从表。
9) 部门表和员工表是如何通过关键字实施数据完整性的。 4实验总结:
实验三:创建SQL Server数据库和表
1. 实验的目的
1) 熟悉企业管理器环境。
2) 掌握创建数据库和表的操作。
26
2. 实验内容
1) 熟悉SQL Server 2000 企业管理器环境。 2) 创建XSCJ数据库。
3) 在XSCJ数据库中创建学生情况表XSQK,课程表KC,学生成绩表XS_KC。 4) 在XSQK、KC、XS_KC表中输入数据。 3. 实验步骤
1) 启动SQL Server企业管理器,打开“SQL Server Enterprise Mananger”窗口,并在左边的目录树结构中选择“数据库”文件夹。
2) 选择“操作”菜单中的“新建数据库”命令,打开 “数据库属性” 对话框,并在 “名称”框内输入数据库名称XSCJ。
3) 单击“确定”按钮,完成XSCJ数据库的创建。
4) 打开刚才创建的 “XSCJ” 文件夹,并在“SQL Server Enterprise Mananger”
窗口的右边窗口中选择“表”对象。
5) 选择“操作”菜单中的“新建表”命令,打开SQL Server的表编辑器窗口。 6) 根据表4-1所示的表结构增加新列。 表4-1 学生情况表XSQK的结构 列名 学号 姓名 性别 出生日期 专业名 所在系 联系电话 数据类型 Char Char Bit smalldatetime Char Char char 长度 6 8 1 4 10 10 11 是否允许为空值 N N N N N N Y 默认值 说明 主键 男1,女0 7) 点击快捷工具栏上的快捷按钮,在弹出的“选择名称”对话框中输入表名XSQK,然后单击“确定”按钮,关闭表编辑器窗口,完成新表的创建。
8) 打开“表”对象,在“SQL Server Enterprise Manager”窗口的右边窗口中选择刚才创建的“XSQK”表。
9) 选择“操作”菜单中的“打开表”子菜单下的“返回所有行”命令,打开表的数据记录窗口。 10) 输入的学生情况数据记录见表4-2。 学号 020101 020102 020103 020104 020105 020201 020202 020203 020204 姓名 杨颖 方露露 俞奇军 胡国强 薛冰 秦盈飞 董含静 陈伟 陈新江 性别 0 0 1 1 1 0 0 1 1 出生日期 1980-7-20 1981-1-15 1980-2-20 1980-11-7 1980-7-29 1981-3-10 1980-9-25 1980-8-7 1980-7-20 专业 计算机应用 计算机应用 信息管理 信息管理 水利工程 电子商务 电子商务 电子商务 房建 所在系 计算机 计算机 计算机 计算机 水利系 经济系 经济系 经济系 水利系 联系电话 88297147 88297147 88297151 88297151 88297152 88297161 88297062 88297171 88297171 表4-2 学生情况记录
27
11) 同理建课程表KC,表的结构见表4-3所示,表的内容见表4-4所示。
表4-3 课程表KC的结构 列名 课程号 课程名 教师 开课学期 学时 学分 数据类型 Char Char Char Tinyint TinyintC Tinyint 长度 是否允许为空值 3 20 10 1 1 N N N 表4-4 课程表记录
课程号 101 102 103 104 105 106 107 108 课程名 计算机原理 计算方法 操作系统 数据库原理及应用 网络基础 高等数学 英语 VB程序设计 教师 陈红 王颐 徐格 应对刚 吴江江 孙中文 陈刚 赵红韦 开课学期 2 3 2 3 4 1 1 3 学时 45 45 60 75 45 90 90 70 学分 3 3 4 5 3 6 6 5 默认值 60 说明 主键 只能1-6 12) 同理建成绩表XS_KC,表的结构见表4-5所示,表的内容见表4-6所示。
表4-5 成绩表XS_KC的结构
列名 学号 课程号 成绩
4实验总结:
数据类型 Char Char Tinyint 长度 6 3 1 是否允许为空值 N N 默认值 说明 外键 外键 0-100之间 表4-6 成绩表XS_KC的记录 学号 020101 020101 020101 020102 020102 020104 020202 020202 课程号 101 102 107 101 102 107 103 108 成绩 85 87 88 58 63 76 55 80
28
实验四 用T—SQL语句创建SQL Server数据库和表
1. 实验的目的
1) 熟悉查询分析器环境。
2) 掌握创建数据库和表的操作命令。 2. 实验内容
1) 熟悉SQL Server 2000 查询分析器环境。 2) 创建XSCJ数据库。
3) 在XSCJ数据库中创建学生情况表XSQK,课程表KC,学生成绩表XS_KC。 4) 在XSQK、KC、XS_KC表中输入数据。 3. 实验步骤
1) 启动SQL Server启动SQL Server查询分析器,打开“SQL查询分析器”窗口。 2) 在“SQL查询分析器”窗口中T——SQL命令建立,如“XSCJ”数据库。 3) 在“SQL查询分析器”窗口中用USE 数据库名打开前面建立数据库
4) 在“SQL查询分析器”窗口中用CREATE TABLE 表名建立:学生表XSQK,课程表KC,
学生成绩表XS_KC。见图表4-1、表4-3、表4-5 列名 学号 姓名 性别 出生日期 专业名 所在系 联系电话 数据类型 Char Char Bit smalldatetime Char Char char 长度 是否允许为空值 6 8 1 4 10 10 11 N N N N N N Y 默认值 说明 主键 男1,女0 5) 同理建课程表KC,表的结构见表4-3所示, 表4-3 课程表KC的结构 列名 课程号 课程名 教师 开课学期 学时 学分 数据类型 Char Char Char Tinyint TinyintC Tinyint 长度 是否允许为空值 3 20 10 1 1 N N N 默认值 60 说明 主键 只能1-6 6) 同理建成绩表XS_KC,表的结构见表4-5所示,
表4-5 成绩表XS_KC的结构
列名 学号 课程号 成绩 数据类型 Char Char Tinyint 长度 6 3 1 是否允许为空值 N N 默认值 说明 外键 外键 0-100之间 写出建立数据库的T—SQL代码: 写出建立各数据表的T—SQL代码:
29
4实验总结:
实验五: 查询数据库
1.实验目的
1) 熟悉SQL Server 2000查询分析器环境。
2) 掌握基本的SELECT查询及其相关子句的使用。
3) 掌握复杂的SELECT查询,如多表查询、子查询、连接和联合查询。 2.实验内容
1) 启动SQL Server 2000 查询分析器环境。 2) 涉及多表的简单查询。 3) 涉及多表的复杂查询。 3. 实验步骤
1) 启动SQL Server查询分析器,打开“SQL查询分析器”窗口。
2) 在“SQL查询分析器”窗口中选择要操作的数据库,如“XSCJ”数据库。 3) 在KC表中查询学分低于3的课程信息,并按课程号升序排列。 在查询命令窗口中输入以下SQL查询命令并执行: SELECT * FROM KC WHERE KC.学分<3 ORDER BY 课程号
4) 在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列。 SELECT 学号,平均分=AVG(成绩) FROM XS_KC GROUP BY 学号
ORDER BY 平均分 DESC
5) 在XS_KC表中查询选修了3门以上课程的学生学号。 SELECT 学号 FROM XS_KC HAVING COUNT(*)>3
6) 按学号对不及格的成绩记录进行明细汇总。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 成绩<60 ORDER BY 学号
COMPUTE COUNT(成绩) BY 学号
7) 分别用子查询和连接查询,求107号课程不及格的学生信息。 用子查询:
SELECT 学号,姓名,联系电话 FROM XSQK WHERE 学号 IN ( SELECT 学号 FROM XS_KC
WHERE 课程号='107'AND 成绩<60) 用连接查询:
SELECT 学号,姓名,联系电话 FROM XSQK
30