数据库造神计划第六天---增删改查(CRUD)(2)

      🔥个人主页:寻星探路

🎬作者简介:Java研发方向学习者

📖个人专栏:《从青铜到王者,就差这讲数据结构!!!》、 《JAVA(SE)----如此简单!!!》、《数据库那些事!!!》

⭐️人生格言:没有人生来就会编程,但我生来倔强!!!


目录

一、Retrieve 检索

1、where条件查询

1.1语法

1.2比较运算符

1.3逻辑运算符

1.4示例

1.4.1基本查询

1.4.2AND和OR

1.4.3范围查询

1.4.4模糊查询

1.4.5NULL的查询

2、Order by排序

2.1语法

2.2示例


续接上一话:

一、Retrieve 检索

1、where条件查询

        查询的时候,指定条件,符合条件的行被查询出来,不符合条件的就跳过~~

1.1语法

SELECTselect_expr [, select_expr] ... [FROM table_references]WHERE where_condition

1.2比较运算符

#注:

(1)NULL可以参与运算,但是运算结果都是NULL

(2)(NULL==NULL=>NULL=>false)(NULL<=>NULL=>true)

(3)我们谈到区间,大多数时候都是“前闭后开”,但是between and是“前闭后闭”!!!

1.3逻辑运算符

1.4示例

1.4.1基本查询

        查询英语不及格的同学及英语成绩(<60)

select name, english from exam where english < 60;

条件查询执行过程:
        1)遍历这个表的每一行数据~~
        2)把这一行数据, 代入到条件中
        3)如果条件成立(true),此时把这个行加入到结果集合中,如果条件不成立(false),这一行直接跳过
        4)当完成所有的遍历过程之后,此时得到了结果集合,还需要根据 select 指定的列/表达式/别名/去重操作
        5)再针对结果集合做进一步处理~~

        查询语文成绩高于英语成绩的同学

select name, chinese, english from exam where chinese > english;

        总分在200分以下的同学

select name, chinese + math + english as 总分 from exam where chinese + math + english < 200;

1.4.2AND和OR

        查询语文成绩大于80分且英语成绩大于80分的同学

select * from exam where chinese > 80 and english > 80;

        查询语文成绩大于80分或英语成绩大于80分的同学

select * from exam where chinese > 80 OR english > 80;

        观察AND和OR的优先级

select * from exam where chinese > 80 or math > 70 and english > 70;

select * from exam where (chinese > 80 or math > 70) and english > 70;

        由此可见,and优先级要更高一些,但是和前面一样,尽量加括号,不要去记优先级

1.4.3范围查询

        语文成绩在[80,90]分的同学及语文成绩

# 使⽤BETWEEN AND 实现
select name, chinese from exam where chinese between 80 and 90;
# 使⽤ AND 实现
select name, chinese from exam where chinese >= 80 and chinese <= 90;

        数学成绩是78或者79或者98或者99分的同学及数学成绩

# 使⽤IN实现
select name, math from exam where math in (78, 79, 98, 99);
# 使⽤OR实现
select name, math from exam where math = 78 or math = 79 or math = 98 or math = 99;

#注:

        between and 描述的是连续的区间~~
        in 描述的是离散的集合~~

1.4.4模糊查询

%:0个或者任意个任意字符
_:1 个任意字符

        查询所有姓孙的同学

select * from exam where name like '孙%';

        查询姓孙且姓名共有两个字同学

 select * from exam where name like '孙_';

#注:SQL 使用 like 进行模糊匹配, 通常是一个"低效操作"

        SQL 的模糊匹配功能其实是非常弱的~~
        编程圈子中,对于模糊匹配, 有一套成熟的解决方案,正则表达式~~

例:

1.4.5NULL的查询

        构造数据

 # 写⼊⼀条数据,英语成绩为NULLinsert into exam values (8, '张⻜', 27, 0, NULL);

        查询英语成绩为NULL的记录     

        查询英语成绩不为NULL的记录

 # 使⽤is not null
select * from exam where english is not null;

        NULL与其他值进行运算结果为NULL

 # 观察结果中的总分
select name, chinese + math + english as 总分 from exam;

#注:

(1)WHERE条件中可以使用表达式,但不能使用别名

(2)AND的优先级高于OR,在同时使用时,建议使用小括号()包裹优先执行的部分

(3)过滤NULL时不要使用等于号(=)与不等于号(!=,<>)

(4)NULL与任何值运算结果都为NULL

2、Order by排序

        sql 执行结果,得到的顺序,mysql是不做任何承诺的,咱们在编程的时候,不能依赖返回结果的默认顺序,后续一系列的增删改查操作,就可能破坏默认的顺序!!!

2.1语法

-- ASC 为升序(从⼩到⼤)
-- DESC 为降序(从⼤到⼩)
-- 默认为 ASC 
SELECT ... FROM table_name [WHERE ...] ORDER BY {col_name | expr } [ASC | DESC], ... ;

2.2示例

        按数学成绩从低到高排序(升序)

select name, math from exam order by math asc;

        按语⽂成绩从高到低排序(降序)

select name, chinese from exam order by chinese desc;

        按英语成绩从高到低排序

 select name, english from exam order by english desc;

        查询同学各门成绩,依次按数学降序,英语升序,语⽂升序的方式显示

select name, math, english, chinese from exam order by math desc, english asc, chinese asc;

#注:

        查询同学及总分,由高到低排序

select name, chinese + math + english from exam order by chinese + math + english desc;

        可以使用列的别名进行排序

select name, chinese + math + english as 总分 from exam order by 总分 desc;

#注:sql 带有 order by, order by 执行是在列的表达式求值之后的~~
(1)遍历表,取出每一行~~
(2)把当前行代入到条件中,判定这一行是否要保留~~
(3)根据 select 的列名,把这里的列筛选出来/计算表达式的值/定义别名~~
(4)order by 排序~~

        所有英语成绩不为NULL的同学,按语文成绩从高到低排序

select * from exam where english is not null order by chinese desc;

#注:

(1)查询中没有order by子句,返回的顺序是未定义的,永远不要依赖这个顺序

(2)ORDERBY子句中可以使用列的别名进行排序

(3)NULL进行排序时,视为比任何值都小,升序出现在最上面,降序出现在最下面

(4)order by 的排序是针对临时表来展开的,和数据库服务器保存的原始数据,无关~~

        由于内容较多,会分为多篇讲解,预知后续内容,请看后续博客!!!

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

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

相关文章

使用Rust实现服务配置/注册中心

Conreg 使用 Rust 实现的配置与注册中心&#xff0c;参考了 Nacos 的设计&#xff0c;简单易用&#xff0c;使用 Raft 保证集群节点数据一致性。 支持的平台&#xff1a; UbuntuCentOS其他常见的 Linux 发行版&#xff08;我们使用 musl 编译&#xff0c;理论上支持所有主流…

三色标记算法

在 JVM 并发垃圾收集&#xff08;GC&#xff09;中&#xff0c;三色标记算法是实现 “GC 线程与用户线程并行执行” 的关键技术&#xff0c;它解决了并发场景下 “如何准确标记存活对象” 的核心问题&#xff0c;是 CMS、G1 等现代收集器的底层基础。一、三色标记的核心&#x…

OpenStack 管理与基础操作学习笔记(一):角色、用户及项目管理实践

OpenStack实验 OpenStack命令 admin-openrc.sh 进入管理员视图查看当前 OpenStack 中的项目列表&#xff0c;验证是否已经登录成功切换用户 修改文件切换用户上传文件切换用户OpenStack 认证管理 实验介绍 通过 OpenStack Dashboard 和 OpenStack CLI 两种方式创建角色、用户、…

直接查找试卷且可以免费下载

有什么网站可以直接查找试卷且可以免费下载&#xff1f; SearXNG开源元搜索引擎 This website shows the SearXNG public instances searx一个可定制的搜索引擎 分享一个基于Blockstack的DApp-searx,一个可定制的搜索引擎。 1- 链接 官网地址&#xff1a;https://searx.worl…

【独立版】智创云享知识付费小程序 v5.0.23+小程序 搭建教程

介绍智创云享知识付费小程序v5.0.23 含PC、小程序、H5 、前端&#xff0c;系统独立版已修复已知bug问题。框架是一款基于ThinkPHP框架开发的虚拟资源知识付费小程序&#xff0c;为广大创业者、自媒体及培训机构提供知识付费、内容付费、资源变现等领域的行业解决方案&#xff1…

布尔运算-区间dp

面试题 08.14. 布尔运算 - 力扣&#xff08;LeetCode&#xff09; Solution 这题的思路比较直接&#xff0c;就是枚举最后一个进行计算的运算符&#xff0c;但是在实现过程中需要注意&#xff0c;定义范式f(l,r)表示l到r范围&#xff0c;l和r必须为数字&#xff0c;l1,r-1为运…

MyBatis-Plus 扩展全局方法

1.文件内容package com.ruoyi.business.mybatisplus.base;import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.extension.service.IService;import java.util.List;/*** 扩展的 Service 接口* 所有自定义 Service 接口都需要继承此接口…

13.Linux OpenSSH 服务管理

文章目录Linux OpenSSH 服务管理环境准备OpenSSH 服务介绍SSH 介绍SSH 建立连接的过程加密类型双向加密过程使用 ssh 访问远端CLIssh 工具演示ssh工具配置文件配置 ssh 密钥认证ssh 故障模拟故障模拟排故故障自定义 SSH 服务配置文件禁止 root 登录禁止密码登录只允许特定用户登…

速通ACM省铜第五天 赋源码(MEX Count)

目录 引言&#xff1a; MEX Count 题意分析 逻辑梳理 代码实现 结语&#xff1a; 引言&#xff1a; 本来&#xff0c;今天我是想着出俩题或三题题解的&#xff0c;但是在打第一题的时候就天塌了&#xff0c;导致今天就只搓了一道题&#xff0c;这题的难度在CF中为1300的水准&…

【数据结构与算法-Day 27】堆的应用:从堆排序到 Top K 问题,一文彻底搞定!

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

企业即时通讯保障企业通讯安全,提升企业部门协作效率

在当今数字化转型的大潮中&#xff0c;企业即时通讯软件已从单纯的沟通工具&#xff0c;逐步演变为保障企业数据安全的核心基础设施。吱吱企业即时通讯软件通过“私有化部署全流程加密”的双重机制&#xff0c;为企业构建了一套集“通讯安全”与“部门协作”于一体的数字化解决…

《华为变革法:打造可持续进步的组织》读书笔记

推荐序一&#xff1a;变革是企业活下去的基础&#xff08;胡彦平&#xff09;华为前常务副总裁、变革指导委员会成员胡彦平在序言中强调&#xff0c;企业存续的核心命题是应对不确定性&#xff0c;而变革能力是破解这一命题的唯一答案。他以华为 30 余年的发展历程为例&#xf…

第二篇:排序算法的简单认识【数据结构入门】

排序算法的分类标准 时间复杂度分类 a. 简单排序算法&#xff1a;时间复杂度O(n)&#xff0c;冒泡排序、选择排序、插入排序&#xff1b; b. 高级排序算法&#xff1a;时间复杂度O(n logn)&#xff0c;快速排序、归并排序、堆排序&#xff1b; c. 线性排序算法&#xff1a;时间…

快速掌握Dify+Chrome MCP:打造网页操控AI助手

你是否曾经希望那些强大的开源大模型能更贴合你的专业领域&#xff0c;或者学会模仿你的行文风格&#xff1f;其实&#xff0c;实现这个目标的关键就在于“微调”。曾几何时&#xff0c;微调模型是大公司的专属游戏——动不动就需要几十张GPU和复杂的分布式训练技术。 而现在&…

单词记忆-轻松记忆10个实用英语单词(15)

1. repaint含义&#xff1a;重新油漆 读音标注&#xff1a;/ˌriːˈpeɪnt/ 例句&#xff1a;We need to repaint the walls after the repairs. 译文&#xff1a;修理完成后需要重新粉刷墙壁。 衍生含义&#xff1a;重新绘制&#xff08;图像场景&#xff09;&#xff1b;翻新…

visual studio快捷键

1.visual studio代码格式化快捷键 1.CtrlA&#xff08;全选&#xff09; 2.CtrlK 3.CtrlF2.多行注释 1.Ctrlk 2.Ctrlc2.多行取消注释 1.Ctrlk 2.Ctrlu

Django全栈班v1.04 Python基础语法 20250913 下午

练习&#xff1a;个人信息收集器 任务&#xff1a;创建一个个人信息收集和展示程序 要求&#xff1a; 收集用户的姓名&#xff0c;年龄&#xff0c;城市&#xff0c;爱好验证年龄输入&#xff0c;必须是正数格式化输出用户信息计算用户出生年份 name input("请输入姓名&a…

学习海康VisionMaster之字符缺陷检测

前言&#xff1a;差不多三个月没更新了&#xff0c;天天码代码&#xff0c;实在是太忙了&#xff0c;有时候也在想这么忙到底是不是工作方法的问题&#xff0c;怎么样才能变成大师呢&#xff01; 一&#xff1a;进一步学习 今天学习下VisionMaster中的字符缺陷检测&#xff1…

若依4.8.1打包war后在Tomcat无法运行,404报错的一个解决方法

背景 最近使用若依4.8.1进行二次开发&#xff0c;接着尝试打包成war包进行部署&#xff0c;结果出现了404&#xff0c;提示“HTTP状态 404 - 未找到&#xff0c;请求的资源[/ruoyi-admin/]不可用”&#xff0c;翻了网上的教程&#xff0c;包括看了官方的解疑都没有说到该情况。…

华清远见25072班网络编程学习day6

重点内容&#xff1a;数据库基本概念:数据&#xff08;Data&#xff09;&#xff1a;能够输入计算机并能被计算机程序识别和处理的信息集合数据 &#xff08;Database&#xff09;数据库是在数据库管理系统管理和控制之下&#xff0c;存放在存储介质上的数据集合重要概念&#…