数据库表的约束

数据库表中一共有七种约束

非空约束

非空,即不能为空,

  1. 空格不属于空 ’ ’
  2. 留白符不属于空 ‘’
  3. 0不属于空
  4. ‘null’ 不属于 null

给字段名设置非空约束

create table student(
    id int,
    name varchar(20) not null
);
唯一约束unique

加了唯一约束的字段不能设置重复---------有两种添加方式

//方式一  列级约束 即直接在字段名的后面加unique
create table student (
    id int unique,
    name varchar(20)
);
//方式二 表级约束 即所有字段设置完成之后,再设置唯一约束
create table student (
    id int,
    name varchar(20),
    unique(int)
);
//表级约束可以设置组合唯一键,存放的数据只要id和name这两个字段不完全一样就可以存放
create table course (
    id int,
    name varchar(20),
    gender varchar(3),
    unique(id,name)
);
主键约束primary key

主键约束-------即限定字段之下值不能重复,且不能为null. 一张表中最多只能有一个主键约束-----同样也有两种添加约束的方式

//方式一  列级约束 
create table student (
    id int primary key,
    name varchar(20)
);
//方式二 表级约束 
create table student (
    id int,
    name varchar(20),
    primary key(int)
);
//组合主键
create table course (
    id int,
    name varchar(20),
    gender varchar(3) not null,
    primary key(id,name)
);
外键约束 foreign key

外键约束-----即建立不同表之间的数据关联关系。外键一般建立在从表里然后和主表里的含有主键或者unique约束的字段关联

需要注意的是,建立外键约束需要分清楚主从表,

比如说,教师表和学生表,学生和教室是学生属于教室的关系,学生表是从表,教室表是主表

同样有两种添加约束的方式

//方式一:(列级约束,语法可以执行,但是在mysql中失效)
create table class(
    id int primary key,
    name varchar(20),
    address varcahr(20)
);
create table student(
    id int primary key,
    name varchar(20) not null,
    gender varchar(20) not null,
    classid int references	class (id)
);
//方式二: 表级约束
create table class(
    id int primary key,
    name varchar(20),
    address varchar(20)
);
create table student(
    id int primary key,
    name varchar(20) not null,
    gender varchar(20) not null,
    classid int,
    foreign key (classid) references class (id)
);
check约束

由于在MySQL失效,这里先不介绍

默认值(缺省约束)default

如果添加数据时,未给字段添加内容,则字段使用默认值填充。

create table student(
    id int primary key,
    name varchar(20) not null,
    country varchar(10) default 'China'
);
自增属性约束 auto_increment

自增属性,设置字段下的值,进行自动增长,一般配合主键 或 唯一键约束使用

create table student(
    id int primary key auto_increment,
    name varchar(20)
);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值