1. 程式人生 > >SQL複習——高階命令大全

SQL複習——高階命令大全

UNION 操作符

UNION操作符合並兩個或多個SELECT語句的結果,每一個選擇語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每個選擇語句中的列的順序必須相同。

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
#UNION 操作符選取不同的值。如果允許重複的值,請使用 UNION ALL
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
#UNION 結果集中的列名總是等於 UNION 中第一個 SELECT 語句中的列名。

SELECT INTO 語句

從一個表複製資料,將資料插入到另一個新表中

SELECT * 
INTO newtable
FROM table1;

CREATE DATABASE 語句

用於建立資料庫

CREATE DATABASE dbname;

CREATE TABLE 語句

用於建立資料庫中的表,表由行和列組成,每一個表必須有個表名。

CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
)

SQL 約束

約束用於規定表中的資料規則。如果存在違反約束的資料行為,行為會被約束終止,約束可以在建立表的時候規定,或者在表建立之後規定。

CERATE TABLE table_name
(
column_name1 date_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)
  • NOT NULL指示某列不能儲存NULL值
  • UNIQUE 保證某列的每行必須有唯一的值
  • PRIMARY KEY 確保某列(或兩個列多個列的結合)有唯一標識,有助於更容易更快速地找到表中的一個特定的記錄
  • FOREIGN KEY 保證一個表中的資料匹配另一個表中的值的參照完整性,一個表中的 FOREIGN KEY 指向另一個表中的 UNIQUE KEY(唯一約束的鍵)。用於預防破壞表之間的連線行為,也能防止非法資料插入外來鍵列,因為它必須是它指向的那個表中的值之一。
  • CHECK 保證列中的值符合指定的條件
  • DEFAULT 規定沒有給列賦值時的預設值

CREATE INDEX語句

用於在表中建立索引,在不讀取整個表的情況下,索引使資料庫應用程式可以更快地查詢資料。 建立索引,可以更加快速高效地查詢資料。更新一個包含索引的表需要比更新一個沒有索引的表話費更多的時間,這是由於索引本身也需要更新。因此,理想的做法僅僅在常常被搜尋的列上建立索引。

CREATE INDEX index_name
ON table_name(column_name)

撤銷索引、撤銷表以及撤銷資料庫

通過使用 DROP 語句,可以輕鬆地刪除索引、表和資料庫。 如果我們僅僅需要刪除表內的資料,請使用 TRUNCATE TABLE 語句。

ALTER TABLE 語句

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

ALTER TABLE table_name
ADD column_name datatype
ALTER TABLE table_name
DROP COLUMN column_name

AUTO INCREMENT 欄位

Auto-increment 會在新記錄插入表中時生成一個唯一的數字。 ALTER TABLE Persons AUTO_INCREMENT=100

檢視(Views)

檢視是基於 SQL 語句的結果集的視覺化的表。 檢視包含行和列,就像一個真實的表。檢視中的欄位就是來自一個或多個數據庫中的真實的表中的欄位。 您可以向檢視新增 SQL 函式、WHERE 以及 JOIN 語句,也可以呈現資料,就像這些資料來自於某個單一的表一樣。

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