详细图解数据库约束
以下使用sql server的sqlcmd;
?
SQL 約束
約束用于限制加入表的數據的類型。
可以在創建表時規定約束(通過 CREATE TABLE 語句),或者在表創建之后也可以(通過 ALTER TABLE 語句)。
主要有以下幾種約束:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
?
NOT NULL 約束強制列不接受 NULL 值。
NOT NULL 約束強制字段始終包含值。這意味著,如果不向字段添加值,就無法插入新記錄或者更新記錄。
下面的 SQL 語句強制 "id_p" 列和 "lastname" 列不接受 NULL 值:
?
SQL UNIQUE 約束
UNIQUE 約束唯一標識數據庫表中的每條記錄。
UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。
PRIMARY KEY 擁有自動定義的 UNIQUE 約束。
每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。
?
命名的unique約束;
?
?
sp_help persons查看表的情況;
?
sql server 不支持的寫法;
?
查看對象;
?
刪除之后用sp_help查看沒有了;
?
SQL PRIMARY KEY 約束
PRIMARY KEY 約束唯一標識數據庫表中的每條記錄。
主鍵必須包含唯一的值。
主鍵列不能包含 NULL 值。
每個表都應該有一個主鍵,并且每個表只能有一個主鍵。
?
聯合兩個列作為主鍵;
?
sql server 不支持的寫法,
?
添加主鍵;
?
?
?
刪除主鍵;
?
?
刪除后對象查看不到了;
?
SQL FOREIGN KEY 約束
一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。
"orders" 中的 "id_p" 列指向 "persons" 表中的 "id_p" 列。
"persons" 表中的 "id_p" 列是 "persons" 表中的 PRIMARY KEY。
"orders" 表中的 "id_p" 列是 "orders" 表中的 FOREIGN KEY。
FOREIGN KEY 約束用于預防破壞表之間連接的動作。
FOREIGN KEY 約束也能防止非法數據插入外鍵列,因為它必須是它指向的那個表中的值之一。
?
創建命名的外鍵;
?
添加外鍵;
?
創建表,添加外鍵,查看外鍵;
?
刪除外鍵;刪除后sp_help查看不到;
?
SQL CHECK 約束
CHECK 約束用于限制列中的值的范圍。
如果對單個列定義 CHECK 約束,那么該列只允許特定的值。
如果對一個表定義 CHECK 約束,那么此約束會在特定的列中對值進行限制。
?
創建表,帶check約束,查看約束對象;
?
SQL DEFAULT 約束
DEFAULT 約束用于向列中插入默認值。
如果沒有規定其他的值,那么會將默認值添加到所有的新記錄。
city字段默認值為“beijing”;
?
總結
- 上一篇: 初次尝试使用Windbg调试Sql Se
- 下一篇: linux cmake编译源码,linu