⑴ sql中表達完整性約束的規則主要有哪幾種
1、實體完整性:規定表的每一行在表中是惟一的實體。
2、域完整性:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值范圍、精度等規定。
3、 參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在資料庫中擴散。
4、用戶定義的完整性:不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。
(1)sql中約束的關鍵字擴展閱讀
完整性約束的類型介紹:
1、與表有關的約束:是表中定義的一種約束。可在列定義時定義該約束,此時稱為列約束,也可以在表定義時定義約束,此時稱為表約束。
2、域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關系。
3、斷言(Assertion):在斷言定義時定義的一種約束,它可以與一個或多個表進行關聯。
⑵ SQL語句的外鍵約束
ALTER TABLE AA ADD CONSTRAINT FK_A FOREIGN KEY (A) REFERENCES CC (C)
把表CC的C欄位 引用為表AA的A欄位的外鍵,FK_A是外鍵約束名
意思就是把表AA的A欄位值域限制為表CC的C欄位的值域
⑶ SQL unique約束的用法
UNIQUE 約束唯一標識資料庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。
PRIMARY KEY 擁有自動定義的 UNIQUE 約束。
請注意,每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。
獨特的SQL制約創建表
下列SQL創建了一個唯一約束的「 P_Id 」一欄時, 「人」是創建表:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)
SQL Server / Oracle / MS Access: CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
⑷ SQL里的表,列,鍵,約束,觸發器分別什麼意思,主關鍵字和外部關鍵字是什麼
Sol,裡面的表列建約束觸發器主關鍵字和外部關聯
⑸ 詳解如何定義SQL Server外關鍵字約束
SQL
Server外關鍵字約束定義了表之間的關系。當一個表中的一個列或多個列的組合和其它表中的主關鍵字定義相同時,就可以將這些列或列的組合定義為外關鍵字,並設定它適合哪個表中哪些列相關聯。這樣,當在定義SQL
Server主關鍵字約束的表中更新列值,時其它表中有與之相關聯的外關鍵字約束的表中的外關鍵字列也將被相應地做相同的更新。外關鍵字約束的作用還體現在,當向含有外關鍵字的表插入數據時,如果與之相關聯的表的列中無與插入的外關鍵字列值相同的值時,系統會拒絕插入數據。與主關鍵字相同,不能使用一個定義為TEXT
或IMAGE
數據類型的列創建外關鍵字。外關鍵字最多由16
個列組成。
定義外關鍵字約束的語法如下:
以下是代碼片段:
CONSTRAINT
constraint_name
FOREIGN
KEY
(column_name1[,
column_name2,…,column_name16])
REFERENCES
ref_table
[
(ref_column1[,ref_column2,…,
ref_column16]
)]
[
ON
DELETE
{
CASCADE
|
NO
ACTION
}
]
[
ON
UPDATE
{
CASCADE
|
NO
ACTION
}
]
]
[
NOT
FOR
REPLICATION
]
各參數說明如下:
REFERENCES
指定要建立關聯的表的信息。
ref_table
指定要建立關聯的表的名稱。
ref_column
指定要建立關聯的表中的相關列的名稱。
以下是代碼片段:
ON
DELETE
{CASCADE
|
NO
ACTION}
指定在刪除表中數據時,對關聯表所做的相關操作。在子表中有數據行與父表中的對應數據行相關聯的情況下,如果指定了值CASCADE,則在刪除父表數據行時會將子表中對應的數據行刪除;如果指定的是NO
ACTION,則SQL
Server
會產生一個錯誤,並將父表中的刪除操作回滾。NO
ACTION
是預設值。
以下是代碼片段:
ON
UPDATE
{CASCADE
|
NO
ACTION}
指定在更新表中數據時,對關聯表所做的相關操作。在子表中有數據行與父表中的對應數據行相關聯的情況下,如果指定了值CASCADE,則在更新父表數據行時會將子表中對應的數據行更新;如果指定的是NO
ACTION,則SQL
Server
會產生一個錯誤,並將父表中的更新操作回滾。NO
ACTION
是預設值。
以下是代碼片段:
NOT
FOR
REPLICATION
指定列的外關鍵字約束在把從其它表中復制的數據插入到表中時不發生作用。
希望可以幫到你,謝謝!
⑹ sql唯一約束的關鍵字是什麼
unique
用法如下
create unique index UDX_USERS_EMAIL on USERS (EMAIL);
⑺ 請教大家SQl中幾個關鍵字的意思及用法
distinct
顯示不重復的數據
select
distinct
aaa,bbb,ccc
form
table
identity
自動增長列
CREATE
TABLE
TY
(
Y_id
int
IDENTITY(100,5)PRIMARY
KEY,
Y_name
varchar(20)
NULL)
convert
轉換類型的關鍵字
SELECT
CONVERT(varchar(30),getdate(),101)
now
constraint
約束的關鍵字
CREATE
CONSTRAINT
TRIGGER
名稱
⑻ sql中常見的約束怎麼寫
如 由「E」加9位數字組成,前四位為聘用年份,後五位為流水號。
check(列 like 'E[12][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
不小於6位,不多於10位。
check(LEN(列) BETWEEN 6 AND 10)
由等級「一」到「五」加上「星級」組成
CHECK(列 like '等級[一二三四五]' OR 列='星級')
,值域為{湘菜,贛菜,川菜,魯菜,北京菜,東北菜,閔菜,粵菜,泰國菜,法國菜,韓國料理,日本料理,東南亞料理,普通西餐,其他}
CHECK(列 IN('湘菜','贛菜','川菜','魯菜','北京菜','東北菜','閔菜','粵菜','泰國菜','法國菜','韓國料理','日本料理','東南亞料理','普通西餐','其他'))
⑼ sql 約束名
SQL 約束(Constraints)
SQL 約束用於規定表中的數據規則。
如果存在違反約束的數據行為,行為會被約束終止。
約束可以在創建表時規定(通過 CREATE TABLE 語句),或者在表創建之後規定(通過 ALTER TABLE 語句)。