
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的话部分语法可能不一样 所有语句均已经试验过了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)