查看: 3240|回复: 0

[PHP实例] 基础总结(五)-mysql数据类型

发表于 2018-4-9 08:00:02
数据类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
图片描述

一.整数类型
图片描述

扩展:
图片描述
图片描述
二.小数
1.浮点型
图片描述
float的精度范围是7位,double的精度范围是15位。
直接使用float表示没有小数部分;float(M,D)其中M表示总长度,D表示小数部分长度。
小数的插入数据的时候可以使用科学记数法也可以直接使用小数;插入的数据整数的部分不能超出长度,但是小数部分可以超出长度,超出的部分自动四舍五入
2.定点型
图片描述

M最大值是65,D最大值是30,D的默认值是10
浮点数进位导致的长度溢出可以正常的插入,但是定点不行
扩展:
图片描述

三,时间和日期
图片描述 四,字符串类型
图片描述
1.定长字符串

在定义二维表的时候就已经定义了存储长度,char(L)其中L表示的是字符长度

例如char(5)在utf8的环境中需要使用4*3 = 12字节来存储

2.变长字符串

varchar在分配空间的时候,按照最大的空间分配,但是实际使用是根据具体的数据来分配的;varchar(L)其中L表示字符的长度,而且会多使用1~2个字节来确定边界,比255小的字符长度用一个字节,比255大使用两个字节;其实1~2是具体用来表示位数的字节,1个字节256位,2个字节65536位,所以使用两个字节就可以表示

例如:varchar(10)在utf8的环境下占有 10*3+1 = 31个字节

当数据的实际长度超过255的时候是text;定长浪费空间,但是效率高,如身份证、电话号码;变长省空间但是效率低,如地址。
扩展:
图片描述
图片描述
图片描述
图片描述

3.文本字符串

数据量巨大,字符个数超过255使用文本字符串,分类:

text存储文字(二进制数据通常使用text存储路径)
blob存储二进制,如文件(通常不用)

4.枚举

将事先所有的结果都设计好,实际是哪个使用的数据必须是规定中的一个,使用方式:

enum(可能出现列表),如enum('男','女');
作用:
规范数据格式(数据只能是选项中的一个)
节省空间(枚举实际存储的数值)
扩展:
图片描述
图片描述

5.集合字符串
集合字符串和枚举很类似,实际存储的都是数值而不是字符串
创建:set(集合元素)

使用:元素类表中的元素,可以使用多个

示例代码:
CREATE TABLE data_set(love SET('q','w','e','r'))CHARSET utf8;
INSERT INTO data_set VALUES (3); #这里的本质
INSERT INTO data_set VALUES ('q,w');
SELECT *
FROM data_set;
列属性
属性列表:NULL/NOT NULL default ,primary key,unique key ,auto_increment,comment

文章来源:
数据类型:https://juejin.im/entry/58772b895c497d005886f919
http://www.runoob.com/mysql/mysql-data-types.html



回复

使用道具 举报