SQL 速查手冊

前言:SQL(Structured Query Language)是用于管理關系型數據庫的標準語言,廣泛應用于數據查詢、更新、定義和管理等操作。本文將為你提供一份詳細的 SQL 速查手冊,涵蓋從基礎到高級的各種 SQL 操作,幫助你快速掌握和應用 SQL 技能。

一、查找數據的查詢

SELECT name AS "姓名" FROM users;
  • 功能:從 users 表中選擇 name 列,并將其顯示為“姓名”。
  • 詳解SELECT 指定要查詢的列,AS "姓名" 為查詢結果指定別名,FROM users 指定數據來源表。
范例:

假設 users 表如下:

idnameemail
1Alicealice@example.com
2Bobbob@example.com
3Charliecharlie@example.com

執行語句:

SELECT name AS "姓名" FROM users;

結果:

姓名
Alice
Bob
Charlie

二、修改數據的查詢

UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT';
  • 功能:將 IT 部門的員工工資提高 10%。
  • 詳解UPDATE 指定要更新的表,SET 指定要更新的列和值,WHERE 指定更新條件。
范例:

假設 employees 表如下:

idnamesalarydepartment
1Alice50000HR
2Bob60000IT
3Charlie55000Finance

執行語句:

UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT';

結果:

idnamesalarydepartment
1Alice50000HR
2Bob66000IT
3Charlie55000Finance

三、聚合查詢

SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 50000;
  • 功能:按部門分組,計算每個部門的平均工資,并篩選出平均工資大于 50000 的部門。
  • 詳解SELECT 指定要查詢的列,GROUP BY 按部門分組,HAVING 篩選條件。
范例:

假設 employees 表如下:

idnamesalarydepartment
1Alice50000HR
2Bob60000IT
3Charlie55000Finance
4David58000IT

執行語句:

SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 50000;

結果:

departmentavg_salary
IT59000

四、連接查詢

SELECT employees.name, departments.department_name 
FROM employees 
INNER JOIN departments 
ON employees.department_id = departments.id;
  • 功能:從 employeesdepartments 表中選擇匹配的行。
  • 詳解INNER JOIN 連接兩個表,ON 指定連接條件。
范例:

假設 employees 表如下:

idnamedepartment_id
1Alice1
2Bob2
3Charlie3

假設 departments 表如下:

iddepartment_name
1HR
2IT
3Finance

執行語句:

SELECT employees.name, departments.department_name 
FROM employees 
INNER JOIN departments 
ON employees.department_id = departments.id;

結果:

namedepartment_name
AliceHR
BobIT
CharlieFinance

五、視圖查詢

CREATE VIEW high_salary_employees AS SELECT name, salary FROM employees WHERE salary > 50000;
  • 功能:創建一個視圖,顯示工資高于 50000 的員工。
  • 詳解CREATE VIEW 創建視圖,AS 定義視圖的查詢。
范例:

假設 employees 表如下:

idnamesalary
1Alice50000
2Bob60000
3Charlie55000

執行語句:

CREATE VIEW high_salary_employees AS SELECT name, salary FROM employees WHERE salary > 50000;

查詢視圖:

SELECT * FROM high_salary_employees;

結果:

namesalary
Bob60000
Charlie55000

六、修改表的查詢

ALTER TABLE employees ADD COLUMN bonus DECIMAL(10,2);
  • 功能:向 employees 表中添加一個 bonus 列。
  • 詳解ALTER TABLE 修改表結構,ADD COLUMN 添加新列。
范例:

假設 employees 表如下:

idnamesalary
1Alice50000
2Bob60000
3Charlie55000

執行語句:

ALTER TABLE employees ADD COLUMN bonus DECIMAL(10,2);

結果:

idnamesalarybonus
1Alice50000NULL
2Bob60000NULL
3Charlie55000NULL

七、單表查詢

SELECT name, salary FROM employees WHERE salary > 50000;
  • 功能:從 employees 表中選擇工資高于 50000 的員工。
  • 詳解SELECT 指定要查詢的列,WHERE 指定查詢條件。
范例:

假設 employees 表如下:

idnamesalary
1Alice50000
2Bob60000
3Charlie55000

執行語句:

SELECT name, salary FROM employees WHERE salary > 50000;

結果:

namesalary
Bob60000
Charlie55000

八、多表查詢

SELECT employees.name, departments.department_name 
FROM employees, departments 
WHERE employees.department_id = departments.id;
  • 功能:從 employeesdepartments 表中選擇匹配的行。
  • 詳解FROM 指定兩個表,WHERE 指定連接條件。
范例:

假設 employees 表如下:

idnamedepartment_id
1Alice1
2Bob2
3Charlie3

假設 departments 表如下:

iddepartment_name
1HR
2IT
3Finance

執行語句:

SELECT employees.name, departments.department_name 
FROM employees, departments 
WHERE employees.department_id = departments.id;

結果:

namedepartment_name
AliceHR
BobIT
CharlieFinance

九、集合運算

SELECT name FROM employees WHERE department = 'HR' 
UNION 
SELECT name FROM employees WHERE department = 'IT';
  • 功能:返回 HRIT 部門的員工姓名。
  • 詳解UNION 合并兩個查詢結果。
范例:

假設 employees 表如下:

idnamedepartment
1AliceHR
2BobIT
3CharlieFinance
4DavidIT

執行語句:

SELECT name FROM employees WHERE department = 'HR' 
UNION 
SELECT name FROM employees WHERE department = 'IT';

結果:

name
Alice
Bob
David

十、子查詢

SELECT name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);
  • 功能:選擇工資高于平均工資的員工。
  • 詳解SELECT 指定要查詢的列,WHERE 中的子查詢計算平均工資。
范例:

假設 employees 表如下:

idnamesalary
1Alice50000
2Bob60000
3Charlie55000

執行語句:

SELECT name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);

結果:

name
Bob

十一、數據操作

INSERT INTO employees (name, salary, department) VALUES ('Eve', 52000, 'HR');
  • 功能:向 employees 表中插入一條新記錄。
  • 詳解INSERT INTO 插入新記錄,VALUES 指定插入的值。
范例:

假設 employees 表如下:

idnamesalarydepartment
1Alice50000HR
2Bob60000IT
3Charlie55000Finance

執行語句:

INSERT INTO employees (name, salary, department) VALUES ('Eve', 52000, 'HR');

結果:

idnamesalarydepartment
1Alice50000HR
2Bob60000IT
3Charlie55000Finance
4Eve52000HR

十二、數據定義

CREATE TABLE departments (id INT PRIMARY KEY,department_name VARCHAR(50)
);
  • 功能:創建一個 departments 表。
  • 詳解CREATE TABLE 創建表,PRIMARY KEY 指定主鍵。
范例:

執行語句:

CREATE TABLE departments (id INT PRIMARY KEY,department_name VARCHAR(50)
);

結果:成功創建 departments 表。

十三、擴展內容

EXPLAIN SELECT * FROM employees WHERE salary > 50000;
  • 功能:顯示查詢執行計劃。
  • 詳解EXPLAIN 用于分析查詢性能。
范例:

假設 employees 表如下:

idnamesalary
1Alice50000
2Bob60000
3Charlie55000

執行語句:

EXPLAIN SELECT * FROM employees WHERE salary > 50000;

結果:顯示查詢執行計劃,幫助優化查詢性能。

希望以上內容符合您的需求!

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

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

相關文章

IDEA 中 Scala 項目遠程連接虛擬機 Spark 環境

IDEA 中 Scala 項目遠程連接虛擬機 Spark 環境 1. 環境準備 確保虛擬機 Spark 環境正常運行 虛擬機中已安裝并啟動 Spark記錄虛擬機的 IP 地址和 Spark 端口(默認 7077)確保虛擬機防火墻允許相關端口訪問 本地 IDEA 環境配置 安裝 Scala 插件安裝 Spar…

.net core 項目快速接入Coze智能體-開箱即用-全局說明

目錄 一、Coze智能體的核心價值 二、開箱即用-效果如下 三 流程與交互設計 為什么要分析意圖,而不是全部交由AI處理。 四 接入前的準備工作 五:代碼實現----字節Coze 簽署 JWT和獲取Token .net core 項目快速接入Coze智能體-開箱即用 .net core快…

網店運營精細化突破新路徑

內容概要 電商戰場越來越卷,單純靠低價和流量轟炸已經玩不轉了。今天想要站穩腳跟,精細化運營才是破局密碼——從商品怎么選、用戶怎么留,到供應鏈怎么跑得更快,每個環節都得摳細節。比如用數據給選品“開天眼”,把用…

數據結構學習筆記 :線性表的鏈式存儲詳解

目錄 單鏈表 1.1 無頭單鏈表 1.2 有頭單鏈表單向循環鏈表雙鏈表 3.1 雙鏈表 3.2 雙向循環鏈表總結與對比 一、單鏈表 1. 無頭單鏈表(Headless Singly Linked List) 定義:鏈表無頭結點,直接由頭指針指向第一個數據節點。 特點&…

數據庫10(代碼相關語句)

while循環 declare avgprice numeric(10,2) set avgprice(select avg(price)from titles) //自定義參數 while avgprice<10 //循環條件 begin update titles set priceprice*1.1 end //循環語句操作&#xff0c;當avgprice<10,所有price都加0.1 case語句 查詢authors表…

Redis 下載與安裝(Windows版)

一、下載 1、redis官網&#xff1a; https://redis.io/downloads/ 2、Github下載地址&#xff1a; https://github.com/MicrosoftArchive/redis/releases 二、安裝 1、打開一個命令窗口&#xff0c;通過 cd 命令進入到你解壓的目錄 2、輸入命令 &#xff0c;啟動 Redis&…

在高數據速度下確保信號完整性的 10 個關鍵策略

隨著越來越多的傳感器連接到系統&#xff0c;需要快速、可靠和安全地傳輸更多數據&#xff0c;對帶寬和設計復雜性的需求也在增加。優先考慮的是確保從 A 發送到 B 的信號不會失真。 確保信號完整性 對于設計依賴于持續準確數據流的數據密集型應用程序的工程師來說&#xff0c…

NAT、代理服務、內網穿透

NAT、代理服務、內網穿透 1、NAT1.1、NAT過程1.2、NAPT2、內網穿透3、內網打洞3、代理服務器3.1、正向代理3.2、反向代理1、NAT 1.1、NAT過程 之前我們討論了IPv4協議中IP地址數量不充足的問題。NAT技術是當前解決IP地址不夠用的主要手段,是路由器的一個重要功能。 NAT能夠將…

利用互斥鎖或者利用邏輯過期解決緩存擊穿問題

緩存擊穿問題概述 緩存擊穿是指某個 熱點數據緩存過期 時&#xff0c;大量并發請求直接穿透緩存&#xff0c;同時訪問數據庫&#xff0c;導致數據庫壓力驟增甚至崩潰。以下是基于 互斥鎖 和 邏輯過期 的解決方案&#xff1a; 一、緩存擊穿的核心原因 熱點數據失效&#xff1a…

Vue3組合式API內核解析:從原子狀態到企業級架構

一、組合邏輯原子化設計 1.1 狀態管理層級拓撲 1.2 組合單元類型對照表 類型典型實現適用場景復用維度UI邏輯單元useForm/useTable表單/列表交互100%跨項目復用業務邏輯單元useOrderFlow訂單流程控制同項目跨模塊設備能力單元useGeolocation地理位置獲取跨技術棧復用狀態管理…

新生宿舍管理系統

收藏關注不迷路&#xff01;&#xff01; &#x1f31f;文末獲取源碼數據庫&#x1f31f; 感興趣的可以先收藏起來&#xff0c;還有大家在畢設選題&#xff08;免費咨詢指導選題&#xff09;&#xff0c;項目以及論文編寫等相關問題都可以給我留言咨詢&#xff0c;希望幫助更多…

從零上手GUI Guider學習LVGL——Button

視頻教程請關注我b站&#xff1a;同學_好好學習&#xff0c;這里只是做相應的筆記文稿 從零上手GUI Guider學習LVGL——Buttton 前言&#xff1a; 首先我們為什么要學習LVGL設計工具呢&#xff1f; 1 降低開發難度 2 提高開發效率 所以我們需要學習一款合適的設計工具 在b站很少…

【AAOS】【源碼分析】Car UX Restrictions

AAOS UX的核心理念:安全駕駛是駕駛員的首要責任。汽車制造商和應用程序開發人員的所有設計都必須反映這一優先事項。 AAOS平臺允許設備制造商(OEM)對不同駕駛狀態下的限制進行定制。 駕駛員分心指南 只有符合Driver Distraction Guidelines的應用才可以在駕駛過程中運行。…

jvm調優工具arthas(阿爾薩斯)安裝與使用---實踐

jvm調優工具arthas(阿爾薩斯)安裝與使用—實踐 Arthas 是Alibaba開源的Java診斷工具&#xff0c;深受開發者喜愛。 當你遇到以下類似問題而束手無策時&#xff0c;Arthas可以幫助你解決&#xff1a; 這個類從哪個 jar 包加載的&#xff1f;為什么會報各種類相關的 Exception…

機器學習期末

選擇題 以下哪項不是機器學習的類型&#xff1f; A. 監督學習 B.無監督學習 C.半監督學習 D.全監督學習 D 哪一個是機器學習的合理定義? A、機器學習是計算機編程的科學 B、機器學習從標記的數據中學習 C、機器學習是允許機器人智能行動的領域 D、機器學習能使計算機能夠在…

3DMAX粒子流樣條線生成器PFSpliner使用方法詳解

3DMAX粒子流樣條線生成器&#xff0c;是一款功能強大且富有創意的工具。它能夠為“粒子流源”的每一個粒子生成專屬的動畫樣條線&#xff0c;這些樣條線描繪出粒子在空間中的運動軌跡&#xff0c;就如同為粒子繪制出了一條條獨特的“運動地圖”。更為出色的是&#xff0c;這些樣…

Maven中clean、compil等操作介紹和Pom.xml中各個標簽介紹

文章目錄 前言Maven常用命令1.clean2.vaildate3.compile4.test5.package6.verify7.install8.site9.deploy pom.xml標簽詳解格式<?xml version"1.0" encoding"UTF-8"?>(xml版本和編碼)modelVersion&#xff08;xml版本&#xff09;groupId&#xff…

Centos7.6安裝JDK 1.8教程

前提&#xff1a;先把jdk1.8文件上傳到usr/local目錄下&#xff0c;文件名如&#xff1a;jdk-8u151-linux-x64.tar.gz 1. 解壓 JDK 壓縮包 假設 jdk-8u151-linux-x64.tar.gz 文件位于 /usr/local 目錄下。 進入 /usr/local 目錄&#xff1a; cd /usr/local 解壓文件&#…

EuroCropsML:首個面向少樣本時間序列作物分類的多國基準數據集

2025-04-15&#xff0c;由慕尼黑工業大學等機構創建的 EuroCropsML 數據集&#xff0c;這是一個結合了農民報告的作物數據與 Sentinel-2 衛星觀測的時間序列數據集&#xff0c;覆蓋了愛沙尼亞、拉脫維亞和葡萄牙。該數據集為解決遙感應用中作物類型數據空間不平衡問題提供了新的…

將python項目打包成Windows后臺服務

前文,我開發了一個基于windows11與本地deepseek實現的語音助手,之前是通過CMD直接執行項目的main.py文件。但是這樣不適合移植,現在想將其生成一個exe文件,以及部署成windows的后臺服務。 關于語音助手的開發與發布,可以看的CSDN文章:一個基于windows11與本地deepseek實…