SQL Server(2019) 实验二 单表查询

2023-05-16

单表查询

  • 一、实验目的
  • 二、实验内容和要求
    • 2.1、表结构修改
      • 2.1.1.在实验三的所建立的数据库中增加Teacher表,结构如下:
      • 2.1.2.在实验三的所建立的数据库中增加Teaching表,表结构如下:
      • 2.1.3.向上述两表中输入如下数据记录
    • 2.2、完成下面查询
  • 三、实操
    • 3.1表结构的修改
    • 3.2相关查询
      • 3.2.1.查询所有男生信息
      • 3.2.2.查询年龄大于24岁的女生学号和姓名
      • 3.2.3.查询所有教师的Tname、Tdept
      • 3.2.4.查询“电子商务”专业的学生姓名、性别和出生日期
      • 3.2.5.查询成绩低于90分的学生学号及课号,并按成绩降序排列
      • 3.2.6.查询Student表中所有的系名
      • 3.2.7.查询“C01”课程的开课学期
      • 3.2.8.查询成绩在80分至90之间的学生学号及课号
      • 3.2.9.统计有学生选修的课程门数
      • 3.2.10.查询成绩为77,88或99的记录
      • 3.2.11.计算“C02”课程的平均成绩
      • 3.2.12.输出有成绩的学生学号
      • 3.2.13.查询所有姓“刘”的学生信息
      • 3.2.14.统计输出各系学生的人数
      • 3.2.15.查询选修了“C03”课程的学生的学号及其成绩,查询结果按分数的降序排列
      • 3.2.16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”
      • 3.2.17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”
      • 3.2.18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。

一、实验目的

1.掌握SELECT语句的基本用法
2.使用WHERE子句进行有条件的查询
3.掌握使用IN和NOT IN,BETWEEN…AND和NOT BETWEEN…AND来缩小查询范围的方法
4.掌握聚集函数的使用方法
5.利用LIKE子句实现字符串匹配查询
6.利用ORDER BY子句对查询结果排序
7.利用GROUP BY子句对查询结果分组

二、实验内容和要求

2.1、表结构修改

2.1.1.在实验三的所建立的数据库中增加Teacher表,结构如下:

Teacher表(教师表)的表结构

字段名称数据类型长度精度小数位数是否允许Null值说明
TnoChar300教师号,主码
TnameVarchar800教师名
TsexChar200性别,取值:男或女
TbirthdayDate800出生日期
TdeptChar1600所在系

2.1.2.在实验三的所建立的数据库中增加Teaching表,表结构如下:

Teaching表(授课表)的表结构

CnoChar500课程号,外码
TnoChar300教师号,外码
CtermTinyint1001-8之间,开课学期

2.1.3.向上述两表中输入如下数据记录

教师表Teacher

TnoTnameTsexTbirthdayTdept
101李新1977-01-12CS
102钱军1968-06-04CS
201王小花1979-12-23IS
202张小青1968-08-25IS

授课表Teaching

CnoTnoCterm
C011012
C021021
C032013
C042024

2.2、完成下面查询

1.查询所有男生信息
2.查询年龄大于24岁的女生学号和姓名
3.查询所有教师的Tname、Tdept
4.查询“电子商务”专业的学生姓名、性别和出生日期
5.查询成绩低于90分的学生学号及课号,并按成绩降序排列
6.查询Student表中所有的系名
7.查询“C01”课程的开课学期
8.查询成绩在80分至90之间的学生学号及课号
9.统计有学生选修的课程门数
10.查询成绩为77,88或99的记录
11.计算“C02”课程的平均成绩
12.输出有成绩的学生学号
13.查询所有姓“刘”的学生信息
14.统计输出各系学生的人数
15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列
16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”
17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”
18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。

三、实操

3.1表结构的修改

内容简单,如有疑问参照 实验一。(注意设置主键、外键、属性取值约束)

在这里插入图片描述

3.2相关查询

先回顾一下我们的5个表:
在这里插入图片描述

建立查询的方法:在数据库上右键,选择“新建查询”,在出来的界面使用相应的语句进行查询即可。

(注:下面的18个查询是我的实验要求的,并非按照难度和复杂程度排序。)

3.2.1.查询所有男生信息

select * 
from Student
where Ssex ='男';

在这里插入图片描述

3.2.2.查询年龄大于24岁的女生学号和姓名

select Sno,Sname 
from Student
where Ssex ='女' and (year(getdate())-year(Sbirthday))>24;

在这里插入图片描述

3.2.3.查询所有教师的Tname、Tdept

select Tname,Tdept 
from Teacher;

在这里插入图片描述

3.2.4.查询“电子商务”专业的学生姓名、性别和出生日期

select Sname,Ssex,Sbirthday 
from Student
where Speciality='电子商务';

在这里插入图片描述

3.2.5.查询成绩低于90分的学生学号及课号,并按成绩降序排列

select  Sno,Cno
from SC
where Degree<90
order by Degree desc;

在这里插入图片描述

注:这里没有使用distinct关键字,显示的结果是符合条件的所有学生的所有课程成绩的降序排列。升序使用asc代替desc即可。

3.2.6.查询Student表中所有的系名

select  distinct Speciality
from Student;

在这里插入图片描述

注:这里使用了distinct,所有系名只显示一次。

3.2.7.查询“C01”课程的开课学期

select  Cterm
from Teaching
where Cno='C01';

在这里插入图片描述

3.2.8.查询成绩在80分至90之间的学生学号及课号

第一种:使用between and 语句,包含了80与90分

select  Sno,Cno
from SC
where Degree between 80 and 90;

在这里插入图片描述
第一种:使用大于小于,不包含80与90分

select  Sno,Cno
from SC
where Degree >80  and Degree <90;

在这里插入图片描述

3.2.9.统计有学生选修的课程门数

select  COUNT(distinct Cno)
from SC;

在这里插入图片描述

3.2.10.查询成绩为77,88或99的记录

select  *
from SC
where Degree='77' or Degree='88' or Degree='99';

在这里插入图片描述

3.2.11.计算“C02”课程的平均成绩

select  AVG(Degree)
from SC
where Cno='C02';

在这里插入图片描述

3.2.12.输出有成绩的学生学号

select  distinct Sno
from SC
where Degree is not null;

在这里插入图片描述

3.2.13.查询所有姓“刘”的学生信息

select  *
from Student
where Sname like '刘%';

在这里插入图片描述

3.2.14.统计输出各系学生的人数

select  distinct Sdept,COUNT(Sdept) as '人数'
from Student
group by Sdept;

在这里插入图片描述

注:注意distinct和as的使用技巧。

3.2.15.查询选修了“C03”课程的学生的学号及其成绩,查询结果按分数的降序排列

select  Sno,Degree
from SC
where Cno='C03'
order by Degree desc;

在这里插入图片描述

3.2.16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”

与14题一样的操作。

select  distinct Cno,COUNT(Cno) as '人数'
from SC 
group by Cno;

在这里插入图片描述

3.2.17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”

select  distinct Cno,COUNT(Cno) as '人数',MAX(distinct Degree) as '最高分'
from SC 
group by Cno;

在这里插入图片描述

3.2.18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。

select  distinct Sno,COUNT(Cno) as '门数',SUM(Degree) as '总成绩'
from SC 
group by Sno
order by COUNT(Cno) desc;

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server(2019) 实验二 单表查询 的相关文章

  • 模拟退火算法及实例解析

    模拟退火算法及MATLAB实例 同遗传算法一样 xff0c 模拟退火算法也是现代优化算法的一种 他对于解决组合优化问题 xff0c 如TSP xff0c JSP等问题效果较好 关于模拟退火算法的详细介绍 xff0c 可以参考这里模拟退火算法
  • MATLAB图像的读取和显示

    MATLAB图像的读取和显示 更新日期2021 06 08更新内容修正一些文字错误 xff0c 优化排版 直接看代码吧 xff0c 注释写的很清楚了 span class token operator span 图像读取 xff0c 参数为
  • 图像的点运算1

    图像的点运算MATLAB实例代码 span class token operator span span class token operator span 图像的点运算 span class token number 1 span spa
  • 二维插值-MATLAB

    二维插值与MATLAB实例解析 一 插值节点为网格节点二 插值节点为散乱节点Addition xff1a xff08 1 xff09 学会查看matlab帮助文档 xff08 2 xff09 matlab脚本类型 xff08 3 xff09
  • 曲线拟合-最小二乘法

    线性最小二乘法及matlab例程 线性最小二乘法 曲线拟合 xff1a 已知平面上一组横坐标互不相同的点 xff0c 寻求一个函数 xff0c 使其与所有数据点最为接近 拟合函数 xff1a f x 61
  • 时间序列分析

    确定性时间序列分析方法 确定性时间序列分析方法 一 移动平均法二 指数平滑法1 一次指数平滑法2 二次指数平滑法3 三次指数平滑法 三 差分指数平滑法1 一阶差分指数平滑法2 二阶差分指数平滑模型 四 具有季节特点的时间序列的预测 时间序列
  • Linux系统下用Ventoy制作Windows启动盘

    Ubuntu 18 04 制作Windows10企业版启动盘 xff08 U盘 xff09 概要 ubuntu18 04 xff0c ros对应的是melodic版本 转回Windows下使用Robot Studio时 xff0c 由于系统
  • Ubuntu 18.04开机卡在grub,引导修复的2种实用方法

    解决ubuntu18 04开机卡在grub命令行界面的问题 前情概要 xff1a 由于windows重装系统 xff0c 导致ubunru18 04的引导出了问题 下面提供两种解决方案 xff0c 本人采用第二种方式成功修复 知识补充 xf
  • Modbus Slave学习笔记

    第一章 初识Modbus 1 1什么是Modbus 简而言之 xff0c Modbus通信协议是工业领域通信协议的业界标准 xff0c 并且是当前工业电子设备之间相当常用的连接方式之一 Modbus 协议是应用于电子控制器上的一种通用语言
  • command 'gcc' failed with exit status 1错误问题的解决办法

    在写Python代码的时候 xff0c 需要用到psutil模块 xff0c 需要安装 在安装psutil 模块的时候出现的问题 xff0c 重新安装了gcc等各种我能想到的 xff0c 不过还是不行 网上说是其实安装一个对应的devel环
  • Ubuntu 18.04 配置Ros melodic

    更新时间2021 04 09 ROS简介 1 添加ROS软件源 你可能对源的概念理解不深 xff0c 没关系 xff0c 先简单理解为系统获取资源的地址 xff0c 跟着做即可 设置软件源 xff1a 国外 xff1a sudo sh c
  • Linux进程管理(一) Linux进程的基本概念

    Linux进程的基本概念 最后更新时间2020 04 09 Ubuntu linux的所有任务都是在操作系统内核的调度下由CPU执行 xff0c 很多时候 xff0c Linux是将任务和进程的概念合在一起 进程的标准定义 xff1a 进程
  • Ubuntu wifi适配器未找到

    先蓝牙共享手机网络或在usb共享打开 软件与更新 xff0c 进入 附加驱动 选项卡 xff0c 如果网络正常 xff0c 且源设置正常 xff0c 一般能搜到对应的无线网卡驱动 xff0c 安装之后再重启电脑就可以了 要注意你的bois是
  • ROS简介

    1 什么是 ROS 机器人是一个系统工程 xff0c 它涉及机械 电子 控制 通信 软件等诸多学科 以前 xff0c 开发一个机器人需要设计机械 画电路板 写驱动程序 设计通信架构 组装集成 调试 以及编写各种感知决策和控制算法 xff0c
  • Linux用户及权限管理(一)用户和组

    更新时间2020 04 09 1 ubuntu 用户系统概述 ubuntu linux 是一个多用户多任务的分时操作系统 任何一个要使用系统资源的用户 xff0c 都必须先要向系统管理员申请一个账号 xff0c 然后以这个账号的身份进入系统
  • Linux用户及权限管理(二)用户和组管理命令

    更新时间2020 05 12 在第一节中将了图形界面的用户管理 xff0c 本节讲解与用户和组管理相关的shell命令 1 配置文件 第一节中讲到 etc passwd文件 xff0c 它记录了当前操作系统中所有用户的基本信息 xff1a
  • Linux用户及权限管理(三)权限管理

    更新时间2020 05 13 在使用windows的时候关于权限管理的操作不多 xff0c 大家遇到比较多的应该是 xff1a 使用管理员身份才能正常运行某个程序 xff0c 或者删除某个文件 xff1b hosts文件无法修改 xff0c
  • C# 快速入门笔记

    最后更新时间2020 04 10 C 快速入门精简笔记 Chapter 0 前言Chapter 1 基础1 1 简介1 2 环境1 3 程序结构1 4 基本语法1 5 数据类型1 5 1 value types1 5 2 Reference
  • MATLAB的一点小tips

    更新时间2020 04 15 目录 1 matlab运算符2 matlab特殊变量和常量3 matlab保存工作区4 who 和whos5 长任务6 format 1 matlab运算符 运算符目的 43 加 xff1b 加法运算符 减 x
  • MATLAB矩阵和数组相关函数解析

    更新时间2020 04 15 未完结 目录 1 总表2 简单示例2 1 zeros2 2 ones2 3 rand2 4 true and false2 5 eye 1 总表 点击表中函数名可以跳转至官方网站查看精确英文解析 xff0c 也

随机推荐

  • HTTPS、SSL、TLS三者之间的联系和区别

    SSL Secure Socket Layer 安全套接层 是基于HTTPS下的一个协议加密层 xff0c 最初是由网景公司 xff08 Netscape xff09 研发 xff0c 后被IETF xff08 The Internet E
  • Word论文公式的两个格式问题

    更新时间2020 04 16 1 公式居中 xff0c 编号右对齐 solution xff1a 编写一个样式 xff0c 一劳永逸 你要居中 xff0c 你要右对齐 xff0c 先要有个参考 即你居中的 中 是哪里 xff0c 右对齐的
  • HTML- markdown版 江城子·乙卯正月二十日夜记梦

    江城子 乙卯正月二十日夜记梦 宋 苏轼 十年生死两茫茫 xff0c 不思量 xff0c 自难忘 千里孤坟 xff0c 无处话凄凉 纵使相逢应不识 xff0c 尘满面 xff0c 鬓如霜 夜来幽梦忽还乡 xff0c 小轩窗 xff0c 正梳妆
  • Keil μvision已停止工作?

    今天以及几周前我都遇到了这个问题 xff0c 提示消息都是一样的 xff0c Keil vision已停止工作 xff0c 接着keil就自己关闭了 我两次的原因不一样 1 第一次 用的是F407的板子 xff0c 排查了半天错误 xff0
  • 负数取余,取余和取模

    1 圆整 就是把一个小数或者说浮点数按某种规律近似为一个它左边或右边最近的一个整数 比如 xff1a 向负无穷圆整 span class token number 1 8 span span class token operator gt
  • [joint_state_publisher-3] process has died

    我是ROS melodic xff0c 其他版本应该一样的解决方法 去掉urdf xacro launch文件中的中文注释 xff0c 或者改为英文 xff0c 而且第一行不能有中文
  • Ubuntu 18.04安装N卡驱动

    1 原来 xff0c 是英特尔的集显 2 添加N卡驱动 检查是否有GPU显卡 xff0c 我电脑一张集显 xff0c 一张独显 xff0c 很清楚 如果不清楚的可以用 lspci grep i nvidia查看 xff1a linux202
  • ROS Melodic Arbotix报错

    ImportError dynamic module does not define module export function PyInit tf2 xff09 这是我做的内容 xff1a 1 创建一个四轮小车URDF模型 xff0c
  • Matlab画线性规划可行域

    线性规划什么的应该是运筹学的内容 xff0c 虽然数学建模比赛不会考这个 xff0c 但大家日常学习还是会遇到相关的问题 除了用单纯型法 xff0c 也可以用传统的画图法 xff0c 画出可行域 xff0c 再寻求可行解 可行域一般手画更快
  • 浅谈论文目录制作

    先来看咱们CSDN的目录 Markdown语句 xff1a 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 效果如下 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 我们论文中的目录道理也是一样 xff0c 无非就是
  • Linux文件系统(一)文件系统基本概念

    文件系统基本概念 1 文件系统概述2 文件系统的类型 xff08 1 xff09 ext系列 xff08 2 xff09 Reiserfs 3 Ubuntu文件系统的结构 xff08 1 xff09 概述 xff08 2 xff09 路径
  • 47、基于51单片机万年历温度闹钟农历阳历LCD 12864显示系统设计

    摘要 本文介绍了基于STC89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法 本设计由数据显示模块 温度采集模块 时间处理模块和调整设置模块四个模块组成 系统以STC89C52单片机为控制器 xff0c 以串行时钟日历芯片DS13
  • Linux文件系统(二)交换分区

    1 交换分区的概念 2 交换分区的管理
  • Linux文件系统(三)文档压缩及解压缩

    1 文档压缩概述 2 图形化归档工具 3 命令行工具
  • Linux文件系统(四)文件系统管理命令

    1 文件系统的基本操作 2 目录的基本操作 3 查看文件内容 4 文件类型 5 查询文件 6 其他管理命令
  • EndNote文献管理(一)雾里看花

    简介
  • EndNote文献管理(二)基操勿六

    1 创建文献数据库并添加文献1 1创建文献数据库1 2在线检索1 3批量导入1 4导入知网文献 2 文献管理2 1文献标记与排序2 2文献速览与下载全文2 3文献阅读与批注 3 编辑参考文献格式 1 创建文献数据库并添加文献 1 1创建文献
  • SQL Server(2019) 实验一 数据库和表的建立

    数据库和表的建立 一 实验目的二 实验内容和要求2 1 数据库的创建 2 2 表的创建 查看 修改和删除 2 2 1 xff0e 表的创建 2 2 2 xff0e 向创建的表中添加数据记录 2 2 3 xff0e 修改表结构 xff08 找
  • SQL Server 中时间的几种表示

    在SQL Server中 xff0c 点开数据类型 xff0c 单单是时间这一类变量都有着多重数据类型 datetimetimestampdatetimedatetime2datetimeoffset 他们的显示效果如下 xff1a spa
  • SQL Server(2019) 实验二 单表查询

    单表查询 一 实验目的二 实验内容和要求2 1 表结构修改2 1 1 xff0e 在实验三的所建立的数据库中增加Teacher表 xff0c 结构如下 xff1a 2 1 2 xff0e 在实验三的所建立的数据库中增加Teaching表 x