SQL 零基礎入門必知必會!

📚 前言

SQL 語言有 40 多年的歷史,從它被應用至今幾乎無處不在。我們消費的每一筆支付記錄,收集的每一條用戶信息,發出去的每一條消息,都會使用數據庫或與其相關的產品來存儲,而操縱數據庫的語言正是 SQL !SQL 對於現在的互聯網公司生產研發等崗位幾乎是一個必備技能,如果不會 SQL 的話,可能什麼都做不了。你可以把 SQL 當做是一種工具,利用它可以幫助你完成你的工作,創造價值。

🌴 SQL 介紹

🌼 什麼是 SQL

SQL 是用於訪問和處理數據庫的標準的計算機語言。

SQL 可與數據庫程序協同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他數據庫系統。

但是由於各種各樣的數據庫出現,導致很多不同版本的 SQL 語言。

爲了與 ANSI 標準相兼容,它們必須以相似的方式共同地來支持一些主要的關鍵詞(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等),這些就是我們要學習的 SQL 基礎。

🌀 SQL 的類型

可以把 SQL 分爲兩個部分:數據操作語言 (DML) 和 數據定義語言 (DDL)。

🌵 學習 SQL 的作用

SQL 是一門 ANSI 的標準計算機語言,用來訪問和操作數據庫系統。SQL 語句用於取回和更新數據庫中的數據。

🍄 數據庫是什麼

「顧名思義,你可以理解爲數據庫是用來存放數據的一個容器。」

打個比方,每個人家裏都會有冰箱,冰箱是用來幹什麼的?冰箱是用來存放食物的地方。同樣的,數據庫是存放數據的地方。正是因爲有了數據庫後,我們可以直接查找數據。

例如你每天使用餘額寶查看自己的賬戶收益,就是從數據庫讀取數據後給你的。

「最常見的數據庫類型是關係型數據庫管理系統(RDBMS):」

RDBMS 是 SQL 的基礎,同樣也是所有現代數據庫系統的基礎,比如:

RDBMS 中的數據存儲在被稱爲表(tables)的數據庫對象中。 是相關的數據項的集合,它由列和行組成。

由於本文主要講解 SQL 基礎,因此對數據庫不做過多解釋,只需要大概瞭解即可。

咱們直接開始學習 SQL!

🐥 SQL 基礎語言學習

在瞭解 SQL 基礎語句使用之前,我們先講一下 是什麼?

一個數據庫通常包含一個或多個表。每個表由一個名字標識(例如 “客戶” 或者“訂單”)。表包含帶有數據的記錄(行)。

「下面的例子是一個名爲 "Persons" 的表:」

GNqxCt

上面的表包含三條記錄(每一條對應一個人)和五個列(Id、姓、名、地址和城市)。

有表才能查詢,那麼如何創建這樣一個表?

🐤 CREATE TABLE – 創建表

CREATE TABLE 語句用於創建數據庫中的表。

語法:

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

數據類型(data_type)規定了列可容納何種數據類型。下面的表格包含了 SQL 中最常用的數據類型:

GfrIzS

實例:

本例演示如何創建名爲 "Persons" 的表。

該表包含 5 個列,列名分別是:"Id_P"、"LastName"、"FirstName"、"Address" 以及 "City":

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

Id_P 列的數據類型是 int,包含整數。其餘 4 列的數據類型是 varchar,最大長度爲 255 個字符。「空的 "Persons" 表類似這樣:」 可使用 INSERT INTO 語句向空表寫入數據。

🐑 INSERT – 插入數據

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

語法:

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

我們也可以指定所要插入數據的列:

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

實例:

本例演示 "Persons" 表插入記錄的兩種方式:

「1、插入新的行」

INSERT INTO Persons VALUES (1, 'Gates''Bill''Xuanwumen 10''Beijing');

「2、在指定的列中插入數據」

INSERT INTO Persons (LastName, Address) VALUES ('Wilson''Champs-Elysees');

「插入成功後,數據如下:」這個數據插入之後,是通過 SELECT 語句進行查詢出來的,別急馬上講!

🐼 SELECT – 查詢數據

SELECT 語句用於從表中選取數據,結果被存儲在一個結果表中(稱爲結果集)。

語法:

SELECT * FROM 表名稱;

我們也可以指定所要查詢數據的列:

SELECT 列名稱 FROM 表名稱;

「📢 注意:」 SQL 語句對大小寫不敏感,SELECT 等效於 select。

實例:

「SQL SELECT * 實例:」

SELECT * FROM Persons;

「📢 注意:」 星號(*)是選取所有列的快捷方式。

如需獲取名爲 "LastName" 和 "FirstName" 的列的內容(從名爲 "Persons" 的數據庫表),請使用類似這樣的 SELECT 語句:

SELECT LastName,FirstName FROM Persons;

🐫 DISTINCT – 去除重複值

如果一張表中有多行重複數據,如何去重顯示呢?可以瞭解下 DISTINCT

語法:

SELECT DISTINCT 列名稱 FROM 表名稱;

實例:

如果要從 "LASTNAME" 列中選取所有的值,我們需要使用 SELECT 語句:

SELECT LASTNAME FROM Persons;

可以發現,在結果集中,Wilson 被列出了多次。

如需從 "LASTNAME" 列中僅選取唯一不同的值,我們需要使用 SELECT DISTINCT 語句:

SELECT DISTINCT LASTNAME FROM Persons;

通過上述查詢,結果集中只顯示了一列 Wilson,顯然已經去除了重複列。

🐸 WHERE – 條件過濾

如果需要從表中選取指定的數據,可將 WHERE 子句添加到 SELECT 語句。

語法:

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

下面的運算符可在 WHERE 子句中使用:

E8tNBl

「📢 注意:」 在某些版本的 SQL 中,操作符 <> 可以寫爲 !=。

實例:

如果只希望選取居住在城市 "Beijing" 中的人,我們需要向 SELECT 語句添加 WHERE 子句:

SELECT * FROM Persons WHERE City='Beijing';

「📢 注意:」 SQL 使用單引號來環繞文本值(大部分數據庫系統也接受雙引號)。如果是數值,請不要使用引號。

🐹 AND & OR – 運算符

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

語法:

「AND 運算符實例:」

SELECT * FROM 表名稱 WHERE 列 運算符 值 AND 列 運算符 值;

「OR 運算符實例:」

SELECT * FROM 表名稱 WHERE 列 運算符 值 OR 列 運算符 值;

實例:

由於 Persons 表數據太少,因此增加幾條記錄:

INSERT INTO Persons VALUES (2, 'Adams''John''Oxford Street''London');
INSERT INTO Persons VALUES (3, 'Bush''George''Fifth Avenue''New York');
INSERT INTO Persons VALUES (4, 'Carter''Thomas''Changan Street''Beijing');
INSERT INTO Persons VALUES (5, 'Carter''William''Xuanwumen 10''Beijing');
SELECT * FROM Persons;

「AND 運算符實例:」

使用 AND 來顯示所有姓爲 "Carter" 並且名爲 "Thomas" 的人:

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter';

「OR 運算符實例:」

使用 OR 來顯示所有姓爲 "Carter" 或者名爲 "Thomas" 的人:

SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter';

「結合 AND 和 OR 運算符:」

我們也可以把 AND 和 OR 結合起來(使用圓括號來組成複雜的表達式):

SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter';

🐰 ORDER BY – 排序

ORDER BY 語句用於根據指定的列對結果集進行排序,默認按照升序對記錄進行排序,如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。

語法:

SELECT * FROM 表名稱 ORDER BY 列1,列2 DESC;

默認排序爲 ASC 升序,DESC 代表降序。

實例:

以字母順序顯示 LASTNAME 名稱:

SELECT * FROM Persons ORDER BY LASTNAME;

空值(NULL)默認排序在有值行之後。

以數字順序顯示ID_P,並以字母順序顯示 LASTNAME 名稱:

SELECT * FROM Persons ORDER BY ID_P,LASTNAME;

以數字降序顯示ID_P

SELECT * FROM Persons ORDER BY ID_P DESC;

「📢 注意:」 在第一列中有相同的值時,第二列是以升序排列的。如果第一列中有些值爲 null 時,情況也是這樣的。

🐱 UPDATE – 更新數據

Update 語句用於修改表中的數據。

語法:

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

實例:

「更新某一行中的一個列:」

目前 Persons 表有很多字段爲 null 的數據,可以通過 UPDATE 爲 LASTNAME 是 "Wilson" 的人添加 FIRSTNAME:

UPDATE Persons SET FirstName = 'Fred' WHERE LastName = 'Wilson';

「更新某一行中的若干列:」

UPDATE Persons SET ID_P = 6,city= 'London' WHERE LastName = 'Wilson';

🐨 DELETE – 刪除數據

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

語法:

DELETE FROM 表名稱 WHERE 列名稱 = 值;

實例:

「刪除某行:」

刪除 Persons 表中 LastName 爲 "Fred Wilson" 的行:

DELETE FROM Persons WHERE LastName = 'Wilson';

「刪除所有行:」

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

DELETE FROM table_name;

🐵 TRUNCATE TABLE – 清除表數據

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

可以使用 TRUNCATE TABLE 命令(僅僅刪除表格中的數據):

語法:

TRUNCATE TABLE 表名稱;

實例:

本例演示如何刪除名爲 "Persons" 的表。

TRUNCATE TABLE persons;

🐯 DROP TABLE – 刪除表

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

語法:

DROP TABLE 表名稱;

實例:

本例演示如何刪除名爲 "Persons" 的表。

drop table persons;

從上圖可以看出,第一次執行刪除時,成功刪除了表 persons,第二次執行刪除時,報錯找不到表 persons,說明表已經被刪除了。

🚀 SQL 高級言語學習

🚢 LIKE – 查找類似值

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

語法:

SELECT 列名/(*) FROM 表名稱 WHERE 列名稱 LIKE 值;

實例:

Persons 表插入數據:

INSERT INTO Persons VALUES (1, 'Gates''Bill''Xuanwumen 10''Beijing');
INSERT INTO Persons VALUES (2, 'Adams''John''Oxford Street''London');
INSERT INTO Persons VALUES (3, 'Bush''George''Fifth Avenue''New York');
INSERT INTO Persons VALUES (4, 'Carter''Thomas''Changan Street''Beijing');
INSERT INTO Persons VALUES (5, 'Carter''William''Xuanwumen 10''Beijing');
select * from persons;

1、現在,我們希望從上面的 "Persons" 表中選取居住在以 "N" 開頭的城市裏的人:

SELECT * FROM Persons WHERE City LIKE 'N%';

2、接下來,我們希望從 "Persons" 表中選取居住在以 "g" 結尾的城市裏的人:

SELECT * FROM Persons WHERE City LIKE '%g';

3、接下來,我們希望從 "Persons" 表中選取居住在包含 "lon" 的城市裏的人:

SELECT * FROM Persons WHERE City LIKE '%on%';

4、通過使用 NOT 關鍵字,我們可以從 "Persons" 表中選取居住在不包含 "lon" 的城市裏的人:

SELECT * FROM Persons WHERE City NOT LIKE '%on%';

「📢注意:」 "%" 可用於定義通配符(模式中缺少的字母)。

🚤 IN – 鎖定多個值

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

語法:

SELECT 列名/(*) FROM 表名稱 WHERE 列名稱 IN (值1,值2,值3);

實例:

現在,我們希望從 Persons 表中選取姓氏爲 Adams 和 Carter 的人:

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

⛵️ BETWEEN – 選取區間數據

操作符 BETWEEN ... AND 會選取介於兩個值之間的數據範圍。這些值可以是數值、文本或者日期。

語法:

SELECT 列名/(*) FROM 表名稱 WHERE 列名稱 BETWEEN 值1 AND 值2;

實例:

1、查詢以字母順序顯示介於 "Adams"(包括)和 "Carter"(不包括)之間的人:

SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter';

2、查詢上述結果相反的結果,可以使用 NOT:

SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter';

「📢 注意:」 不同的數據庫對 BETWEEN...AND 操作符的處理方式是有差異的。

某些數據庫會列出介於 "Adams" 和 "Carter" 之間的人,但不包括 "Adams" 和 "Carter" ;某些數據庫會列出介於 "Adams" 和 "Carter" 之間幷包括 "Adams" 和 "Carter" 的人;而另一些數據庫會列出介於 "Adams" 和 "Carter" 之間的人,包括 "Adams" ,但不包括 "Carter" 。

所以,請檢查你的數據庫是如何處理 BETWEEN....AND 操作符的!

🚂 AS – 別名

通過使用 SQL,可以爲列名稱和表名稱指定別名(Alias),別名使查詢程序更易閱讀和書寫。

語法:

「表別名:」

SELECT 列名稱/(*) FROM 表名稱 AS 別名;

「列別名:」

SELECT 列名稱 as 別名 FROM 表名稱;

實例:

「使用表名稱別名:」

SELECT p.LastName, p.FirstName
FROM Persons p 
WHERE p.LastName='Adams' AND p.FirstName='John';

「使用列名別名:」

SELECT LastName "Family", FirstName "Name" FROM Persons;

「📢 注意:」 實際應用時,這個 AS 可以省略,但是列別名需要加上 " "

🚁 JOIN – 多表關聯

JOIN 用於根據兩個或多個表中的列之間的關係,從這些表中查詢數據。

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

數據庫中的表可通過鍵將彼此聯繫起來。主鍵(Primary Key)是一個列,在這個列中的每一行的值都是唯一的。在表中,每個主鍵的值都是唯一的。這樣做的目的是在不重複每個表中的所有數據的情況下,把表間的數據交叉捆綁在一起。如圖,"Id_P" 列是 Persons 表中的的主鍵。這意味着沒有兩行能夠擁有相同的 Id_P。即使兩個人的姓名完全相同,Id_P 也可以區分他們。

「❤️ 爲了下面實驗的繼續,我們需要再創建一個表:Orders。」

create table orders (id_o number,orderno number,id_p number);
insert into orders values(1,11111,1);
insert into orders values(2,22222,2);
insert into orders values(3,33333,3);
insert into orders values(4,44444,4);
insert into orders values(6,66666,6);
select * from orders;

如圖,"Id_O" 列是 Orders 表中的的主鍵,同時,"Orders" 表中的 "Id_P" 列用於引用 "Persons" 表中的人,而無需使用他們的確切姓名。

select * from persons p,orders o where p.id_p=o.id_p;

可以看到,"Id_P" 列把上面的兩個表聯繫了起來。

語法:

select 列名
from 表A
INNER|LEFT|RIGHT|FULL JOIN 表B
ON 表A主鍵列 = 表B外鍵列;

「不同的 SQL JOIN:」

下面列出了您可以使用的 JOIN 類型,以及它們之間的差異。

實例:

如果我們希望列出所有人的定購,可以使用下面的 SELECT 語句:

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

🚜 UNION – 合併結果集

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

UNION 語法:

SELECT 列名 FROM 表A
UNION
SELECT 列名 FROM 表B;

「📢注意:」 UNION 操作符默認爲選取不同的值。如果查詢結果需要顯示重複的值,請使用 UNION ALL

UNION ALL 語法:

SELECT 列名 FROM 表A
UNION ALL
SELECT 列名 FROM 表B;

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

爲了實驗所需,創建 Person_b 表:

CREATE TABLE Persons_b
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
INSERT INTO Persons_b VALUES (1, 'Bill''Gates''Xuanwumen 10''Londo');
INSERT INTO Persons_b VALUES (2, 'John''Adams''Oxford Street''nBeijing');
INSERT INTO Persons_b VALUES (3, 'George''Bush''Fifth Avenue''Beijing');
INSERT INTO Persons_b VALUES (4, 'Thomas''Carter''Changan Street''New York');
INSERT INTO Persons_b VALUES (5, 'William''Carter''Xuanwumen 10''Beijing');
select * from persons_b;

實例:

「使用 UNION 命令:」

列出 persons 和 persons_b 中不同的人:

select * from persons
UNION
select * from persons_b;

「📢注意:」 UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。

🚌 NOT NULL – 非空

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

NOT NULL 約束強制字段始終包含值。這意味着,如果不向字段添加值,就無法插入新記錄或者更新記錄。

語法:

CREATE TABLE 表
(
列 int NOT NULL
);

如上,創建一個表,設置列值不能爲空。

實例:

create table lucifer (id number not null);
insert into lucifer values (NULL);

「📢 注意:」 如果插入 NULL 值,則會報錯 ORA-01400 提示無法插入!

「⭐️ 拓展小知識:」NOT NULL 也可以用於查詢條件:

select * from persons where FirstName is not null;

同理,NULL 也可:

select * from persons where FirstName is null;

感興趣的朋友,可以自己嘗試一下!

🚐 VIEW – 視圖

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

視圖包含行和列,就像一個真實的表。視圖中的字段就是來自一個或多個數據庫中的真實的表中的字段。我們可以向視圖添加 SQL 函數、WHERE 以及 JOIN 語句,我們也可以提交數據,就像這些來自於某個單一的表。

語法:

CREATE VIEW 視圖名 AS
SELECT 列名
FROM 表名
WHERE 查詢條件;

「📢 注意:」 視圖總是顯示最近的數據。每當用戶查詢視圖時,數據庫引擎通過使用 SQL 語句來重建數據。

實例:

下面,我們將 Persons 表中住在 Beijing 的人篩選出來創建視圖:

create view persons_beijing as
select * from persons where city='Beijing';

查詢上面這個視圖:如果需要更新視圖中的列或者其他信息,無需刪除,使用 CREATE OR REPLACE VIEW 選項:

CREATE OR REPLACE VIEW 視圖名 AS
SELECT 列名
FROM 表名
WHERE 查詢條件;

實例:

現在需要篩選出,LASTNAME 爲 Gates 的記錄:

create or replace view persons_beijing as
select * from persons where lastname='Gates';

刪除視圖就比較簡單,跟表差不多,使用 DROP 即可:

drop view persons_beijing;

「❤️ 本章要講的高級語言就先到此爲止,不宜一次性介紹太多~

🎯 SQL 常用函數學習

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

函數的使用語法:

SELECT function() FROM 表;

「❤️ 下面就來看看有哪些常用的函數!」

🍔 AVG – 平均值

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

語法:

SELECT AVG(列名) FROM 表名;

實例:

計算 "orderno" 字段的平均值。

select avg(orderno) from orders;

當然,也可以用在查詢條件中,例如查詢低於平均值的記錄:

select * from orders where orderno < (select avg(orderno) from orders);

🍕 COUNT – 彙總行數

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

語法:

count() 中可以有不同的語法:

SELECT COUNT(*) FROM 表名;
SELECT COUNT(DISTINCT 列名) FROM 表名;
SELECT COUNT(列名) FROM 表名;

實例:

「COUNT(*) :」

select count(*) from persons;

「COUNT(DISTINCT 列名) :」

select count(distinct city) from persons;

「COUNT(列名) :」

select count(city) from persons;

🍘 MAX – 最大值

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

語法:

SELECT MAX(列名) FROM 表名;

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

實例:

select max(orderno) from orders;

🍢 MIN – 最小值

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

語法:

SELECT MIN(列名) FROM 表名;

實例:

select min(orderno) from orders;

🍰 SUM – 求和

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

語法:

SELECT SUM(列名) FROM 表名;

實例:

select sum(orderno) from orders;

🍪 GROUP BY – 分組

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

語法:

SELECT 列名A, 統計函數(列名B)
FROM 表名
WHERE 查詢條件
GROUP BY 列名A;

實例:

獲取 Persons 表中住在北京的總人數,根據 LASTNAME 分組:

select lastname,count(city) from persons 
where city='Beijing' 
group by lastname;

如果不加 GROUP BY 則會報錯:也就是常見的 ORA-00937 不是單組分組函數的錯誤。

🍭 HAVING – 句尾連接

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

語法:

SELECT 列名A, 統計函數(列名B)
FROM table_name
WHERE 查詢條件
GROUP BY 列名A
HAVING 統計函數(列名B) 查詢條件;

實例:

獲取 Persons 表中住在北京的總人數大於 1 的 LASTNAME,根據 LASTNAME 分組:

select lastname,count(city) from persons 
where city='Beijing' 
group by lastname
having count(city) > 1;

🍷 UCASE/UPPER – 大寫

UCASE/UPPER 函數把字段的值轉換爲大寫。

語法:

select upper(列名) from 表名;

實例:

選取 "LastName" 和 "FirstName" 列的內容,然後把 "LastName" 列轉換爲大寫:

select upper(lastname),firstname from persons;

🍶 LCASE/LOWER – 小寫

LCASE/LOWER 函數把字段的值轉換爲小寫。

語法:

select lower(列名) from 表名;

實例:

選取 "LastName" 和 "FirstName" 列的內容,然後把 "LastName" 列轉換爲小寫:

select lower(lastname),firstname from persons;

👛 LEN/LENGTH – 獲取長度

LEN/LENGTH 函數返回文本字段中值的長度。

語法:

select length(列名) from 表名;

實例:

獲取 LASTNAME 的值字符長度:

select length(lastname),lastname from persons;

🍗 ROUND – 數值取捨

ROUND 函數用於把數值字段舍入爲指定的小數位數。

語法:

select round(列名,精度) from 表名;

實例:

保留 2 位:

select round(1.1314,2) from dual;
select round(1.1351,2) from dual;

📢 注意:ROUND 取捨是 「四捨五入」 的!

取整:

select round(1.1351,0) from dual;
select round(1.56,0) from dual;

🍞 NOW/SYSDATE – 當前時間

NOW/SYSDATE 函數返回當前的日期和時間。

語法:

select sysdate from 表名;

實例:

獲取當前時間:

select sysdate from dual;

「📢 注意:」 如果您在使用 Sql Server 數據庫,請使用 getdate() 函數來獲得當前的日期時間。

🍺 寫在最後

「上述如果都學完了的話,可以來做個小測驗,看看掌握的怎麼樣!」 

https://www.w3school.com.cn/quiz/quiz.asp?quiz=sql

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/0EWlWovvgDmwgLgyL57zBQ