当前位置: 代码迷 >> Sql Server >> 求SQL语句大全,解决办法
  详细解决方案

求SQL语句大全,解决办法

热度:406   发布时间:2016-04-27 22:00:20.0
求SQL语句大全,
越全越好

------解决方案--------------------
联机帮助最全
------解决方案--------------------
刚写了个没有from的select语句,可以玩玩

SQL code
insert tab (a,b)select a=4,b=1001 where not exists (select 1 from tab where a=4)
------解决方案--------------------
sql server帮助文档。
------解决方案--------------------
探讨
联机帮助最全

------解决方案--------------------
SQL code
sql面试题(xiaoku)http://topic.csdn.net/u/20081020/15/1abf54d0-f401-42ab-a75e-df90027ceba0.html
------解决方案--------------------
一个题目涉及到的50个Sql语句

Student(S#,Sname,Sage,Ssex) 学生表 
Course(C#,Cname,T#) 课程表 
SC(S#,C#,score) 成绩表 
Teacher(T#,Tname) 教师表 

问题: 
1、查询“001”课程比“002”课程成绩高的所有学生的学号; 
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score 
from SC where C#='002') b 
where a.score>b.score and a.s#=b.s#; 
2、查询平均成绩大于60分的同学的学号和平均成绩; 
select S#,avg(score) 
from sc 
group by S# having avg(score) >60; 
3、查询所有同学的学号、姓名、选课数、总成绩; 
select Student.S#,Student.Sname,count(SC.C#),sum(score) 
from Student left Outer join SC on Student.S#=SC.S# 
group by Student.S#,Sname 
4、查询姓“李”的老师的个数; 
select count(distinct(Tname)) 
from Teacher 
where Tname like '李%'; 
5、查询没学过“叶平”老师课的同学的学号、姓名; 
select Student.S#,Student.Sname 
from Student
where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平'); 
6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; 
select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 
7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; 
select S#,Sname 
from Student 
where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 
8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; 
Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 
from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 <score; 
9、查询所有课程成绩小于60分的同学的学号、姓名; 
select S#,Sname 
from Student 
where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60); 
10、查询没有学全所有课的同学的学号、姓名; 
select Student.S#,Student.Sname 
from Student,SC 
where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course); 

11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名; 
select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001'; 
12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名; 
select distinct SC.S#,Sname 
from Student,SC 
where Student.S#=SC.S# and C# in (select C# from SC where S#='001'); 
13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩; 
update SC set score=(select avg(SC_2.score) 
from SC SC_2 
where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平'); 
  相关解决方案