黑猴子的家:mysql 列级约束

1、常见约束

NOT NULL:非空
    该字段的值是必填的,如果不设置该约束,该字段默认是可以为空
DEFAULT:默认
    该字段有默认值
CHECK:检查,mysql语法支持,但效果不支持
    该字段值可以加以限制,比如年龄可以控制在0-120之间
    
PRIMARY KEY:主键
    该字段值不可以重复
    1、不可以为空
    2、一个表中只能有一个主键,但是可以多个字段做组合主键
UNIQUE:唯一约束
    该字段值不可以重复
    1、可以为空
    2、一个表中可以有多个唯一键,可以有组合唯一键
FOREIGN KEY:外键
    用于限制多表的关系
    1、从表的该字段值必须来自于主表的关联列的值
    2、从表和主表的关联列的类型必须一样
    3、主表的关联列必须是主键
    4、在从表中设置外键
    5、一个表中可以添加多个外键
    6、插入数据时,先插入主表
       删除数据时,先删除从表
    
分类:
                    位置            支持
        列级约束    列的后面        除了外键
        表级约束    表的后面        除了非空和默认

★★★★★★★★★★★创建表时添加约束 ★★★★★★★★★★★  √
CREATE TABLE 表名(
    字段名 字段类型 列级约束,
    字段名 字段类型 列级约束,
    表级约束
)

2、添加列级约束

USE test;

DROP TABLE IF EXISTS stuinfo;
CREATE TABLE stuinfo(
    id INT NOT NULL UNIQUE,#非空约束+主键约束
    stuName VARCHAR(20) UNIQUE,#唯一约束
    gender CHAR DEFAULT '男',#默认约束
    age INT UNSIGNED CHECK (age BETWEEN 0 AND 120)#检查约束
);

DESC stuinfo;
SELECT * FROM stuinfo;

3、插入默认值

INSERT INTO stuinfo(id,stuname,age) VALUES(3,'lily',12);
INSERT INTO stuinfo VALUES(5,'jack',DEFAULT,900);

唯一 + 主键

4、关于插入null

INSERT INTO stuinfo VALUES(7,NULL,DEFAULT,900);

5、关于插入多个唯一或主键

DROP TABLE IF EXISTS stuinfo;
CREATE TABLE stuinfo(
    id INT NOT NULL UNIQUE,#非空约束+主键约束
    stuName VARCHAR(20) UNIQUE,#唯一约束
    gender CHAR DEFAULT '男',#默认约束
    age INT UNSIGNED CHECK (age BETWEEN 0 AND 120)#检查约束
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值