是指在一个表中,有且只有一个字段,里面的值具有唯一性。
create table my_pri1(
username varchar(10) primary key
) charset utf8;
create table my_pri2(
username varchar(10),
userpass varchar(20),
primary key(username)
)charset utf8;
alter table 表名 add primary key(字段名)
alter table pri1 add primary key(username);
desc pri1;
show create table pri2;
alter table 表名 drop primary key
alter table pri2 drop primary key;
primary key(字段名1,字段名2);
create table my_doublepri(
name char(3),
course char(5),
sourse int,
primary key(course,sourse)
)charset utf8;
1.主键字段不能为空 2.主键字段不能有任何重复
1.业务主键:主键所在的字段具有业务意义。 2.逻辑主键:自然增长的整型。
comment是专门用来给开发人员进行维护的注释说明 基本语法: ** comment’字段描述’**
create table my_comment(
name varchar(3) comment "用户名",
pass varchar(20) comment "密码"
) charset utf8;
show create table my_comment;
在字段被设计时,如果允许默认条件下,字段不进行输入,那么可以用事先准备好的值来填充字段,通常为NULL。 default 关键字的另一个作用,插入字段时可以直接使用default字段,来代表插入默认值。
create table my_default(
name varchar(10) not null, --字段不允许为空
age int default 18 --字段的默认值为18
)charset uft-8;
insert into my_default (name) values("Tom"); --插入成功,age字段使用默认值18
insert into my_defalut values("Jack",defalut); --插入成功
Default :默认值,当字段被设计的时候,如果允许默认条件下,用户不进行数据额插入,
那么就可以使用事先准备好的数据来填充:通常填充的是NULL
Default: 关键字的另外一层使用:显示的告知字段使用默认值:在进行数据插入的时候,对字段直接使用default
comment,是专门用于给开发人员进行维护的一个注释说明
基本语法:comment’字段描述’;
查看Comment:必须通过查看表创建语句
该属性表示字段为空,如果对应的值为YES,则代表字段可以为空。
1.在设计表的时候尽量不要让字段为NULL。 2.MYSQL的字段长度最长为65535个字节,如果字段值为空,那么系统会使用一个字节来存储NULL值,有效的数据长度就变成了65534个字节
在某列数据没有给定指定数据的时候,系统会根据该列之前已存在的数据,自动增长后,填充数据(一般用于逻辑主键)。 自增长的删除和添加要通过修改字段类型来进行
1.在系统中有维护一组数据,用来保存当前使用了自动增长的字段,记住当前的数据值,再给定一个步长值。 2.当用户插入数据时,没有指定值,系统在原来的数据基础上加上步长形成新的值,插入到字段中。 3.自动增长的触发条件:给定属性的字段没有提供值。 4.自动增长只适用于数值。
create table my_auto(
id int primary key auto_increment comment'用户名', --设置字段自增长
pass int not null comment'密码'
)charset utf8;
1.自增长一旦触发使用之后会自动在表选项中增加一个选项(一张表最多有一个自增长字段) 2.表选项可以通过修改表结构来实现
alter table my_auto auto_increment=3; --通过修改表结构来修改自增长的值。
修改字段属性时不再保留auto_increment,即认为是删除自增长。
alter table my_auto modify id int primary key comment'用户名' --删除自增长
alter table my_auto modify id int auto_increment --创建表之后增加自增长
系统中,专门有一组变量来存储自增长的初始值和步长值
show variables like 'auto_increment%'; --查看自增长的初始值和步长值
1.一个表里面只有一个自增长 2.如果数据插入中给定了值,那么自增长不会表现出来 3.自增长在修改的时候可以较大,但是不可以比当前已有的自增长字段的值小
1.用来保证字段中的数据是惟一的,与主键的功能类似,但是一个表中可以有多个唯一键 2.允许字段值为NULL,并且NULL值可以有多个。 3.唯一键也允许复合键。
1.在字段后面添加关键字
create table my_unique(
id int unique key,
sorce int
) charset utf8;
2.在所有字段后面添加 unique key(字段名)
create table my_unique1(
id int,
sorce int,
unique key(int)
) charset utf8;
alter table my_unique3 add unique key(id);
系统会自动为唯一键创建一个名字(默认是字段名)
show create table my_unique;
唯一键效果:在不为空的情况下,不允许重复
系统会为唯一键创建一个名字,默认值为字段名。
一个表中允许多个唯一键,“名字”就是用来删除唯一键的 alter table my_unique drop index 名字
alter table my_unique drop index id;
唯一键与主键一样,可以使用多个字段来保证唯一性:
一般主键都是单一字段(逻辑主键),而其他需要唯一性的内容都是有唯一键来处理。