欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL语句SQL Server 续 博客分类: SQL Server SQLSERVER语句exists左连接 

程序员文章站 2024-03-01 15:52:34
...

1.分组查询结果

在COMPUTE中使用BY子句时,要求必须包含ORDER BY子句,即先按分类的

字段排序,并且排序的字段与分组汇总的字段必须相同。

select s.sno,s.sname,g.cno,g.scgrade from student s,grade g

where s.sno=g.sno and s.sno=1

order by g.cno

compute avg(g.scgrade),min(g.scgrade),max(g.scgrade) by g.cno;

 

2.两个表的查询

select student.*,sex.*

from student,sex

where student.ssex=sex.sexno;

 

3.左外连接查询,显示出左边关系中所有的元组

select student.*,sex.sexname

from student left outer join sex on(student.ssex=sex.sexno);

 

4.右外连接查询

select  student.*,sex.sexname

from student right outer join sex on(student.ssex=sex.sexno)

 

5.全外连接查询

select  student.*,sex.sexname

from student full outer join sex on(student.ssex=sex.sexno)

insert into sex values(4,'错');

 

6.嵌套查询

select student.sno,student.sname,grade.cno,course.cname,grade.scgrade

from student,course,grade

where student.sno=grade.sno

and course.cno=grade.cno

and student.sno in(

select A.sno

from grade A,grade B,student

where A.sno=B.sno

and A.cno=1

and B.cno=2);

 

7.ALL与ANY的应用

select sno,cno,scgrade

from grade

where scgrade > all(

select scgrade from grade

where sno=2

);

 

8.EXISTS的应用

select sname,sbirth

from student

where not exists

(select * from grade

where grade.sno=student.sno and cno=4);

 

9.UNION的使用

select * from student

where ssex in(select sexno from sex where sexname='女')

union

select * from student

where sno in(select sno from grade where cno=4);

 

10.INTERSECT的使用

select * from student

where ssex in(select sexno from sex where sexname='女')

intersect

select * from student

where sno in(select sno from grade where cno=4);

 

11.EXCEPT的使用

select * from student

where ssex in(select sexno from sex where sexname='女')

except

select * from student

where sno in(select sno from grade where cno=4);

 

12.将查询结果直接插入表格

create table gv(

sno int primary key,

sname varchar(8),

gavg float);

 

insert into gv

select student.sno,sname,avg(scgrade)

from student,grade

where student.sno=grade.sno

group by student.sno,student.sname;

 

13.修改查询出的数据

update sex

set sexname='错'

where sexno in (select sexno from sex where sexno not in(1,2));

 

14.删除查询出的数据

delete 

from sex

where sexno in(select sexno from sex where sexno not in('1','2'));