【Oracle練習】⑩Oracle簡單語句綜合練習

綜合題:

1.         有如下表結構,
學生基本信息表
CREATE Student(
[Studentid][int] primary key,--主鍵,學號
StudentName char(10) NOT NULL –學生姓名
)

CREATE TABLE student(

       studentid CHAR(4PRIMARY KEY,

       studentname char(10)

);
課程信息表
CREATE Subject(
[SubjectID] [int] primary key,       --主鍵,課程編號
SubjectName char(20) NOT NULL  --課程名
)

CREATE TABLE subject(

       subjectid CHAR(4PRIMARY KEY,

       subjectname char(20NOT NULL

);
成績表
CREATE Grade(
Studentid  ,  --聯合主鍵,學生編號
SubjectID,  --聯合主鍵,課程編號
Grade NOT NULL, --成績
primary key (studentid,subjectid)
)

CREATE TABLE grade(

       studentid CHAR(4),

       subjectid CHAR(4),

       grade CHAR(4),

       PRIMARY KEY (studentid,subjectid)

);

2.添加如下數據

insert into student values (101,'張三');
insert into student values (102,'李雲');
insert into student values (103,'未');
insert into subject values ('A01','C++');
insert into subject values ('A02','ASP');
insert into subject values ('A03','JAVA');

insert into grade values (101,'A01',59);
insert into grade values (101,'A02',72);
insert into grade values (101,'A03',90);
insert into grade values (102,'A01',75);
insert into grade values (102,'A02',91);
insert into grade values (103,'A01',71);

 

3.查詢如下信息:

   (1)學號 學生姓名 課程名稱 成績 (要全部學生信息)

   (2)學號 學生姓名 課程名稱 成績(只顯示每科最高分)

   (3)學號 學生姓名 課程名稱 成績 (成績大於60時的顯示及格,小於60時的顯示不及格)

   (4)學號 學生姓名 (查詢出選課超過1門以上學生的信息)

CREATE VIEW vw_sub_grade AS

       SELECT g.studentid,s.subjectid,s.subjectname,g.grade       

       FROM subject s,grade g

       WHERE s.subjectid=g.subjectid;

       SELECT * FROM vw_stu_sub

CREATE VIEW vw_stu_sub AS

       SELECT s.studentid,s.studentname,,v.subjectid,v.subjectname,v.grade       

       FROM student s,vw_sub_grade v

       WHERE s.studentid=v.studentid;

1.SELECT v.studentid,v.studentname,v.subjectname,v.grade FROM vw_stu_sub v

2.

SELECT v.studentid,v.studentname,v.subjectname,v.grade FROM vw_stu_sub v   WHERE v.grade IN (SELECT MAX(grade) FROM grade GROUP BY subjectid)

3.SELECT studentid,studentname,subjectname,decode(sign(grade-60),-1,'不及格','及格'FROM vw_stu_sub 

4.SELECT studentid,studentname FROM vw_stu_sub GROUP  BY  studentid,studentname HAVING  COUNT(subjectname) >= 2

發佈了56 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章