MySQL组成之约束

总述:MySQL中有一部分约束语句,是作用于表中字段的规则,用于限制储存在表中的数据。保证数据库中数据的准确性、有效性和完整性。

1.外键约束foreign key

两张表之间建立链接,保证数据的一致性和完整性。

有外键的表称作子表(副表),外键指向的表称作父表(主表)。

记忆技巧:儿子需要的东西可以从父亲这里拿,所以子(子表)可以指向父(父表),也就是有外键的表指向对应的父表。

创建外键语法:

(1)在创建表的时候创建:

CREATE TABLE 表名(

    字段名1 数据类型,

    字段名2 数据类型,

    ...

    [CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENECS 主表(主表列名));

(2)在修改表的时候创建:

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表(主表列名); 

2.检查约束check

保证字段值满足一个条件。

3.非空约束NOT NULL

保证数据不为空。

4.唯一约束UNIQUE

保证数据的唯一性。

5.主键约束primary key

主键是一行数据的唯一标识,要求唯一且非空。

6.默认约束default

保存数据时,如果没有指定该字段的值,采用默认值。

注:1.约束是作用于表中的字段上的,可以在创建或者修改表的时候添加。

2.表中需要有主键已经成为一种规范。
 

eg:创建一个表格

CREATE TABLE Stu(

id int primary key auto_increment comment '序号',

name varchar (20) not null comment '姓名',

number int unique comment '学号',

age int check(age > 0 && age < 120),

statement int default '1' comment '状态')comment '学生表';

--创建一个名叫Student的学生表,字段序号为系统自动管理的,序号自动增长(auot_increment)且是主键(primary key),字段姓名为非空(not null),年龄符合check条件中的大于0小于120,字段状态在插入数据时若没有指定就是1。

在Navicat中实现上述语句:

1.在Stu表中插入两条数据:

我们没有插入id,但是表格自动标记了id且是自动增长的,由系统自动管理。

2.在表中插入姓名为null的数据时,会发现系统提示姓名不能为空,因为我们已经限制了姓名not null:

3.当我们插入的数据中有重复学号时系统会提示学号重复,因为我们已经限定了学号为unique:

4.当我们插入的数据中学生年龄超过check限定的范围的时候,系统会提示年龄超出范围:

5.当我们插入的数据中没有指定学生的状态时,系统默认为1(default '1'):

总结:以上就是我们对于SQL中的约束的学习啦,本人能力有限写的还不够好,让大家见笑了嘿嘿!虽说不难,但是不用或者不练习的话真的很容易忘!(本人亲身体会呜呜呜)如果对本文章有什么疑问或不解,欢迎大家在评论区一起讨论哦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值