100條常用SQL語句

一、基本查詢語句

查詢所有數據:
SELECT * FROM 表名;

查詢特定列:
SELECT 列名1, 列名2 FROM 表名;

條件查詢:
SELECT * FROM 表名 WHERE 條件;

模糊查詢:
SELECT * FROM 表名 WHERE 列名 LIKE ‘模式%’;

排序查詢:
SELECT * FROM 表名 ORDER BY 列名 ASC|DESC;

限制返回行數:
SELECT * FROM 表名 LIMIT 10;

去重查詢:
SELECT DISTINCT 列名 FROM 表名;

二、聚合與分組

聚合函數 - 計數:
SELECT COUNT(*) FROM 表名;

分組查詢:
SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;

條件分組:
SELECT 列名, COUNT() FROM 表名 GROUP BY 列名 HAVING COUNT() > 1;

計算總和:
SELECT SUM(列名) FROM 表名;

計算平均值:
SELECT AVG(列名) FROM 表名;

計算最大值:
SELECT MAX(列名) FROM 表名;

計算最小值:
SELECT MIN(列名) FROM 表名;

三、數據操作

插入數據:
INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2);

批量插入數據:
INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2), (值3, 值4);

更新數據:
UPDATE 表名 SET 列名 = 新值 WHERE 條件;

刪除數據:
DELETE FROM 表名 WHERE 條件;

四、表操作

創建表:
CREATE TABLE 表名 (列名1 數據類型, 列名2 數據類型);

刪除表:
DROP TABLE 表名;

修改表結構:
ALTER TABLE 表名 ADD 列名 數據類型;

刪除表中的列:
ALTER TABLE 表名 DROP COLUMN 列名;

重命名表:
ALTER TABLE 舊表名 RENAME TO 新表名;

五、索引與視圖

創建索引:
CREATE INDEX 索引名 ON 表名 (列名);

刪除索引:
DROP INDEX 索引名;

創建視圖:
CREATE VIEW 視圖名 AS SELECT * FROM 表名;

刪除視圖:
DROP VIEW 視圖名;

六、連接查詢
內連接:
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;

左連接:
SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;

右連接:
SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;

全連接:
SELECT * FROM 表1 FULL OUTER JOIN 表2 ON 表1.列名 = 表2.列名;

七、子查詢與集合

子查詢:
SELECT * FROM 表名 WHERE 列名 IN (SELECT 列名 FROM 其他表名);

存在查詢:
SELECT * FROM 表名 WHERE EXISTS (SELECT 1 FROM 其他表名 WHERE 條件);

聯合查詢:
SELECT 列名 FROM 表1 UNION SELECT 列名 FROM 表2;

八、日期與時間

獲取當前時間:
SELECT NOW();

獲取當前日期:
SELECT CURDATE();

日期加法:
SELECT DATE_ADD(日期, INTERVAL 1 DAY);

日期減法:
SELECT DATE_SUB(日期, INTERVAL 1 DAY);

格式化日期:
SELECT DATE_FORMAT(日期, ‘%Y-%m-%d’);

九、字符串處理

字符串連接:
SELECT CONCAT(列名1, 列名2) FROM 表名;

字符串長度:
SELECT LENGTH(列名) FROM 表名;

字符串截取:
SELECT SUBSTRING(列名, 1, 5) FROM 表名;

查找字符串位置:
SELECT LOCATE(‘子串’, 列名) FROM 表名;

大寫轉換:
SELECT UPPER(列名) FROM 表名;

小寫轉換:
SELECT LOWER(列名) FROM 表名;

去除空格:
SELECT TRIM(列名) FROM 表名;

十、其他高級功能

使用CASE語句:
SELECT 列名, CASE WHEN 條件 THEN ‘值1’ ELSE ‘值2’ END FROM 表名;

使用IF語句:
SELECT 列名, IF(條件, ‘值1’, ‘值2’) FROM 表名;

使用COALESCE函數:
SELECT COALESCE(列名, ‘默認值’) FROM 表名;

使用NULLIF函數:
SELECT NULLIF(列名1, 列名2) FROM 表名;

獲取唯一值的數量:
SELECT COUNT(DISTINCT 列名) FROM 表名;

使用GROUP_CONCAT:
SELECT GROUP_CONCAT(列名) FROM 表名 GROUP BY 其他列名;

十一、事務管理

事務開始:
BEGIN;

提交事務:
COMMIT;

回滾事務:
ROLLBACK;

十二、游標與存儲過程
創建游標:
DECLARE 游標名 CURSOR FOR SELECT 列名 FROM 表名;

打開游標:
OPEN 游標名;

獲取游標數據:
FETCH 游標名 INTO 變量名;

關閉游標:
CLOSE 游標名;

創建存儲過程:
CREATE PROCEDURE 存儲過程名 AS BEGIN … END;
調用存儲過程:

CALL 存儲過程名();

十三、函數與觸發器
創建函數:
CREATE FUNCTION 函數名() RETURNS 數據類型 AS BEGIN … END;

調用函數:
SELECT 函數名();

創建觸發器:
CREATE TRIGGER 觸發器名 BEFORE INSERT ON 表名 FOR EACH ROW SET 新列 = ‘值’;

刪除觸發器:
DROP TRIGGER 觸發器名;

十四、系統信息查詢
查詢當前用戶:
SELECT CURRENT_USER();

查詢當前數據庫:
SELECT DATABASE();

查詢表的行數和大小:
SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA = ‘數據庫名’;

獲取表的創建時間:
SELECT CREATE_TIME FROM information_schema.TABLES WHERE TABLE_NAME = ‘表名’;

獲取表的修改時間:
SELECT UPDATE_TIME FROM information_schema.TABLES WHERE TABLE_NAME = ‘表名’;

十五、其他實用查詢

使用LIMIT與ORDER BY結合:
SELECT * FROM 表名 ORDER BY 列名 LIMIT 10;

查詢表的外鍵約束:
SELECT CONSTRAINT_NAME, TABLE_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = ‘數據庫名’;

查詢表的主鍵約束:
SELECT CONSTRAINT_NAME, TABLE_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = ‘數據庫名’ AND CONSTRAINT_TYPE = ‘PRIMARY KEY’;

使用ROLLUP進行分組匯總:
SELECT 列名, SUM(列名2) FROM 表名 GROUP BY 列名 WITH ROLLUP;

獲取前N條記錄:
SELECT * FROM 表名 LIMIT N;

獲取最后N條記錄:
SELECT * FROM 表名 ORDER BY 列名 DESC LIMIT N;

使用NOT EXISTS進行條件判斷:
SELECT * FROM 表名 WHERE NOT EXISTS (SELECT 1 FROM 其他表名 WHERE 條件);

使用IN進行條件判斷:
SELECT * FROM 表名 WHERE 列名 IN (值1, 值2);

使用NOT IN進行條件判斷:
SELECT * FROM 表名 WHERE 列名 NOT IN (值1, 值2);

使用UNION ALL:
SELECT 列名 FROM 表1 UNION ALL SELECT 列名 FROM 表2;

十六、性能優化

使用EXPLAIN分析查詢:
EXPLAIN SELECT * FROM 表名 WHERE 條件;

優化索引:
CREATE INDEX 索引名 ON 表名 (列名);

使用臨時表:
CREATE TEMPORARY TABLE 臨時表名 AS SELECT * FROM 表名;

查詢表的索引:
SHOW INDEX FROM 表名;

查詢數據庫版本:
SELECT VERSION();

十七、常見錯誤處理

捕獲錯誤:
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN … END;

輸出錯誤信息:
SELECT ERROR_MESSAGE();

使用事務處理錯誤:
BEGIN; – 開始事務
– 執行SQL語句
– 如果有錯誤,ROLLBACK

十八、數據備份與恢復
備份數據庫:
mysqldump -u 用戶名 -p 數據庫名 > 備份文件.sql

恢復數據庫:
mysql -u 用戶名 -p 數據庫名 < 備份文件.sql

十九、數據導入與導出

導入數據:
LOAD DATA INFILE ‘文件路徑’ INTO TABLE 表名;

導出數據:
SELECT * INTO OUTFILE ‘文件路徑’ FROM 表名;

二十、常用工具與命令

顯示當前數據庫:
SELECT DATABASE();

顯示所有數據庫:
SHOW DATABASES;

顯示所有表:
SHOW TABLES;

顯示表結構:
DESCRIBE 表名;

顯示當前連接信息:
SHOW PROCESSLIST;

顯示數據庫使用情況:
SELECT table_schema AS ‘數據庫’, SUM(data_length + index_length) / 1024 / 1024 AS ‘大小(MB)’ FROM information_schema.TABLES GROUP BY table_schema;

顯示表的行數:
SELECT COUNT(*) FROM 表名;

顯示用戶權限:
SHOW GRANTS FOR ‘用戶名’@‘主機名’;

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

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

相關文章

Visual Studio編譯WPF項目生成的文件介紹

文章目錄一、Summarize主要輸出文件1. **可執行文件 (.exe)**2. **程序集文件 (.dll)**3. **PDB 文件 (.pdb)**資源與配置文件1. **XAML 編譯文件 (.baml)**2. **資源文件 (.resources)**3. **應用程序配置文件 (.config)**依賴文件1. **引用的 NuGet 包**2. **引用的框架程序集…

「Chrome 開發環境快速屏蔽 CORS 跨域限制詳細教程」*

Chrome 開發環境快速屏蔽 CORS 跨域限制【超詳細教程】 &#x1f4e2; 為什么需要臨時屏蔽 CORS&#xff1f; 在日常前后端開發中&#xff0c;我們經常會遇到這樣的報錯&#xff1a; Access to fetch at https://api.example.com from origin http://localhost:3000 has been …

Linux命令大全-df命令

一、簡介df&#xff08;英文全拼&#xff1a;display free disk space&#xff09; 命令用于顯示或查看文件系統&#xff08;或磁盤&#xff09;的空間使用情況&#xff0c;包括總容量、已用空間、可用空間、使用率和掛載點等信息。二、語法df [選項]... [文件]...參數參數說明…

《程序員修煉之道》第一二章讀書筆記

最近在看《程序員修煉之道&#xff1a;通向務實的最高境界》這一本書&#xff0c;記錄一下看書時的一點淺薄感悟。務實程序員不僅是一種技能水平的體現&#xff0c;更是一種持續修煉、不斷反思并主動承擔責任的過程。對自己的行為負責是務實哲學的基石之一。在重構CRM時面對文檔…

ArcGISPro應用指南:使用ArcGIS Pro創建與優化H3六邊形網格

H3 是由 Uber 開發的一個開源地理空間分析框架&#xff0c;旨在通過將地球表面劃分為等面積的六邊形網格來支持各種地理空間數據分析任務。每個六邊形單元在 H3 系統中都有一個獨一無二的標識符&#xff0c;即 H3 指數。這種網格系統不僅能夠覆蓋全球&#xff0c;而且適用于任何…

xss-dom漏洞

目錄 靶場搭建 第一關 第二關 第三關 第四關 第五關 第六關 第七關 第八關 靶場下載地址&#xff1a;https://github.com/PwnFunction/xss.pwnfunction.com 靶場搭建 將文件用clone 下載到ubuntu&#xff0c; 然后進入 cd xss.pwnfunction.com/hugo/ 這個目錄下 hu…

BPE(字節對編碼)和WordPiece 是什么

BPE(字節對編碼)和WordPiece 是什么 BPE(字節對編碼)和WordPiece 是自然語言處理中常用的子詞分詞算法,它們通過將文本拆分為更小的語義單元來平衡詞匯表大小和表達能力。 BPE(Byte Pair Encoding,字節對編碼) 原理 初始化:將文本按字符(或Unicode字節)拆分為最小…

Java行為型模式---狀態模式

狀態模式基礎概念狀態模式&#xff08;State Pattern&#xff09;是一種行為型設計模式&#xff0c;其核心思想是允許對象在內部狀態發生改變時改變它的行為&#xff0c;對象看起來好像修改了它的類。狀態模式將狀態相關的行為封裝在獨立的狀態類中&#xff0c;并將狀態轉換邏輯…

重學Framework Input模塊:如何實現按鍵一鍵啟動Activity-學員作業

需求背景&#xff1a; 近來vip群里學員朋友有問道一個需求&#xff0c;大概需求就是他們做TV的Framework開發&#xff0c;想要遙控器有一個新定義的兒童節目按鍵&#xff0c;想要實現這個按鍵按下后就跳轉到兒童節目的Activity。需求拆解及作業要求&#xff1a; 針對上面需求&a…

bmp圖像操作:bmp圖像保存及raw與bmp轉換

1. 保存bmp圖像&保存一張正弦圖像到D:\1.bmp /********************************************** * fileName bmpinc.h * brief 對bmp文件的操作&#xff0c;包括&#xff1a; * - saveBmp&#xff1a;保存bmp文件 * - Save…

SpringAI——提示詞(Prompt)、提示詞模板(PromptTemplate)

Prompt 是引導 AI 模型生成特定輸出的輸入格式&#xff0c;Prompt 的設計和措辭會顯著影響模型的響應。最開始Prompt只是單純的文本文字&#xff0c;后面可以包含占位符&#xff0c;可以識別消息的角色。比如包含占位符的Prompt,也就是我們講的消息模板(PromptTemplate)&#x…

【深度學習筆記 Ⅰ】5 參數和超參數

在深度學習中&#xff0c;參數&#xff08;Parameters&#xff09; 和 超參數&#xff08;Hyperparameters&#xff09; 是模型訓練中兩個核心概念&#xff0c;它們共同決定了模型的性能&#xff0c;但作用方式和優化方法截然不同。以下是詳細對比與解析&#xff1a;1. 參數&am…

Linux 阻塞等待框架

在 Linux 設備驅動開發中&#xff0c;阻塞機制 是處理資源暫時不可用&#xff08;如設備未準備好數據、緩沖區滿等&#xff09;的核心手段。驅動程序可以將被阻塞的進程設置成休眠狀態&#xff0c;然后&#xff0c;在資源可用后&#xff0c;再將該進程喚醒。 在 Linux 驅動開發…

PCIe RAS學習專題(3):AER內核處理流程梳理

目錄 一、AER內核處理整體流程梳理 二、AER代碼重要部分梳理 1、AER初始化階段 2、中斷上半部 aer_irq 3、中斷下半部 aer_isr 3.1、aer_isr_one_error 3.2、find_source_device 3.3、aer_process_err_devices 3.4、handle_error_source 3.5、pcie_do_recovery 整體邏…

?HAProxy負載均衡集群概述

前言&#xff1a; 在現代分布式系統中&#xff0c;負載均衡和高可用性是保障服務穩定性和性能的關鍵技術。HAProxy 作為一款高性能的 TCP/HTTP 負載均衡器&#xff0c;憑借其輕量級、高并發處理能力和靈活的配置機制&#xff0c;成為構建高可用架構的核心組件之一。通過智能的流…

ELN:生物醫藥科研的數字化引擎——衍因科技引領高效創新

在生物醫藥研究領域&#xff0c;實驗數據的準確記錄與管理是科研成敗的關鍵。想象一個場景&#xff1a;某頂尖醫學院實驗室&#xff0c;研究員小張正為一項抗癌藥物實驗焦頭爛額。紙質記錄本中&#xff0c;數據混亂、協作困難&#xff0c;導致實驗重復率高達20%。引入衍因科技的…

暑假---作業2

學習目標&#xff1a;xss-1abs 1-8關python美現自動化布爾自注的2、代碼進行優化(二分查找)學習內容&#xff1a;1.xss-1abs 1-8關1<h2 align"center">歡迎用戶test</h2>2 <script> alert (1)</script&gt<center> <form action&…

【Tensor數據轉換】——深度學習.Torch框架

目錄 1 Tensor與Numpy 1.1 張量轉Numpy 1.2 Numpy轉張量 1 Tensor與Numpy 1.1 張量轉Numpy 調用numpy()方法可以把Tensor轉換為Numpy&#xff0c;此時內存是共享的。 使用copy()方法可以避免內存共享 import torch import numpy as np# tensor轉numpy:numpy() def test0…

基于Tranformer的NLP實戰(5):BERT實戰-基于Pytorch Lightning的文本分類模型

文本分類作為自然語言處理中的基礎任務&#xff0c;能夠幫助我們將海量醫學摘要自動歸類到具體疾病領域中。本文將基于NVIDIA NeMo框架&#xff0c;構建一個用于醫學疾病摘要分類的深度學習應用&#xff0c;支持將摘要劃分為三類&#xff1a;癌癥類疾病、神經系統疾病及障礙、以…

14-鏈路聚合

鏈路聚合技術 一 鏈路聚合概述鏈路聚合定義鏈路聚合是把多條物理鏈路聚合在一起&#xff0c;形成一條邏輯鏈路。應用在交換機、路由器、服務器間鏈路。分為三層鏈路聚合和二層鏈路聚合。二 鏈路聚合的作用 1. 鏈路聚合模式靜態聚合模式 端口不與對端設備交互信息。選擇參考端口…