MySQL資料庫學習 約束與資料表修改

2021-07-24 23:56:46 字數 2231 閱讀 9909

一、

約束:保證資料的完整性和一致性,約束分為列級約束和表級約束

約束種類:

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 主鍵約束要求主鍵列的資料唯一,並且不能為空。主鍵分為兩種型別 單字段主鍵和多字段聯...