1. 程式人生 > >資料完整性和約束(操作)

資料完整性和約束(操作)

1、資料完整性:是指資料的精確性和可靠性。(資料有效+資料型別準確)

2、完整性包含:

1.實體完整性

主鍵約束、唯一約束、外來鍵約束

2.域(列)完整性

預設約束、唯一約束、非空約束、觸發器

3.自定義完整性

觸發器、儲存過程

4.引用完整性

外來鍵約束

3、約束的常用操作

(1) 主鍵約束
  1. 在表定義的時候新增主鍵
CREATE TABLE <table_name> (
<columu_name> type PRIMARY KEY
 );
 --列名 定義 PRIMARY KEY

2.在表以建立時新增主鍵

ALTER TABLE <table_name> ADD PRIMARY KEY (column_name);
-- alter table 表名 add primary key (列名)

刪除主鍵

ALTER TABLE <table_name> DROP PRIMARY KEY
(2) 外來鍵約束

1.在表定義的時候

CREATE TABLE <table_name> (
  <column_name> int ,
  FOREIGN KEY (column_name) REFERENCES old_table_name(old_column)
);

2.在表已建立時新增外來鍵

ALTER TABLE <table_name> ADD  
FOREIGN KEY (column) REFERENCES old_table_name(old_column);
-- alter table 表名 add foreign key (列名) peferences 父表名(列名)

刪除外來鍵

ALTER TABLE <table_name> DROP FOREIGN KEY <columu_name>
(3) 自增長約束
CREATE TABLE <table_name>(
<columu_name> INT
AUTO_INCREMENT PRIMARY KEY );
-- 設定為自增的列必須設定為主鍵,並且一張表裡只能有一個自增列 -- 欄位和主鍵同時定義並設定自增長
(4) 唯一約束
CREATE TABLE <table_name>(
vip VARCHAR(50) UNIQUE
);
-- 定義vip欄位
-- UNIQUE和主鍵都能唯一標識資料庫表中的每條記錄
-- 但是每個表只能有一個主鍵,UNIQUE可以有多個
(5) 非空約束
CREATE TABLE <table_name>(
name VARCHAR(50) NOT NULL
);
-- 定義name欄位非空
(6) 預設約束
CREATE TABLE <table_name>(
tel VARCHAR(50) DEFAULT "預設內容"
);
-- 定義tel欄位預設值
(7) 檢查約束(mysql不支援)