偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

數(shù)據(jù)庫常用 SQL 語句大全,從基礎(chǔ)到高級全掌握

數(shù)據(jù)庫 開發(fā)
今天就為大家整理一份全面的 SQL 語句指南,從基礎(chǔ)到高級,助你輕松搞定數(shù)據(jù)庫操作。

在數(shù)據(jù)庫操作中,SQL 語句是必不可少的工具。無論是數(shù)據(jù)查詢、插入、更新,還是表結(jié)構(gòu)的創(chuàng)建與修改,都需要用到 SQL。今天就為大家整理一份全面的 SQL 語句指南,從基礎(chǔ)到高級,助你輕松搞定數(shù)據(jù)庫操作。

一、基礎(chǔ) SQL 語句

1. SELECT 語句

SELECT 語句用于從表中選取數(shù)據(jù),結(jié)果會被存儲在一個結(jié)果集中。

選取特定列:

SELECT 列名稱 FROM 表名稱

選取所有列:

SELECT * FROM 表名稱

在結(jié)果集中,大多數(shù)數(shù)據(jù)庫軟件系統(tǒng)都允許使用編程函數(shù)進行導航,比如 Move-To-First-Record、Get-Record-Content 等。

2. SELECT DISTINCT 語句

表中可能包含重復值,DISTINCT 關(guān)鍵詞用于返回唯一不同的值。

SELECT DISTINCT 列名稱 FROM 表名稱

3. WHERE 子句

WHERE 子句可添加到 SELECT 語句中,用于有條件地從表中選取數(shù)據(jù)。

SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值

運算符包括大于、等于、小于、between、like 等。需要注意的是,SQL 使用單引號環(huán)繞文本值,數(shù)值則不用加引號。

4. AND 和 OR 運算符

AND 和 OR 可在 WHERE 子句中把兩個或多個條件結(jié)合起來,實現(xiàn)更精確的篩選。

5. ORDER BY 語句

ORDER BY 語句用于根據(jù)指定的列對結(jié)果集進行排序,默認按照升序(ASC)排序,若要降序排序,可使用 DESC 關(guān)鍵字。

6. INSERT INTO 語句

INSERT INTO 語句用于向表格中插入新的行。

插入所有列的值:

INSERT INTO 表名稱 VALUES (值 1, 值 2,....)

指定插入數(shù)據(jù)的列:

INSERT INTO table_name (列 1, 列 2,...) VALUES (值 1, 值 2,....)

7. Update 語句

Update 語句用于修改表中的數(shù)據(jù)。

UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

8. DELETE 語句

DELETE 語句用于刪除表中的行。

刪除特定行:

DELETE FROM 表名稱 WHERE 列名稱 = 值

刪除所有行(表結(jié)構(gòu)、屬性和索引保持完整):

DELETE FROM table_name

或:

DELETE * FROM table_name

二、高級 SQL 語句

1. TOP 子句

TOP 子句用于規(guī)定要返回的記錄數(shù)目,對于大型表非常有用。

SELECT TOP number|percent column_name (s) FROM table_name

例子:

選擇前兩個記錄:

SELECT TOP 2 * FROM Persons

選擇前 50% 的記錄:

SELECT TOP 50 PERCENT * FROM Persons

2. LIKE 操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SELECT column_name (s) FROM table_name WHERE column_name LIKE pattern

例子:

從 "Persons" 表中選取居住在以 "N" 開始的城市里的人:

SELECT * FROM Persons WHERE City LIKE 'N%'

"%" 可定義通配符,如 '% g'、'% lon%';通過 NOT 關(guān)鍵字,可選取不滿足模式的記錄,如 

SELECT * FROM Persons WHERE City NOT LIKE '% lon%'

3. SQL 通配符

% 通配符:匹配任意字符序列(包括空序列)。例如,從 "Persons" 表中選取居住在包含 "lond" 的城市里的人:

SELECT * FROM Persons WHERE City LIKE '% lond%'

_通配符:匹配單個字符。例如,從 "Persons" 表中選取名字的第一個字符之后是 "eorge" 的人:

SELECT * FROM Persons WHERE FirstName LIKE '_eorge'

[charlist] 通配符:匹配字符列表中的任意一個字符。例如,從 "Persons" 表中選取居住的城市以 "A" 或 "L" 或 "N" 開頭的人:

SELECT * FROM Persons WHERE City LIKE '[ALN]%'

要選取不以這些字符開頭的,可使用 [!ALN]。

4. IN 操作符

IN 操作符允許在 WHERE 子句中規(guī)定多個值。

SELECT column_name (s) FROM table_name WHERE column_name IN (value1,value2,...)

例子:

SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')

5. BETWEEN 操作符

BETWEEN ... AND 用于選取介于兩個值之間的數(shù)據(jù)范圍,值可以是數(shù)值、文本或日期。如需選擇范圍之外的,可在前面加 NOT。

6. AS

AS 用于為列名稱和表名稱指定別名。

為表指定別名:

SELECT column_name (s) FROM table_name AS alias_name

為列指定別名:

SELECT column_name AS alias_name FROM table_name

7. JOIN

JOIN 用于從兩個或更多表中獲取完整結(jié)果,主要有以下幾種類型:

  • INNER JOIN:如果表中有至少一個匹配,則返回行。
  • LEFT JOIN:即使右表中沒有匹配,也從左表返回所有的行。
  • RIGHT JOIN:即使左表中沒有匹配,也從右表返回所有的行。
  • FULL JOIN:只要其中一個表中存在匹配,就返回行。

例子:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName

8. SQL UNION 操作符

UNION 操作符用于合并兩個或多個 SELECT 語句的結(jié)果集。需注意,UNION 內(nèi)部的 SELECT 語句必須擁有相同數(shù)量的列,列的數(shù)據(jù)類型相似,且列的順序相同。

SELECT column_name (s) FROM table_name1 UNION (ALL) SELECT column_name (s) FROM table_name2

默認地,UNION 選取不同的值,允許重復值則用 UNION ALL。例子:列出所有在中國和美國的不同的雇員名:

SELECT E_Name FROM Employees_China UNION SELECT E_Name FROM Employees_USA

9. SELECT INTO 語句

SELECT INTO 語句從一個表中選取數(shù)據(jù),插入另一個表中,常用于創(chuàng)建表的備份復件或存檔記錄。

插入所有列到新表:

SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename

插入指定列到新表:

SELECT column_name (s) INTO new_table_name [IN externaldatabase] FROM old_tablename

例子:制作 "Persons" 表的備份復件:

SELECT * INTO Persons_backup FROM Persons

10. CREATE DATABASE 語句

用于創(chuàng)建數(shù)據(jù)庫:

CREATE DATABASE database_name

11. CREATE TABLE 語句

用于創(chuàng)建數(shù)據(jù)庫中的表。

CREATE TABLE 表名稱 (列名稱 1 數(shù)據(jù)類型,列名稱 2 數(shù)據(jù)類型,列名稱 3 數(shù)據(jù)類型,....)

12. SQL 約束

約束用于限制加入表的數(shù)據(jù)的類型,可在創(chuàng)建表時或表創(chuàng)建后通過 ALTER TABLE 語句規(guī)定。主要有:

  • NOT NULL:強制列不接受 NULL 值。
  • UNIQUE:唯一標識數(shù)據(jù)庫表中的每條記錄,每個表可多個 UNIQUE 約束。
  • PRIMARY KEY:唯一標識數(shù)據(jù)庫表中的每條記錄,主鍵包含唯一值且不能為 NULL,每個表只能有一個主鍵。
  • FOREIGN KEY:一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY,用于預防破壞表之間連接的動作。
  • CHECK:限制列中的值的范圍。
  • DEFAULT:向列中插入默認值。

13. CREATE INDEX 語句(索引)

索引使數(shù)據(jù)庫應(yīng)用程序能更快地查找數(shù)據(jù),理想情況是在常被搜索的列上創(chuàng)建索引。

創(chuàng)建簡單索引(允許重復值):

CREATE INDEX index_name ON table_name (column_name)

創(chuàng)建唯一索引(兩個行不能有相同的索引值):

CREATE UNIQUE INDEX index_name ON table_name (column_name)

例子:在 Person 表的 LastName 列創(chuàng)建名為 "PersonIndex" 的簡單索引:

CREATE INDEX PersonIndex ON Person (LastName)

14. DROP 語句

用于刪除索引、表和數(shù)據(jù)庫。

刪除索引:

DROP INDEX index_name ON table_name

刪除表(表的結(jié)構(gòu)、屬性及索引也被刪除):

DROP TABLE 表名稱

刪除數(shù)據(jù)庫:

DROP DATABASE 數(shù)據(jù)庫名稱

僅刪除表內(nèi)數(shù)據(jù),保留表本身:

TRUNCATE TABLE 表名稱

15. ALTER TABLE 語句

用于在已有的表中添加、修改或刪除列。

添加列:

ALTER TABLE table_name ADD column_name datatype

刪除列:

ALTER TABLE table_name DROP COLUMN column_name

16. AUTO INCREMENT 字段(自增)

希望每次插入新記錄時自動創(chuàng)建主鍵字段的值,可創(chuàng)建 auto-increment 字段。

例子:

CREATE TABLE Persons (P_Id int NOT NULL AUTO_INCREMENT,LastName varchar (255) NOT NULL,FirstName varchar (255),Address varchar (255),City varchar (255),PRIMARY KEY (P_Id))

默認 AUTO_INCREMENT 開始值是 1,每條新記錄遞增 1,可通過 ALTER TABLE Persons AUTO_INCREMENT=100 修改起始值。

17. SQL CREATE VIEW 語句(視圖)

視圖是基于 SQL 語句的結(jié)果集的可視化的表,可像使用真實表一樣使用。

CREATE VIEW view_name AS SELECT column_name (s) FROM table_name WHERE condition

例子:創(chuàng)建視圖 "Current Product List" 列出 Products 表中所有正在使用的產(chǎn)品:

CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName FROM Products WHERE Discontinued=No

可通過 CREATE OR REPLACE VIEW 更新視圖,通過 DROP VIEW view_name 刪除視圖。

18. SQL 日期

MySQL 中常用的內(nèi)建日期函數(shù)有 NOW ()、CURDATE ()、CURTIME () 等,存儲日期或日期 / 時間值的數(shù)據(jù)類型有 DATE、DATETIME、TIMESTAMP、YEAR。

19. SQL NULL 值

NULL 用作未知的或不適用的值的占位符,無法用比較運算符測試,必須使用 IS NULL 和 IS NOT NULL 操作符。Oracle 中可用 NVL () 函數(shù)處理 NULL 值。

三、SQL 函數(shù)

1. SQL AVG 函數(shù)

返回數(shù)值列的平均值,NULL 值不計入計算。

SELECT AVG (column_name) FROM table_name

2. SQL COUNT () 函數(shù)

返回匹配指定條件的行數(shù)。

  • COUNT (column_name):返回指定列的值的數(shù)目(NULL 不計入)。
  • COUNT (*):返回表中的記錄數(shù)。
  • COUNT (DISTINCT column_name):返回指定列的不同值的數(shù)目。

3. FIRST () 函數(shù)

返回指定字段中第一個記錄的值,可結(jié)合 ORDER BY 語句排序。

SELECT FIRST (column_name) FROM table_name

4. LAST () 函數(shù)

返回指定字段中最后一個記錄的值,可結(jié)合 ORDER BY 語句排序。

SELECT LAST (column_name) FROM table_name

5. MAX () 函數(shù)

返回一列中的最大值,NULL 值不計入計算,也可用于文本列獲取按字母順序排列的最高值。

6. MIN () 函數(shù)

返回一列中的最小值,NULL 值不計入計算,也可用于文本列獲取按字母順序排列的最低值。

7. SUM () 函數(shù)

返回數(shù)值列的總數(shù)(總額)。

SELECT SUM (column_name) FROM table_name

8. GROUP BY 語句

結(jié)合合計函數(shù),根據(jù)一個或多個列對結(jié)果集進行分組。

SELECT column_name, aggregate_function (column_name) FROM table_name WHERE column_name operator value GROUP BY column_name

9. HAVING 子句

因 WHERE 關(guān)鍵字無法與合計函數(shù)一起使用,故增加 HAVING 子句。

SELECT column_name, aggregate_function (column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function (column_name) operator value

10. UCASE () 函數(shù)

把字段的值轉(zhuǎn)換為大寫。

SELECT UCASE (column_name) FROM table_name

11. LCASE () 函數(shù)

把字段的值轉(zhuǎn)換為小寫。

SELECT LCASE (column_name) FROM table_name

12. MID () 函數(shù)

從文本字段中提取字符。

SELECT MID (column_name,start [,length]) FROM table_name

13. LEN () 函數(shù)

返回文本字段中值的長度。

SELECT LEN (column_name) FROM table_name

14. ROUND () 函數(shù)

把數(shù)值字段舍入為指定的小數(shù)位數(shù)。

SELECT ROUND (column_name,decimals) FROM table_name

15. NOW () 函數(shù)

返回當前的日期和時間,SQL Server 中用 getdate () 函數(shù)。

16. FORMAT () 函數(shù)

用于對字段的顯示進行格式化。

SELECT FORMAT (column_name,format) FROM table_name

掌握這些 SQL 語句,能讓你在數(shù)據(jù)庫操作中更加得心應(yīng)手。無論是日常的數(shù)據(jù)查詢、維護,還是復雜的數(shù)據(jù)分析,這些語句都能發(fā)揮重要作用。趕緊收藏起來,隨時查閱吧!

責任編輯:趙寧寧 來源: 編程江湖
相關(guān)推薦

2011-09-01 19:00:08

SQL ServerDBCC語句

2011-01-06 09:28:19

SQL語句

2017-12-26 15:10:30

數(shù)據(jù)庫Oracle操作語句

2023-10-27 08:42:56

Python字典

2025-09-05 09:40:04

JavaScript前端開發(fā)者

2025-08-11 06:00:00

JavaScript前端前端開發(fā)

2024-07-09 09:33:18

2010-06-01 13:20:45

2023-11-29 09:53:29

數(shù)據(jù)庫遷移SQL Server

2010-07-13 10:43:26

SQL Server數(shù)

2011-03-31 09:30:27

SQL Server數(shù)管理SQL

2023-10-09 23:00:00

jsonPython

2011-05-26 13:54:42

數(shù)據(jù)庫JDBC連接

2011-03-16 10:10:39

DB2數(shù)據(jù)庫常用命令

2011-03-16 10:59:34

DB2數(shù)據(jù)庫常用語句

2025-02-08 07:00:00

2011-03-16 10:39:11

DB2數(shù)據(jù)庫常用語句

2011-03-16 10:19:49

DB2數(shù)據(jù)庫常用語句

2011-03-16 10:12:14

DB2數(shù)據(jù)庫常用語句

2011-03-17 17:50:39

SQL Server數(shù)
點贊
收藏

51CTO技術(shù)棧公眾號