1. 程式人生 > >資料庫常用sql語句總結

資料庫常用sql語句總結

檢視時右側可以開啟CSDN自帶的目錄,方便檢視

目錄

一、基礎

1.SELECT 語句

2.SELECT DISTINCT 語句

3.WHERE 子句

4.AND 和 OR 運算子

5.ORDER BY 語句

6.INSERT INTO 語句

7.Update 語句

8.DELETE 語句

二、高階

1.TOP 子句

2.LIKE 操作符

3.SQL 萬用字元

4.IN 操作符

5.BETWEEN 操作符

6.AS

7.join 

8.SQL UNION 操作符

9.SELECT INTO 語句

10.CREATE DATABASE 語句

11.CREATE TABLE 語句

12.SQL 約束

SQL NOT NULL 約束

SQL UNIQUE 約束

SQL PRIMARY KEY 約束

SQL FOREIGN KEY 約束

SQL CHECK 約束

SQL DEFAULT 約束

13.CREATE INDEX 語句(索引)

14.DROP 語句

15.ALTER TABLE 語句

16.AUTO INCREMENT 欄位(自增)

17.SQL CREATE VIEW 語句(檢視)

18.SQL 日期

19.SQL NULL 值

三、SQL 函式

1.SQL AVG 函式

2.SQL COUNT() 函式

3.FIRST() 函式

4.LAST() 函式

5.MAX() 函式

6.MIN() 函式

7.SUM() 函式

8.GROUP BY 語句

9.HAVING 子句

10.UCASE() 函式

11.LCASE() 函式

12.MID() 函式

13.LEN() 函式

14.ROUND() 函式

15.NOW() 函式

16.FORMAT() 函式


一、基礎

1.SELECT 語句

SELECT 語句用於從表中選取資料。

結果被儲存在一個結果表中(稱為結果集)。

SELECT 列名稱 FROM 表名稱
SELECT * FROM 表名稱

在結果集(result-set)中導航:

由 SQL 查詢程式獲得的結果被存放在一個結果集中。大多數資料庫軟體系統都允許使用程式設計函式在結果集中進行導航,比如:Move-To-First-Record、Get-Record-Content、Move-To-Next-Record 等等。

2.SELECT DISTINCT 語句

在表中,可能會包含重複值。關鍵詞 DISTINCT 用於返回唯一不同的值。

SELECT DISTINCT 列名稱 FROM 表名稱

3.WHERE 子句

如需有條件地從表中選取資料,可將 WHERE 子句新增到 SELECT 語句。

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

運算子:大於等於小於,between,like

SQL 使用單引號來環繞文字值。如果是數值,請不要使用引號。

4.AND 和 OR 運算子

AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。

5.ORDER BY 語句

ORDER BY 語句用於根據指定的列對結果集進行排序。

ORDER BY 語句預設按照升序(ASC)對記錄進行排序。

如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。

6.INSERT INTO 語句

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

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

我們也可以指定所要插入資料的列:

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

7.Update 語句

Update 語句用於修改表中的資料。

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

8.DELETE 語句

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

DELETE FROM 表名稱 WHERE 列名稱 = 值

可以在不刪除表的情況下刪除所有的行。這意味著表的結構、屬性和索引都是完整的:

DELETE FROM table_name

或者:

DELETE * FROM table_name

二、高階

1.TOP 子句

TOP 子句用於規定要返回的記錄的數目。

對於擁有數千條記錄的大型表來說,TOP 子句是非常有用的。

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 關鍵字,可以從 "Persons" 表中選取居住在不包含 "lon" 的城市裡的人:

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'

從 "Persons" 表中選取的這條記錄的姓氏以 "C" 開頭,然後是一個任意字元,然後是 "r",然後是任意字元,然後是 "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]%'

4.IN 操作符

IN 操作符允許我們在 WHERE 子句中規定多個值。

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 會選取介於兩個值之間的資料範圍。這些值可以是數值、文字或者日期。

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

如需選擇範圍之外的,請使用 NOT 操作符,加在between前面:

6.AS

為列名稱和表名稱指定別名(Alias)

SELECT column_name(s)
FROM table_name
AS alias_name

SELECT column_name AS alias_name
FROM table_name

7.join 

有時為了得到完整的結果,我們需要從兩個或更多的表中獲取結果。我們就需要執行 join。

例子:

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

下面列出了幾種 JOIN 型別,以及它們之間的差異。

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

區別詳解:

 

 

 

8.SQL UNION 操作符

UNION 操作符用於合併兩個或多個 SELECT 語句的結果集。

請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 SELECT 語句中的列的順序必須相同。

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

註釋:預設地,UNION 操作符選取不同的值。如果允許重複的值,請使用 UNION ALL。

另外,UNION 結果集中的列名總是等於 UNION 中第一個 SELECT 語句中的列名。

例子:

列出所有在中國和美國的不同的僱員名:

SELECT E_Name FROM Employees_China
UNIONSELECT E_Name FROM Employees_USA

9.SELECT INTO 語句

SELECT INTO 語句從一個表中選取資料,然後把資料插入另一個表中。

SELECT INTO 語句常用於建立表的備份復件或者用於對記錄進行存檔。

您可以把所有的列插入新表:

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

IN 子句可用於向另一個數據庫中拷貝表:

SELECT *
INTO Persons 
IN 'Backup.mdb'
FROM Persons

可以在最後新增 WHERE 子句,也能使用join從一個以上的表中選取資料

10.CREATE DATABASE 語句

CREATE DATABASE 用於建立資料庫。

CREATE DATABASE database_name

11.CREATE TABLE 語句

CREATE TABLE 語句用於建立資料庫中的表。

CREATE TABLE 表名稱
(
列名稱1 資料型別,
列名稱2 資料型別,
列名稱3 資料型別,
....
)

12.SQL 約束

約束用於限制加入表的資料的型別。

可以在建立表時規定約束(通過 CREATE TABLE 語句),或者在表建立之後也可以(通過 ALTER TABLE 語句)。

主要有以下幾種約束:

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
  • DEFAULT

SQL NOT NULL 約束

NOT NULL 約束強制列不接受 NULL 值。

NOT NULL 約束強制欄位始終包含值。這意味著,如果不向欄位新增值,就無法插入新記錄或者更新記錄。

例子:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

SQL UNIQUE 約束

UNIQUE 約束唯一標識資料庫表中的每條記錄。

UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。

PRIMARY KEY 擁有自動定義的 UNIQUE 約束。

請注意,每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。

下面的 SQL 在 "Persons" 表建立時在 "Id_P" 列建立 UNIQUE 約束:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)

或者

CREATE TABLE Persons
(
Id_P int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

如果需要命名 UNIQUE 約束,以及為多個列定義 UNIQUE 約束,請使用下面的 SQL 語法:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)

當表已被建立時,如需在 "Id_P" 列建立 UNIQUE 約束,請使用下列 SQL:

ALTER TABLE Persons
ADD UNIQUE (Id_P)

如需命名 UNIQUE 約束,並定義多個列的 UNIQUE 約束,請使用下面的 SQL 語法:

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

如需撤銷 UNIQUE 約束,請使用下面的 SQL:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

SQL PRIMARY KEY 約束

PRIMARY KEY 約束唯一標識資料庫表中的每條記錄。

主鍵必須包含唯一的值。

主鍵列不能包含 NULL 值。

每個表都應該有一個主鍵,並且每個表只能有一個主鍵。

下面的 SQL 在 "Persons" 表建立時在 "Id_P" 列建立 PRIMARY KEY 約束:

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

或者

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

如果需要命名約束,以及為多個列定義約束、表已存在的情況下建立或命名、撤銷約束。語法和上述UNIQUE相同。

SQL FOREIGN KEY 約束

一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。

FOREIGN KEY 約束用於預防破壞表之間連線的動作。

FOREIGN KEY 約束也能防止非法資料插入外來鍵列,因為它必須是它指向的那個表中的值之一。

下面的 SQL 在 "Orders" 表建立時為 "Id_P" 列建立 FOREIGN KEY:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)

或者

CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)

如果需要命名約束,以及為多個列定義約束、表已存在的情況下建立或命名、撤銷約束。語法和上述UNIQUE相同。

SQL CHECK 約束

CHECK 約束用於限制列中的值的範圍。

如果對單個列定義 CHECK 約束,那麼該列只允許特定的值。

如果對一個表定義 CHECK 約束,那麼此約束會在特定的列中對值進行限制。

下面的 SQL 在 "Persons" 表建立時為 "Id_P" 列建立 CHECK 約束。CHECK 約束規定 "Id_P" 列必須只包含大於 0 的整數。

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)

或者

CREATE TABLE Persons
(
Id_P int NOT NULL CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

如果需要命名約束,以及為多個列定義約束、表已存在的情況下建立或命名、撤銷約束。語法和上述UNIQUE相同。

SQL DEFAULT 約束

DEFAULT 約束用於向列中插入預設值。

如果沒有規定其他的值,那麼會將預設值新增到所有的新記錄。

下面的 SQL 在 "Persons" 表建立時為 "City" 列建立 DEFAULT 約束:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)

通過使用類似 GETDATE() 這樣的函式,DEFAULT 約束也可以用於插入系統值:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
OrderDate date DEFAULT GETDATE()
)

如果在表已存在的情況下為 "City" 列建立 DEFAULT 約束,請使用下面的 SQL:

ALTER TABLE Persons
ALTER (COLUMN) City SET DEFAULT 'SANDNES'

如需撤銷 DEFAULT 約束,請使用下面的 SQL:

ALTER TABLE Persons
ALTER (COLUMN) City DROP DEFAULT

13.CREATE INDEX 語句(索引)

用於在表中建立索引。

在不讀取整個表的情況下,索引使資料庫應用程式可以更快地查詢資料。

理想的做法是僅僅在常常被搜尋的列(以及表)上面建立索引。

SQL CREATE INDEX 語法

在表上建立一個簡單的索引。允許使用重複的值:

CREATE INDEX index_name
ON table_name (column_name)

註釋:"column_name" 規定需要索引的列。

在表上建立一個唯一的索引。唯一的索引意味著兩個行不能擁有相同的索引值。

CREATE UNIQUE INDEX index_name
ON table_name (column_name)

本例會建立一個簡單的索引,名為 "PersonIndex",在 Person 表的 LastName 列:

CREATE INDEX PersonIndex
ON Person (LastName) 

可以索引不止一個列,在括號中列出這些列的名稱,用逗號隔開。

14.DROP 語句

通過使用 DROP 語句,可以輕鬆地刪除索引、表和資料庫。

刪除索引

DROP INDEX index_name ON table_name

DROP TABLE 語句用於刪除表(表的結構、屬性以及索引也會被刪除):

DROP TABLE 表名稱

DROP DATABASE 語句用於刪除資料庫:

DROP DATABASE 資料庫名稱

如果我們僅僅需要除去表內的資料,但並不刪除表本身,那麼我們該如何做呢?

請使用 TRUNCATE TABLE 命令(僅僅刪除表格中的資料):

TRUNCATE TABLE 表名稱

15.ALTER TABLE 語句

ALTER TABLE 語句用於在已有的表中新增、修改或刪除列

如需在表中新增列,請使用下列語法:

ALTER TABLE table_name
ADD column_name datatype

要刪除表中的列,請使用下列語法:

ALTER TABLE table_name 
DROP COLUMN column_name

16.AUTO INCREMENT 欄位(自增)

我們通常希望在每次插入新記錄時,自動地建立主鍵欄位的值。

我們可以在表中建立一個 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。

要讓 AUTO_INCREMENT 序列以其他的值起始,請使用下列 SQL 語法:

ALTER TABLE Persons AUTO_INCREMENT=100

要在 "Persons" 表中插入新記錄,我們不必為 "P_Id" 列規定值(會自動新增一個唯一的值):

17.SQL CREATE VIEW 語句(檢視)

什麼是檢視?

在 SQL 中,檢視是基於 SQL 語句的結果集的視覺化的表。

檢視包含行和列,就像一個真實的表。檢視中的欄位就是來自一個或多個數據庫中的真實的表中的欄位。我們可以向檢視新增 SQL 函式、WHERE 以及 JOIN 語句,我們也可以提交資料,就像這些來自於某個單一的表。

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

可以從某個查詢內部、某個儲存過程內部,或者從另一個檢視內部來使用檢視。通過向檢視新增函式、join 等等,我們可以向用戶精確地提交我們希望提交的資料。

樣本資料庫 Northwind 擁有一些被預設安裝的檢視。檢視 "Current Product List" 會從 Products 表列出所有正在使用的產品。這個檢視使用下列 SQL 建立:

CREATE VIEW [Current Product List] ASSELECT ProductID,ProductNameFROM ProductsWHERE Discontinued=No

我們可以查詢上面這個檢視:

SELECT * FROM [Current Product List]

Northwind 樣本資料庫的另一個檢視會選取 Products 表中所有單位價格高於平均單位價格的產品:

CREATE VIEW [Products Above Average Price] ASSELECT ProductName,UnitPriceFROM ProductsWHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products) 

您可以使用下面的語法來更新檢視:

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

現在,我們希望向 "Current Product List" 檢視新增 "Category" 列。我們將通過下列 SQL 更新檢視:

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

您可以通過 DROP VIEW 命令來刪除檢視。

DROP VIEW view_name

18.SQL 日期

MySQL 使用下列資料型別在資料庫中儲存日期或日期/時間值:

  • DATE - 格式 YYYY-MM-DD
  • DATETIME - 格式: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
  • YEAR - 格式 YYYY 或 YY

如果不涉及時間部分,那麼我們可以輕鬆地比較兩個日期!

如果您希望使查詢簡單且更易維護,那麼請不要在日期中使用時間部分!

19.SQL NULL 值

如果表中的某個列是可選的,那麼我們可以在不向該列新增值的情況下插入新記錄或更新已有的記錄。這意味著該欄位將以 NULL 值儲存。

NULL 值的處理方式與其他值不同。

NULL 用作未知的或不適用的值的佔位符。

無法使用比較運算子來測試 NULL 值,比如 =, <, 或者 <>。

我們必須使用 IS NULL 和 IS NOT NULL 操作符。

請始終使用 IS NULL 來查詢 NULL 值。

Oracle 沒有 ISNULL() 函式。不過,我們可以使用 NVL() 函式

【語法】NVL (expr1, expr2)
【功能】若expr1為NULL,返回expr2;expr1不為NULL,返回expr1。
注意兩者的型別要一致 

三、SQL 函式

SQL 擁有很多可用於計數和計算的內建函式。

內建 SQL 函式的語法是:

SELECT function(列) FROM 表

1.SQL AVG 函式

AVG 函式返回數值列的平均值。NULL 值不包括在計算中。

SQL AVG() 語法

SELECT AVG(column_name) FROM table_name

2.SQL COUNT() 函式

COUNT() 函式返回匹配指定條件的行數。

SQL COUNT() 語法

SQL COUNT(column_name) 語法

COUNT(column_name) 函式返回指定列的值的數目(NULL 不計入):

SELECT COUNT(column_name) FROM table_name

SQL COUNT(*) 語法

COUNT(*) 函式返回表中的記錄數:

SELECT COUNT(*) FROM table_name

SQL COUNT(DISTINCT column_name) 語法

COUNT(DISTINCT column_name) 函式返回指定列的不同值的數目:

SELECT COUNT(DISTINCT column_name) FROM table_name

3.FIRST() 函式

FIRST() 函式返回指定的欄位中第一個記錄的值。

提示:可使用 ORDER BY 語句對記錄進行排序。

SQL FIRST() 語法

SELECT FIRST(column_name) FROM table_name

4.LAST() 函式

LAST() 函式返回指定的欄位中最後一個記錄的值。

提示:可使用 ORDER BY 語句對記錄進行排序。

SQL LAST() 語法

SELECT LAST(column_name) FROM table_name

5.MAX() 函式

MAX 函式返回一列中的最大值。NULL 值不包括在計算中。

SQL MAX() 語法

SELECT MAX(column_name) FROM table_name

註釋:MIN 和 MAX 也可用於文字列,以獲得按字母順序排列的最高或最低值。

6.MIN() 函式

MIN 函式返回一列中的最小值。NULL 值不包括在計算中。

SQL MIN() 語法

SELECT MIN(column_name) FROM table_name

註釋:MIN 和 MAX 也可用於文字列,以獲得按字母順序排列的最高或最低值。

7.SUM() 函式

SUM 函式返回數值列的總數(總額)。

SQL SUM() 語法

SELECT SUM(column_name) FROM table_name

8.GROUP BY 語句

GROUP BY 語句用於結合合計函式,根據一個或多個列對結果集進行分組。

SQL GROUP BY 語法

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

例子:

希望查詢每個客戶的總金額(總訂單)。(每個客戶有多個訂單)

我們想要使用 GROUP BY 語句對客戶進行組合。

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer

原表

結果:

9.HAVING 子句

在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與合計函式一起使用。

SQL 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

現在,我們希望查詢訂單總金額少於 2000 的客戶。

我們使用如下 SQL 語句:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000

10.UCASE() 函式

UCASE 函式把欄位的值轉換為大寫。

SQL UCASE() 語法

SELECT UCASE(column_name) FROM table_name

11.LCASE() 函式

LCASE 函式把欄位的值轉換為小寫。

SQL LCASE() 語法

SELECT LCASE(column_name) FROM table_name

12.MID() 函式

MID 函式用於從文字欄位中提取字元。

SQL MID() 語法

SELECT MID(column_name,start[,length]) FROM table_name
column_name 必需。要提取字元的欄位。
start 必需。規定開始位置(起始值是 1)。
length 可選。要返回的字元數。如果省略,則 MID() 函式返回剩餘文字。

現在,我們希望從 "City" 列中提取前 3 個字元。

我們使用如下 SQL 語句:

SELECT MID(City,1,3) as SmallCity FROM Persons

13.LEN() 函式

LEN 函式返回文字欄位中值的長度。

SQL LEN() 語法

SELECT LEN(column_name) FROM table_name

14.ROUND() 函式

ROUND 函式用於把數值欄位舍入為指定的小數位數。

SQL ROUND() 語法

SELECT ROUND(column_name,decimals) FROM table_name

15.NOW() 函式

NOW 函式返回當前的日期和時間。

提示:如果您在使用 Sql Server 資料庫,請使用 getdate() 函式來獲得當前的日期時間。

SQL NOW() 語法

SELECT NOW() FROM table_name

16.FORMAT() 函式

FORMAT 函式用於對欄位的顯示進行格式化。

SQL FORMAT() 語法

SELECT FORMAT(column_name,format) FROM table_name
引數 描述
column_name 必需。要格式化的欄位。
format 必需。規定格式。

 

現在,我們希望顯示每天日期所對應的名稱和價格(日期的顯示格式是 "YYYY-MM-DD")。

我們使用如下 SQL 語句:

SELECT ProductName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD') as PerDate
FROM Products