您的位置:首页 > 数据库 > MySQL

数据库MYSQL学习总结8—NOT NULL DEFAULT

2019-04-14 15:39 316 查看
版权声明:. https://blog.csdn.net/WildestDeram/article/details/89295392

NOT NULL:非空约束,也就是插入值的时候不能为空,而且值不能是空值

[code]CREATE TABLE test_not(
a VARCHAR(20),
B VARCHAR(20) NOT NULL
);

 如果往里面插入两个空字符串,不会报错,因为空字符串也算有值。但是如果不给B插入NULL或者不写则会报错。

[code]-- 不报错
INSERT test_null(a,b) VALUES('','');

-- 报错
INSERT test_null(a,b) VALUES(NULL,NULL);

 

DEFAULT:默认值,如果插入记录的时候没有给字段赋值,则使用默认值

[code]-- 测试默认值
CREATE TABLE test_default(
id INT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED DEFAULT 18,
email VARCHAR(50) NOT NULL DEFAULT '123456789@qq.com'
);

 

[code]INSERT test_default(username) VALUES('xx');

 

测试枚举

[code]CREATE TABLE test_one(
id INT UNSIGNED AUTO_INCREMENT KEY,
sex ENUM('a','b','c') NOT NULL DEFAULT 'a'
);

[code]INSERT test_one(sex) VALUES(DEFAULT);

 

UNIQUE KEY:和主键很类似,而UNIQUE KEY可以是多个字段为索引。唯一性,一个表中可以有多个字段是唯一索引,同样的值不能重复,但是NULL值除外。

[code]CREATE TABLE test_unqine(
id INT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
email VARCHAR(50) UNIQUE,
card CHAR(18) UNIQUE
);

 

[code]-- 不报错
INSERT test_unique(username,email,card) VALUES('A','A@qq.com','1');

-- 报错
INSERT test_unique(username,email,card) VALUES('A','A1@qq.com','11');

-- 不报错
INSERT test_unique(username,email,card) VALUES('B',NULL,NULL);

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: