国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL常見約束條件

2024-07-24 12:36:27
字體:
來源:轉載
供稿:網友

約束條件:限制表中的數據,保證添加到數據表中的數據準確和可靠性!凡是不符合約束的數據,插入時就會失敗!
約束條件在創建表時可以使用, 也可以修改表的時候添加約束條件

1、約束條件分類:
1)not null :非空約束,保證字段的值不能為空
? ? ?s_name VARCHAR(10) NOT NULL, #非空

2)default:默認約束,保證字段總會有值,即使沒有插入值,都會有默認值!
? ? ?age INT DEFAULT 18, #默認約束

3)unique:唯一,保證唯一性但是可以為空,比如座位號
? ? ?s_seat INT UNIQUE,#唯一約束

4)check:檢查性約束【mysql不支持,語法不報錯,但無效】
? ? ?s_sex CHAR(1) CHECK(s_sex='男' OR s_sex='女'),#檢查約束(Mysql無效)

5)primary key :主建約束,同時保證唯一性和非空
? ? ?id INT PRIMARY KEY,#主建約束(唯一性,非空)

6)foreign key:外鍵約束,用于限制兩個表的關系,保證從表該字段的值來自于主表相關聯的字段的值!
? ? ?teacher_id INT REFERENCES teacher(id) ? #這是外鍵,寫在列級,Mysql無效

注意
1. 列級約束
? ? 上面6種約束都可以寫,語法都支持,不報錯,但外鍵約束寫了mysql無效不起作用
2. 表級約束
? ? 非空、默認不支持,其他都可以!

? ? 語法:

? ? ? 其他: 【constraint 約束名】 約束類型(字段名稱) ,

? ? ? 外鍵:? 【constraint 約束名】 約束類型(字段名稱) foreign key(字段名稱) references 關聯表名(其字段名),

DROP TABLE IF EXISTS students;CREATE TABLE students(id INT ,s_name VARCHAR(10) not null,# 非空約束s_sex CHAR(1) default '男',  # 默認約束s_seat INT,age INT ,teacher_id INT , #上面是列級約束,下面有表級約束CONSTRAINT pk PRIMARY KEY(id), #主建約束,pk是起的名,后面一樣CONSTRAINT uq UNIQUE(s_seat),  #唯一約束CONSTRAINT ck CHECK(s_sex='男' OR s_sex='女'), #檢查約束CONSTRAINT fk_students_teacher FOREIGN KEY(teacher_id) REFERENCES teacher(id)  #外鍵約束);

2、MySQL修改表時添加或刪除約束

? ? ?即修改表字段的數據類型或約束

? ? 外鍵刪除約束: ALTER TABLE 表名 DROP CONSTRAINT 約束名稱

1) 非空約束
alter table students modify column s_name varchar(20) not null; # 添加?
alter table students modify column s_name varchar(20) ; ? ? ? ? ? ? # 刪除 不寫約束條件

2)默認約束
alter table students modify column age int default 18; #添加
alter table students modify column age; ? ? ? ? ? ? ? ? ? ? ?#刪除

3)唯一鍵約束
alter table students modify column seat int unique; #添加
alter table students drop index seat; ? ? ? ? ? ? ? ? ? ? ? #刪除
show index from students; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? #查看唯一約束

4)主鍵約束
alter table students modify column id int primary key; #添加
alter table students drop primary key; ? ? ? ? ? ? ? ? ? ? ? ? #刪除?約束名稱

5)外鍵約束
alter table students add foreign key(major_id) references majors(id); #添加
alter table students drop foreign key fk_students_teacher; ? ? ? ? ? ? ? ?#刪除?約束名稱

3、自增長列?auto_increment

id int primary key auto_increment,

一個表中有且只能有一個自增長列,自增長列一般和主鍵搭配

修改表的時候添加自增長列:
alter table t_indentity modify column id int primary key auto_increment;

刪除自增長列:
alter table t_indentity modify column id int;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卓尼县| 闽清县| 丘北县| 山东省| 彭阳县| 文安县| 和平区| 吴江市| 游戏| 靖江市| 丰原市| 武乡县| 大洼县| 通江县| 双江| 来宾市| 舒城县| 平山县| 宁强县| 白河县| 阳谷县| 阿克苏市| 自贡市| 博白县| 兰州市| 乐都县| 河东区| 黄陵县| 乌鲁木齐县| 仙游县| 杭锦后旗| 磴口县| 淮北市| 安达市| 广宗县| 灯塔市| 顺昌县| 通榆县| 札达县| 连云港市| 锡林浩特市|