您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页实验二 交互式SQL

实验二 交互式SQL

来源:好走旅游网


ZHOUUNIV实 验 报 告

实验课程名称: Oracle数据库

本次实验是第 二 次名称为: 交互式SQL 学 生 姓 名: 车淳 班 级 计算机144 学 号 ******** 学 院(系): 信息数理学院 指 导 教 师: 石林 成 绩: 实 验 时 间: 2017 年 4 月 14 日

RSECHANG ITY实验二 交互式SQL

2.1数据定义部分

实验目的:

熟悉Oracle Database XE 的SQL命令窗口的启动及使用。掌握SQL的数据定义语言的使用;理解数据库对象的概念。通过PL/SQL Developer访问Oracle服务器。

(1)通过PL/SQL Developer访问Oracle服务器

(2)熟练掌握SQL查询语句的使用。主要练习各种查询语句的构造,其中包括单表查询、连接查询、嵌套查询和集合查询。重点掌握连接查询和嵌套查询

实验内容与步骤:

1. 通过PL/SQL Developer环境下,使用SQL语言定义Student_学号(由于每个同学访问了同一台Oracle服务器,所以表名后加上每个同学自己的学号)表,该表的结构描述如下:

表3.1 Student_学号 表结构

列名 Sno Sname Ssex Sage Sdept

数据类型 CHAR(9) VARCHAR2(10) CHAR(4) NUMBER(2) CHAR(4) 是否为空 否 否 否 否 可以 约束 该列为主码 要求性别只能为男或女 年龄限制在16到25之间(包含) 注意,主码的定义和约束条件的定义。

2. 在PL/SQL Developer环境下,使用SQL语言定义Course_学号表,该表的结构描述如下:

表3.2 Course_学号表结构

列名 Cno Cname Cpno CCredit

数据类型 CHAR(2) CHAR(14) CHAR(2) NUMBER(1) 是否为空 否 否 是 否 约束 该列为主码 该列为外码 注意,要将Cno定义为主码,Cpno定义为外码。

3. 在PL/SQL Developer环境下,使用SQL语言定义SC_学号表,该表的结构描述如下:

2

表3.3 SC_学号表结构

列名 Sno Cno Grade

数据类型 CHAR(9) CHAR(2) NUMBER(3) 是否为空 否 否 是 约束 该列为外码 该列为外码 注意,该表的主码为Sno和Cno的组合,同时Sno和Cno都是外码。要求定义表时定义这些主码和外码。

4. 插入数据

使用INSERT语句将下面三个表中的数据插入到相应的表中。可以使用SELECT语句查看表中的数据。

表3.4 Student_学号表数据

Sno 200215121 200215122 200215123 200215125

Sname 李勇 刘晨 王敏 张立 Ssex 男 女 女 男 Sage 20 19 18 19 Sdept CS IS MA IS

表3.5 Course_学号表数据

Cno 1 2 3 4 5 6 7

Cname 数据库 数学 信息系统 操作系统 数据结构 数据处理 PASCAL语言 Cpno 5 1 6 7 6 Ccredit 4 2 4 3 4 2 4

3

表3.6 SC_学号表数据 Sno 200215121 200215121 200215121 200215122 200215122 200215123 200215123

Cno 1 2 3 2 3 4 5 Grade 92 85 88 90 80 87 92 5. 使用ALTER TABLE 语句修改Student表为其增加一个BirthDay列,类型为DATE。

6. 使用CREATE INDEX语句在Student表的Sage列上建立一个名为Age_Index的索引,要求索引为升序。使用SELECT语句查询Student表,看有什么变化?为什么?使用DROP INDEX语句删除该索引。

2.1. 单表查询

(1)查询全体学生的详细信息;

(2)查询全体学生的姓名,学号和所在系;

(3)查询全体学生的姓名及出生年份;

(4)查询学校共有哪些系;

(5)查询所有年龄在20岁以下的学生姓名及其年龄;

4

(6)查询年龄不在20~23岁之间的学生姓名、系别和年龄 。

(7)查询课程表中课程名中包含“数据”的课程信息。

(8)查询全体学生情况,查询结果按所在系升序排列,系相同按学生年龄降序排列。

(9)查询选修了课程的学生人数。

(10)查询选修了“数据库”课程的人数、最高分、最低分和平均分。

(11)查询男女同学的平均年龄。

(12)查询选修了3门以上课程的学生学号。

(13)查询有10人以上选修的课程名。

2. 集合查询

假设有一个Teacher表记录教师的信息,其中包括Tname表示教师名。用UNION、INTERSECT和MINUS完成下列查询。

(1)求计算机系的学生和年龄不大于19岁的学生的并集。

(2)查询所有在职学生信息。

(3)查询现在没有正在进修的教师信息。

5

(4)查询学校所有教师和学生姓名。

3. 连接查询

(1)查询每个学生的选课情况。

(2)查询每门课程的课程号及间接先修课号。

(3)查询既选修了1号课又选修了3号课的学生学号(用自身连接)。

(4)查询至少有两人选修的课程号(用自身连接)。

(5)查询一门课也没选的学生信息。(用外连接)

(6)查询选修2号课且成绩在90分以上的学生学号和姓名。

(7)查询选修了“数据库”课且成绩不及格的学生姓名。

4. 嵌套查询

(1)查询与“刘晨”同学在一个系学习的学生学号、姓名及所在系。

(2)查询选修了“信息系统”课程的学生学号和姓名。

(3)查询其他系中比信息系某一学生年龄小的学生姓名和年龄。

6

(4)查询其他系中比信息系所有学生年龄都小的学生姓名和年龄。

(5)查询没有选修1号课的学生姓名。

(6)查询选修了全部课程的学生姓名。

(7)查询至少选修了学生200215122选修的全部课程的学生学号。

2.3数据操纵

1. 针对学生-课程数据库,完成下列操作:

(1)使用INSERT语句向Student表中插入一学生记录,该学生学号为200215128,姓名为“陈东”,性别为“男”,年龄为18岁,所在系为信息系。

(2)向SC表中插入一行选课记录('200215128','5'),现在还没有成绩。

(3)对每一个系,求学生的平均年龄,并把结果存入数据库。

(4)将学生200215121所在的系改为MA。

(5)将选修“数据库”课程的学生成绩提高10%。

(6)删除计算机系所有学生的选课记录。

7

实验结论

8

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务