一、引言
这篇博客主要演示:前面博客在约束概念与分类中讲到的:非空约束、唯一约束、检查约束、默认约束、主键约束、外键约束等等操作。
二、需求
根据下列需求,去完成表结构的创建。
注意:(对于一个字段我们可以添加多个约束)
1、id:是主键,且要自动增长。这个意思就是这个主键值,要从1一直往后自增
主键涉及到的关键字:PRIMARY KEY 。
其中自动增长涉及到MySQL当中的一个关键字:AUTO_INCREMENT (auto increment)
2、name:约束:不为空(null),且唯一
不为空:NOT NULL
唯一:UNIQUE
3、age:(约束条件:>0且<=120)这就要用到检查约束:CHECK (检查我们所插入到这个字段的数据,是否符合一个或多个要求)
4、status:没有指定该字段值默认为1。则用到默认约束,关键字:DEFAULT
5、gender:无约束
接下来,就要根据上面所分析的结论去工具 DataGrip 实现创建这张表的结构。
三、实操
打开 DataGrip 进行操作,注意根据上面的需求来创建表的结构。
(1)首先我选择的数据库是 itcast,打开一个新的查询控制台。目前 itcast 数据库当中也没有任何的表结构。
(2)开始操作。首先创建一张表 user(用户表),然后去添加需求中的字段以及约束。
CREATE TABLE user ( /*中间不需要任何的逗号,多个约束,关键字空格隔开就行*/ id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID主键', name VARCHAR(10) NOT NULL UNIQUE COMMENT '姓名', age INT CHECK ( age>0 AND age <=120 ) COMMENT '年龄', status CHAR(1) DEFAULT '1' COMMENT '状态', gender CHAR(1) COMMENT '性别' ) COMMENT '用户表'; SELECT * FROM user;
详细表结构
(3)接下来往创建好的表中各个字段插入数据
1、id:字段我们不需要插入。因为是主键并且是自增的,是数据库内自动维护的,我们不需要操作。
INSERT INTO user(name,age,status,gender) VALUES ('Tom1',19,'1','男'),('Tom2',25,'0','男'); SELECT * FROM user; INSERT INTO user(name,age,status,gender) VALUES ('Tom3',19,'1','男');
id 字段我们没有自己添加,它自己自动自增从1开始。
(4)测试一下字段:name 是否可以为null或者重复
这些约束都保证了表中数据的正确性。
执行失败!因为设定了非空约束。
执行失败!因为设定了唯一约束
(5)测试年龄
执行一个正常的年龄
执行插入一个错误年龄值
检查约束也保证了数据的正确性。
(6) 测试状态
插入一条数据,虽然没有给字段 status 赋值,但是有默认约束,默认值是1
这是这篇博客的主要内容。
四、补充
注意:
我们可以在建表的时候就给各个字段添加约束。 也可以直接在图形化界面工具 DataGrip 下建立约束,这样更加的简单迅速。
(1)进入创建表的结构
(2)相当的简单便捷(对一些约束,只要勾选或者不选择就行了)
主键就是非空和唯一,不用勾选一些东西也可以
(3)添加 id 字段约束
(4)添加姓名 name 字段的约束
等等其它就不演示了。