MySQL设置主键、联合主键、外键、唯一约束、非空约束、默认约束

本文介绍了MySQL中如何设置表的属性值自动增加,包括主键、联合主键和外键的创建。主键是用于唯一标识记录的字段,不允许重复且不可为空。联合主键则是由多个字段组成的主键。外键则用于关联两张表,建立数据间的引用关系。此外,还讲解了唯一约束、非空约束和默认约束的使用,这些约束用于保证数据的完整性和一致性。例如,唯一约束确保字段值不重复,非空约束则不允许字段值为空,而默认约束则可以为字段设置默认值。

MySQL登录、查看记录等基本操作
MySQL设置表的属性值自动增加 auto_increment

1.主键、联合主键、外键

1.什么是主键

主键是在多条记录中用于确定一条记录时使用的标识符。主键具备一下特征,以和其它列进行区分。

  1. 没有重复的值
  2. 不允许输入空值

2.创建主键、联合主键

  1. 主键的两种创建方式
create table t_key
(
id int primary key,
name varchar(32),
email varchar(32)
);

# 对于第二种方式,当创建多个主键(联合主键)时,中间用`,`分割
create table t_key
(
  id int,
  name varchar(32),
  email varchar(32),
  primary key(id,email)
);

在这里插入图片描述

3.创建外键

外键:另外一张表中的主键
命令格式:constraint 外键名 foreign key(字段名) references 主表名(主键名)

create table t_class
(
  id int,
  name varchar(32),
  primary key(id)
);

create table t_student
(
  id int,
  name varchar(32),
  classid int,
  constraint ttt foreign key(classid)  references t_class(id)
);

desc t_stdudent;观察输出,classidkey值为mul,即表示它是外键
在这里插入图片描述

2.唯一约束、非空约束、默认约束

若要给字段添加两个或者两个以上的约束,约束之间要以空格隔开。

1.唯一约束

设置唯一约束的列,可确保该列不出现重复值。
添加唯一约束Unique Constraint:要求该列唯一。需要注意的是,唯一键虽然不允许重复,但允许输入null
关键字:unique

create table tmp2
(
   id int,
   username varchar(32) unique,
   sex varchar(4)
);

可以看到username允许为空,但不允许重复。
在这里插入图片描述

2.非空约束

关键字:not null
顾名思义,非空约束要求被约束列不允许为空。

create table tmp3
(
   id int primary key,
   username varchar(32) not null,
   sex varchar(4) 
);

insert into tmp3 (id,username,sex) values(1,null,'man');
在这里插入图片描述

3.默认约束

即通过default关键字给列设置默认值(default)。
如果是添加字符串型默认值要使用单引号,如果是整型则不需要加任何符号;
如果要添加的是中文默认值,则需要加上DEFAULT CHARSET=utf8;使用英文字符则不需要.

create table tmp5
(
   id int primary key,
   username varchar(32) not null,
   sex varchar(4)  default 'man'
);
insert into tmp5 (id,username) values(1,'Li Ming');
insert into tmp5 (id,username) values(2,'Li Hua');
select * from tmp5

可以看到在没有插入sex值的情况下,记录的默认值为设定好的man
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值