mysql中怎么給字段設(shè)置默認(rèn)值?

方法:1、創(chuàng)建表時(shí)用“CREATE TABLE 表名(字段名 數(shù)據(jù)類型 DEFAULT 默認(rèn)值;)”語句設(shè)置;2、修改表時(shí)用“ALTER TABLE 表名 CHANGE COLUMN 字段名 數(shù)據(jù)類型 DEFAULT 默認(rèn)值;”語句設(shè)置。

mysql中怎么給字段設(shè)置默認(rèn)值?

(推薦教程:mysql視頻教程

默認(rèn)值(Default)的完整稱呼是“默認(rèn)值約束(Default Constraint)”,用來指定某字段的默認(rèn)值。在表中插入一條新記錄時(shí),如果沒有為某個(gè)字段賦值,系統(tǒng)就會(huì)自動(dòng)為這個(gè)字段插入默認(rèn)值。

在創(chuàng)建表時(shí)設(shè)置默認(rèn)值約束

創(chuàng)建表時(shí),在CREATE?TABLE語句中使用 DEFAULT 關(guān)鍵字來設(shè)置默認(rèn)值約束,具體的語法格式如下:

??DEFAULT?;

其中,“默認(rèn)值”為該字段設(shè)置的默認(rèn)值,如果是字符類型的,要用單引號(hào)括起來。

例 1

創(chuàng)建數(shù)據(jù)表 tb_dept3,指定部門位置默認(rèn)為 Beijing,SQL 語句和運(yùn)行結(jié)果如下所示。

mysql>?CREATE?TABLE?tb_dept3 ????->?( ????->?id?INT(11)?PRIMARY?KEY, ????->?name?VARCHAR(22), ????->?location?VARCHAR(50)?DEFAULT?'Beijing' ????->?); Query?OK,?0?rows?affected?(0.37?sec)  mysql>?DESC?tb_dept3; +----------+-------------+------+-----+---------+-------+ |?Field????|?Type????????|?Null?|?Key?|?Default?|?Extra?| +----------+-------------+------+-----+---------+-------+ |?id???????|?int(11)?????|?NO???|?PRI?|?NULL????|???????| |?name?????|?varchar(22)?|?YES??|?????|?NULL????|???????| |?location?|?varchar(50)?|?YES??|?????|?Beijing?|???????| +----------+-------------+------+-----+---------+-------+ 3?rows?in?set?(0.06?sec)

以上語句執(zhí)行成功之后,表 tb_dept3 上的字段 location 擁有了一個(gè)默認(rèn)值 Beijing,新插入的記錄如果沒有指定部門位置,則默認(rèn)都為 Beijing。

注意:在創(chuàng)建表時(shí)為列添加默認(rèn)值,可以一次為多個(gè)列添加默認(rèn)值,需要注意不同列的數(shù)據(jù)類型。

在修改表時(shí)添加默認(rèn)值約束

修改表時(shí)添加默認(rèn)值約束的語法格式如下:

ALTER?TABLE? CHANGE?COLUMN???DEFAULT?;

例 2

修改數(shù)據(jù)表 tb_dept3,將部門位置的默認(rèn)值修改為 Shanghai,SQL 語句和運(yùn)行結(jié)果如下所示。

mysql>?ALTER?TABLE?tb_dept3 ????->?CHANGE?COLUMN?location ????->?location?VARCHAR(50)?DEFAULT?'Shanghai'; Query?OK,?0?rows?affected?(0.15?sec) Records:?0??Duplicates:?0??Warnings:?0  mysql>?DESC?tb_dept3; +----------+-------------+------+-----+----------+-------+ |?Field????|?Type????????|?Null?|?Key?|?Default??|?Extra?| +----------+-------------+------+-----+----------+-------+ |?id???????|?int(11)?????|?NO???|?PRI?|?NULL?????|???????| |?name?????|?varchar(22)?|?YES??|?????|?NULL?????|???????| |?location?|?varchar(50)?|?YES??|?????|?Shanghai?|???????| +----------+-------------+------+-----+----------+-------+ 3?rows?in?set?(0.00?sec)

刪除默認(rèn)值約束

當(dāng)一個(gè)表中的列不需要設(shè)置默認(rèn)值時(shí),就需要從表中將其刪除。

修改表時(shí)刪除默認(rèn)值約束的語法格式如下:

ALTER?TABLE? CHANGE?COLUMN????DEFAULT?NULL;

例 3

修改數(shù)據(jù)表 tb_dept3,將部門位置的默認(rèn)值約束刪除,SQL 語句和運(yùn)行結(jié)果如下所示。

mysql>?ALTER?TABLE?tb_dept3 ????->?CHANGE?COLUMN?location ????->?location?VARCHAR(50)?DEFAULT?NULL; Query?OK,?0?rows?affected?(0.15?sec) Records:?0??Duplicates:?0??Warnings:?0  mysql>?DESC?tb_dept3; +----------+-------------+------+-----+----------+-------+ |?Field????|?Type????????|?Null?|?Key?|?Default??|?Extra?| +----------+-------------+------+-----+----------+-------+ |?id???????|?int(11)?????|?NO???|?PRI?|?NULL?????|???????| |?name?????|?varchar(22)?|?YES??|?????|?NULL?????|???????| |?location?|?varchar(50)?|?YES??|?????|?NULL?????|???????| +----------+-------------+------+-----+----------+-------+ 3?rows?in?set?(0.00?sec)

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊11 分享