數據庫造神計劃第六天---增刪改查(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
英文地址,請注明出處:http://en.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;存放在存儲介質上的數據集合重要概念&#…