首頁  >  文章  >  資料庫  >  MySQL預設值約束怎麼用

MySQL預設值約束怎麼用

(*-*)浩
(*-*)浩原創
2019-05-07 16:40:336692瀏覽

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

推薦課程:MySQL教學

MySQL預設值約束怎麼用

常用資料庫約束:

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 '姓名',
  `sex` TINYINT(1) DEFAULT 1 COMMENT '性别 1男 0女',
  PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci

為欄位新增預設約束:

1.在创建表时:直接在字段类型的后面加上 DEFAULT(value),具体看创建user表时的sex字段;
2.在存在表的情况下添加:
  使用sql语句 ALTER TABLE `user` MODIFY `sex` TINYINT(1) DEFAULT 1; 即可为添加 `sex` 字段添加默认约束;
  使用sql语句 ALTER TABLE `user` MODIFY `name` VARCHAR(225)DEFAULT '小明'; 即可为添加 `name` 字段添加默认约束;

tips:默认约束是不可以使用函数的,所以 ALTER TABLE `user` ADD COLUMN `date` DATETIME DEFAULT NOW() AFTER `sex`; 是不可行的。

 

#移除預設限制:

移除默认约束和添加默认约束操作方式一样,都是修改表的字段;
ALTER TABLE `user` MODIFY `sex` TINYINT(1); 
这样就移除了sex的默认约束。

現在我們插入一條資料:

INSERT INTO `user`(`name`) VALUES('小明');

SELECT * FROM `user`;

结果:
-----------------------------------
id   name   sex 
   小明    1
-----------------------------------

 

 當然我們也可以:

INSERT INTO `user`(`name`,`sex`) VALUES('小明',DEFAULT);
SELECT * FROM `user`;

结果:
---------------------------------
id     name     sex 
     小明        1
---------------------------------

 

如果你這樣:

INSERT INTO `user`(`sex`) VALUES(DEFAULT);
SELECT * FROM `user`;

结果:
-----------------------------------
id   name    sex 
   (NULL)   1
-----------------------------------

 

# tips:在更新和查詢都可以用DEFAULT來操作;

-- 查询sex字段的默认值  SELECT DEFAULT(`sex`) FROM `user`; 
-- 更新sex为默认值 UPDATE `user` SET `sex` = DEFAULT WHERE `id`='1';

 

以上是MySQL預設值約束怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn