SQL数据库题目!!!急急急!!!

SQL数据库题目!!!急急急!!!,第1张

1)Students表:包含SNo,SName,SSex,SClass,SAge 其中SNo为主键

2)Courses表:包含CNo,CName,CGrade(开设学期),CScore(学分)、IsProfession(是否是专业课) 其中CNo为主键

3)Scores表:包含SNo,CNo,Score 其中SNo和CNo分别与Students中的SNo和Courses中的CNo有外键关系。

1)查询全班年龄在20岁至24岁之间的所有学生的信息。

select * from Students where SAge>=20 and SAge<=24 (是否包含20和24,修改相关=号)

2)查询开设学期为2的所有的专业课程号、课程名称、和学分。

select CNo,CName,CScore from Courses where CGrade=2 and IsProfession=1(假设专业课是此值为1)

3)查询学号为000004学生的所有课程的成绩

select Scores.SNo,Scores.CNo,Courses.CName,Scores.Score from Scores INNER JOIN Courses ON Scores.CNo=Courses.CNo where Scores.SNo='000004'

4)查询姓名为“王明”的学生的所有及格课程的课程名称和成绩。

select Scores.SNo,Scores.CNo,Courses.CName,Scores.Score from Scores INNER Join

Courses ON Scores.CNo=Courses.CNo where Scores.SNo in (select SNo from Students where SName='王明') and Scores.Score>=60

5)查询班级为“0401”的所有学生的课程名为“SQL数据库管理”的成绩,按成绩降序的方式排列,如果成绩相同,则按照学号进行排列。

select Scores.SNo,Scores.CNo,Courses.CName,Scores.Score from Scores INNER Join

Courses ON Scores.CNo=Courses.CNo where Scores.SNo in (select SNo from Students

where SClass='0401' order by Scores.Score

/**Q1**/

/**供应商表**/

create table C_Provider(

SYSCODE VARCHAR(32) not null primary key ,/**供应商号**/

NAMEVARCHAR(200),/**供应名字**/

CITY VARCHAR(200)

)

/**水泥表**/

create table C_Concrete(

SYSCODE VARCHAR(32) not null primary key,/**水泥编号**/

TYPEVARCHAR(200)/**水泥型号**/

)

/**工程项目表**/

create table C_project(

SYSCODE VARCHAR(32) not null primary key,/**工程编号**/

NAMEVARCHAR(200),/**工程名字**/

CITYVARCHAR(200)/**工程所在城市**/

)

/**供应情况表**/

create table C_Supply(

SYSCODE VARCHAR(32) not null primary key,

Provider_SYSCODE VARCHAR(32) ,/**供应商编号**/

Concrete_SYSCODE VARCHAR(32), /**水泥编号**/

project_SYSCODE VARCHAR(32),/**工程编号**/

supply_num Integer ,

CHECK (supply_num>0),

CONSTRAINT fk_1 FOREIGN KEY (Provider_SYSCODE) references C_Provider(SYSCODE),

CONSTRAINT fk_2 FOREIGN KEY (Concrete_SYSCODE) references C_Concrete(SYSCODE),

CONSTRAINT fk_3 FOREIGN KEY (project_SYSCODE) references C_project(SYSCODE)

)

/**Q2**/

select Concrete_SYSCODE,supply_num from C_Supply

group by Concrete_SYSCODE

order by Concrete_SYSCODE desc

/**Q3**/

/**创建视图**/

create view v_shanghai AS

select SYSCODE,NAME from C_project where CITY='上海'

/**赋权语句**/

grant select on v_shanghai to USER1

/**Q4**/

select s.project_syscode from C_Supply s where not exists(

select * from C_Provider where C_Provider.Syscode=s.Provider_SYSCODE and city='上海'

) group by s.project_syscode

/**Q5**/

delete from C_Supply where Provider_SYSCODE=S3

delete from C_Provider where SYSCODE=S3

注意 数据库我使用的oracle 。你用sql server和mysql的话部分语法可能不一样 所有语句均已经试验过了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9662256.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存