加载中...

MySQL数据库基础操作(三)


MySQL约束

主键约束(primary key)

主键约束是一列或多列的组合,其值能唯一标识表中每一行,方便在数据库中快速找到某一行。
主键约束相当于唯一约束+非空约束的组合。

添加主键约束

在create table语句中,通过primary key关键字来指定主键。
语法格式:

方法一:

create table 表名(
	<字段名> <数据类型> primary key,
	...
	...
)

方法二:

create table 表名(
	<字段名> <数据类型>,
	<字段名> <数据类型>,
	<字段名> <数据类型>,
	constraint 主键名 primary key(字段名)  #constraint 主键名可省略	
)

多列主键(联合主键)

这个主键由一张表中多个字段组成
注意:
当这个主键由多个字段组成时,不能直接在字段名后声明主键约束。
一张表只能有一个主键,联合主键也是一个主键
语法:

create table 表名(
	字段名 数据类型,
	字段名 数据类型,
	字段名 数据类型,
	...
	primary key(字段名,字段名,...)	
);

通过修改表结构来添加主键(联合主键同理)
​ 语法:

create table 表名(
    字段名 数据类型,
	字段名 数据类型,
	字段名 数据类型
	);
alter table 表名 add primary key(字段名);

删除表主键

语法:

alter table 表名 drop primary key;

约束思维导图

自增长约束

语法:
字段名 数据类型 primary key auto_increment
操作:

create table t_user1(
	id int primary key auto_increment,
	name varchar(20)
);

指定自增长的初始值

方法一:创建表时指定

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

方法二:创建表之后指定

create table t_user3(
	id int primary key auto_increment,
	name varchar(20)
)
alter table t_user3 auto_increment = 200;

insert into t_user3 values(NULL,'张三');

#delete和truncate在删除后自增列的变化
#delete数据之后自动增长从断点开始
#truncate数据之后自动增长从默认初始值开始

非空约束

添加非空约束

方法一:

<字段名><数据类型> not null;

​ 方法二:

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

删除非空约束

alter table 表名 modify 字段名 数据类型;

唯一约束

添加唯一约束

方法一:

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

方法二:

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

删除唯一约束

格式:

alter table <表名>  drop index <唯一约束名>;
#如果没有约束名,那么该约束所在列的列名默认是约束名。

约束思维导图

默认约束

概念:
mysql默认值约束用来指定某列的默认值。
语法:

<字段值><数据类型> default <默认值>;
alter table 表名 modify 列名 类型 default 默认值;
添加默认约束——方法1create table t_user10(
	id int,
	name varchar(20),
	address varchar(20) default '浙江' --指定默认约束
);

添加默认约束——方法2:

create table t_user11(
	id int,
	name varchar(20),
	address varchar(20) 
);

alter table t_user11 address varchar(20) default '浙江';

insert into t_user11(id,name) values(1001,'张三');

删除默认约束

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

例子:

alter table t_user11 change column address varchar(20) default NULL;

约束思维导图

零填充约束(zerofill)

概念:
1.插入数据时,当该字段的值的长度时,会在该值的前面补上相应的0
2.zerofill默认为int(10)
3.当使用zerofill时,默认会自动加unsigned(无符号)属性,使用unsigned属性后,数值范围是原值的2倍,例如,有符号为-128+127,无符号为0256
操作:

create table t_user12(
	id int zerofill,
	name varchar(20)
);

删除:

alter table t_user12 modify id int;

文章作者: okra2saber
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 okra2saber !
评论
  目录