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