MySQL字符型、日期型、列属性及其修改

AlanblogAlan 41人围观

1.字符型

Char(len)

定长:在硬盘中所占的存储空间是固定不变的,无论实现数据的个数无关。

示例:

         某个字段的类型是Char(32),使用的字符集是latin1,实际存储的字符的个数是20个,那么这20个字符在硬盘中所占据的存储空间仍然是32个字节

         某个字段的类型是Char(32),使用的字符集是gbk,实际存储的字符的个数是20个,那么这20个字符在硬盘中所占据的存储空间仍然是64个字节

         某个字段的类型是Char(32),使用的字符集是utf8,实际存储的字符的个数是20个,那么这20个字符在硬盘中所占据的存储空间仍然是96个字节

Varchar(max)

变长:数据在硬盘中所占的存储空间是与实际的字符个数有关。

实际存储数据所占据的空间(字节)为:字符的个数*某种字符集中每一个字符所占的字节数+12个字节。

为什么12个字节?原因是varchar类型理论是最大存储的字符的个数是65535个。

255个字符以上需要额外占据      1个字节表示实现存储的字符的个数

25565535个字符需要额外占据2个字节表示实现存储的字符的个数

重要:

         对于charvarchar使用时必须指定字符的个数。

enum       枚举类型

某种需求对字段的取值范围是固定,每一个字符只能取其中的一个

形似于单选按钮。

Enum类型的作用:

1 规范数据的格式

2 节省空间

节省空间:

      每一个enum类型在硬盘中实际存储的是一个数字,在enum值列表中第一个值以1存储,第2个以2存储,依此类推….

说明:

      对于e_num类型中枚举值的个数最大是65535

set  集合类型

现实中的某种需求,对数据取值范围是固定的,但实际的值可以是这个范围中的多个

语法:

         Set(值列表);

Set类型的作用:

1、规范数据

2、节省空间

text文本型

文本型也是一个系列(单位是字符个数)

Tinytext             255

Text                    65535

Mediumtext              224-1

Longtext           232-1

charvarchartext

char是定长                       效率会高

varchar是变长                 节省空间,效率低

text                                       text数据的存储会在硬盘上额外开辟空间存储

Blob

单位字节

数据库不但可以存储字符数据,还可以存二进制数据,图片、音频、视频等内容。

Blob类型(二进制)

描述

TinyBlob

最大255个字节

Blob

最大65K字节

MediumBlob

最在16M

LongBlob

最大4G

**此种类型的单位是字节**

 

 

 

 

 

 

 

 


MySQL的记录长度

MySQL中一条记录的总长度(所有的字段)65535个字节

 

2.日期型

Year

         年份

语法:

         Year(4|2)

         4表示              4位的年份               范围19012155

         2表示               2位年份          

69表示小于等于69的两位数表示的年份是20xx

70表示大于等于70的两位数据表示的年份是19xx

 Date      年月日

       Date                   格式:  “2016-05-16”

      Time    时分秒

      Time                   格式:“15:17:02”

      Datetime      年月日时分秒

      Datetime  格式: “2016-05-16 15:17:02”

      timestamp       时间戳

说明:

         MySQL中的时间戳可以记录上一次对记录的修改时间,

         一条记录如果有多个时间戳字段,那么只有第1个会生效

 

3. 列属性

字段类型         指的是字段在一个记录中的数据类型(type)(接收什么样的数据)

列属性              指的是字段在一整列中的约束(constraint)

Null

MySQL默认的当没有为某个字段赋值时,MySQL系统默认的值。

null值的理解

null和任何数据运算结果都是null

null也不等于自己

Not null

语法:

         not null

在实际项目中null在统计数据时会有很多不便。所以在设置字段时一般不允许为null

Default

nullMySQL系统的缺省值,我们还可以自定义缺省值

         主要用于为字段指定缺省值,当没有为某个字段提供值时,系统会自动使用人为设定的缺省值

Unique

唯一

         主要用于约束某个字段在整列中不允许重复,但允许为Null

Auto_increment

自增长

         对于auto_increment列属性,只适合int

Primary key

主键

key关键的

primary 主要的

主键字段的作用,数据表是存储数据,很多时候,对数据表的操作就是查询,为了加快查询速度,MySQL表中会创建一些索引(类似于书的目录),通过索引就可以快速定位到一个表中的一条记录。

一般在使用上主键字段,与用户数据无关,一个表的第一个字段一般就是主键字段,习惯使用id

 

4. 修改列属性

Not null修改

添加

Alter table 表名 modify 字段名 字段类型 not null;

删除

Alter table 表名 modify 字段名 字段类型;

default修改

类似于not null

unique修改

添加

a  在创建表时直接在字段后使用unique关键字进行约束()

b  在创建表时在所有的字段后使用语法:unique(字段名)

删除

语法:

         alter table 表名 drop index 唯一键标识

查看具有唯一键的字段的标识

Show create table test_unique;

转载请注明来自Alan博客,本文标题:MySQL字符型、日期型、列属性及其修改

发布评论
生活是一场戏,主角当累了,你亦可成为观众,停下脚步,歇一歇
Top