MySQL数据库约束

目录)

      • (一)MySQL约束-主键约束
        • 1.操作-添加单列主键
        • 2.操作-添加多列主键(联合主键)
        • 3.通过修改表结构添加主键
        • 4.删除主键约束
      • (二)MySQL约束-自增长约束
        • 1.自增长一般格式
        • 2.指定自增字段初始值
        • 3.delete和truncate在删除后自增列的变化
      • (三)MySQL约束-非空约束
        • 1.添加非空约束
        • 2.删除非空约束
      • (四)MySQL约束-唯一约束
        • 1.添加唯一约束
        • 2.删除**唯一**约束
      • (五)MySQL约束-默认约束
        • 1.添加默认约束
        • 2.删除默认约束
      • (六)MySQL约束- 零填充约束
        • 1.添加零填充约束
        • 2.删除零填充约束

(一)MySQL约束-主键约束

1.操作-添加单列主键

格式1:

-- 在 create table 语句中,通过 PRIMARY KEY 关键字来指定主键。
-- 在定义字段的同时指定主键,语法格式如下:
create table 表名(
   ...
   <字段名> <数据类型> primary key,
   ...
);

范例1:

create table emp1(
    eid int primay key,
    name VARCHAR(20),
    deptId int,
    salary double
);

格式2:

--在定义字段之后再指定主键,语法格式如下:
create table 表名(
   ...
   [constraint <约束名>] primary key [字段名]
);

范例2:

create table emp2(
    eid INT,
    name VARCHAR(20),
    deptId INT,
    salary double,
    constraint  pk1 primary key(id)
 );
2.操作-添加多列主键(联合主键)

格式:

create table 表名(
   ...
   primary key (字段1,字段2,…,字段n)
);

范例:

create table emp3( 
  name varchar(20), 
  deptId int, 
  salary double, 
  primary key(name,deptId) 
);
3.通过修改表结构添加主键

格式:

create table 表名(
   ...
);
alter table <表名> add primary key(字段列表);

范例:

-- 添加单列主键
create table emp4(
  eid int, 
  name varchar(20), 
  deptId int, 
  salary double, 
);
alter table emp4 add primary key(eid);
4.删除主键约束

格式:

alter table <数据表名> drop primary key;

范例:

-- 删除单列主键 
alter table emp1 drop primary key;
 
-- 删除联合主键 
alter table emp5 drop primary key;

(二)MySQL约束-自增长约束

1.自增长一般格式

格式:

字段名 数据类型 auto_increment

范例:

create table t_user1( 
  id int primary key auto_increment, 
  name varchar(20) 
);
  • 默认情况下,auto_increment的初始值是 1,每新增一条记录,字段值自动加 1。
  • 一个表中只能有一个字段使用 auto_increment约束,且该字段必须有唯一索引,以避免序号重复(即为主键或主键的一部分)。
  • auto_increment约束的字段必须具备 NOT NULL 属性。
  • auto_increment约束的字段只能是整数类型(TINYINT、SMALLINT、INT、BIGINT 等。
  • auto_increment约束字段的最大值受该字段的数据类型约束,如果达到上限,auto_increment就会失效。
2.指定自增字段初始值

格式1:

-- 方式1,创建表时指定
create table t_user2 ( 
  id int primary key auto_increment, 
  name varchar(20)
)auto_increment=初始值;

范例1:

create table t_user2 ( 
  id int primary key auto_increment, 
  name varchar(20)
)auto_increment=100;

格式2:

-- 方式2,创建表之后指定
create table t_user3 ( 
  id int primary key auto_increment, 
  name varchar(20)
);

alter table t_user2 auto_increment=初始值;

范例2:

-- 方式2,创建表之后指定
create table t_user3 ( 
  id int primary key auto_increment, 
  name varchar(20)
);

alter table t_user2 auto_increment=100;
3.delete和truncate在删除后自增列的变化
  • delete数据之后自动增长从断点开始
  • truncate数据之后自动增长从默认起始值开始

(三)MySQL约束-非空约束

1.添加非空约束

格式1:

-- 方式1,创建表时指定
<字段名><数据类型> not null;

范例2:

create table t_user6 ( 
  id int , 
  name varchar(20) not null, 
  address varchar(20) not null 
);

格式2:

alter table 表名 modify 字段 类型 not null;

范例2:

create table t_user7 ( 
  id int , 
  name varchar(20) , -- 指定非空约束 
  address varchar(20) -- 指定非空约束 
); 
alter table t_user7 modify name varchar(20) not null; 
alter table t_user7 modify address varchar(20) not null;
2.删除非空约束

格式:

alter table 表名 modify 字段 类型;

范例:

alter table t_user7 modify name varchar(20) ; 
alter table t_user7 modify address varchar(20) ;

(四)MySQL约束-唯一约束

1.添加唯一约束

格式1:

-- 创建表时指定
<字段名> <数据类型> unique;

范例1:

create table t_user8 ( 
 id int , 
 name varchar(20) , 
 phone_number varchar(20) unique -- 指定唯一约束 
);

格式2:

alter table 表名 add constraint 约束名 unique(列);

范例2:

create table t_user9 ( 
  id int , 
  name varchar(20) , 
  phone_number varchar(20) -- 指定唯一约束 
); 
alter table t_user9 add constraint unique_ph unique(phone_number);
2.删除唯一约束

格式:

alter table <表名> drop index <唯一约束名>;

范例:

alter table t_user9 drop index unique_ph;

(五)MySQL约束-默认约束

1.添加默认约束

格式1:

<字段名> <数据类型> default <默认值>;

范例1:

create table t_user10 ( 
  id int , 
  name varchar(20) , 
  address varchar(20) default ‘北京’ -- 指定默认约束 
);

格式2:

alter table 表名 modify 列名 类型 default 默认值; 

范例2:

create table t_user11 ( 
  id int , 
  name varchar(20) , 
  address varchar(20)  
);
alter table t_user11 modify address varchar(20) default  '北京';
2.删除默认约束

格式:

alter table <表名> modify column <字段名> <类型> default null; 

范例:

alter table t_user11 modify column address varchar(20) default null;

(六)MySQL约束- 零填充约束

1.添加零填充约束

格式:

<字段名> <数据类型> zerofill;

范例:

create table t_user12 ( 
  id int zerofill , -- 零填充约束
  name varchar(20)   
);
2.删除零填充约束

格式:

alter table <表名> modify <字段名> <类型>;

范例:

alter table t_user12 modify id int;

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