美文网首页
MySQL-5列属性

MySQL-5列属性

作者: 金克拉拉拉拉 | 来源:发表于2017-11-22 19:11 被阅读0次

MySQL中的列属性

真正约束字段的是数据类型,但是数据类型的越是很单一,需要有一些额外的约束,更加保证数据的合法性

1.NULL

null / not null 约束是否为空

理论上来讲任何数据都不应该为NULL 空数据没有意义也没有办法参与运算

2.comment 列描述 、注释

该属性没有实际含义,专门用来描述字段,会根据表创建语句保存

3.default,默认值

insert into my_default (name) values('foo') insert into my_default values ('foooooo',default);

4.主键 primary key 

一张表中只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复,这种称之为主键,一张表中只能有一个主键

增加主键 

SQL中有多种方式给表增加主键 

--1.创建表时 直接在字段后添加primary key关键字 ,设置关键字后其自动not NULL;

create table 时设置关键字 primary key

缺点 只能使用一个字段作为主键

--2.在创建表时,在所有字段之后,使用primary key(主键创建列表)来创建主键,若有多个字段作为主键,可以是复合主键

创建复合主键 primary key(字段列表)

--3.当表已经创建好之后,额外追加主键可以通过修改表字段属性,或者直接追加

直接追加 alter table 表名 add primary key(字段列表);

追加主键

追加主键前提是表中字段对应的数据本身是独立的(不重复)

修改表 alter table 表名 modify 字段名 字段类型 primary key;

--4.主键约束

主键对应的字段中的数据不允许重复,一旦重复,数据操作失败(增、改)

单主键 和 复合主键的冲突

--5.更新和删除主键 

主键必须先删除,才能增加 

alter table 表名 drop primary key

alter table king_class drop primary key;

--6.主键分类

在实际创建表的过程中,很少使用真实业务数据作为主键字段,大部分时候时候使用逻辑性字段作为主键,字段没有业务含义,值是什么没有关系,将这种字段成为逻辑主键

id为逻辑主键 和业务无关,且自增长

5.自动递增 auto_increment

 当对应的字段不给值或者给默认值或NULL时 会自动被系统触发,系统会从当前字段中已有的最大值再进行+1操作,得到一个新的不同的字段,so 常和 primary key搭配 

而自增涨字段已经上升进表结构,不会随着数据的删除而进行改变

--1.任何一个字段要做子增长必须前提是本身是一个索引(key 一栏有值)

--2.自增长字段必须是整形数字类型

--3.一张表最多只有一个子增长字段

auto_increment 属性的使用

--4.触发自增长

不给值、NULL、Defualt

--5.修改自增长

子增长如果涉及到字段改变,需先删除自增长,然后增加,一张表只能有一个自增长

修改当前自增长已经存在的值,修改只能比当前已有的子增长的最大值大,不能小于当前该值,否则不生效

alter table 表名 auto_increment = 值;

--6.删除表字段时自增长导致的问题

当删除表内字段后,自增长不会为之发生改变,比较极端的例子为,若将表内字段清空,自增长不改变

删除字段后 自增长不随之改变

--7.删除自增长

自增长是字段的一个属性 通过modify 进行修改,保证字段没有auto_increment 即可

但是注意 有主键时,不要重复添加主键

6.唯一键

一张表中需要很多字段有唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键(unique key)就可以解决表中有多个字段需要唯一性约束的问题

唯一键 本质本质与主键差不多 :唯一键默认的允许自动为空 而且可以多个为空,空字段不参与唯一性比较

--1.在创建表时字段后增加关键字 unique / unique key 

创建表时直接添加关键字unique key

--2.使用unique key(字段列表)增加唯一键

与添加primary key类似

添加unique key 时需要注意 not null 否则unique 会添加失败

--3.追加唯一键

alter table 表名 add unique key (字段列表);

--4.唯一键约束

若唯一键也不允许为空,与主键的约束作用是一致的

唯一键与主键本质相同,唯一的区别就是唯一键默认允许为null 而且是多个为null

--5.更新 & 删除 unique key 

alter table 表名 drop index 索引名

查看索引名 show create table 表名 发现唯一键默认字段名为索引名

alter table 表名 drop index 索引名

7.索引 (几乎所有的索引都是建立在字段之上)

系统根据某种算法,将已有的数据(未来可能新增的数据),单独创建一个文件,文件能够实现快速的匹配数据,并且能够快速找到对应表中对应的记录

索引的意义在于 提升查询数据是效率,约束数据的有效性

索引本身会产生索引文件,非常消耗磁盘空间,有时候甚至可能比数据文件还要大

若某个字段需要作为查询的条件经常使用,那么可以使用索引(一定会想办法增加)

若某个字段需要进行数据的有效约束,也可能使用索引(primary key or unique key)

MySQL中提供了多种索引

1.primary key

2.unique key

3.全文索引 fulltext index 针对文章内部的关键字进行索引 最大的问题 在于如何确定关键字 

4.普通索引 index

相关文章

  • MySQL-5列属性

    MySQL中的列属性 真正约束字段的是数据类型,但是数据类型的越是很单一,需要有一些额外的约束,更加保证数据的合法...

  • 列属性

    列属性:真正约束字段的是数据类型,但是这种约束很单一,需要有一些额外的约束,来更加保证数据的合法性,这就需要列属性...

  • 列属性

    07列属性 01列属性——自动增长 字段从1开始每次递增1,特点是字段中的数据不可能重复,适合记录生成唯一id。 ...

  • 列布局

    1、Columns列属性 定义:columns 属性是一个简写属性,用于设置列宽和 列数 语法:columns: ...

  • 字段属性——列属性

    列属性:真正约束字段的是数据类型,但是数据类型的约束很单一,需要一些额外的约束,来更加的保证数据的合法性,这就是列...

  • columns 多列布局

    语法:columns: || 多列布局columns属性参数主要就两个属性参数:列宽和列数。

  • (八)列属性(列约束)

    1. PRIMARY 主键 2. UNIQUE 唯一索引(唯一约束) 3. NULL 约束 4. DEFAULT ...

  • 数据更新

    插入元组格式:insert into 表名 (属性列1,属性列2,属性3...) values (常量1,常量2,...

  • python读取csv文件的某一列或某几列

    读取csv某一列数据 按照列属性进行读取 按照列属性读取数据前十行

  • MySQL列属性

    列属性:约束,真正约束字段的是数据类型,但是数据的类型的约束很单一,需要有一些额外的约束,来更加保证数据的合法性。...

网友评论

      本文标题:MySQL-5列属性

      本文链接:https://www.haomeiwen.com/subject/abiwvxtx.html