天天看點

筆記

UNIQUE 限制唯一辨別資料庫表中的每條記錄。

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

PRIMARY KEY 限制擁有自動定義的 UNIQUE 限制。

請注意,每個表可以有多個 UNIQUE 限制,但是每個表隻能有一個 PRIMARY KEY 限制。

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

PRIMARY KEY 限制唯一辨別資料庫表中的每條記錄。

主鍵必須包含唯一的值。

主鍵列不能包含 NULL 值。

每個表都應該有一個主鍵,并且每個表隻能有一個主鍵。

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

CREATE TABLE Orders

O_Id int NOT NULL PRIMARY KEY,

OrderNo int NOT NULL,

P_Id int FOREIGN KEY REFERENCES Persons(P_Id)

ALTER TABLE Orders

ADD FOREIGN KEY (P_Id)

REFERENCES Persons(P_Id)

ADD CONSTRAINT fk_PerOrders

FOREIGN KEY (P_Id)

DROP CONSTRAINT fk_PerOrders

DEFAULT 限制用于向列中插入預設值。

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

City varchar(255) DEFAULT 'Sandnes'

CREATE TABLE Orders11

O_Id int NOT NULL,

P_Id int,

OrderDate smalldatetime DEFAULT GETDATE(),

ALTER COLUMN City DROP DEFAULT

索引是一種特殊的查詢表,可以被資料庫搜尋引擎用來加速資料的檢索。簡單說來,索引就是指向表中資料的指針。資料庫的索引同書籍後面的索引非常相像。

例如,如果想要查閱一本書中與某個特定主題相關的所有頁面,你會先去查詢索引(索引按照字母表順序列出了所有主題),然後從索引中找到一頁或者多頁與該主題相關的頁面。

索引能夠提高 SELECT 查詢和 WHERE 子句的速度,但是卻降低了包含 UPDATE 語句或 INSERT 語句的資料輸入過程的速度。索引的建立與删除不會對表中的資料産生影響。

建立索引需要使用 CREATE INDEX 語句,該語句允許對索引命名,指定要建立索引的表以及對哪些列進行索引,還可以指定索引按照升序或者降序排列。

同 UNIQUE 限制一樣,索引可以是唯一的。這種情況下,索引會阻止列中(或者列的組合,其中某些列有索引)出現重複的條目。

子查詢(Sub Query)或者說内查詢(Inner Query),也可以稱作嵌套查詢(Nested Query),是一種嵌套在其他 SQL 查詢的 WHERE 子句中的查詢。

子查詢用于為主查詢傳回其所需資料,或者對檢索資料進行進一步的限制。

子查詢可以在 SELECT、INSERT、UPDATE 和 DELETE 語句中,同 =、<、>、>=、<=、IN、BETWEEN 等運算符一起使用。

使用子查詢必須遵循以下幾個規則:

子查詢必須括在圓括号中。

子查詢的 SELECT 子句中隻能有一個列,除非主查詢中有多個列,用于與子查詢選中的列相比較。

子查詢不能使用 ORDER BY,不過主查詢可以。在子查詢中,GROUP BY 可以起到同 ORDER BY 相同的作用。

傳回多行資料的子查詢隻能同多值操作符一起使用,比如 IN 操作符。

SELECT 清單中不能包含任何對 BLOB、ARRAY、CLOB 或者 NCLOB 類型值的引用。

子查詢不能直接用在集合函數中。

BETWEEN 操作符不能同子查詢一起使用,但是 BETWEEN 操作符可以用在子查詢中。

上一篇: 筆記
下一篇: 筆記

繼續閱讀