MySQL四类约束primary key,auto_increment,unique,not null详解;

primary key:主键约束

主键必须包含唯一的值
主键列不能包含null值
每个表都应该有一个主键,并且每个表只能有一个主键
创建primary key的方式有三种:
其一:

 create table cin_01(
 id int primary key,  
 name varchar(32),
 address varchar(32),
 city varchar(32)
 );

注意:如果有列类型或者列的长度需要修改,则可以用modify关键字,修改列类型或者长度
**格式:**alter table table_name modify 列名 列类型(长度)
alter table cin_01 modify name int(88);
其二:
创建表时,在constraint约束区域,声明指定字段为主键:
格式:[constraint 名称] primary key(字段列表)
关键字constraint可以省略,如果需要为主键命名,constraint不能省略,主键名称一般么用
字段列表需要使用小括号括住(),如果有多字段需要使用用逗号分割,声明两个以上字段为主键,我们称为联合主键。

create table cin_01 (
 id int(32),
 name varchar(32),
 address varchar(32),
 city varchar(32),
 constraint PK_cin_01ID primary key (name,address)
 );

方式三:创建表之后,通过修改表结构,声明指定字段为主键:
格式:alter table cin_01 add[constraint 名称] primary key(字段列表)

 create table cin_01(
 id int primary key,  
 name varchar(32),
 address varchar(32),
 city varchar(32)
 );
 
 alter table cin_01 add primary key(name,address);

删除主键约束:
如果需要撤销primary key 约束,格式如下:

 alter table cin_01  drop primary key;

自动增长:auto_increment

我们通常希望在每次插入数据时,数据库自动生成字段的值。
关键字:auto_increment(自动增长列) 自动增长列必须为键(一般为主键)

create table cin_01(
 id int primary key auto_increment, 
 name varchar(32),
 address varchar(32),
 city varchar(32)
 );

设置id为自动增长主键,其值时自动增加的。格式:

INSERT into cin_01 (name,address)values("nihai","lo");
 INSERT into cin_01(id,name,address) VALUES(null,"po","oip");

默认auto_incrementde开始值是1,如果希望修改起始值,格式如下:

 alter table cin_01 auto_increment = 20;

非空约束:not null

not null约束强制列不接受null值。
not null约束强制字段始终包含值,这意味着如果不向字段添加值,就无法插入新纪录或者更新新纪录。

下面设置id列和name列不接受null值:

 create table cin_01(
 id int(32)not null,  
 name varchar(32) not null,
 address varchar(32),
 city varchar(32)
 );
 

唯一约束:unique

unique约束唯一标识数据库表中的每条记录,
unique和primary key 约束均为列或者列集合约束,都提供的唯一性
primary key 拥有自动定义的unique约束
请注意,每个表可以表示多个unique约束,但是 每个表只能有一个primary key 约束。

方式一:创建表时在字段后声明唯一

 create table cin_01(
 id int(32)unique,  
 name varchar(32) not null,
 address varchar(32),
 city varchar(32)
 );

方式二:创建表时,在约束区域,声明唯一:

 create table cin_01(
 id int(32),  
 name varchar(32) not null,
 address varchar(32),
 city varchar(32)constraint unique (id)
 );

删除唯一约束

 alter table cin_01 drop index unique_name

你可能感兴趣的:(mysql,mysql,数据库,大数据)