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