【SQL server数据库基础】Select 查询语句的基本语法与使用

SQL server数据库基础——Select 查询语句的基本语法与使用

1. 简单查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rg1rH4EA-1636032215924)(.\SQL 案例图片\12 查询(1).png)]

-- 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 案例

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iFulling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值