50条常用sql语句(以学生表为例)
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“”课程比“”课程成绩高的所有学生的学号;
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、查询平均成绩大于分的同学的学号和平均成绩;
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、查询学过“”并且也学过编号“”课程的同学的学号、姓名;
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、查询课程编号“”的成绩比课程编号&ldqu
相关文档:
如果你经常遇到下面的问题,你就要考虑使用SQL Server的模板来写规范的SQL语句了:
SQL初学者。
经常忘记常用的DML或是DDL SQL 语句。
在多人开发维护的SQL中,每个人都有自己的SQL习惯,没有一套统一的规范。
在SQL Server Management Studio中,已经给大家提供了很多常用的现成SQL规范模板。
SQL Server Management ......
1、SQL逻辑查询处理中的各个阶级顺序
(8)SELECT (9) DISTINCT (11) <tOP_Specification> <select list>
(1)from <Left tables>
(3)<Join type>Join<Right_table>
&n ......
--------------------------------------------------------
--sql structured query language
--DML--Data Manipulation Language--数据操作语言
query information (SELECT),
add new rows (INSERT),
modify existing rows (UPDATE),
delete existing rows (DELETE),
perform a conditional update or inse ......