sql的各种

一、主键

主键约束:primary key ,非空且唯一

create table emp2(
	id int primary key,
	name varchar(10),
	salary double
);

#第二种方式
create table emp2(
	id int,
	name varchar(10),
	salary double,
    constraint xx primary key(id)   -- constraint xx可以省略,它是约束名
);

联合主键:constraint <约束名> primary key(字段1,字段2)

要求:1、插入数据时字段1和字段2必须都不能为空

           2、插入数据时字段1和字段2有一个和其他数据不同即可

create table emp3(
	id int,
	name varchar(10),
	salary double,
	constraint xx primary key(id,name)
);

insert into emp3 values(1,'pjr',3000)(2,'pjr',3000)  --可以执行,因为只需要一个不同即可

也可以在表创建完之后再添加主键

create table emp3(
	id int,
	name varchar(10),
	salary double
);
alter table emp3 add primary key(id,name);

删除主键:

alter table emp3 drop primary key;

二、自增长约束

自增长(auto_increment)约束的特点:

1、默认初始值为1,添加数据时自动+1。

2、一个表中只能有一个字段有自增长约束,并且该字段非空且唯一,类型为整数型(int, tinyint等)

3、注意delete和truncate的区别,delete不会重置,而truncate会

create table emp3(
	id int primary key auto_increment,  #添加auto_increment约束
	name varchar(10),
	salary double
)auto_increment=100;  #括号后面的auto_increment代表从第几开始

#第二种方法
create table emp3(
	id int primary key,  #添加auto_increment约束
	name varchar(10),
	salary double
);
alter table emp3 auto_increment = 100;

insert into emp3 values(NULL,'pjr',3000)
insert into emp3 values(NULL,'pjr2',4000)

三、非空约束

not null。值不能为null

create table emp3(
	id int, 
	name varchar(10) not null,
	salary double
); 

#创建完表后再添加
create table emp3(
	id int, 
	name varchar(10),
	salary double
); 
#modify用于修改字段属性
alter table emp3 modify name varchar(15) not null;

使用modify删除非空约束

create table emp3(
	id int, 
	name varchar(10) not null,
	salary double
);  
alter table emp3 modify name varchar(10);  #modify 重构约束的属性,不带not null即是删除

四、唯一约束和默认约束

#唯一约束, 值可以为null,null与任何值都不一样
create table emp3(
	id int, 
	name varchar(10) unique,
	salary double
);  

#默认约束
create table emp3(
	id int, 
	name varchar(10) default 'user',
	salary double
);  

#也可以用modify在表创建后在添加约束
alter table emp3 modify name varchar(10) unique;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值