学生表、成绩表、超级课程表表作为数据基础表,写出如下SQL语句,谢谢

实验五 SQL单表查询语句编写学生姓名学号同组人实验项目SQL单表查询语句编写&#..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
SQL单表查询语句编写
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口学生表_课程表_成绩表_教师表_50个常用sql语句_中华文本库
第1页/共7页
文本预览:
原文地址:sql 语句多表查询(学生表/课程表/教师表/成绩表 )作者:海豚湾孬蛋
问题及描述: --1.学生表 Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学 生性别 --2.课程表 Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号 --3.教师表 Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名 --4.成绩表 SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数 */ --创建测试数据 create table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)) insert into Student values('01' , N'赵雷' , '' , N'男') insert into Student values('02' , N'钱电' , '' , N'男') insert into Student values('03' , N'孙风' , '' , N'男') insert into Student values('04' , N'李云' , '' , N'男') insert into Student values('05' , N'周梅' , '' , N'女') insert into Student values('06' , N'吴兰' , '' , N'女') insert into Student values('07' , N'郑竹' , '' , N'女') insert into Student values('08' , N'王菊' , '' , N'女') create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10)) insert into Course values('01' , N'语文' , '02') insert into Course values('02' , N'数学' , '01') insert into Course values('03' , N'英语' , '03') create table Teacher(T# varchar(10),Tname nvarchar(10)) insert into Teacher values('01' , N'张三')
insert into Teacher values('02' , N'李四') insert into Teacher values('03' , N'王五') create table SC(S# varchar(10),C# varchar(10),score decimal(18,1)) insert into SC values('01' , '01' , 80) insert into SC values('01' , '02' , 90) insert into SC values('01' , '03' , 99) insert into SC values('02' , '01' , 70) insert into SC values('02' , '02' , 60) insert into SC values('02' , '03' , 80) insert into SC values('03' , '01' , 80) insert into SC values('03' , '02' , 80) insert into SC values('03' , '03' , 80) insert into SC values('04' , '01' , 50) insert into SC values('04' , '02' , 30) insert into SC values('04' , '03' , 20) insert into SC values('05' , '01' , 76) insert into SC values('05' , '02' , 87) insert into SC values('06' , '01' , 31) insert into SC values('06' , '03' , 34) insert into SC values('07' , '02' , 89) insert into SC values('07' , '03' , 98) go
--1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数 --1.1、查询同时存在"01"课程和"02"课程的情况 select a.* , b.score [课程'01'的分数],c.score [课程'02'的分数] from Student a , SC b , SC c where a.S# = b.S# and a.S# = c.S# and b.C# = '01' and c.C# = '02' and b.score > c.score --1.2、查询同时存在"01"课程和"02"课程的情况和存在"01"课程但可能不存在"02"课程的 情况(不存在时显示为 null)(以下存在相同内容时不再解释)
select a.* , b.score [课程"01"的分数],c.score [课程"02"的分数] from Student a left join SC b on a.S# = b.S# and b.C# = '01' left j
第1页/共7页
寻找更多 ""50个常用sql语句实例(学生表 课程表 成绩表 教师表)_中华文本库
第8页/共9页
文本预览:
如果把两个 not 都去掉就是查询所有有选修课程的学生 Select sname from student where not exists( Select 1 from course where not exists( Select 1 from sc where student.sno=sc.sno o ) ) --37: --同样要进行转换:查询这样的学生,没有 95002 选修的课程而学生 X 没有选修 的 Select distinct sno From sc scx Where not exists (
Select 1 from sc scy Where scy.sno='95002' and not exists ( Select 1 from sc scz Where scz.sno=scx.sno o ) ) and sno!='95002' 插入语句: 1:对每一个系求平均年龄,并把结果存入数据库 需要创建一个表用来存储结果 Create table Deptage ( Sdept char(15 15), 15 Avgage smallint ); --插入子查询结果 insert into Deptage(Sdept,Avgage) select sdept,avg(sage) from student group by sdept
--查看结果 select * from deptage 修改语句; 1:将学生 95001 的年龄改为 22 岁 Update student Set sage=22 22 Where sno='95001'--注意如果不带 where,则修改全部记录 2:将所有的学生年龄加 1 岁(修改多个元组的值) Update student Set sage=sage+1; 1 3:将计算机系全体同学的成绩置零(带子查询的修改语句) Update sc Set grade=0 0 Where 'cs'=( Select sdept from student Where student.sno=sc.sno) 删除语句: 1:删除学号为 95009 的学生记录(删除后将无法回复) Delete from student Where sno='95009'--没有加 where 的话将删除该表全部记录 2:删除计算机科学系所有学生的选课记录 Delete from sc
Where 'cs'=( Select sdept From student Where student.sno=sc.sno ) 例 1:查询至少选秀 1 号课程和 3 号课程号的学生号码。 答案 select a.学号 from sc a,sc b where a.学号=b.学号 and a.课程号 ='1' and b.课程号='3' 例 2:查询至少选修了一门直接先行课为 5 号课程的学生姓名。 答案: select 姓名 from student where 学号 in( SELECT [学 号] FROM [test].[dbo].[SC] where 课程号 in(SELECT 课程 号 from Course where 先行课='5')) 例子 3:查询选修了全部课程的学生号码和姓名。 declare @t1 int declare @t2 int select @t2=count(*) from Course select @t1=学号 from SC group by 学号 having count(学号)=@t2
--print '@t1='+cast(@t1 as varchar) Select 学号,姓名 from student where 学号=@t1
例子 4:查询信息系年龄最大的三个学生的学号及其年龄,结果按年龄降序排 列。 select top 3 学号,年龄 from Student where 所在系='IS' order by 年
龄 desc 例子 5:查询选修了 2 号课程的学生名字 select 姓名 from student where 学号 in( select 学号 from sc where 课 程号=2) 2 例子 6:查询成绩为 90 分以上的学生名字和课程名字 select st.姓名,c.课程名 from student st left join sc s on st.学号=s. 学号 left join Course c on s.课程号=c.课程号 where st.学号 in (select st.学号 from sc where s.成绩>=90 90) 90
sql 取中间几条记录(select top 表达式) --查询从第 M 条至 N 条
第8页/共9页
寻找更多 ""

我要回帖

更多关于 桌面课程表 的文章

 

随机推荐