SQL查询语句,高手进!
1、查询“001”课程比“002”课程成绩高的所有学生的学号; 2、查询平均成绩大于60分的同学的学号和平均成绩; 3、查询所有同学的学号、姓名、选课数、总成绩; 4、查询姓“李”的老师的个数; 5、查询没学过“叶平”老师课的同学的学号、姓名; 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; 7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; 9、查询所有课程成绩小于60分的同学的学号、姓名; 10、查询没有学全所有课的同学的学号、姓名; 展开
推荐于2017-11-25
select Student.Sid from (select sid,score from SC where Cid='1') Student,
(select Sid,score from SC where Cid='2') Course
--2、查询平均成绩大于60分的同学的学号和平均成绩;
select Sid,avg(score) from SC group by Sid having avg(score)>60
--3、查询所有同学的学号、姓名、选课数、总成绩;
select Sid,Sname,Cid,score from Student inner join SC on(Student.Sid=SC.Sid) inner join Course on (Course.Cid=SC.Cid)
--4、查询姓“李”的老师的个数;
select count(*) from Teacher where Tname like '李%'
--5、查询没学过“叶平”老师课的同学的学号、姓名;
--select Sid,Sname from Student inner join SC on (Student.Sid=score.Sid) inner join Course on(Course.Cid=SC.Cid) inner join Teacher on (Teacher.Tid=Course.Tid) where Teacher.Tname is null--6、查询学过“”并且也学过编号“”课程的同学的学号、姓名;
select SID,Sname
--7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;
select Sid,Sname
from Student
where Sid in (select Sid from SC ,Course ,Teacher where SC.Cid=Course.Cid AND Teacher.Tid=Course.Tid AND Teacher.Tname='叶平'
group by Sid
having count(SC.Cid)=(select count(Cid) from Course,Teacher where Teacher.Tid=Course.Tid AND Tname='叶平'))
--8、查询课程编号“”的成绩比课程编号“”课程低的所有同学的学号、姓名;
--9、查询所有课程成绩小于60分的同学的学号、姓名;
Select Student.SID,Student.Sname from Student,SC where Student.Sid=SC.Sid and SC.score<60
--10、查询没有学全所有课的同学的学号、姓名;
select Student.Sid,Student.Sname
from Student,SC where Student.Sid=SC.Sid
group by Student.Sid,Student.Sname
having count(Cid) <(select count(Cid) from Course) 交个朋友吧!好在大家都是学程序的
select * from table1 where 平均成绩>60
select 姓名 from table1 where 性别='0' and 学号
select * from table1 order by 编号dssc//将学好按照降序排列
select * from table1 order by 学号asc //将学号按照升序排列
use 数据库(aa) //使用数据库aa
create bb(数据库) //创建数据库bb
create table table3 ( name varchar(10),sex varchar(2),money money, brithday datetime)//创建一个表3中有姓名,学号,课程编号,平均成绩(此表说明有四列)
drop database aa //删除数据库aa
drop table table3 //删除表3
delete * from table3 //删除table3 中所有的数据,但table3这个表还在
delete from table1 where 姓名='倪涛' and 日期 is null
delete from table1 where 姓名='倪涛' and 日期='1971'
select * into table2 from table3 //将表3中的所有数据转换成表2 (相当于复制)
update table3 set money=money*1.2 //为表3所有人工资都增长20%
update table3 set money=money*1.2 where title='经理' //为表3中“职位”是经理的人工资增长20%
update table1 set 工资= 5000 where 姓名='孙八' //将姓名为孙八的人的工资改为5000
update table1 set 姓名='敬光' where 姓名='倪涛' and 性别=1 //将性别为男和姓名为倪涛的人改为敬光
建议你首先找一本SQL命令集看看,SQL srever 2000 [安装之后,会有一个联机从书,那里面可谓详尽的讲述了SQL命令,注意:SQL server 2000与SQL命令是重大区别的.SQL是结构化查询设计语言的缩写,:SQL server 2000则是微软的关系数据库产品,一切关系数据库都是依赖SQL的.这当然要看数据库内建了多少SQL命令,ACCESS和,SQL srever 2000 都接受SQL命令的操作,但是操作ACCESS的SQL命令和语句,几乎可以不加修改的用于SQL server ,但是反过来不行,比如ACCESS根本就不支持使用case语句等.
SQL命令并不很多,百十个而已,但是操作起数据库来,几乎是达到出神入画的地步.用人工可以需要几天的时间才能弄到结果,用SQL命令只不过是弹指之间.
想摆弄数据库,你不学SQL,就等于想学洋文,但不认识ABC字母一样.
SQL srever 2000 的联机从书中Transact-SQL参考一章,介绍了全部的SQL命令和符号.在其它章节还介绍很多SQL语句的写法以及SQL命令的用法.好好学吧,你们是年轻人,精力正旺,弄一可以读电子书的手机,把这部联机从书弄成文本文件,放在手机中,随时看看,比你看那些无聊的网上小说,有意义的多.