MySQL基礎 04 約束

2021-10-25 15:34:53 字數 3207 閱讀 5960

1.約束的概念和分類

約束的分類 約束

說明primary key

主鍵約束

primary key auto_increment

主鍵、自動增長

unique

唯一約束

not null

非空約束

foreign key

外來鍵約束

foreign key on update cascade

外來鍵級聯更新

foreign key on delete cascade

外來鍵級聯刪除

2.主鍵約束

建表時新增主鍵約束

-- 標準語法

create table 表名(

列名 資料型別 primary key,

列名 資料型別,

...);-- 建立student表

create table student(

id int primary key -- 給id新增主鍵約束

);-- 新增資料

insert into student values (1),(2);

-- 主鍵預設唯一,新增重複資料,會報錯

insert into student values (2);

-- 主鍵預設非空,不能新增null的資料

insert into student values (null);

-- 查詢student表

select * from student;

-- 查詢student表詳細

desc student;

-- 標準語法

alter table 表名 drop primary key;

-- 刪除主鍵

alter table student drop primary key;

-- 標準語法

alter table 表名 modify 列名 資料型別 primary key;

-- 新增主鍵

alter table student modify id int primary key;

3.主鍵自動增長約束
-- 標準語法

create table 表名(

列名 資料型別 primary key auto_increment,

列名 資料型別,

...);-- 建立student2表

create table student2(

id int primary key auto_increment -- 給id新增主鍵自增約束

);-- 新增資料

insert into student2 values (1),(2);

-- 新增null值,會自動增長

insert into student2 values (null),(null);

-- 查詢student2表

select * from student2;

-- student2表詳細

desc student2;

-- 標準語法

alter table 表名 modify 列名 資料型別;

-- 刪除自動增長

alter table student2 modify id int;

-- 標準語法

alter table 表名 modify 列名 資料型別 auto_increment;

-- 新增自動增長

alter table student2 modify id int auto_increment;

4.唯一約束
-- 標準語法

create table 表名(

列名 資料型別 unique,

列名 資料型別,

...);-- 建立student3表

create table student3(

id int primary key auto_increment,

tel varchar(20) unique -- 給tel列新增唯一約束

);-- 新增資料

insert into student3 values (null,'18888888888'),(null,'18666666666');

-- 新增重複資料,會報錯

insert into student3 values (null,'18666666666');

-- 查詢student3資料表

select * from student3;

-- student3表詳細

desc student3;

-- 標準語法

alter table 表名 drop index 列名;

-- 刪除唯一約束

alter table student3 drop index tel;

-- 標準語法

alter table 表名 modify 列名 資料型別 unique;

-- 新增唯一約束

alter table student3 modify tel varchar(20) unique;

5.非空約束
-- 標準語法

create table 表名(

列名 資料型別 not null,

列名 資料型別,

...);-- 建立student4表

create table student4(

id int primary key auto_increment,

name varchar(20) not null -- 給name新增非空約束

);-- 新增資料

insert into student4 values (null,'張三'),(null,'李四');

-- 新增null值,會報錯

insert into student4 values (null,null);

-- 標準語法

alter table 表名 modify 列名 資料型別;

-- 刪除非空約束

alter table student4 modify name varchar(20);

mysql基礎,約束

約束 概念 對錶中的資料進行限定,保證資料的正確性 有效性和完整性。分類 1.主鍵約束 primary key 2.非空約束 not null 3.唯一約束 unique 4.外來鍵約束 foreign key 非空約束 再建立表的時候新增約束 建立表之後在新增約束 5.自動增長 1.概念 如果某一...

MySQL學習筆記04之約束

概念 對錶中的資料進行限定,保證資料的正確性 有效性和完整性分類 非空約束 not null 表示這一列的值不能為空 刪除非空約束 alter table table name modify column data tybe 唯一約束 unique 外來鍵約束 foreign key 新增約束 cr...

Mysql系列 基礎 04

建立資料庫 格式 create database db name character set utf8 建立資料表 格式 create table 資料表名 欄位名1 資料型別 列級別約束條件 欄位名2 資料型別 列級別約束條件 欄位名3 資料型別 列級別約束條件 檢視表結構 格式 describe...