专栏首页白胡杨同学学会Mysql第三天

学会Mysql第三天

字段属性

primary key 主键属性

是指在一个表中,有且只有一个字段,里面的具有唯一性

添加主键的两种方法

1.随表创建主键
(1) 直接在主键字段后面加上primary key
create table my_pri1(
username varchar(10) primary key
) charset utf8;
(2) 在所有字段后面加上primary key选项 最后一个字段与primary key选项要用“,”隔开。
create table my_pri2(
username varchar(10),
userpass varchar(20),
primary key(username)
)charset utf8;
2.表后创建主键

alter table 表名 add primary key(字段名)

alter table pri1 add primary key(username);

查看主键

1.使用表结构来查看主键

desc pri1;

2.使用查看表创建语句查看主键

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是专门用来给开发人员进行维护的注释说明 基本语法: ** 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字段,来代表插入默认值

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.自动增长只适用于数值

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,即认为是删除自增长

  • 删除自增长时,不要在添加primary key属性
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.自增长在修改的时候可以较大,但是不可以比当前已有的自增长字段的值小

unique key 唯一键属性

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;

唯一键不能直接修改,通常是先删除后添加

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP与Web页面交互

    POST请求方法不依赖于URL,不会将参数值显示到地址栏中。可以传输更多的内容,传输方法也更安全;通常用于上传信息

    白胡杨同学
  • 名词性从句

    It is true that many people neglect environmental problem.

    白胡杨同学
  • CSS大部分属性汇总

    白胡杨同学
  • 【专业技术第四讲】如何检测浏览器的快慢?

    现在做浏览器的大概有下面几个方向吧 1. 从事浏览器外壳的工作,开发基于浏览器的各种应用和扩展; 2. 做浏览器内核优化的,大概又分为几个部分: a. 渲染模块...

    程序员互动联盟
  • redis中各种数据类型的常用操作方法汇总

    string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思是re...

    小勇DW3
  • Go语言实战笔记(二十八)| Go 后记

    《Go语言实战》笔记到现在算是结束了,基本上关于Go的方方面面都讲到了,还有些不是太常用的,比如CGO以后会专门再讲,不会放在这个系列里了。该系列一共写了近30...

    飞雪无情
  • 研究团队打破了高温、电磁场等技术限制,在空气中创造出等离子环 | 黑科技

    镁客网
  • 【Chrome】谷歌浏览器常用的flags配置与插件介绍

    就在最近,7月24日,谷歌浏览器Chrome终于迎来了最近最大的一次更新,Chrome68。身为软件颜控的我对隔壁Edge随着更新越来越好看的界...

    ZifengHuang
  • Spark2.x新特性的介绍

    dataframe与dataset统一,dataframe只是dataset[Row]的类型别名

    我脱下短袖
  • 强化学习(Reinforcement Learning)应用于量化投资系列专题(二)——设计一个外汇交易系统基于自适应强化学习

    往期文章(点击标题查看) 强化学习(Reinforcement Learning)系列(一) 今天带来机器学习应用于量化投资系列之 强化学习(Reinforce...

    量化投资与机器学习微信公众号

扫码关注云+社区

领取腾讯云代金券