一、
約束:保證資料的完整性和一致性,約束分為列級約束和表級約束
約束種類:
not null(
非空約束),
primary key(
主鍵約束),
uniquekey(
唯一約束),
default(
預設約束),
foreign key(
外來鍵約束)。
二、外來鍵約束:用於保證資料的一致性,完整性,實現一對一或一對多關係。 三、
外來鍵約束的要求: 1.
父表和子表必須使用相同的儲存引擎,而且禁止使用臨時表。 2.
資料表的儲存引擎只能為
innodb。
3.外來鍵列和參照列必須具有相似的資料型別。其中數字的長度或是否有符號位必須相同;而字元的長度則可以不同。 4.
外來鍵列和參照列必須建立索引。如果外來鍵列不存在索引的話,
mysql
將自動建立索引。 四、
外來鍵約束的參照操作 1.
cascade
:從父表刪除或更新且自動刪除或更新子表中匹配的行 2.
set null
:從父表刪除或更新行,並設定子表中的外來鍵列為
null
。如果使用該選項,必須保證子表列沒有指定
not null。
3.restrict
:拒絕對父表的刪除或更新操作。 4.
no action
:標準sql
的關鍵字,在
mysql
中於restrict
相同。
五、資料表修改 1.
新增列(可以指定新增列的位置)
alter table
表名add [column]
列名資料型別 約束條件
[first | after列名]
2.新增多列(只能新增在列的最後)
alter table
表名add [column] (
列名、資料型別,約束條件,
…)3.
刪除列
alter table
表名drop [column]
列名,drop [column]
列名….;
4.新增主鍵約束
alter table
表名add [constraint [symbol]] primary key [index_type](index_col_name,..);
5.新增唯一約束
alter table
表名add [constraint [symbol]]unique [index | key] [index_name] [index_type] (index_col_name,..);
6.新增外來鍵約束
alter table
表名add [constraint [symbol]]foreign key [index_name] (index_col_name,..) reference_definition;
例:alter table users2 add foreign key (pid) referencesprovinces (id);
7.新增
/刪除預設約束
alter table
表名alter [columns]列名;
8.刪除約束
刪除主鍵約束
alter table
表名drop primary key;
刪除唯一約束
alter table
表名drop index_name;
刪除外來鍵約束
alter table
表名drop foreign key fk_symbol;
9.修改列定義
alter table
表名modify [column]
列名資料型別 約束條件
[first | after列名]
10.修改列名稱
alter table
表名change [column]
舊列名新列名 列定義
[first | after列名]
11.修改資料表名
方法一:
alter table
表名rename [to | as]
新錶名
方法二:
rename table
表名to
新錶名[,
表名to
新錶名]
MySQL資料庫 資料約束
對使用者操作表的資料進行約束 作用 當使用者對使用預設值的字段不插入值的時候,就使用預設值。注意 1 對預設值字段插入 null 是可以的 2 對預設值字段可以插入非 null create table student id int,name varchar 20 address varchar 2...
學習資料庫 約束
約束語句 解釋主鍵約束 primary key 要求設定的列非空 not null 且唯一 unique 外來鍵約束 foreign key references c 要求設定的列參照列c,列c有資料時,在設定的列中才可新增相應的資料,兩列資料型別必須相同 非空約束 not null 要求設定的列非...
Mysql資料庫 約束型別
mysql資料庫的約束型別有 主鍵約束 primary key 外來鍵約束 foreign key 非空約束 not null 唯一性約束 unique 預設約束 default 一.主鍵約束 primary key 主鍵約束要求主鍵列的資料唯一,並且不能為空。主鍵分為兩種型別 單字段主鍵和多字段聯...