MySQL学习之约束

1.一般数据库都支持下面五类约束:

(1)NOT NULL:非空约束,指定某列不能为空

(2)UNIQUE:唯一约束,指定某列或某几列的组合不能重复

(3)PRIMARY KEY:主键,指定该列的值可以唯一标识该条记录

(4)FOREIGN KEY:外键,指定该行记录从属于主表中的一条记录,用于保证参照完整性

(5)CHECK:检查,指定一个布尔表达式,用于指定对应列的值必须满足该表达式

2.NOT NULL非空约束较为简单,只需在定义变量时,在后面加上NOT NULL即可。例如:student_id int not null

3.UNIQUE唯一约束,可以使用列级约束(student_id int unique),也可以使用表级约束。其中表级约束一般是用于多列组合的唯一性约束

表级约束:constraint test_uk unique(student_id,student_name)其中的test_uk是约束名,该约束要求student_id和student_name不能同时为空。

4.PRIMARY KEY主键约束:主键约束的形式和UNIQUE唯一约束的形式是一样的

注意:如果给主键列添加了自增长(increment),则向该表插入记录时不能给该列指定值

5.FOREIGN KEY外键约束外键是构建于一个表的两个字段或者是两个表的两个字段之间的参照关系。从表外键参照的只能是主表的主键列或是唯一键列。

在MYSQL中外键约束只能使用表级约束

--为了保证从表参照的主表存在,应该先建立主表
create table teacher_table
(
    teacher_id int auto_increment,
    teacher_name varcharr(255),
    --添加主键约束
    primary key(teacher_id)
);
create table student_table
(
    --自增长。主键约束
    student_id int auto_increment primary key,
    student_name varchar(255),
    java_teacher int,
    --使用表级约束语法建立外键约束,
    foreign key(java_teacher) references teacher_table(teacher_id)
);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值