sql经典查询语句
查询:
select * from table1 where 工资>2500 and 工资<3000 //查找一个工资区间
select 姓名 from table1 where 性别='0' and 工资='4000' //查找性别和工资的条件
select * from table1 where not 工资= 3200 //查找工资不等于3200的
select * from table1 order by 工资desc //将工资按照降序排列
select * from table1 order by 工资 asc //将工资按照升序排列
select * from table1 where year(出身日期)=1987 //查询table1 中所有出身在1987的人
select * from table1 where name like '%张' /'%张%' /'张%' //查询1,首位字‘张’3,尾位字‘张’2,模糊查询
select * from table1 order by money desc //查询表1按照工资的降序排列表1 (升序为asc)
select * from table1 where brithday is null //查询表1 中出身日期为空的人
select * into table2 from table3 //将表3中的所有数据转换成表2 (相当于复制)
删库和建库
use 数据库(aa) //使用数据库aa
create bb(数据库) //创建数据库bb
create table table3 ( name varchar(10),sex varchar(2),money money, brithday datetime) //创建一个表3中有姓名,性别,工资,出身日期 (此表说明有四列)
insert into table3 values ('张三','男','2500','1989-1-5') //在表中添加一行张三的记录
alter table table3 add tilte varchar(10) //向表3 中添加一列“title(职位)”
alter table table3 drop column sex //删除table3中‘性别’这一列
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'
更改库表的数据
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 //将性别为男和姓名为倪涛的人改为敬光
经典查询语句之二
1显示系部编号为03的系部名称
Select departname From department Where departno=’03’
2.查询系部名称中含有'工程'两个字的系部的名称。
Select departname From department Where departnamelike‘%工程%’
3查询共有多少个系部。
Select count(departno) From department
4查询'01'年级共有多少个班级。
Select count(*) From class Where classname like‘01%’
5查询在'周二晚'上课的课程名称和老师。
select couname as '课程名称',teacher as'教师' from course where schooltime='周二晚'
6查询姓 张,陈,黄 同学的基本信息,要求按照姓名降序排序。
select * from Student,StuCou,Course where student.StuNo=stucou.stuno and stucou.couno=course.couno and StuName like'张%'or StuName like'陈%'or stuname like'黄%' order by StuName desc
7按系部统计课程平均报名人数,要求显示系部编号、平均报名人数。
Select departno,avg(willnum) From course Group by departno
8.按系部统计课程的平均报名人数,要求显示系部名称、平均报名人数。
Select departname,avg(willnum) From course,department Where department.departno=course.departno Group by departname
9.按课程统计平均报名人数,要求给出课程的详细信息和课程平均报名人数。
SELECT Kind '课程类别',AVG(WillNum)'每类平均报名人数' FROM Course group BY Kind haveing avg(willnum)
10.按课程统计平均报名人数,要求给出课程名称、平均报名人数,按照平均报名人数降序排序。
SELECT Kind '课程类别',AVG(WillNum)'每类平均报名人数' FROM Course,Department where Course.DepartNo=department.DepartNo group BY Kind
11.统计各系的班级数,要求显示系部名称、班级数量。
Select departname,count(classno) From department,class Where department.departno=class.departno Group by departname
12.查询“甘蕾”同学选修的课程名、学分、上课时间和课程门数,按学分排序查询结果。
Select couname,credit,schooltime From student,course,stucou Where student.stuno=stucou.stuno and course.couno=stucou.couno and Stuname=’甘蕾’ Order by credit desc
13.按班级分组显示学生选课的信息,包括班级名、学号、姓名、课程、学分、上课时间。统计各班同学选修课程的总数。
select classname,stuname,student.StuNO,CouName,credit,schooltime from class,student,course,StuCou,Department where Student.StuNo=StuCou.StuNo order by ClassName
14.查询统计各系开设选修课程的情况,内容包括系名、课程编号、课程名称、学分、教师、上课时间、限选人数,并统计各系开课门数。
select departname,course.couno,couname,credit,teacher,schooltime,limitnum from department,course where department.departno=course.departno order by departname compute count(couname) by departname
15. 显示“00电子商务”班的选修报名结果,要求有姓名、课程名称、志愿号,并按姓名、志愿号排序。
Select stuname,couname,willorder From stucou,class,course,student Where stucou.couno=course.couno and student.classno=class.classno and stucou.stuno=student.stuno and classname=’00电子商务’ Order by stuname,willorder
--1.查询报名人数大于等于30并且小于等于40的课程信息,要求显示课程名称和报名人数(使用BETWEEN…AND)
select [CouName],[WillNum]
from [dbo].[Course]
where [WillNum] between 30 and 40
--2.统计不同学分各有多少门课程。显示credit,count(*)字段。(group by)
select [Credit],count(*) '课程门数'
from [dbo].[Course]
group by [Credit]
--3.统计不同学分各有多少门课程,并显示课程详细信息。(compute ...by)
select *
from Course
order by Credit
compute count(couno) by credit
--4.查询周二上课的课程名称和教师名,并显示课程门数。(compute)
select CouName,Teacher
from dbo.Course
where SchoolTime like '周二%'
compute count(couname)
--5.查询平均报名人数大于30人的课程类别和每类平均报名人数。(group having)
select kind,AVG(willnum)
from Course
group by Kind
having AVG(willnum)>30
--6.在课程表中,按所开设课程的系部编号分别统计总共报名人数。(group having)
select [DepartNo],COUNT([WillNum])
from [dbo].[Course]
group by [DepartNo]
having COUNT([WillNum])>0
--7思考题:显示课程个数比工程技术类
--课程个数多的课程的信息。
--提示:分三步做
--1求工程技术类课程的个数=n
--select count(*)
--from course
--where kind='工程技术'
--2求课程个数大于n的课程的kind信息m。
--select kind
--from course
--group by kind
--having count(kind)>n
--3求课程全部信息,且课程类型为m的。
--(子查询)
--select * from course
--where kind=m
select *
from course
where kind in (select kind
from course
group by kind
having count(kind)>(select count(*)
from course
where kind='工程技术' )
)

浙公网安备 33010602011771号