約束以及修改資料表

2022-06-20 02:15:12 字數 2121 閱讀 8744

約束

1,約束保證資料的完整行和一致性。

2,約束分為表級約束和列級約束。

3,約束型別包括:

primary key(主鍵約束)

unique key (唯一約束)

default (預設約束)

foreign key (外來鍵約束)

外來鍵約束的要求

1,父表和子表必須使用相同的儲存引擎,而且禁止使用臨時表。

2,資料表的儲存引擎必須為innodb

3,外來鍵列和參照列必須具有相似的資料型別。其中數字的長度或是否有符號位必須相同,而字元的長度則可以不同。

4,外來鍵列和參照列必須建立索引,如果外來鍵列不存在索引的話,mysql將自動建立索引。

外來鍵約束語句:

foreign key(子表列名) references 父表名(父表列名)

外來鍵約束的參照操作

1,cascade:    從父表刪除或更新且自動刪除或更新子表中匹配的行

2,set null:    從父表刪除貨更新行,並設定子表中的外來鍵列為null。如果使用該選項,必須保證子表列沒有指定not null。

3,restrict:    拒絕對父表的刪除或更新操作。

4,no action:    標準sql關鍵字,在mysql中與restrict相同

新增主鍵約束

alter table 表名 add primary key(列名) ;

alter table tbl_name add [constraint [symbol]] primary key[index_type](index_col_name,...)

刪除主鍵約束

alter table 表名 drop primary key;

新增外來鍵約束

alter table 表名 addforeign key(外來鍵列) references 父表名(參照列);

刪除外來鍵約束

alter table 表名 drop foreign key  `外鍵名`;

新增唯一約束

alter table tbl_name add [constraint[symbol]] unique [index | key] 

[index_name] [index_type] (index_col+name,...)

新增/刪除預設約束

alter table tbl_name alter[column] col_name

修改字段資料型別

alter table `mierx`.`jt` change `時間` `時間` datetime null; 

刪除索引

alter table 表名 drop index 索引名

普通索引建立

1,alter table 表名 add index 索引名(列名)

2,create  index  索引名  on  表名(列名)

3,建立表的時候指定索引,

約束和修改資料表

外來鍵約束 foreign key 作用 保證資料的一致性 完整性,實現一對一或一對多關係 要求 1.父表和字表必須使用相同的儲存引擎,禁止使用臨時表 2.資料表的儲存引擎只能是innodb 3.外來鍵列和參照列必須有相似的資料型別,其中數字的長度和符號位必須相同,字元的長度可以不同 4.外來鍵列和...

Mysql值之約束以及修改資料表

unsigned 這裡約束的意思是沒符號,不能為負數,只能是整數 外來鍵約束的參照操作 由上圖中的指令,on delete是在執行刪除指令,當我們重新建立一張表關聯父表,然後為他們新增資料,但是當我們刪除父表中的資料後,子表中的資料也會隨著父表的刪除而刪除,這裡只是展示了刪除,同時更新也是一樣的 表...

MySQL之約束 修改資料表

一 約束 約束保證資料的完整性和一致性 約束分為表級約束和列級約束。約束型別包括 not null 非空約束 primary key 主鍵約束 unique key 唯一約束 default 預設約束 forgign key 外來鍵約束 列級約束 對乙個資料列建立的約束,既可以在列定義時宣告,亦可以...