SQL數(shù)據(jù)庫(kù)的所有命令(函數(shù)、運(yùn)算符)匯總大全
結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)簡(jiǎn)稱SQL,結(jié)構(gòu)化查詢語(yǔ)言是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。sql語(yǔ)句就是對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的一種語(yǔ)言。
1、SELECT選擇語(yǔ)句
該SELECT語(yǔ)句用于從數(shù)據(jù)庫(kù)中選擇數(shù)據(jù)。返回的數(shù)據(jù)存儲(chǔ)在一個(gè)結(jié)果表中,稱為結(jié)果集。
SELECT 語(yǔ)法:
SELECT column1, column2, ...
此處,column1、column2、… 是要從中選擇數(shù)據(jù)的表的字段名稱。如果要選擇表中的所有可用字段,請(qǐng)使用以下語(yǔ)法:
SELECT * FROM table_name;
SELECT column1, column2, ...
2、INSERT INTO 插入語(yǔ)句
該INSERT INTO語(yǔ)句用于在表中插入新記錄。
INSERT語(yǔ)法
可以INSERT INTO 用兩種方式編寫語(yǔ)句:
1- 指定要插入的列名和值:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
2-如果要為表的所有列添加值,則無(wú)需在 SQL 查詢中指定列名。但是,請(qǐng)確保值的順序與表中的列順序相同。在這里, INSERT INTO語(yǔ)法如下:
INSERT INTO table_name VALUES (value1, value2, value3, ...);
3、UPDATE更新語(yǔ)句
UPDATE語(yǔ)句用于修改表中的現(xiàn)有記錄。
UPDATE 語(yǔ)法:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
注意: 更新表中的記錄時(shí)要小心!注意 WHERE語(yǔ)句中的子句UPDATE。該WHERE子句指定應(yīng)該更新哪些記錄。如果省略該WHERE子句,表中的所有記錄都將被更新!
4、DELETE刪除語(yǔ)句
該DELETE語(yǔ)句用于刪除表中的現(xiàn)有記錄。
刪除語(yǔ)法
DELETE FROM table_name WHERE condition;
注意: 刪除表中的記錄時(shí)要小心!注意 WHERE語(yǔ)句中的子句 DELETE。該WHERE條款指定應(yīng)刪除哪些記錄。如果省略該WHERE子句,表中的所有記錄都將被刪除!
5、ORDER BY 關(guān)鍵字
該ORDER BY關(guān)鍵字用于按升序或降序?qū)Y(jié)果集進(jìn)行排序。ORDER BY默認(rèn)情況下,關(guān)鍵字按升序?qū)τ涗涍M(jìn)行排序。要按降序?qū)τ涗涍M(jìn)行排序,請(qǐng)使用 DESC關(guān)鍵字。
ORDER BY 語(yǔ)法
SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC;
6、TOP、LIMIT、FETCH FIRST 或 ROWNUM限制子句
SELECT TOP子句用于指定要返回的記錄數(shù)。SELECT TOP子句在具有數(shù)千條記錄的大表上很有用。返回大量記錄會(huì)影響性能。
注意: 并非所有數(shù)據(jù)庫(kù)系統(tǒng)都支持該 SELECT TOP子句。MySQL 支持LIMIT子句選擇有限數(shù)量的記錄,而 Oracle 使用FETCH FIRST n ROWSONLYROWNUM
Server / MS 訪問(wèn)語(yǔ)法:
SELECT TOP number|percent column_name(s) FROM table_name WHERE condition;
MySQL 語(yǔ)法:
SELECT column_name(s) FROM table_name WHERE condition LIMIT number;
Oracle 12 語(yǔ)法:
SELECT column_name(s) FROM table_name ORDER BY column_name(s) FETCH FIRST number ROWS ONLY;
7、MIN() 和 MAX()函數(shù)求最大最小值
MIN()函數(shù)返回所選列的最小值。MAX()函數(shù)返回所選列的最大值。
MIN() 語(yǔ)法
SELECT MIN(column_name) FROM table_name WHERE condition;
MAX() 語(yǔ)法
SELECT MAX(column_name) FROM table_name WHERE condition;
8、COUNT()、AVG() 和 SUM()函數(shù)
COUNT()函數(shù)返回與指定條件匹配的行數(shù)。
SELECT COUNT(column_name) FROM table_name WHERE condition;
AVG()函數(shù)返回?cái)?shù)字列的平均值。
SELECT AVG(column_name) FROM table_name WHERE condition;
SUM()函數(shù)返回?cái)?shù)字列的總和。
SELECT SUM(column_name) FROM table_name WHERE condition;
9、GROUP BY語(yǔ)句
該GROUP BY語(yǔ)句將具有相同值的行分組為匯總行,例如“查找每個(gè)國(guó)家/地區(qū)的客戶數(shù)量”。
該GROUP BY語(yǔ)句通常與聚合函數(shù) ( COUNT(), MAX(), MIN(), SUM(), AVG()) 一起使用, 以按一列或多列對(duì)結(jié)果集進(jìn)行分組。
語(yǔ)法:
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);
10、HAVING 子句
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s);
11、AND、OR 和 NOT 運(yùn)算符
該WHERE子句可以結(jié)合 AND,OR和 NOT操作。在AND與OR操作用于基于多個(gè)條件篩選記錄:
該AND操作顯示一個(gè)記錄,如果所有條件滿足 AND 為真。
所述OR操作顯示一個(gè)記錄,如果任何一個(gè)條件滿足OR為真。
該NOT操作顯示,如果條件(S)是不正確的記錄。
AND 語(yǔ)法
SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3 ...;
OR語(yǔ)法
SELECT column1, column2, ... FROM table_name WHERE condition1 OR condition2 OR condition3 ...;
NOT語(yǔ)法
SELECT column1, column2, ... FROM table_name WHERE NOT condition;
12、LIKE運(yùn)算符
該LIKE運(yùn)算符在 WHERE子句中用于搜索列中的指定模式。有兩個(gè)通配符經(jīng)常與 LIKE運(yùn)算符結(jié)合使用:
百分號(hào) (%) 代表零、一個(gè)或多個(gè)字符
下劃線 () 代表一個(gè),單個(gè)字符
但是呢注意: MS Access 使用星號(hào) (*) 代替百分號(hào) (%),使用問(wèn)號(hào) (?) 代替下劃線 ()
當(dāng)然百分號(hào)和下劃線也可以組合使用!
SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern;
提示:您還可以使用 AND或OR運(yùn)算符組合任意數(shù)量的條件。
13、IN運(yùn)算符
IN運(yùn)算符允許您在 WHERE子句中指定多個(gè)值。
IN操作是針對(duì)多個(gè)速記 OR條件。
SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);
14、BETWEEN 之間運(yùn)算符
在BETWEEN操作者選擇一個(gè)給定的范圍內(nèi)的值。值可以是數(shù)字、文本或日期。
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
15、JOIN連接
JOIN子句用于行從兩個(gè)或更多表根據(jù)它們之間的相關(guān)列結(jié)合。
INNER JOIN內(nèi)連接關(guān)鍵字
INNER JOIN關(guān)鍵字選擇在兩個(gè)表中具有匹配值的記錄。
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
LEFT JOIN 左連接 關(guān)鍵字
LEFT JOIN關(guān)鍵字返回左表 (table1) 中的所有記錄,以及右表 (table2) 中的匹配記錄。如果沒(méi)有匹配項(xiàng),則結(jié)果是右側(cè)的 0 條記錄。
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
RIGHT JOIN右連接 關(guān)鍵字
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
FULL OUTER JOIN 關(guān)鍵字
FULL OUTER JOIN和 FULL JOIN是一樣的。
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name WHERE condition;
16、AS 別名使用
別名列語(yǔ)法
SELECT column_name AS alias_name FROM table_name;
別名表語(yǔ)法
SELECT column_name(s) FROM table_name AS alias_name;
17、EXISTS 運(yùn)算符
EXISTS運(yùn)算符用于測(cè)試子查詢中是否存在任何記錄。
EXISTS運(yùn)算符返回true,如果子查詢返回一個(gè)或多個(gè)記錄。
SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition);
18、NULL 空值
具有 NULL 值的字段是沒(méi)有值的字段。如果表中的字段是可選的,則可以在不向該字段添加值的情況下插入新記錄或更新記錄。然后,該字段將保存為 NULL 值。
注意: NULL 值不同于零值或包含空格的字段。具有 NULL 值的字段是在創(chuàng)建記錄期間留空的字段!
如何測(cè)試 NULL 值?
無(wú)法使用比較運(yùn)算符(例如 =、< 或 <>)測(cè)試 NULL 值。我們將不得不改用IS NULL和 IS NOT NULL運(yùn)算符。
IS NULL 語(yǔ)法
SELECT column_names FROM table_name WHERE column_name IS NULL;
IS NOT NULL 語(yǔ)法
SELECT column_names FROM table_name WHERE column_name IS NOT NULL;
19、通配符*?!等
在搜索數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),SQL 通配符可以替代一個(gè)或多個(gè)字符。
SQL 通配符必須與 LIKE 運(yùn)算符一起使用。
在 SQL 中,可使用以下通配符:
通配符 | 描述 |
---|---|
% | 代表零個(gè)或多個(gè)字符 |
_ | 僅替代一個(gè)字符 |
[charlist] | 字符列中的任何單一字符 |
[^charlist] 或者 [!charlist] | 不在字符列中的任何單一字符 |
使用 % 通配符
我們希望從上面的 "Persons" 表中選取居住在以 "Ne" 開始的城市里的人:
SELECT * FROM Persons WHERE City LIKE 'Ne%'
使用 _ 通配符
我們希望從 "Persons" 表中選取的這條記錄的姓氏以 "C" 開頭,然后是一個(gè)任意字符,然后是 "r",然后是一個(gè)任意字符,然后是 "er":
SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'
使用 [charlist] 通配符
我們希望從上面的 "Persons" 表中選取居住的城市以 "A" 或 "L" 或 "N" 開頭的人:
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
我們希望從上面的 "Persons" 表中選取居住的城市不以 "A" 或 "L" 或 "N" 開頭的人:
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'
到此這篇關(guān)于SQL數(shù)據(jù)庫(kù)的所有命令(函數(shù)、運(yùn)算符)匯總大全的文章就介紹到這了,更多相關(guān)SQL命令大全內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Windows下自動(dòng)備份PostgreSQL的教程
這篇文章主要介紹了在Windows下自動(dòng)備份PostgreSQL的教程,主要通過(guò)編寫一個(gè)簡(jiǎn)單的批處理腳本,需要的朋友可以參考下2015-04-04Navicat如何導(dǎo)出所有的查詢數(shù)據(jù)的方法
這篇文章主要介紹了Navicat如何導(dǎo)出所有的查詢數(shù)據(jù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11當(dāng)數(shù)據(jù)庫(kù)變慢時(shí)的解決方法
當(dāng)數(shù)據(jù)庫(kù)變慢時(shí),我們應(yīng)如何入手,下面的解決方法。2009-04-04Access轉(zhuǎn)SqlServer的注意事項(xiàng)
Access轉(zhuǎn)SqlServer的注意事項(xiàng),需要的朋友可以參考下。2007-02-02關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)概述與優(yōu)缺點(diǎn)對(duì)比
這篇文章介紹了關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)概述與優(yōu)缺點(diǎn)對(duì)比,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03通過(guò)DBeaver連接Phoenix操作hbase的方法
DBeaver?可通過(guò)?JDBC?連接到數(shù)據(jù)庫(kù),可以支持幾乎所有的數(shù)據(jù)庫(kù)產(chǎn)品,本文介紹常用一種通用數(shù)據(jù)庫(kù)工具Dbeaver,通過(guò)DBeaver連接Phoenix操作hbase的操作,需要的朋友跟隨小編一起看看吧2021-11-11數(shù)據(jù)庫(kù)中的左連接(left join)和右連接(right join)區(qū)別
關(guān)于左連接和右連接總結(jié)性的一句話,左連接 where只影向右表,右連接where只影響左表2012-06-06數(shù)據(jù)庫(kù)的三級(jí)模式和兩級(jí)映射介紹
在這里大家一定要注意三級(jí)模式中的概念模式對(duì)應(yīng)的是數(shù)據(jù)庫(kù)設(shè)計(jì)的邏輯模型,而不是概念模型(E-R模型),一定不要弄混了2012-10-10postgresql 按小時(shí)分表(含觸發(fā)器)的實(shí)現(xiàn)方式
這篇文章主要介紹了postgresql 按小時(shí)分表(含觸發(fā)器)的實(shí)現(xiàn)方式,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01數(shù)據(jù)庫(kù)sql查詢性能優(yōu)化詳解
這篇文章主要介紹了數(shù)據(jù)庫(kù)sql查詢性能優(yōu)化詳解,查詢優(yōu)化的本質(zhì)是讓數(shù)據(jù)庫(kù)優(yōu)化器為SQL語(yǔ)句選擇最佳的執(zhí)行計(jì)劃,對(duì)于大型的應(yīng)用系統(tǒng),大量的數(shù)據(jù)當(dāng)然需要效率最快的執(zhí)行語(yǔ)句,需要的朋友可以參考下2023-07-07