SQL server数据库基础——Select 查询语句的基本语法与使用
- 1. 简单查询
- 2. 范围查询,排序
- 3. 聚合函数
- 4. 分组
- 5. 运算符
1. 简单查询
-- 1. 查询院系信息表的所有信息
select * from dbo.DepInfo -- * 表示全部,所有
-- 2. 查询教师信息表中教师的姓名、专业和职称
select TeachInfoName,TeachInfoSpec,TeachInfoTitle -- 后面跟要查询的字段
from dbo.TeachInfo
-- 3. 查询所有教师从事的专业
select TeachInfoSpec from dbo.TeachInfo
-- 4. 查询所有教师从事的专业,清除重复
select distinct TeachInfoSpec from dbo.TeachInfo -- distinct 清除重复值
-- 5. 查询班级信息表中的前8条记录的班级代号,班级名称
select top 8 ClassInfoCode,ClassInfoName from dbo.ClassInfo
-- 6. 查询班级信息表中的前百分之二十的记录的班级代号,班级名称
select top 20 percent ClassInfoCode,ClassInfoName -- percent 百分数限定词
from dbo.ClassInfo
-- 7. 查询课程信息表中课程名称,理论学时,实践学时
select CourseInfoName,COurseInfoRstPer,CourseInfoPraPer
from dbo.CourseInfo
-- 8. 查询课程信息表中课程名称,理论学时,时间学时,总学时
select CourseInfoName,COurseInfoRstPer,CourseInfoPraPer,COurseInfoRstPer+CourseInfoPraPer
from dbo.CourseInfo
2. 范围查询,排序
-- 9~10. 查询课程信息表中课程名称,理论学时,时间学时,总学时,给每一列取中文的别名
select CourseInfoName as 课程名称, -- | 课程名称 = CourseInfoName
COurseInfoRstPer as 理论学时, -- | 理论学时 = COurseInfoRstPer
CourseInfoPraPer as 实践学时, -- | 实践学时 = CourseInfoPraPer
COurseInfoRstPer+CourseInfoPraPer as 总学时 -- | 总学时 = COurseInfoRstPer+CourseInfoPraPer
from dbo.CourseInfo
-- 11. 查询2000年以后出生的学生的学号、姓名、性别和出生日期,结果按年龄从小到大排序
select StdInfoNum,StdInfoName,StdInfoSex,StdInfoBirthD
from dbo.StudentInfo
where StdInfoBirthD >= '2000-1-1'
order by StdInfoBirthD desc -- order by 排序,asc 升序,desc 降序
-- 12. 查询2000年以后出生的学生的学号、姓名,性别和出生日期,结果按年龄从小到大排序,当年龄相同时,按先女生后男生排序
select StdInfoNum,StdInfoName,StdInfoSex,StdInfoBirthD
from dbo.StudentInfo
where StdInfoBirthD >= '2000-1-1'
order by StdInfoBirthD desc,StdInfoSex desc
3. 聚合函数
-- 聚合函数
-- 统计学生、教师的总人数
select COUNT(*) from dbo.StudentInfo
select COUNT(*) from dbo.TeachInfo
--统计系部教学编制的总数、最大、最小及平均值
select SUM(DepInfoPreOfTech) as 总数,
MAX(DepInfoPreOfTech) as 最大值,
MIN(DepInfoPreOfTech) as 最小值,
AVE(DepInfoPreOfTech) as 平均值
from dbo.DepInfo
4. 分组
-- 查询教师表中有各种学历的人数
select TeachInfoKnowl,COUNT(TeachInfoKnowl) as 数量
from dbo.TeachInfo
group by TeachInfoKnowl -- 查询包括普通字段和聚合函数时,必须加 group by 分组,并将所查的所有普通字段写在后面
-- 统计2000年以后出生的男女学生各有多少人
select StdInfoSex,COUNT(*)
from dbo.StudentInfo
where StdInfoBirthD >= '2000-1-1'
group by StdInfoSex
-- 显示所有学生的相关信息,并汇总学生总人数
select StdInfoName,StdInfoSex,StdInfoNaths
from dbo.StudentInfo
compute count(StdInfoName) -- compute 分类汇总关键词 后面加需要分类汇总的字段
-- 显示所有学生的相关信息,并按学生所属民族分类汇总
select StdInfoName,StdInfoSex,StdInfoNaths
from dbo.StudentInfo
order by StdInfoNaths -- 先排序
compute count(StdInfoNaths) by StdInfoNaths -- 再以民族分类汇总
5. 运算符
in ( ) :做范围判断
= :做单值判断
-- 查询所有2000年后出生的女生
select * from dbo.StudentInfo
where StdInfoBirthD > '2000-1-1' and StdInfoSex = '女' -- 比较运算符 > < = | 逻辑运算符 and or
-- 查询所有姓张的学生的信息
select * from dbo.StudentInfo
where StdInfoName like '张%' -- 模糊查询 like 通配符 %
-- 查询入学年份在2018到2020之间的学生信息
select * from dbo.StudentInfo
where StdInfoYear between 2018 and 2020 -- where StdInfoYear >= 2018 and StdInfoYear <= 2020
select * from dbo.StudentInfo
where StdInfoYear in(2018,2019,2020) -- not in 不在某一范围
主文章:备考计算机三级数据库——SQL 案例
更多推荐
【SQL server数据库基础】Select 查询语句的基本语法与使用
发布评论