MySQL表级完整性约束
生活随笔
收集整理的這篇文章主要介紹了
MySQL表级完整性约束
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MySQL表級完整性約束
為防止不符合規范的數據存入數據庫,在用戶對數據進行插入、修改、刪除等操作時,MySQL提供 了一種機制來檢查數據庫是否滿足規定的條件,以保證數據庫中數據的準確性和一致性,這種機制 就是完整性約束。MySQL中主要支持六種完整性約束,如表所示。| 約束條件 | 約束描述 |
| PRIMARY KEY | 主鍵約束,約束的值可唯一的標識對應的記錄 |
| NOT NULL | 非空字段的值不能為空 |
| UNIQUE | 唯一約束,約束1字段的值是唯一的 |
| CHECK | 檢查約束,限制某個字段的取值范圍 |
| DEFAULT | 默認值約束,約束字段的默認值 |
| AUTO_INCREMENT | 自動增加位數,約束字段的值自動遞增 |
| FOREIGN KEY | 外鍵約束,約束與表之間的關系 |
?
?
?
?
?
?
?
?
?
約束從作用上可以分為兩類:(1) 表級約束:可以約束表中任意一個或多個字段。與列定義的相互獨立,不包含 在列表定義中;與定義用‘,’分隔;必須指出要約束的列的名稱;(2) 列級約束:包含在列定義中,直接跟在該列的其他定義之后,用空格分隔,不必指定列名;?
1、主鍵約束 主鍵約束(PRIMARY KEY,縮寫PK),是數據庫中最重要的一種約束,其作用是約束表中的某個字段可以 唯一標識一條記錄。因此,使用主鍵約束可以快速查找表中的記錄,就像人的身份證、學生的學號等等, 設置主鍵的字段取值不能重復(唯一),也不能為空(非空),否則無法唯一標識一條記錄。2、非空約束 非空約束(NOT NULL,縮寫NK),規定一張表中指定的某個字段的值不能為空(NULL),設置了非空約束 的字段,在插入的數據為NULL時,數據庫會提示錯誤,導致數據無法插入。 無論是單個字段還是多個字段非空約束的添加只能使用列級約束(非空約束無表級約束)為已存在表中的字段添加非空約束
alter table student modify stu_sex varchar(1)not null;
使用ALTER TABLE語句刪除非空約束
3、唯一約束: 唯一約束(UNIQUE,縮寫QK):它規定了一張表中指定的某個字段的值不能重復,即這一字段的 每個值都是唯一的。如果想要某個字段的值不重復,那么就可以為該字段添加唯一約束。4、檢查約束 檢查約束(CHECK)用來限制某個字段的取值范圍,可以定義為列級約束,也可以定義為表級約束。 MySQL8開始檢查表級約束5、默認值約束 默認值約束(DEFAULT)用來規定字段的默認值。。如果某個被設置為DEFAULT約束的字段沒插入具體指, 那么該字段的值將會被默認值填充。 默認值約束的設置與非空約束一樣,也只能使用列級約束。6、字段值自動增加約束 自增約束(AUTO_INCREMENT)可以使表中某個字段的值自動增加。一張表中只能有一個自增長字段, 并且該字段必須定義了約束(該約束可以使主鍵約束、唯一約束以及自增長約束),如果自增長字段沒有 定義約束,數據庫會提示錯誤。 由于自增約束會自動生成唯一的ID,所以自增約束通常會配合主鍵使用,并且只適用于數據整型。一般情 況下,設置自增約束字段的值會從1開始,每增加一條記錄,該字段的值就加1.為已存在表中的字段添加自增約束
create table stu(stu_id int(10) primary key,stu_name varchar(3),stu_sex varchar(1));
使用ALTER TABLE語句刪除自增約束
alter table stu modify stu_id int(10);
總結
以上是生活随笔為你收集整理的MySQL表级完整性约束的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论java中可变参数
- 下一篇: win10配置mysql8.0_Win1