mysql 預設約束 MySQL預設值約束怎麼用

2021-10-17 12:44:51 字數 1765 閱讀 9680

本篇文章將介紹default 預設約束,如何使用和改動後的效果。

常用資料庫約束:

default 預設約束;

not null:非空約束,指定某列不為null;

unique:唯一約束,指定某列和幾列組合的資料不能重複;

primary key:主鍵約束,指定某列的資料非空、唯

一、不能重複;

foreign key:外來鍵,指定該列記錄屬於主表中的一條記錄,參照另一條資料;

check:檢查,指定乙個表示式,用於檢驗指定資料;

1、default 定義列的預設值

當插入乙個新行到表中時,沒有給該列明確賦值,如果定義了列的預設值,將自動得到預設值;如果沒有,則為(null)。-- 建立一張user表

create table `test`.`user`(

`id` int(11) not null auto_increment comment 'id',

`name` varchar(225) comment '姓名',

`***` tinyint(1) default 1 comment '性別 1男 0女',

primary key (`id`)

) engine=innodb charset=utf8 collate=utf8_general_ci

給字段新增預設約束:1.在建立表時:直接在字段型別的後面加上 default(value),具體看建立user表時的***字段;

2.在存在表的情況下新增:

使用sql語句 alter table `user` modify `***` tinyint(1) default 1; 即可為新增 `***` 字段新增預設約束;

使用sql語句 alter table `user` modify `name` varchar(225)default '小明'; 即可為新增 `name` 字段新增預設約束;

tips:預設約束是不可以使用函式的,所以 alter table `user` add column `date` datetime default now() after `***`; 是不可行的。

移除預設約束:移除預設約束和新增預設約束操作方式一樣,都是修改表的字段;

alter table `user` modify `***` tinyint(1);

這樣就移除了***的預設約束。

現在我們插入一條資料:insert into `user`(`name`) values('小明');

select * from `user`;

結果:id name ***

小明 1

當然我們也可以:insert into `user`(`name`,`***`) values('小明',default);

select * from `user`;

結果:id name ***

小明 1

如果你這樣:insert into `user`(`***`) values(default);

select * from `user`;

結果:id name ***

(null) 1

tips:在更新和查詢都可以用default來操作;-- 查詢***欄位的預設值 select default(`***`) from `user`;

-- 更新***為預設值 update `user` set `***` = default where `id`='1';

mysql怎麼約束 mysql 約束

4 約束 1 對乙個列新增的約束叫列級約束。對兩個或兩個以上的列新增的約束叫做表級約束。2 表級約束只能在字段後面新增,列級約束既可以新增在字段後面,也可以在最後新增。3 非空 預設只存在列級約束。主鍵 唯 一 外來鍵都既有表級約束又有列級約束。4 約束有 primary key 主鍵 unique...

mysql約束 MySQL 約束型別

約束是一種限制,它通過對錶的行或列的資料做出限制,來確保表的資料的完整性 唯一性。mysql中,常用的幾種約束 約束型別 主鍵外來鍵唯一非空自增預設值 關鍵字 primary key foreign key unique not null auto increment default 1 主鍵約束 ...

mysql中的預設約束 資料庫中預設約束的作用

1級2016 04 29 回答 資料庫約束是為了保證資料的完整性而實現的一套機制,它具體的根據各個不同的資料庫的實現而有不同的工具。一般來說有以下幾種實現方式 1 檢查約束 通過在定義資料庫表裡,在字段級或者是在表級加入的檢查約束,使其滿足特定的要求。比如以下的表定義 crate table stu...