1、常見約束
not null:非空
該字段的值是必填的,如果不設定該約束,該欄位預設是可以為空
default:預設
該字段有預設值
check:檢查,mysql語法支援,但效果不支援
該字段值可以加以限制,比如年齡可以控制在0-120之間
primary key:主鍵
該字段值不可以重複
1、不可以為空
2、乙個表中只能有乙個主鍵,但是可以多個欄位做組合主鍵
unique:唯一約束
該字段值不可以重複
1、可以為空
2、乙個表中可以有多個唯一鍵,可以有組合唯一鍵
foreign key:外來鍵
用於限制多表的關係
1、從表的該字段值必須來自於主表的關聯列的值
2、從表和主表的關聯列的型別必須一樣
3、主表的關聯列必須是主鍵
4、在從表中設定外來鍵
5、乙個表中可以新增多個外來鍵
6、插入資料時,先插入主表
刪除資料時,先刪除從表
分類: 位置 支援
列級約束 列的後面 除了外來鍵
表級約束 表的後面 除了非空和預設
★★★★★★★★★★★建立表時新增約束 ★★★★★★★★★★★ √
create table 表名(
欄位名 字段型別 列級約束,
欄位名 字段型別 列級約束,
表級約束
)
2、新增列級約束
use test;
drop table if exists stuinfo;
create table stuinfo(
id int not null unique,#非空約束+主鍵約束
stuname varchar(20) unique,#唯一約束
gender char default '男',#預設約束
age int unsigned check (age between 0 and 120)#檢查約束
);desc stuinfo;
select * from stuinfo;
3、插入預設值
insert into stuinfo(id,stuname,age) values(3,'lily',12);
insert into stuinfo values(5,'jack',default,900);
4、關於插入null
insert into stuinfo values(7,null,default,900);
5、關於插入多個唯一或主鍵
drop table if exists stuinfo;
create table stuinfo(
id int not null unique,#非空約束+主鍵約束
stuname varchar(20) unique,#唯一約束
gender char default '男',#預設約束
age int unsigned check (age between 0 and 120)#檢查約束
);
黑猴子的家 mysql 標識列
1 標識列總結 標識列又稱為自增長列 語法auto increment 特點 設定為標識列的字段,值不用手動插入,自動會有序列值,不用擔心重複問題 1 標識列字段的型別必須為數值型 2 標識列欄位必須為乙個key 主鍵或唯一或外來鍵 3 乙個表中至多有乙個標識列 4 如果用delete刪除,標識列的...
mysql 列約束 MySQL 列級約束和表級約束
一,六大約束 not null 非空 primary key 主鍵 unique 唯一 check 檢查約束,mysql 不支援,語法不報錯但無效果 foreign key 外來鍵.限制兩表關係,通常在從表引入外來鍵約束,引入主表中某列的值,保證從表該字段的值必須 於主表關聯列的值 default預...
黑猴子的家 mysql 事物簡述
1 事務的概念 事務 一組邏輯操作單元,使資料從一種狀態變換到另一種狀態。事務處理 事務操作 保證所有事務都作為乙個工作單元來執行,即使出現了故障,都不能改變這種執行方式。當在乙個事務中執行多個操作時,要麼所有的事務都被提交 commit 那麼這些修改就永久地儲存下來 要麼資料庫管理系統將放棄所作的...