概述:UNION、SELECT INTO、INSERT INTO SELECT、SQL 約束。 UNION操作符 UNION 操作符用於合併兩個或多個 SELECT 語句的結果集。 請註意,UNION 內部的每個 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每個 SEL ...
概述:UNION、SELECT INTO、INSERT INTO SELECT、SQL 約束。
UNION操作符
UNION 操作符用於合併兩個或多個 SELECT 語句的結果集。
請註意,UNION 內部的每個 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每個 SELECT 語句中的列的順序必須相同。
預設地,UNION 操作符選取不同的值。如果允許重覆的值,請使用 UNION ALL。
語法:
SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2; --UNION 結果集中的列名總是等於 UNION 中第一個 SELECT 語句中的列名。
SELECT INTO 語句
通過 SQL,您可以從一個表複製信息到另一個表。
SELECT INTO 語句從一個表複製數據,然後把數據插入到另一個新表中。
語法:
--新表將會使用 SELECT 語句中定義的列名稱和類型進行創建。您可以使用 AS 子句來應用新名稱。 SELECT * INTO newtable FROM table1 --我們可以複製所有的列插入到新表中 SELECT column1,column2 INTO newtable FROM table1 --或者只複製希望的列插入到新表中 SELECT Websites.name, access_log.count, access_log.date INTO WebsitesBackup2016 FROM Websites LEFT JOIN access_log ON Websites.id=access_log.site_id --複製多個表中的數據插入到新表中 SELECT * INTO newtable FROM table1 WHERE 1=0 --SELECT INTO 語句可用於通過另一種模式創建一個新的空表。只需要添加促使查詢沒有數據返回的 WHERE 子句即可
INSERT INTO SELECT 語句
通過 SQL,您可以從一個表複製信息到另一個表。
INSERT INTO SELECT 語句從一個表複製數據,然後把數據插入到一個已存在的表中。
語法:
INSERT INTO table2 SELECT * FROM table1 --我們可以從一個表中複製所有的列插入到另一個已存在的表中 INSERT INTO Websites (name, country) SELECT app_name, country FROM apps --或者我們可以只複製希望的列插入到另一個已存在的表中
SQL 約束
SQL 約束用於規定表中的數據規則。
如果存在違反約束的數據行為,行為會被約束終止。
約束可以在創建表時規定(通過 CREATE TABLE 語句),或者在表創建之後規定(通過 ALTER TABLE 語句)。
在 SQL 中,我們有如下約束:
- NOT NULL - 指示某列不能存儲 NULL 值。
- UNIQUE - 保證某列的每行必須有唯一的值。
- PRIMARY KEY - NOT NULL 和 UNIQUE 的結合。確保某列(或兩個列多個列的結合)有唯一標識,有助於更容易更快速地找到表中的一個特定的記錄。
- FOREIGN KEY - 保證一個表中的數據匹配另一個表中的值的參照完整性。
- CHECK - 保證列中的值符合指定的條件。
- DEFAULT - 規定沒有給列賦值時的預設值。