数据库复试—SQL查询举例

数据库复试—SQL查询举例(续)

单表查询实例

查询年龄在20到23岁之间的学生信息

select * from student where sage between 20 and 30;
+-----------+-------+------+------+-------+
| Sno       | Sname | Ssex | Sage | Sdept |
+-----------+-------+------+------+-------+
| 201215121 | 李勇  ||   20 | CS    |
+-----------+-------+------+------+-------+

查询计算机系数学系的学生信息
使用关键字in常忽略

select * from student where sdept in('CS','MA');
+-----------+-------+------+------+-------+
| Sno       | Sname | Ssex | Sage | Sdept |
+-----------+-------+------+------+-------+
| 201215121 | 李勇  ||   20 | CS    |
| 201215123 | 王敏  ||   18 | MA    |
+-----------+-------+------+------+-------+

模糊查询实例

复习:模糊查询规则:

  • %表示任意长度的字符串
  • _表示长度为1的字符
  • escape :对关键字进行忽略

查询所有姓刘的学生

select * from student where sname like '刘%';
+-----------+-------+------+------+-------+
| Sno       | Sname | Ssex | Sage | Sdept |
+-----------+-------+------+------+-------+
| 201215122 | 刘晨  ||   19 | IS    |
+-----------+-------+------+------+-------+

查询第二个字为阳的所有学生

 select * from student where sname like '_阳%';
Empty set

空值查询

在sc表中查询成绩为空的信息

select sno,cno from sc where grade is NULL;

多重条件查询

多重条件查询即使用and或or进行

查询计算机系年龄在20岁以下的学生

select * from student where sdept='CS' and sage<=20;
+-----------+-------+------+------+-------+
| Sno       | Sname | Ssex | Sage | Sdept |
+-----------+-------+------+------+-------+
| 201215121 | 李勇  ||   20 | CS    |
+-----------+-------+------+------+-------+

orderby语句与聚合函数

  • 查询中涉及到排序操作

查询选修了三号课程的学号和成绩,按照成绩降序排列

select sno,grade from sc where cno=3 order by grade desc;
+-----------+-------+
| sno       | grade |
+-----------+-------+
| 201215121 |    88 |
| 201215122 |    80 |
+-----------+-------+

常用的聚合函数

  • COUNT
  • SUM
  • AVG
  • MAX
  • MIN

查询所有学生的人数

select count(*) from student;
+----------+
| count(*) |
+----------+
|        4 |
+----------+

查询选修了课程的学生人数(去重操作)

 select count(distinct sno) from sc;
+---------------------+
| count(distinct sno) |
+---------------------+
|                   2 |
+---------------------+

groupby分组查询语句

求各个课程号相应的人数

select count(sno) cno from sc group by cno;
+-----+
| cno |
+-----+
|   1 |
|   2 |
|   2 |
+-----+

使用分组查询的过程中需要注意合乎逻辑

having子句查询

selecth的后面只能出现分组或者聚合函数

查询选修了1门以上课程的学生的学号(单表查询)

select sno from sc group by sno having count(*) >1;
+-----------+
| sno       |
+-----------+
| 201215121 |
| 201215122 |
+-----------+

错误语法实例

select sno from sc where count(*)>1 group by sno;
1111 - Invalid use of group function

查询平均成绩大于70的学生学号和成绩

中间注意用逗号进行列之间的分隔

select Sno AVG(`grade`) from sc group by Sno having AVG(`grade`) >= 85;
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(`grade`) from sc group by Sno having AVG(`grade`) >= 85' at line 1
mysql> 
select sno,AVG(grade) from sc group by sno having AVG(Grade)>70;
+-----------+------------+
| sno       | AVG(grade) |
+-----------+------------+
| 201215121 | 88.3333    |
| 201215122 | 85.0000    |
+-----------+------------+

多表查询—连接查询

多表查询的分类

  • 等值与非等值连接查询
  • 自身连接
  • 外连接

字段存在奇异的通过表名来进行改写表名.字段

查询每个学生及选修课的情况(全连接进行显示)

 select student.*,sc.* from student,sc where sc.sno = student.sno;
+-----------+-------+------+------+-------+-----------+-----+-------+
| Sno       | Sname | Ssex | Sage | Sdept | Sno       | Cno | Grade |
+-----------+-------+------+------+-------+-----------+-----+-------+
| 201215121 | 李勇  ||   20 | CS    | 201215121 | 1   |    92 |
| 201215121 | 李勇  ||   20 | CS    | 201215121 | 2   |    85 |
| 201215121 | 李勇  ||   20 | CS    | 201215121 | 3   |    88 |
| 201215122 | 刘晨  ||   19 | IS    | 201215122 | 2   |    90 |
| 201215122 | 刘晨  ||   19 | IS    | 201215122 | 3   |    80 |
+-----------+-------+------+------+-------+-----------+-----+-------+

查询每个学生及选修课的情况(自然连接进行显示)

 select student.*,cno,grade from student,sc where sc.sno = student.sno;
+-----------+-------+------+------+-------+-----+-------+
| Sno       | Sname | Ssex | Sage | Sdept | cno | grade |
+-----------+-------+------+------+-------+-----+-------+
| 201215121 | 李勇  ||   20 | CS    | 1   |    92 |
| 201215121 | 李勇  ||   20 | CS    | 2   |    85 |
| 201215121 | 李勇  ||   20 | CS    | 3   |    88 |
| 201215122 | 刘晨  ||   19 | IS    | 2   |    90 |
| 201215122 | 刘晨  ||   19 | IS    | 3   |    80 |
+-----------+-------+------+------+-------+-----+-------+
5 rows in set (0.05 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/662801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Django-ninja】django ninja中使用查询过滤器FilterSchema

Django ORM中过滤器 filter的基本用法 filter() 是 QuerySet 对象的一个方法&#xff0c;用于从数据库中过滤数据。它接受一个或多个关键字参数&#xff0c;每个参数都表示一个查询条件&#xff0c;它们之间是 AND 关系。 以下是 filter() 方法的基本用法示例&#xff1a; fr…

基于springboot+vue的旅游管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究现状…

mysql - 笔记

对于C++开发者来说,连接MySQL数据库的库也有几个选择。以下是一些支持Windows和Linux的MySQL C++库: MySQL Connector/C++: MySQL Connector/C++是MySQL官方提供的C++连接器库,它提供了对MySQL数据库的高性能访问。它支持Windows和Linux系统,并提供了面向对象的API,使得与…

Flutter 各种Demo效果合集

Flutter 各种Demo实现效果&#xff1a; github&#xff1a;GitHub - PangHaHa12138/FlutterDemo: Flutter 各种Demo效果合集 1&#xff1a;2种 仿朋友圈 效果,顶部拉伸 和 不拉伸 2&#xff1a;仿抖音上下滑动视频播放 3&#xff1a;视频直播&#xff08;使用的电视台的m3u…

Linux查询日志命令

Linux查询日志 常见的问题排查有&#xff0c;k8s、arthas、堡垒机… 找到本电脑的 longs 日志文件夹&#xff0c;里面有error 日志… 常见的错误日志查看命令有&#xff1a; -- 查询错误日志 所有的错误日志 cat error.2024-02-02 -- 指定过滤条件 cat error.2024-02-02…

考研经验总结——考试期间

文章目录 一、订房二、看考场三、休息四、考前带宾馆的书五、安全 一、订房 我刚刚看了看&#xff0c;是9.10号订的酒店。你们可以提前向学长学姐打听你的考场在哪个学校&#xff08;徐州的考生&#xff0c;考省外的学校是在矿大考试&#xff0c;考省内的学校是在江师大&#…

Apache SeaTunnel (不含web) Window11 本机搭建(非源码)

启动环境 需要提前准备的(只提供作者试过且可行的方案) window11ubuntu20(wsl2) window11内置ubuntu的方式自行百度&#xff0c;此处不做陈述jdk8mysql8navicatvscode 环境准备不做过多陈述&#xff0c;以下是正式的安装启动步骤 SeaTunnel 2.3.3 资源准备 第一步: 创建文件…

spring常用语法

etl表达式解析 if (rawValue ! null && rawValue.startsWith("#{") && entryValue.endsWith("}")) { // assume its spel StandardEvaluationContext context new StandardEvaluationContext(); context.setBeanResolver(new Be…

Task05:PPO算法

本篇博客是本人参加Datawhale组队学习第五次任务的笔记 【教程地址】https://github.com/datawhalechina/joyrl-book 【强化学习库JoyRL】https://github.com/datawhalechina/joyrl/tree/main 【JoyRL开发周报】 https://datawhale.feishu.cn/docx/OM8fdsNl0o5omoxB5nXcyzsInGe…

vs +cmake 开发的注意

vs自动生成的cmake 项目在项目顶目录会有 一个cmakepresets.json文件 在cmake文档里 该文件是对cmake的某些变量进行提前预设. 引入标头的问题: CMAKE_BUILD_TYPE 设置为Release vs不会自动给你找标头 甚至不会给你自动提示 设置为 Debug 即可 在cmake 项目里面 如果对某…

Redis的big key问题介绍以及监控手段

本文目录&#xff1a; 1、big key的定义及问题 2、2023年实际生产事故 3、监控手段 4、预防手段 &#xff08;一&#xff09;big key的定义及产生的问题 Redis 的big key是指value占用内存空间较大的键值。通常&#xff0c;针对不同的数据类型会用元素个数或者占用空间大小…

2024年混合云:趋势和预测

混合云环境对于 DevOps 团队变得越来越重要&#xff0c;主要是因为它们能够弥合公共云资源的快速部署与私有云基础设施的安全和控制之间的差距。这种环境的混合为 DevOps 团队提供了灵活性和可扩展性&#xff0c;这对于大型企业中的持续集成和持续部署 (CI/CD) 至关重要。 在混…

基于springboot+vue的阿博图书馆管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

JRE和JVM的区别

JRE&#xff08;Java Runtime Environment&#xff0c;Java运行环境&#xff09;和JVM&#xff08;Java Virtual Machine&#xff0c;Java虚拟机&#xff09;是Java运行时环境的重要组成部分&#xff0c;它们之间主要有以下区别&#xff1a; 功能不同&#xff1a;JRE是Java运行…

Pandas 数据结构 – Pandas CSV 文件

Pandas CSV 文件 CSV&#xff08;Comma-Separated Values&#xff0c;逗号分隔值&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;。 CSV 是一种通用的、…

06. 【Linux教程】终端工具

Linux 终端工具 前面介绍了如何安装虚拟机&#xff0c;还介绍了如何在虚拟机上安装 CentOs 操作系统&#xff0c;并且给 CentOs 配置了局域网固定 ip&#xff0c;那么此时的 CentOs 相当于是在局域网的一台服务器了&#xff0c;虚拟机上面已经自带终端工具&#xff0c;实际业务…

上传upload及显示img图片预览、删除

上传图片文件a-upload html部分 <div className="clearfix"><a-upload:custom-request="customRequest"listType="picture-card":fileList="fileList":onPreview="handlePreview":on-remove="del">&…

day39_mysql

今日内容 0 复习昨日 1 DML 2 约束 3 DQL 0 复习昨日 1 什么是数据库(Database)? 用来组织,存储,管理数据的仓库 2 什么是数据库管理系统(Database Management System-DBMS)? 用来管理数据库的一个软件 3 数据库分类 关系型数据库,Oracle,Mysql,SqlServer,DB2非关系数据库,Re…

【android】 android->profile 查看内存泄露

目录 实例讲解 各字段解释 实例讲解 各字段解释 在 Android Studio 的 Profile 视图中&#xff0c;Arrange by Stack 用于对内存分配和释放事件进行堆栈排列&#xff0c;以便更好地了解内存使用情况。以下是表上各列的一般含义&#xff1a; 1. **Call Chart (调用图)**: …

【Qt】—— Qt Creator 创建项目

目录 &#xff08;一&#xff09;Qt Creator概览 &#xff08;二&#xff09;使⽤Qt Creator新建项⽬ &#xff08;一&#xff09;Qt Creator概览 从开始菜单或者快捷⽅式打开Qt Creator集成开发环境&#xff0c;启动之后看到类似下⾯的界⾯&#xff1a; 【解释说明】 菜单栏…