当前位置:首页 >> 理化生 >>

实验1-2


实验 1、数据定义
1.1 实验目的 (1) 熟悉 SQL 的数据定义语言,完成基本表的创建、修改及删除; (2) 熟悉索引的创建和删除。 (3) 完成作业的上机练习。 1.2 实验工具 Microsoft SQL Server 2000/2005/2008 1.3 实验内容 (1) 用企业管理器创建数据库 University_Mis (2) 使用 CREATE 语句创建基本表。 (3) 更改基本表的定义: 增加列,删除列,修改列的数据类型。 (4) 创建表的升、降序索引。 (5) 删除基本表的约束、基本表的索引或基本表。 1.4 实验步骤 (1) 用企业管理器创建数据库 University_Mis 启动 SQL Server 企业管理器和服务管理器,进入企业管理器的控制 台窗口,选择右键单击“数据库”,在弹出的菜单中选择“新建数据库” 命令,创建名为 University_Mis 的数据库。 (2) 在查询分析器中用 SQL 语句创建关系数据库基本表: 学生表 Students(Sno,Sname, Semail,Scredit,Sroom); 教师表 Teachers(Tno,Tname,Temail,Tsalary); 课程表 Courses(Cno,Cname,Ccredit); 成绩表 Reports(Sno,Tno,Cno, Score); 其中:Sno、Tno、Cno 分别是表 Students、表 Teachers、表 Courses 的主 键,具有唯一性约束,Scredit 具有约束“大于等于 0”; Reports 中的 Sno,Tno,Cno 是外键,它们共同组成 Reports 的主键。 CREATE TABLE Students (Sno CHAR(8) NOT NULL UNIQUE, Sname CHAR(20) NOT NULL, Semail CHAR(50), Scredit FLOAT, Sroom CHAR(20), CONSTRAINT PK_Students PRIMARY KEY(Sno), CONSTRAINT CK_Students_Scredit CHECK(Scredit>=0)) CREATE TABLE Teachers (Tno CHAR(8) NOT NULL UNIQUE, Tname CHAR(20) NOT NULL, Temail CHAR(50), Tsalary FLOAT, CONSTRAINT PK_Teachers PRIMARY KEY(Tno)) CREATE TABLE Courses

(Cno CHAR(8) NOT NULL UNIQUE, Cname CHAR(20), Ccredit FLOAT, CONSTRAINT PK_Courses PRIMARY KEY(Cno)) CREATE TABLE Reports (Sno CHAR(8) NOT NULL, Tno CHAR(8) NOT NULL, Cno CHAR(8) NOT NULL, Score FLOAT, CONSTRAINT PK_Reports PRIMARY KEY(Sno,Tno,Cno), CONSTRAINT FK_Reports_Sno FOREIGN KEY(Sno) REFERENCES Students, CONSTRAINT FK_Reports_Tno FOREIGN KEY(Tno) REFERENCES Teachers, CONSTRAINT FK_Reports_Cno FOREIGN KEY(Cno) REFERENCES Courses) (3) 更改表 Students :增加属性 Ssex( 类型是 CHAR ,长度为 2) ,取消 Scredit“大于等于 0”约束。把表 Courses 中的属性 Cname 的数据类型 改成长度为 30。 ALTER TABLE Students ADD Ssex CHAR(2) ALTER TABLE Students DROP CONSTRAINT CK_Students_Scredit ALTER TABLE Courses ALTER COLUMN Cname CHAR(30) /*注:在取消约束的时候,应该写出约束的名称。这个名称可以由用户 在创建表时定义。若用户在创建表时没有定义名称,则当定义约束时,数 据库会为这个约束起一个名称(不同的时候创建名称可能不同)。要查看 这个名称,可以通过在企业分析器中,查看设计表中的约束选项,可以看 到这个约束的名称。本例中的约束名称在创建表时由用户自定义*/ (4) 删除表 Students 的一个属性 Sroom。 ALTER TABLE Students DROP COLUMN Sroom (5) 删除表 Reports。 DROP TABLE Reports (6) 为 Courses 表创建按 Cno 降序排列的索引。 CREATE INDEX XCNO ON Courses(Cno DESC) /*注:XCNO 为创建的索引名称*/ (7) 为 Students 表创建按 Sno 升序排列的索引。 CREATE INDEX XSNO ON Students(Sno) (8) 创建表 Students 的按 Sname 升序排列的唯一性索引。 CREATE UNIQUE INDEX XSNA ON Students(Sname ASC) (9) 删除 Students 表 Sno 的升序索引。 DROP INDEX Students.XSNO 建立多列索引?

实验 2、SQL 的数据查询
2.1 实验目的 熟悉 SQL 语句的数据查询语言,能够 SQL 语句对数据库进行单表查询、连 接查询、嵌套查询、集合查询和统计查询。 2.2 实验内容 实验内容主要是对数据库进行查询操作,包括如下四类查询方式: (1) 单表查询 ? 查询的目标表达式为所有列、指定的列或指定的列的运算三种不 同。 ? 使用 DISTINCT 保留字消除重复行。 ? 对查询结果排序和分组。 ? 集合分组使用集函数进行各项统计。 (2) 连接查询 ? 笛卡儿连接和等值连接。 ? 自连接。 ? 外连接 ? 复合条件连接。 ? 多表连接。 (3) 嵌套查询 ? 通过实验验证对子查询的两个限制条件。 ? 体会相关子查询和不相关子查询的不同。 ? 考察四类谓词的用法,包括: 第一类,IN、NOT IN; 第二类,带有比较运算符的子查询; 第三类,SOME、ANY 或 ALL 谓词的子查询,查询最大值和最小 值; 第四类,带有 EXISTS 谓词的子查询,实现“所有”等情况(如王 宏的“所有”课程,“所有”女生选修的课程) (4) 集合运算 ? 使用保留字 UNION 进行集合或运算。 ? 采用逻辑运算符 AND 或 OR 来实现集合交和减运算。 2.3 实验步骤 以 University_Mis 数据库为例,该数据库中有四张如实验 1,其中 Score 是每门课的考试成绩,Scredit 是学生所有考试合格课程所获得的积分 总数,Ccredit 每门课程的学分数。 在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教 师。在表 Reports 中保存学生的选课记录和考试成绩。 请先根据以下查询需求输入若干符合条件的元组后,再对数据库进行有关 的查询操作:(我们构造好,给出如下表)

图 1.1、Students 表

图 1.2、Teachers 表

图 1.3、Courses 表

(1) (2)

(3) (4)

图 1.4、Reports 表 查询性别为“男”的所有学生的名称并按学号升序排列。 查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。积分 的计算公式为: [1+(考试成绩 -60)*0.1]*Ccredit 。考试成绩 >=60 否 则=0 查询学分是 3 或 4 的课程的名称。 查询所有课程名称中含有“算法”的课程编号。

(5) 查询所有选课记录的课程号(不重复显示)。 (6) 统计所有老师的平均工资。 (7) 查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩 降序排列。 (8) 统计各个课程的选课人数和平均成绩。 (9) 查询至少选修了三门课程的学生编号和姓名。 (10) 查询编号 S26 的学生所选的全部课程的课程名和成绩。 (11) 查询所有选了“数据库原理及其应用”课程的学生编号和姓名。 (12) 求出选择了同一个课程的学生对。 (13) 求出至少被两名学生选修的课程编号。 (14) 查询选修了编号 S26 的学生所选的某个课程的学生编号。 (15) 查询学生的基本信息及选修课程编号和成绩。 (16) 查询学号 S52 的学生的姓名和选修的课程名称及成绩。 (17) 查询和学号 S52 的学生同性别的所有学生资料。 (18) 查询所有选课的学生的详细信息。 (19) 查询没有学生选的课程的编号和名称。 (20) 查询选修了课程名为 C++的学生学号和姓名。 (21) 找出选修课程 UML 或者课程 C++的学生学号和姓名。 (22) 找出和课程 UML 或课程 C++的学分一样课程名称。 (23) 查询所有选修编号 C01 的课程的学生的姓名。 (24) 查询选修了所有课程的学生姓名。 (25) 利用集合查询方式,查询选修课程 C++或选择课程 JAVA 的学生 的编号、姓名和积分。 (26) 实现集合交运算,查询既选修课程 C++又选修课程 JAVA 的学生 的编号、姓名和积分。 (27) 实现集合减运算,查询选修课程 C++而没有选修课程 JAVA 的学 生的编号。


相关文章:
实验1-2
实验1-2:Photoshop CS 基础实验教程一.启动 photoshop cs 单击“开始-程序- Adobe Photoshop”;第一次启动会提示设置颜色,点“好”即可,如果又提示下载更新,则选...
实验1-2
实验1-2_电脑基础知识_IT/计算机_专业资料。【实验 1-2】各进制数制转换验证 操作步骤: ① 单击“开始”菜单中的“所有程序”,从“附件”菜单项中选择“计算器...
实验1 2
实验1 2_物理_自然科学_专业资料。 一、实验名称:常用电子仪器以及晶体管共发射单管放大器的使用 、实验日期:2014.10.23 三、实验目的: 1、学习电子电路实验...
ORACLE实验1-2(10月20日)
ORACLE实验1-2(10月20日) 隐藏>> 实验一一、实验目的 Oracle 环境配置 本实验为验证性试验, 主要目的是加深对 Oracle 存储结构和内存结构的认识和理解, 熟悉常用...
实验1-2
1页 2财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 实验1-2 网络安全的实验报告网络安全的实验报告隐藏>> 湖南...
实验1-2
属性值 FrmEx FrmExp 2 0-normal 第 1 页共 12 页 VB 程序设计课程实验报告 学号 12401618 姓名罗安民 End Sub Private Sub Form_Load() Show FrmEx....
实验1-2
实验一 在虚拟机中安装和使用 Windows Server 2003 一、实验目的: 实验目的: 1、学习在 VMware Workstation 虚拟机环境下 Windows Server 2003 的安装方法。 2、...
上机实验1-2
上机实验1-2_计算机软件及应用_IT/计算机_专业资料。matlab上机操作 一(1)设 A 和 B 是两个同维同大小的矩阵,问: 1)A*B 和 A.*B 的值是否相等? 2)...
单片机 实验1-2
四、实验步骤 1. 新建设计文件。单击“文件”→“新建设计” ,在弹出的“Create New Deign”对话 框中选择“DEFAULT”模板后单击“OK” 。 2. 设置图纸尺寸。...
实验1-2顺序表和链表基本操作
实验1-2顺序表和链表基本操作_计算机软件及应用_IT/计算机_专业资料。实验1-2顺序表和链表基本操作 数据结构 实验一、二:线性表运算的实现一、实验预备知识 1....
更多相关标签: