添加主键
(主键唯一且不为空)主键唯一的标识一行数据
一张表只能有一个主键
1.定义字段的同时指定主键
create table 表名(
id int primary key,
…)
2.在定义字段之后再指定主键
create table 表名(
id int,
…
constraint pk1 primary key(id)
);
或者 alter table 表名 add primary key(id);
联合主键
多个属性决定主键
create table 表名(
id int,
name VARCHAR(20),
…,
primary key(id,name)
);
alter table 表名 add primary key(id,name);
删除主键(一张表只有一个主键,所以直接删除即可)
alter table 表名 drop primary key;
自增长约束(auto_increment)
定义自增长后,主键的值不需要用户输入数据,系统自动赋值。
create table student(
id int primary key auto_increment,
name varchar(20)
);
指定自增长的初始值
create table student(
id int primary key auto_increment,
name varchar(20)
)auto_increment=100;
或者:
alter table student auto_increment=100;
删除表 delete from student;在插入数据时,自增长从断点开始
truncate student;从头开始增长。
非空约束(not null)
指定的属性不能为空
create table student(
id int,
name varchar(20) not null
);
或者:
alter table student modify name varchar(20) not null;
删除非空约束:
alter table student modify name varchar(20); (去掉 not null即可)
唯一约束(unique)
所记录中的字段的值不能重复出现
create table student(
id int,
name varchar(20),
phone varchar(20) unique
);
删除:alter table student drop index phone;
在mysql中,null可任何值都不相同,甚至和自己都不同即null!=null
或者:alter table student add constraint kk unique(phone);
删除:alter table student drop index kk;
默认约束(default)
create table student (
id int,
name varchar(20) default ‘赵欢欢’,
phone int
);
或者:alter table student modify name varchar(20) default ‘黎明’;
删除默认约束:alter table student modify name varchar(20) default NULL;
零填充约束
主要是保持数字位数一致,没什么太大的作用
create table student(
id int zerofill,
nsme varchar(20)
);
删除:alter table student modify id int;