学会Mysql第三天

2020-04-13 18:33:32 浏览数 (1)

字段属性

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 表名 来查看
代码语言:javascript复制
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属性
代码语言:javascript复制
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;
唯一键不能直接修改,通常是先删除后添加

唯一键与主键一样,可以使用多个字段来保证唯一性:

一般主键都是单一字段(逻辑主键),而其他需要唯一性的内容都是有唯一键来处理。

0 人点赞