代码编织梦想

一、SQL Server简单查询语句

背景知识:
一、查询:SQL中最基本、最常用的操作,用来对数据库进行查询
二、表达式:
select 属性列 from 表
where 筛选条件
group by 分组属性列
having 分组后筛选条件
orser by 排序

名称解释(不区分大小写)

  • student学生表:
    • 包含属性列:sno学号、sname学生姓名、age年龄、sex性别、dno学院编号、birthday生日
  • sc选课信息表:
    • 包含属性列:sno学号、cno课程号、grade成绩
  • dept学院信息表:
    • 包含属性列:dno学院编号、dname学院名称、dean学院负责人
  • course课程信息表:
    • 包含属性列:cno课程号、cname课程名称、tname老师名称、credit学分、room教室

下面语句可以直接复制到SQL Server运行

  • 运行方法,选中执行语句在这里插入图片描述

方法不唯一,有问题欢迎留言!代码块见文章末尾

二、代码

–1.求学院编号为’0001’的学生的学号、姓名、性别
select SNO,SNAME,SEX
from student
where DNO = ‘0001’

–2.求学院编号为’0001’ 的男生的学号、姓名、性别
select SNO,SNAME,SEX
from student
where DNO = ‘0001’ and SEX = ‘男’

–3.求选修授课班号为‘327401’且成绩在 80~90 之间的学生学号和成绩,并将成绩乘以系数 0.8 输出,且将 SNO 列更名为学号,成绩列更名为处理成绩
select SNO as 学号,GRADE*0.8 as 处理成绩 from sc
where CNO = ‘327401’ and GRADE between 80 and 90

–4.求每个学生的年龄,并输出姓名和年龄,getdate()获取当前日期,如果需要查询函数在对象资源管理器种可编程性的函数中
select SNAME,(YEAR(GETDATE()) - YEAR(BIRTHDAY)) as 年龄 from student

–5.求选修了课程的学生的学号
select distinct sno from sc

–6.求选修授课班号为’327401’的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列
select sno,grade from sc
where cno = ‘327401’
order by grade DESC,sno ASC

–7.求缺少了成绩的学生学号和课程号
select sno,cno from sc
where grade is NULL

–8.统计选课学生人数及最高分成绩和最低分成绩
select COUNT(distinct sno) as 选课学生人数,MAX(grade) as MAX,MIN(grade) as MIN from sc

–9.求学院编号为’0001’或‘0002‘中姓张的学生的信息
select * from student
where (dno = ‘0001’ or dno = ‘0002’) and sname like ‘张%’

–10.求姓名中包含’丽’的学生信息
select * from student
where sname like ‘%丽%’

–11.求姓名只有两个字,且第二个字为’丽’的学生信息
select * from student
where sname like’_丽’

–12.求信息学院计算机专业的学生名单,使用substring(string,start_position,length)函数来获取子串
select * from student
where SUBSTRING(sno,5,2) = ‘28’

–13.统计各个学院的人数,descend,ascend单词缩写
select COUNT(distinct sno) as 人数,DNO as 部门编号 from student
group by DNO
order by 人数 DESC

–14.按授课班号统计选修该课程的人数,并按照人数升序排列
select cno,COUNT(distinct sno) as 人数 from sc
group by cno
order by 人数 ASC

–* 15.统计平均成绩超过 80 分的学生的学号及平均成绩
select sno ,avg(grade) as 平均成绩 from sc
group by sno
having avg(grade) > 80
order by 平均成绩 desc

–16.求选修课程超过 6 门课的学生学号,并按选修课程数目升序排列
select sno,count(sno) from sc
group by sno
having COUNT(cno) > 6
order by COUNT(cno) asc

–17.求每个学院学生的平均年龄,并把结果存入当前数据库‘系平均年龄’临时表中
select dno,avg(age) AS 平均 INTO 系平均年龄
from student
group by DNO

–18.分页浏览数据方法
–添加控制元素就可以实现分页浏览方法
select top 10 * from student

select top 10 * from student
where SNO not in (select top 10 sno from student)

–19.查询‘1987-1-1’号以后出生的女生的学生信息
select * from student
where BIRTHDAY > ‘1987-1-1’ and SEX = ‘女’

–20.创建’计算机系学生’视图,用于浏览计算机系学生的学号、姓名和年龄
create view 计算机系学生
as
select sno,sname,age from student
where SUBSTRING(sno,5,2) = ‘28’

–1.查询分数在 70 和 90 之间的学生学号
select grade from sc
where grade between 70 and 90

–2.查询少于 10 名同学选修的授课班号
select cno from sc
group by cno
having COUNT(sno) < 10

–3.查询选课表中的最高分
select max(grade) from sc

–4.查询授课编号为‘153701’的课程的平均分
select avg(grade) from sc
where cno = ‘153701’

–5.查询课程平均分超过 85 的授课班号,输出结果按课程平均分升序排列
select cno from sc
group by cno
having avg(grade) > 85
order by avg(grade) asc

–6.查询课程名称为’线性代数’的排课情况
select * from course
where cname = ‘线性代数’

–7.查询选修授课班号为‘218801’的学生学号
select sno from sc
where cno = ‘218801’

–8.按授课班号查询课程的平均分,输出授课班号和平均成绩
SELECT CNO,AVG(GRADE)
FROM sc
GROUP BY CNO
–9.在 sc 中输出成绩在 90-100 之间的学生信息
SELECT * FROM sc WHERE CONVERT(char(20),GRADE) LIKE ‘9%’

–查询‘周芬’老师,这个学期的上课安排情况
select * from course
where tname = ‘周芬’

–查询姓‘周’的教师的排课情况
select * from course
where tname like ‘周%’

–按教室分组统计排课门数情况
select room,count(cno) from course
group by room

–查询排课门数超过 8 门的教室名单及其排课门数
select room,count(cno) from course
group by room
having count(cno) > 8

–创建机电学院女生的视图
create view 机电院女生
as
select * from student
where dno = ‘0001’ and sex = ‘女’

–查询学分超过 4 分的课程,输出课程名和学分,并要求按学分升序
select distinct cname,credit from course
where credit > 4
order by CREDIT asc

–按教室明细并汇总排课情况
select * from course

–查询课程号为“203402”的成绩最高的前 5 名学生的学号及成绩,结果按成绩降序
select top 5 sno,grade from sc
where cno = ‘203402’
order by grade desc

–查询年龄小于 20 岁的学生学号
select sno from student
where age < 20

–查询有 90 人以上选修的课程号
select cno from sc
group by cno
having count(sno) > 90

–查询全体男生的姓名,要求查询结果按所在系升序排列,对相同系的学生按姓名升序排列
select sname from student
order by dno,sname

–查询成绩在 70-90 范围内的学生学号
select sno from sc
where grade between 70 and 90

三、SQL代码块

--1.求学院编号为’0001’的学生的学号、姓名、性别
select SNO,SNAME,SEX 
from student
where DNO = '0001'

--2.求学院编号为’0001’ 的男生的学号、姓名、性别
select SNO,SNAME,SEX
from student
where DNO = '0001' and SEX = '男'

--3.求选修授课班号为‘327401’且成绩在 80~90 之间的学生学号和成绩,并将成绩乘以系数 0.8 输出,且将 SNO 列更名为学号,成绩列更名为处理成绩 
select SNO as 学号,GRADE*0.8 as 处理成绩 from sc
where CNO = '327401' and GRADE between 80 and 90

--4.求每个学生的年龄,并输出姓名和年龄,getdate()获取当前日期,如果需要查询函数在对象资源管理器种可编程性的函数中
select SNAME,(YEAR(GETDATE()) - YEAR(BIRTHDAY)) as 年龄 from student

--5.求选修了课程的学生的学号
select distinct sno from sc

--6.求选修授课班号为’327401’的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列
select sno,grade from sc
where cno = '327401' 
order by grade DESC,sno ASC

--7.求缺少了成绩的学生学号和课程号
select sno,cno from sc
where grade is NULL

--8.统计选课学生人数及最高分成绩和最低分成绩
select COUNT(distinct sno) as 选课学生人数,MAX(grade) as MAX,MIN(grade) as MIN from sc

--9.求学院编号为’0001’或‘0002‘中姓张的学生的信息
select * from student
where (dno = '0001' or dno = '0002') and sname like '张%'

--10.求姓名中包含’丽’的学生信息
select * from student
where sname like '%丽%'

--11.求姓名只有两个字,且第二个字为’丽’的学生信息
select * from student
where sname like'_丽'

--12.求信息学院计算机专业的学生名单,使用substring(string,start_position,length)函数来获取子串
select * from student
where SUBSTRING(sno,5,2) = '28'

--13.统计各个学院的人数,descend,ascend单词缩写
select COUNT(distinct sno) as 人数,DNO as 部门编号 from student
group by DNO
order by 人数 DESC

--14.按授课班号统计选修该课程的人数,并按照人数升序排列
select cno,COUNT(distinct sno) as 人数 from sc
group by cno
order by 人数 ASC

--* 15.统计平均成绩超过 80 分的学生的学号及平均成绩
select sno ,avg(grade) as 平均成绩 from sc
group by sno
having avg(grade) > 80
order by 平均成绩 desc

--16.求选修课程超过 6 门课的学生学号,并按选修课程数目升序排列
select sno,count(sno) from sc
group by sno
having COUNT(cno) > 6
order by COUNT(cno) asc

--17.求每个学院学生的平均年龄,并把结果存入当前数据库‘系平均年龄’临时表中
select dno,avg(age) AS 平均 INTO 系平均年龄
from student
group by DNO

--18.分页浏览数据方法
--添加控制元素就可以实现分页浏览方法
select top 10 * from student

select top 10 * from student
where SNO not in (select top 10 sno from student)

--19.查询‘1987-1-1’号以后出生的女生的学生信息
select * from student
where BIRTHDAY > '1987-1-1' and SEX = '女'

--20.创建'计算机系学生'视图,用于浏览计算机系学生的学号、姓名和年龄
create view 计算机系学生
as 
select sno,sname,age from student
where SUBSTRING(sno,5,2) = '28'

--1.查询分数在 70 和 90 之间的学生学号
select grade from sc
where grade between 70 and 90

--2.查询少于 10 名同学选修的授课班号
select cno from sc
group by cno
having COUNT(sno) < 10

--3.查询选课表中的最高分
select max(grade) from sc

--4.查询授课编号为‘153701’的课程的平均分
select avg(grade) from sc
where cno = '153701'

--5.查询课程平均分超过 85 的授课班号,输出结果按课程平均分升序排列
select cno from sc
group by cno
having avg(grade) > 85
order by avg(grade) asc

--6.查询课程名称为’线性代数’的排课情况
select * from course
where cname = '线性代数'

--7.查询选修授课班号为‘218801’的学生学号
select sno from sc
where cno = '218801'

--8.按授课班号查询课程的平均分,输出授课班号和平均成绩
SELECT CNO,AVG(GRADE)
FROM sc
GROUP BY CNO
--9.在 sc 中输出成绩在 90-100 之间的学生信息
SELECT * FROM sc WHERE CONVERT(char(20),GRADE) LIKE '9%'

--查询‘周芬’老师,这个学期的上课安排情况
select * from course
where tname = '周芬'

--查询姓‘周’的教师的排课情况
select * from course
where tname like '周%'

--按教室分组统计排课门数情况
select room,count(cno) from course
group by room

--查询排课门数超过 8 门的教室名单及其排课门数
select room,count(cno) from course
group by room
having count(cno) > 8

--创建机电学院女生的视图
create view 机电院女生
as
select * from student
where dno = '0001' and sex = '女'

--查询学分超过 4 分的课程,输出课程名和学分,并要求按学分升序
select distinct cname,credit from course
where credit > 4
order by CREDIT asc

--按教室明细并汇总排课情况
select * from course

--查询课程号为“203402”的成绩最高的前 5 名学生的学号及成绩,结果按成绩降序
select top 5 sno,grade from sc
where cno = '203402'
order by grade desc

--查询年龄小于 20 岁的学生学号
select sno from student
where age < 20

--查询有 90 人以上选修的课程号
select cno from sc
group by cno
having count(sno) > 90

--查询全体男生的姓名,要求查询结果按所在系升序排列,对相同系的学生按姓名升序排列
select sname from student
order by dno,sname

--查询成绩在 70-90 范围内的学生学号
select sno from sc
where grade between 70 and 90

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_44027696/article/details/111091019

使用 DML语句,对 “锦图网” 数据进行操作,连接查询(内连接,左外连接,右外连接,全连接)-爱代码爱编程

查看本章节 查看作业目录 需求说明: 对 “锦图网” 数据进行操作: 统计每一种线路类型的线路数量、最高线路价格、最低线路价格和平均线路价格,要求按照线路数量和平均线路价格升序显示。统计每种类型线路的订购数量和平均价格,要求按线路数量和平均线路价格升序显示查询指定客户(如“郝琼琼”)所预订的所有线路信息,要求显示下单客户姓名、出行客户姓名、订单号、

一学就会的SQL Server中英文版安装-爱代码爱编程

SQL Server 数据库的安装方法 SQL Server 安装前准备 只有硬件与软件安装环境达到要求,才能保障安装的顺利完成,以2016英文版为例,2016以后版本安装方法是一样的! SQL Server安装方法 英文版界面 如下图 中文界面 如下图 第一步 通过对比发现,选择左边第二项是“安装”,接下来点选右面第一项“安装一个全新的

使用 DML语句针对仓库管理信息系统,进行查询操作-爱代码爱编程

查看本章节 查看作业目录 需求说明: 查询所有电视机产品的基本信息,要求显示产品编号、产品名和进货单价查询所有产品的基本信息,要求按类型升序、价格降序显示查询信息显示所有不重复的产品类型显示进货单价最高的第 3 ~ 6 名的产品信息显示产品编号中含有“DK”字样的所有产品信息,按类型和产品编号进行排序显示实现代码: 查询所有电视机产品的基本信息,要

SQL之sqli-labs注入Less-2~4-爱代码爱编程

一、Less-2 与Less-1相同,我们同样使用?id=1'看是否可以注入, 发现不可以,并且提示错误,我们可以知道,这里不需要引号,这就是与Less-1不同的地方,除此之外,以下步骤与Less-1相同 2.接下来我们使用 order by 查看有多少列 仍然有三列? id=1 order by 3--+3.使用联合查询 union select 看有

SQL:多表查询语句(嵌套子查询,多表连接)操作实例-爱代码爱编程

一、SQL Server多表查询,包括连接操作和嵌套子查询 背景知识: 一、连接:分成内连接和外连接,内连接相当于取交集,外连接相当于取并集 二、嵌套子查询:连接操作浪费资源,使用嵌套子查询可以避免连接同时加快执行速度,分成相关子查询和非相关子查询 名称解释(不区分大小写) student学生表: 包含属性列:sno学号、sname学

SQL优化(二)-爱代码爱编程

order by排序方式 一般分两种,在索引中排序(索引里面数据有序),在内存中排序(内存不够的话会产生临时文件辅助排序)。其中走索引的排序会快很多。 索引排序 既然我们知道排序走索引会快很多,那我们排序时应该尽量让排序走索引。那什么情况下排序会走索引呢?我们知道查询排序语句一般由这几个部分构成:select +where+order by+limi

使用 DML语句,对 “锦图网” 数据进行操作,连接查询(内连接,左外连接,右外连接,全连接)-爱代码爱编程

查看本章节 查看作业目录 需求说明: 对 “锦图网” 数据进行操作: 统计每一种线路类型的线路数量、最高线路价格、最低线路价格和平均线路价格,要求按照线路数量和平均线路价格升序显示。统计每种类型线路的订购数量和平均价格,要求按线路数量和平均线路价格升序显示查询指定客户(如“郝琼琼”)所预订的所有线路信息,要求显示下单客户姓名、出行客户姓名、订单号、

一学就会的SQL Server中英文版安装-爱代码爱编程

SQL Server 数据库的安装方法 SQL Server 安装前准备 只有硬件与软件安装环境达到要求,才能保障安装的顺利完成,以2016英文版为例,2016以后版本安装方法是一样的! SQL Server安装方法 英文版界面 如下图 中文界面 如下图 第一步 通过对比发现,选择左边第二项是“安装”,接下来点选右面第一项“安装一个全新的

手把手搭建Java汽车租赁管理系统【附源码】(毕设)-爱代码爱编程

文末源码和视频 一、项目简介 ​ 【汽车租凭管理系统】,基于Java实现的汽车租凭管理系统 二、技术实现 IOC容器:Spring Web框架:SpringMVC ORM框架:Mybatis(持久层) 数据源:C3P0 日志:log4j 前端框架:layui、jQuery 三、系统功能

SQL:多表查询语句(嵌套子查询,多表连接)操作实例-爱代码爱编程

一、SQL Server多表查询,包括连接操作和嵌套子查询 背景知识: 一、连接:分成内连接和外连接,内连接相当于取交集,外连接相当于取并集 二、嵌套子查询:连接操作浪费资源,使用嵌套子查询可以避免连接同时加快执行速度,分成相关子查询和非相关子查询 名称解释(不区分大小写) student学生表: 包含属性列:sno学号、sname学

接口自动化测试,使用Python的pymysql模块连接数据库,实现增删改查操作-爱代码爱编程

文章目录 1、需求场景2、需求实现 1、需求场景 接口自动化测试中,需要测试A接口,该接口是获取当前图片的相关图片数据,匹配规则是:相关图片至少有4个指定标签组下的标签,需与主图片(当前图片)的标签相同。 手工测试的步骤是: 1、先到数据库resources_attrs表查询主图片关联的标签属性是哪些:结果1 2、请求相关图片接口,获取到该接

国产达梦数据库8 jdbc maven包,使用官方提供的包制作,方便大家使用-爱代码爱编程

dameng-maven 国产达梦数据库8 dm8 jdbc Maven包,使用官方提供的包制作,方便大家使用 下载地址: Gitee dameng-maven 使用说明 Maven<dependency> <groupId>dm</groupId> <artifactId>dm-con