數據庫(five day finally)——物物而不物于物,念念而不念于念。(數據庫到此結束!祝世間美好與各位不期而遇,善意常伴汝身!)

1.子查詢

(1)where 子查詢

①多行單列

配合innot in操作(類似于數據范圍查詢)

例:

顯示工資與各個經理相同的雇員信息(包含經理本身)。

select * from emp

where sal=(select sal from emp where job='MANAGER');

(2)HAVING 子查詢

伴隨著GROUP BY子句出現,在HAVING子句中子查詢的一般返回單行單列數據。

例:

查詢出平均工資最低的職位信息、此職位的人數。此職位的平均工資

SELECT job,COUNT(empno),AVG(sal)
FROM emp
GROUP BY job
HAVING AVG(sal)=(
SELECT MIN(asal)
FROM (SELECT AVG(sal) asal
FROM emp
GROUP BY job));

更簡便的做法:

SELECT job,COUNT(empno),AVG(sal)

FROM emp

GROUP BY job

ORDER BY AVG(sal) ASC

LIMIT 1;

(3)select 子查詢(很少用)

例:

顯示所有雇員的姓名、職位、部門名稱和部門位置。

方便演示,強行使用SELECT子查詢這種非主流子寫法:
關聯empdept兩個表進行多表查詢更簡便。

SELECT e.ename,e,job,

(SELECT dname FROM dept WHERE deptno=e.deptno),

(SELECT loc FROM dept WHERE deptno=e.deptno)

FROM emp e;

(4)from 子查詢

其用多表查詢也能實現效果,其主要目的是提升效率,提高查詢性能。

例:

查詢出每個部門的編號、名稱、位置、部門人數、平均工資。

多表查詢:

SELECT d.deptno,dname,loc,COUNT(empno),AVG(sal)

FROM dept d LEFT JOIN emp e

ON d.deptno=e.deptno

GROUP BY d.deptno;

其計數數據量:emp表14行,dept表4行;

? ? ? ? 14*4=56

from子查詢:

SELECT d.deptno,dname,loc,num,asal

FROM dept d LEFT JOIN

(

????????SELECT deptno,COUNT(empno) num,AVG(sal) asal

????????FROM emp

????????GROUP BY deptno

) temp

ON d.deptno = temp.deptno;

其計算數據量:

????????其子查詢先通過emp表查詢,對其進行整理分組為三組(14,3),再對dept表(4)進行配對。

? ? ? ? 14+3*4=26

2.更新操作

(1)數據的更新操作

(增、刪、改)

針對DML兩類

  • 查詢DQL

(執行順序:FROM-->WHERE-->GROUP BY-->HAVING-->SELECT-->ORDER BY-->LIMIT)

  • 更新增加刪除修改

復制表語句:

CREATE TABLE myemp AS SELECT * FROM emp;

刪除表語句:

drop table myemp;?

(2)插入數據

數據類型分類
  • 數字直接數字
  • 字符串使用單引號括起來表示
  • 日期
  • 符合格式字符串例如: '2025-07-16 14:10:00'
  • DATETIMEDATE函數返回值

SQLite數據類型還有:

插入數據語法格式

INSERT INTO 表名稱[(字段,字段,...)] VALUES(,);

其有兩種寫法:

①可省略null部分,只需字段與值一一對應。

②省略字段部分,但不可省略null且得按表順序寫值。

如:

insert into myemp (empno,ename,job,hiredate,sal,deptno)?

values (1314,'GOUSHENG','PRESIDENT',

DATETIME('now','localtime'),6666,40);

insert into myemp

values (5200,'MARRY','SECRETARY',

DATETIME('now','localtime'),3000,99999,40);

(3)修改數據

語法

UPDATE 表名稱 SET 字段=,字段=,... [WHERE 更新條件(s)]

如果不寫WHERE表示修改所有數據

例:

? ? ? ? 1.將所有銷售的基本工資修改為2000

UPDATE myemp SET sal=2000 WHERE job='SALESMAN';

? ? ? ? 2.將公司最早雇傭的雇員的基本工資增長20%

UPDATE myemp SET sal=sal*1.2 
WHERE hiredate=(SELECT MIN(hiredate)
FROM myemp);

? ? ? ? 3.將公司基本工資最低的雇員的基本工資修改為公司的平均工資。

--公司的最低基本工資
SELECT MIN(sal) FROM myemp;
--公司的平均工資
SELECT AVG(sal) FROM myemp;
--嵌套
UPDATE myemp SET sal=(SELECT AVG(sal) FROM myemp)
WHERE sal=(SELECT MIN(sal) FROM myemp);

? ? ? ? 4.將所有雇員的雇傭日期修改為今天。

UPDATE myemp SET hiredate=DATETIME('now','localtime');

(4)刪除數據

語法

DELETE FROM 表名稱 [WHERE 刪除條件(s)];

如果不寫WHERE表示刪除所有數據

例:

? ? ? ? 1.刪除公司工資最高的雇員。

DELETE FROM myemp 
WHERE sal=(SELECT MAX(sal) FROM myemp);

? ? ? ? 2.刪除沒有領導的雇員。

DELETE FROM myemp WHERE mgr IS NULL;

? ? ? ? 3.刪除所有雇員。

DELETE FROM myemp;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91860.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91860.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91860.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【甲烷數據集】Sentinel-5P 衛星獲取的全球甲烷數據集-TROPOMI L2 CH?

目錄 數據概述 傳感器 & 衛星信息 監測目標:甲烷(CH?) 數據產品內容 空間與時間覆蓋 云篩選與協同觀測 技術文檔資源 數據下載 Python 代碼繪制 CH4 數據 參考 數據概述 Sentinel-5 Precursor Level 2 Methane (TROPOMI L2 CH?) 數據集是由歐洲哥白尼計劃的 Sentinel…

【數據結構】單鏈表練習(有環)

1.判斷是否是環形鏈表 141. 環形鏈表 - 力扣(LeetCode) bool hasCycle(struct ListNode *head) {struct ListNode *fast,*slow;fastslowhead;while(fast&&fast->next){fastfast->next->next;slowslow->next;if(fastslow)return tr…

VR 污水廠初體驗:顛覆傳統認知?

第一次戴上 VR 設備走進 VR 污水廠時,那種震撼的感覺至今難以忘懷。仿佛一瞬間,我被傳送到了一個全新的世界,平日里只能在圖紙或實地看到的污水廠,此刻就立體地呈現在眼前。腳下是縱橫交錯的管道,頭頂巨大的處理設備有…

父類 div 自適應高度 子類如何撐滿其高度

使用絕對定位 如果你想要子元素完全撐滿父元素的高度&#xff0c;可以使用絕對定位。這種方法適用于當子元素需要完全覆蓋父元素時。<div class"parent"><div class"child"><!-- 子類內容 --></div> </div>.parent {positio…

從0開始學習R語言--Day51--PH檢驗

在用cox回歸做分析時&#xff0c;我們一般會得出各種變量在結局的風險影響&#xff08;HR大于1&#xff0c;就代表變量值增大&#xff0c;對應結局影響的風險就隨之增大&#xff09;&#xff0c;但是這里有個壞處是&#xff0c;cox回歸得到的是瞬時風險值&#xff0c;我們最多得…

Docker 網絡原理

Linux 常見網絡虛擬化 虛擬網卡:tun/tap虛擬網卡&#xff08;又稱虛擬網絡適配器&#xff09;&#xff0c;即用軟件模擬網絡環境&#xff0c;模擬網絡適配器。在計算機網絡中&#xff0c;tun 與 tap 是操作系統內核中的虛擬網絡設備。不同于普通靠硬件網絡適配器實現的設備&…

【通識】PCB文件

1. PCB文件的導入 在PORTEL99 PCB編輯器的文件菜單中選擇導入先前繪制的CAD文件。導入成功后&#xff0c;編輯器將顯示出元件封裝的基本圖形&#xff0c;為后續操作奠定基礎。將需要抄板的PCB放置于掃描儀中隨后啟動掃描儀&#xff0c;之后啟動AUTO CAD軟件&#xff0c;之后插入…

分布式彈性故障處理框架——Polly(1)

1 前言之服務雪崩 在我們實施微服務之后&#xff0c;服務間的調用變得異常頻繁&#xff0c;多個服務之前可能存在互相依賴的關系&#xff0c;當某個服務出現故障或者是因為服務間的網絡出現故障&#xff0c;導致服務調用的失敗&#xff0c;進而影響到某個業務服務處理失敗&…

【機器學習深度學習】大模型推理速度與私有化部署的價值分析

目錄 前言 一、主流推理框架速度對比 二、為什么 HuggingFace 框架更適合微調驗證&#xff1f; 三、大模型私有化部署的必要性分析 ? 私有化部署的主要動因 1. 數據隱私與業務安全 2. 可控性與性能保障 ? 哪些情況不建議私有部署&#xff1f; 四、總結與選型建議 &…

elementui-admin構建

1、vue-element-admin vue-element-admin是基于element-ui 的一套后臺管理系統集成方案。 功能&#xff1a;介紹 | vue-element-adminA magical vue adminhttps://panjiachen.github.io/vue-element-admin-site/zh/guide/# GitHub地址&#xff1a;https://github.com/PanJia…

深入排查:編譯環境(JDK)與運行環境(JRE/JDK)不一致時的常見 Java 錯誤及解決方案

深入排查&#xff1a;編譯環境&#xff08;JDK&#xff09;與運行環境&#xff08;JRE/JDK&#xff09;不一致時的常見 Java 錯誤及解決方案 在后端 Java 項目中&#xff0c;編譯環境&#xff08;JDK&#xff09; 與 運行環境&#xff08;JRE/JDK&#xff09; 版本不一致&…

[JS逆向] 微信小程序逆向工程實戰

博客配套代碼與工具發布于github&#xff1a;微信小程序 &#xff08;歡迎順手Star一下?&#xff09; 相關爬蟲專欄&#xff1a;JS逆向爬蟲實戰 爬蟲知識點合集 爬蟲實戰案例 逆向知識點合集 前言&#xff1a; 微信小程序對于很多嘗試JS逆向的人群來說&#xff0c;都是一個…

基于5G系統的打孔LDPC編碼和均勻量化NMS譯碼算法matlab性能仿真

目錄 1.引言 2.算法仿真效果演示 3.數據集格式或算法參數簡介 4.算法涉及理論知識概要 4.1打孔技術 4.2 均勻量化NMS譯碼 5.參考文獻 6.完整算法代碼文件獲得 1.引言 在5G通信系統中&#xff0c;信道編碼技術是保障高速率、高可靠性數據傳輸的核心支撐&#xff0c;而低…

基于Java標準庫讀取CSV實現天地圖POI分類快速導入PostGIS數據庫實戰

目錄 前言 一、天地圖POI分類簡介 1、數據表格 2、分類結構 二、從CSV導入到PG數據庫 1、CSV解析流程 2、數據轉換及入庫 3、入庫成果及檢索 三、總結 前言 在之前的博客中&#xff0c;曾經對高德地圖和百度地圖的POI分類以及使用PostGIS數據庫來進行管理的模式進行了詳…

人-AI交互中的信息論不同于傳統的信息論,其信息的增量≠不確定性的減量

在人機交互&#xff08;Human-AI Interaction, HAI&#xff09;領域&#xff0c;信息論的應用確實與傳統的信息論有所不同。這種差異主要源于人機交互HAI中信息的復雜性、動態性以及人類認知的特點。1. 傳統信息論的核心概念傳統信息論由克勞德香農&#xff08;Claude Shannon&…

K8s 通過 Scheduler Extender 實現自定義調度邏輯

1. 為什么需要自定義調度邏輯 什么是所謂的調度? 所謂調度就是指給 Pod 對象的 spec.nodeName 賦值 待調度對象則是所有 spec.nodeName 為空的 Pod 調度過程則是從集群現有的 Node 中為當前 Pod 選擇一個最合適的 實際上 Pod 上還有一個平時比較少關注的屬性&#xff1a;…

7.19 換根dp | vpp |滑窗

lcr147.最小棧通過兩個棧 維護實現class MinStack { public:stack<int> A, B;MinStack() {}void push(int x) {A.push(x);if(B.empty() || B.top() > x)B.push(x);}void pop() {if(A.top() B.top())B.pop();A.pop();}int top() {return A.top();}int getMin() {retur…

以太坊的心臟與大腦:詳解執行客戶端(EL)與共識客戶端(CL)

好的&#xff0c;各位技術同道&#xff0c;歡迎再次光臨我的博客。在上一篇文章中&#xff0c;我們聊了如何搭建一個以太坊測試節點&#xff0c;并提到了節點需要同時運行“執行客戶端”和“共識客戶端”。很多朋友對此表示了濃厚興趣&#xff0c;想深入了解這兩者究竟是什么&a…

Debian-10,用glibc二進制預編譯包,安裝Mysql-5.7.44 筆記250716

Debian-10,用glibc二進制預編譯包,安裝Mysql-5.7.44 筆記250716 &#x1f4e6; 一步腳本 #!/bin/bash### 安裝依賴 apt install -y libaio1 libnuma1 libncurses5### 下載MySQL-5.7.44 的 glib二進制包: mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz ,(如果不存在) mkdir…

用邏輯回歸(Logistic Regression)處理鳶尾花(iris)數據集

# 導入必要的庫 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from…