SQL DEFAULT约束 默认约束
时间:2018-11-15 17:49:58 来源:igfitidea点击:
在本教程中,我们将学习如何使用SQL DEFAULT约束向列中插入默认值。
当在表中插入新行而不指定列的值时,DEFAULT默认约束会将默认值插入到表的列中。
创建SQL默认约束
有两种方法为列创建默认约束:
- 如果是新表,则使用CREATE TABLE语句
- 对现有表使用ALTER TABLE语句。
您可以在CREATE TABLE语句中为列指定一个默认约束,如下面的语句所示:
CREATE TABLE books ( book_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, title varchar(255) NOT NULL, pubdate date NOT NULL, isbn varchar(13) DEFAULT '8-381737-083', author_id INT NOT NULL )
books表中的isbn列以“8-381737-083”作为默认值。
如果在books表中插入新行而不指定ISBN列的值,数据库引擎将把值8-381737-083插入ISBN列。
在books表中添加一本新书的INSERT语句如下:
INSERT INTO books(title,pubdate,author_id) VALUES( 'SQL 教程','2010-01-01',1);
我们可以使用SELECT语句查询books表,查看isbn列中插入了什么值:
SELECT * FROM books;
ISBN列存储的是表定义时指定的默认值“8-381737-083”。
默认约束不仅接受字面量值,还接受函数返回的值。
例如,我们使用以下语句将今天的日期指定为pubdate列的默认值:
ALTER TABLE books ADD CONSTRAINT df_pubdate DEFAULT GETDATE() FOR pubdate
删除SQL默认约束
要删除现有的默认约束,你可以使用如下的ALTER TABLE语句:
ALTER TABLE table ALTER COLUMN column DROP DEFAULT;
例如,要删除books表中title列的默认约束,可以使用以下语句:
ALTER TABLE books ALTER COLUMN title DROP DEFAULT;