MySQL入门(7)- 约束——非空约束&唯一性约束

本文介绍了MySQL中的约束,包括非空约束(not null)和唯一性约束(unique)。非空约束确保字段不为空,而唯一性约束保证字段值的唯一性。通过示例展示了如何在创建表时添加这些约束,并通过插入数据来演示约束的效果。
摘要由CSDN通过智能技术生成

约束——非空约束&唯一性约束

此系列记录PN视频学习笔记


* 本博客涉及到的数据为bjpowernode.sql,数据见文末,SQL文见MySQL入门(9)文末。

* 该数据有三张表,分别是部门表dept(deptno部门编号、dname部门名称、loc位置)、

                                       员工表emp(empno工号、ename员工姓名、job职位、mgr直属领导工号、

                                                            hiredate入职日期、sal月薪、comm补贴、deptno部门编号)、

                                        薪水等级表salgrade(grade等级、losal区间下限、hisal区间上限)



约束(constraint)

   1、什么是约束,为什么要使用约束?

           -约束对应的英语单词:constraint

           -约束实际上就是表中数据的限制条件

           -表在设计的时候加入约束的目的就是为了保证表中的记录完整和有效。

 

    2、约束包括哪些?

           - 非空约束        (not null)

           - 唯一性约束      (unique)

           - 主键约束        (primary key)  简称 PK

           - 外键约束        (foreign key)  简称 FK

           - 检查约束【目前MYSQL不支持,oracle数据库支持】

 

    3、非空约束

           -not null 约束的字段,不能为NULL值,必须给定具体的数据,以保证该字段不为空

           -创建表,给字段添加非空约束【创建用户表,用户的邮箱地址不能为空】

           droptable if exists t_user;

           createtable t_user(

                  idint(10),

                  namevarchar(32) not null,

                  emailvarchar(128)

            );

            mysql> desc t_user;

            +-------+--------------+------+-----+---------+-------+

            | Field | Type         |Null | Key | Default | Extra |

            +-------+--------------+------+-----+---------+-------+

            | id    | int(10)      | YES |     | NULL    |      |

            | name  |varchar(32)  | NO   |    | NULL    |       |

            | email | varchar(128) | YES |     | NULL    |      |

            +-------+--------------+------+-----+---------+-------+

 

            insert into t_user(id,name,email) values(1, 'jack', 'jack@bjpowernode.com');

            mysql> select * from t_user;

            +------+------+----------------------+

            | id   | name |email                |

            +------+------+----------------------+

            |    1 | jack | jack@bjpowernode.com|

            +------+------+----------------------+

            insert into t_user(id,name,email) values(2, 'lisi@bjpowernode.com');

            ERROR 1136 (21S01): Column count doesn't match value count atrow 1

 

    4、唯一性约束

           -unique约束的字段具有唯一性,不可重复

           -创建用户表,保证邮箱地址

           【列级约束】 字段后加unique

            drop tableif exists t_user;

            create table t_user(

                  idint(10),

                  namevarchar(32) not null,

                  emailvarchar(128) unique

            );

 

           insertinto t_user(id,name,email) values(1, 'jack', 'jack@bjpowernode.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值