mysql创建表时主键唯一约束_mysql 表基本操作(创建表、添加主键、外键、非空约束、唯一性约束、默认约束、自动增加)...

1、单字段主键:create table tb_emp

(

id int(11) primary key,

name varchar(25),

depId int(11),

salary float

);

primary key 指定该列为主键;

定义完所有列之后指定主键:create table tb_emp

(

id int(11),

name varchar(25),

deptId int(11),

salary float,

primary key(id)

);

2、使用外键约束

语法:constraint foreign key 字段名1 ,字段名2,... references 主键列1,主键列2,...create table tb_dept1

(

id int(11) primary key,

name varchar(22) not null,

location varchar(50)

);

create table tb_emp

(

id int(11) primary key,

name varchar(25),

deptId int(11),

salary float,

constraint fk_emp_dept1 foreign key(deptId) references tb_dept1(id)

);

以上语句执行之后,在表tb_emp上添加了名称为fk_emp_dept1的外键约束,外键名称为deptId,其依赖于表tb_dept1的主键id。

3、非空约束

语法:字段名 数据类型 not nullcreate table tb_emp

(

id int(11) primary key,

name varchar(25) not null,

deptId int(11),

salary float

);

执行之后,在tb_emp中创建了一个name字段,其插入值不能为空(not null)。

4、唯一性约束

语法:create table tb_dept

(

id int(11) primary key,

name varchar(22) unique,

location varchar(50)

);

字段名 数据类型 unique

也可以在定义完所有列之后指定唯一约束,语法如下:constraint unique ()create table tb_dept

(

id int(11) primary key,

name varchar(22),

location varchar(50),

constraint sth unique(name)

);

unique和primary key的区别:一个表中可以有多个字段声明为unique,但只能有一个primary key声明;声明为primary key 的列不允许有空值,但是声明为unique的字段允许空值(null)的存在。

5、使用默认约束

语法:字段名 数据类型 default 默认值create table tb_emp

(

id int(11) primary key,

name varchar(25) not null,

deptId int(11) default 111,

salary float

);以上语句执行之后,表tb_emp上的字段deptId拥有了一个默认值111,新插入的记录如果没有指定部门编号,则默认都为111。

6、设置表的属性值自动增加

语法:字段名 数据类型 auto_incrementcreate table tb_emp

(

id int(11) primary key auto_increment,

name varchar(25) not null,

deptId int(11),

salary float

);在mysql中,auto_increment的初始值是1,每新增一条记录,字段值自动加1。一个表只能有一个字段使用auto_increment约束,且该字段必须为主键的一部分。auto_increment约束的字段可以是任何整数类型(tinyint、smallin、int、bigint等)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值