SQL语句基础考核
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*
--1.学生表
Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别
--2.课程表
Course(CID,Cname,TID) --CID --课程编号,Cname 课程名称,TID 教师编号
--3.教师表
Teacher(TID,Tname) --TID 教师编号,Tname 教师姓名
--4.成绩表
SC(SID,CID,score) --SID 学生编号,CID 课程编号,score 分数
*/
--创建测试数据
createtable Student(SID varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)) insertinto Student values('01',N'赵雷','1990-01-01',N'男')
insertinto Student values('02',N'钱电','1990-12-21',N'男')
insertinto Student values('03',N'孙风','1990-05-20',N'男')
insertinto Student values('04',N'李云','1990-08-06',N'男')
insertinto Student values('05',N'周梅','1991-12-01',N'女')
insertinto Student values('06',N'吴兰','1992-03-01',N'女')
insertinto Student values('07',N'郑竹','1989-07-01',N'女')
insertinto Student values('08',N'王菊','1990-01-20',N'女')
createtable Course(CID varchar(10),Cname nvarchar(10),TID varchar(10))
insertinto Course values('01',N'语文','02')
insertinto Course values('02',N'数学','01')
insertinto Course values('03',N'英语','03')
createtable Teacher(TID varchar(10),Tname nvarchar(10))
insertinto Teacher values('01',N'张三')
insertinto Teacher values('02',N'李四')
insertinto Teacher values('03',N'王五')
createtable SC(SID varchar(10),CID varchar(10),score decimal(18,1))
insertinto SC values('01','01', 80)
insertinto SC values('01','02', 90)
insertinto SC values('01','03', 99)
insertinto SC values('02','01', 70)
insertinto SC values('02','02', 60)
insertinto SC values('02','03', 80)
insertinto SC values('03','01', 80)
insertinto SC values('03','02', 80)
insertinto SC values('03','03', 80)
insertinto SC values('04','01', 50)
insertinto SC values('04','02', 30)
insertinto SC values('04','03', 20)
insertinto SC values('05','01', 76)
insertinto SC values('05','02', 87)
insertinto SC values('06','01', 31)
insertinto SC values('06','03', 34)
insertinto SC values('07','02', 89)
insertinto SC values('07','03', 98)
go
--1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数
--1.1、查询同时存在"01"课程和"02"课程的情况
select a.*,b.score[课程'01'的分数],c.score[课程'02'的分数]from Studenta,SCb,SCc
where a.SID=b.SID and a.SID=c.SID and b.CID='01'and c.CID='02'and b.score>c.score
--1.2、查询同时存在"01"课程和"02"课程的情况和存在"01"课程但可能不存在"02"课程的情况(不存在时显示为null)(以下存在相同内容时不再解释)
select a.*,b.score[课程"01"的分数],c.score[课程"02"的分数]from Studenta
leftjoin SCb on a.SID=b.SID and b.CID='01'