您的当前位置:首页正文

第六周Oracle基础测试

2021-04-27 来源:易榕旅网
一、根据查询要求和所得结果,写出相应的SQL。

表:CSW ITEM(主键PK1:COMPANY CD,主键PK2:ITEM CODE)

COMPANY-CD E0 E0 E0 E0 E0 E1 E1 E1 E1 E1

表: STOCK(主键PK1.COMPANY CD,主键PK2:DEPT CODE,主键PK3:ITEM CODE)

COMPANY-CD E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E1 E1 E1 DEPT-CODE 0001 0001 0001 0001 0001 0002 0002 0002 0002 0002 0001 0001 0001 ITEM-CODE QTY-A ITEM001 ITEM002 ITEM003 ITEM004 ITEM005 ITEM001 ITEM002 ITEM003 ITEM004 ITEM005 ITEM001 ITEM002 ITEM003 100 200 300 400 500 -100 -200 -300 -400 -500 150 250 350 QTY-B DEL-FLG 200 0 400 0 600 1 800 0 1000 0 -200 0 -400 0 -600 0 -800 0 -1000 1 0 0 0 0 NULL 0 ITEM-CODE ITEM001 ITEM002 ITEM003 ITEM004 ITEM005 ITEM001 ITEM002 ITEM003 ITEM004 ITEM005 OAN-TYPE 1 2 3 1 2 3 4 2 3 5 JAN-CD jan00001 jan00002 jan00003 jan00001 jan00002 jan00003 jan00001 jan00002 jan00003 jan00001 ITEM-NAME 内存 硬盘 主板 显卡 声卡 雪碧 可乐 芬达 果汁A 果汁B DEL-FLG0 0 1 0 0 0 1 0 0 0 0 E1 E1 E1 E1 E1 E1 E1

0001 0001 0002 0002 0002 0002 0002 ITEM004 ITEM005 ITEM001 ITEM002 ITEM003 ITEM004 ITEM005 450 550 0 NULL -150 -250 -350 NULL 0 NULL 0 300 1 600 0 -300 0 -600 0 900 0 1、按下列条件从表STOCK中抽出数据,选择相应的SQL 表示项目:COMPANY-CD. DEPT-CODE 抽出条件1:COMPANY-CD为E0

抽出条件2:ITEM-CODE为ITEM001或者ITEM002 排序条件1:按QTY-A升序

A.SELECT COMPANY-CD, DEPT-CODE FROM STOCK

WHERE COMPANY-CD=‘E0’AND ITEM-CODE IN(‘ITEM001’、‘ITEM002’)ORDER

BY QTY-A

B.SELECT COMPANY-CD+ DEPT-CODE FROM STOCK

WHERE COMPANY-CD=‘E0’AND ITEM-CODE IN(‘ITEM001’、‘ITEM002’)ORDER

BY QTY-A

C. SELECT COMPANY-CD, DEPT-CODE FROM STOCK

WHERE COMPANY-CD=‘E0’AND ITEM-CODE=‘ITEM001’OR ITEM-CODE=

‘ITEM002’ORDER BY QTY-A ASC

D. SELECT COMPANY-CD, DEPT-CODE FROM STOCK

WHERE COMPANY-CD=‘E0’AND ITEM-CODE=‘ITEM001’OR ITEM-CODE=

‘ITEM002’ORDER BY QTY-A DESC

2、按下列条件从表STOCK中抽出数据,选择相应的SQL。

表示项目:COMPANY-CD,DEPT-CODE 抽出条件1:QTY-B为NULL 抽出条件2:去掉重复的数据

A.SELECT COMPANY-CD, DEPT-CODE FROM STOCK WHERE QTY-B=NULL

B.SELECT COMPANY-CD+ DEPT-CODE FROM STOCK WHERE QTY-B IS NULL

C.SELECT DISTINCT COMPANY-CD, DEPT-CODE FROM STOCK WHERE QTY-B=NULL

D.SELECT DISTINCT COMPANY-CD, DEPT-CODE FROM STOCK WHERE QTY-B is NULL

3、按下列条件从主表STOCK,副表CSW-ITEM中抽出数据。 选择相应的SQL。

表示项目: ITEM-CODE,QTY-A 抽出条件1:ITEM-NAME含‘卡’字 抽出条件2:QTY-A小于0的负数

要求:副表不满足抽出条件时,不会影响主表的件数, 此时副表的表示项目内容显示为NULL

A.SELECT ITEM-CODE,QTY-A FROM STOCK LEFT JOIN CSW-ITEM ON STOCK.COMPANY-CD = CSW-ITEM.COMPANY-CD AND STOCK.ITEM-CODE = CSW-ITEM.ITEM-CODE WHERE

ITEM-NAME LIKE ‘%卡%’ AND QTY-A<0

B.SELECT STOCK.ITEM-CODE.QTY-A FROM STOCK LEFT JOIN CSW-ITEM ON STOCK.COMPANY-CD = CSW-ITEM.COMPANY-CD AND STOCK.ITEM-CODE = CSW-ITEM.ITEM-CODE

WHERE

ITEM-NAME LIKE ‘%卡%’ AND QTY-A<0

C.SELECT ITEM-CODE,QTY-A FROM STOCK RIGHT JOIN CSW-ITEM

ON STOCK.COMPANY-CD = CSW-ITEM.COMPANY-CD AND STOCK.ITEM-CODE = CSW-ITEM.ITEM-CODE

WHERE

ITEM-NAME LIKE ‘%卡%’ AND QTY-A<0

D.SELECT STOCK.ITEM-CODE.QTY-A FROM STOCK RIGHT JOIN CSW-ITEM

ON STOCK.COMPANY-CD = CSW-ITEM.COMPANY-CD AND STOCK.ITEM-CODE = CSW-ITEM.ITEM-CODE

WHERE

ITEM-NAME LIKE ‘%卡%’ AND QTY-A<0

4、 按下列条件从表STOCK中抽取数据,选择相应的SQL.

表示项目: COMPANY CD. DEPT-CODE. QTY-A的合计值 分组条件1:COMPANY CD 分组条件2:DEPT-CODE

抽出条件1:QTY-A为小于0的负数

A.SELECT COMPANY-CD, DEPT-CODE,SUM(QTY-A) FROM STOCK WHERE QTY-A<0

GROUP BY COMPANY-CD, DEPT-CODE

B.SELECT COMPANY-CD, DEPT-CODE,COUNT(QTY-A) FROM STOCK WHERE QTY-A<0

GROUP BY COMPANY-CD, DEPT-CODE

C.SELECT COMPANY-CD, DEPT-CODE, SUM(QTY-A) FROM STOCK GROUP BY COMPANY-CD, DEPT-CODE

WHERE QTY-A<0

D.SELECT COMPANY-CD, DEPT-CODE,COUNT(QTY-A) FROM STOCK

GROUP BY COMPANY-CD, DEPT-CODE WHERE QTY-A<0

二、要求以SQL语法实现 表结构如下:(表名Tablel) 自动编号(SID) 1 2 3 5 学号 (SNo) 01030230 01030231 01030232 „„ 姓名 (SName) 张三 李四 张三 课程编号(CNo) 0001 0001 0001 课程名称(CName) 数学 数学 物理 分数 (Score) 90 89 62 1、查询数学分数在表中第10名到第15名的学生信息 2、用一条SQL语句查询出每门课都大于85分的学生姓名 3、用一条SQL语句得到如下表结果:

姓名 张三 李四 „„

三、编写SQL语句

1、创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话。 2、修改学生表的结构,添加一列信息,学历。 3、修改学生表的结构,删除一列信息,家庭地址。 4、向学生表添加如下信息:

学号 姓名 年龄 性别 联系电话 学历 1 A 22 男 123456 小学 2 B 21 男 119 中学 3 C 23 男 110 高中 4 D 18 女 114 大学

5、修改学生表的数据,将电话以11开头的学员的学历改为“高中”。

平均分 85 80 6、删除学生表的数据,姓名以C开头,性别为‘男’的记录删除。

7、查询学生表的数据,将所有年龄小于22岁的,学历为“高中”的,学生的姓名和学号示出来。

8、查询出所有学生的姓名,性别,年龄降序排列。 9、按照性别分组查询所有的平均年龄。

四、有下列关系数据库,其中两张表结构如下 学生表:Student

字段名 SID Name Grade 学生成绩:Score

字段名 SID Cname Score 请写出下列查询:

“三年级”平均分数超过85分的每个学生的平均成绩,但不包括“体育”成绩,要求查询结果按平均成绩降序排列,如果平均成绩相同则按学号升序排列。

五、有下列关系数据库,其中表结构如下

Student(Sno,Sname,Sgender) 学生表 Sno: 学号:Sname:学生姓名:Sage:学生年 Sgender:学生性别

Course(Cno,Cname,Tno) 课程表Cno: 课程编号;Cname: 课程名字;Tno: 教室编号 SC(Sno,Cno,score) 成绩表Sno: 学号;Cno: 课程编号;score: 成绩 Teacher(Tno,Tname) 教师表 Tno: 教师编号:Tname: 教师名称 1查询姓“李”的老师的人数。

2、查询每门课程的平均成绩,结果按平均成绩升序排列。

列名 学号 课程名 得分 备注 主键(参照学生表) 列名 学号 姓名 年级 备注 主键 3、查询课程名称为“数据库”,且分数高于80的学生姓名和分数。

六、请描述数据库的三范式并举例说明。

七、请用代码实现对象的浅复制与深复制

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