SQL數(shù)據(jù)庫的所有命令(函數(shù)、運(yùn)算符)匯總大全
結(jié)構(gòu)化查詢語言(Structured Query Language)簡稱SQL,結(jié)構(gòu)化查詢語言是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。sql語句就是對數(shù)據(jù)庫進(jìn)行操作的一種語言。
1、SELECT選擇語句
該SELECT語句用于從數(shù)據(jù)庫中選擇數(shù)據(jù)。返回的數(shù)據(jù)存儲在一個(gè)結(jié)果表中,稱為結(jié)果集。
SELECT 語法:
SELECT column1, column2, ...
此處,column1、column2、… 是要從中選擇數(shù)據(jù)的表的字段名稱。如果要選擇表中的所有可用字段,請使用以下語法:
SELECT * FROM table_name;
SELECT column1, column2, ...
2、INSERT INTO 插入語句
該INSERT INTO語句用于在表中插入新記錄。
INSERT語法
可以INSERT INTO 用兩種方式編寫語句:
1- 指定要插入的列名和值:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
2-如果要為表的所有列添加值,則無需在 SQL 查詢中指定列名。但是,請確保值的順序與表中的列順序相同。在這里, INSERT INTO語法如下:
INSERT INTO table_name VALUES (value1, value2, value3, ...);
3、UPDATE更新語句
UPDATE語句用于修改表中的現(xiàn)有記錄。
UPDATE 語法:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
注意: 更新表中的記錄時(shí)要小心!注意 WHERE語句中的子句UPDATE。該WHERE子句指定應(yīng)該更新哪些記錄。如果省略該WHERE子句,表中的所有記錄都將被更新!
4、DELETE刪除語句
該DELETE語句用于刪除表中的現(xiàn)有記錄。
刪除語法
DELETE FROM table_name WHERE condition;
注意: 刪除表中的記錄時(shí)要小心!注意 WHERE語句中的子句 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)行排序,請使用 DESC關(guān)鍵字。
ORDER BY 語法
SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC;
6、TOP、LIMIT、FETCH FIRST 或 ROWNUM限制子句
SELECT TOP子句用于指定要返回的記錄數(shù)。SELECT TOP子句在具有數(shù)千條記錄的大表上很有用。返回大量記錄會影響性能。
注意: 并非所有數(shù)據(jù)庫系統(tǒng)都支持該 SELECT TOP子句。MySQL 支持LIMIT子句選擇有限數(shù)量的記錄,而 Oracle 使用FETCH FIRST n ROWSONLYROWNUM
Server / MS 訪問語法:
SELECT TOP number|percent column_name(s) FROM table_name WHERE condition;
MySQL 語法:
SELECT column_name(s) FROM table_name WHERE condition LIMIT number;
Oracle 12 語法:
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() 語法
SELECT MIN(column_name) FROM table_name WHERE condition;
MAX() 語法
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語句
該GROUP BY語句將具有相同值的行分組為匯總行,例如“查找每個(gè)國家/地區(qū)的客戶數(shù)量”。
該GROUP BY語句通常與聚合函數(shù) ( COUNT(), MAX(), MIN(), SUM(), AVG()) 一起使用, 以按一列或多列對結(jié)果集進(jìn)行分組。
語法:
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 語法
SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3 ...;
OR語法
SELECT column1, column2, ... FROM table_name WHERE condition1 OR condition2 OR condition3 ...;
NOT語法
SELECT column1, column2, ... FROM table_name WHERE NOT condition;
12、LIKE運(yùn)算符
該LIKE運(yùn)算符在 WHERE子句中用于搜索列中的指定模式。有兩個(gè)通配符經(jīng)常與 LIKE運(yùn)算符結(jié)合使用:
百分號 (%) 代表零、一個(gè)或多個(gè)字符
下劃線 () 代表一個(gè),單個(gè)字符
但是呢注意: MS Access 使用星號 (*) 代替百分號 (%),使用問號 (?) 代替下劃線 ()
當(dāng)然百分號和下劃線也可以組合使用!
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操作是針對多個(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) 中的匹配記錄。如果沒有匹配項(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 別名使用
別名列語法
SELECT column_name AS alias_name FROM table_name;
別名表語法
SELECT column_name(s) FROM table_name AS alias_name;
17、EXISTS 運(yùn)算符
EXISTS運(yùn)算符用于測試子查詢中是否存在任何記錄。
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 值的字段是沒有值的字段。如果表中的字段是可選的,則可以在不向該字段添加值的情況下插入新記錄或更新記錄。然后,該字段將保存為 NULL 值。
注意: NULL 值不同于零值或包含空格的字段。具有 NULL 值的字段是在創(chuàng)建記錄期間留空的字段!
如何測試 NULL 值?
無法使用比較運(yùn)算符(例如 =、< 或 <>)測試 NULL 值。我們將不得不改用IS NULL和 IS NOT NULL運(yùn)算符。
IS NULL 語法
SELECT column_names FROM table_name WHERE column_name IS NULL;
IS NOT NULL 語法
SELECT column_names FROM table_name WHERE column_name IS NOT NULL;
19、通配符*?!等
在搜索數(shù)據(jù)庫中的數(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ù)庫的所有命令(函數(shù)、運(yùn)算符)匯總大全的文章就介紹到這了,更多相關(guān)SQL命令大全內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Navicat如何導(dǎo)出所有的查詢數(shù)據(jù)的方法
這篇文章主要介紹了Navicat如何導(dǎo)出所有的查詢數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11當(dāng)數(shù)據(jù)庫變慢時(shí)的解決方法
當(dāng)數(shù)據(jù)庫變慢時(shí),我們應(yīng)如何入手,下面的解決方法。2009-04-04Access轉(zhuǎn)SqlServer的注意事項(xiàng)
Access轉(zhuǎn)SqlServer的注意事項(xiàng),需要的朋友可以參考下。2007-02-02關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫概述與優(yōu)缺點(diǎn)對比
這篇文章介紹了關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫概述與優(yōu)缺點(diǎn)對比,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03數(shù)據(jù)庫中的左連接(left join)和右連接(right join)區(qū)別
關(guān)于左連接和右連接總結(jié)性的一句話,左連接 where只影向右表,右連接where只影響左表2012-06-06postgresql 按小時(shí)分表(含觸發(fā)器)的實(shí)現(xiàn)方式
這篇文章主要介紹了postgresql 按小時(shí)分表(含觸發(fā)器)的實(shí)現(xiàn)方式,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01