mysql学习-列类型
- 整型
- 小数型
- 时间类型
- 字符串类型
- mysql记录长度
一、整型
分为五种形式
1 tinyint -迷你整型 系统使用一个字节保存 一个字节有16位 最大数值为255
2 smallint -小整型 系统使用两个字节保存 数值范围为0-65535
3 medium int 中整形 系统使用三个字节保存
4 int 标准整形
5 big int 系统使用八个字节保存
(一、)设置无标志符号
在整型中 列如 tinyint表示有255个长度数值范围是为 -127-128插入129就会报错 因此mysql设置了一种设置无标志符号的方式 unsigned first,设置后即可插入255
mysql命令为 create table my1 ( int3(tinyint) unsigned first)
插入命令为 insert into values (255)即可成功
二、小数型
小数型可以分为 浮点型和定点型
(一、)浮点型
浮点型又称为精度类型,是一种可能丢失数据精度的类型
(二、) float
称之为单精度类型,系统提供四个字节来存储数据但是实际上存储的数据范围比整型大得多大约为10的38次方,但是保证的精度最多只有7位。
使用格式 float(M,D) M表示的时有效数字 D表示的是小数点位数 列如float(10,2)表示有10位有效数字2位小数点。
(三、)Double
称之为双精度类型,有效位数是15位
三、时间类型
1.Date
2.Time
3.datetime
4.timestamp
5.Year
(一、)Data类型
Data类型为 YYYY-mm-dd 系统一般采用三个字节来保存,能表示的范围是 1001-01-01到9999-12-12
(二、)Time类型
是用来表示时间类型 ,格式为HH:ii:ss, 系统同样使用三个字节来保存,表示的范围是-838:59:59-838:59:59。在插入数据时除了普通方式,第二种方式为在时间前加一个数字列如:5 12:12:12 计算方式为 空格前的数字与24相乘+后面的数字
(三、)datatime类型
将data类型与时间类型相结合 数据格式为 YYYY:MM:DD HH:ii:ss能表示的区间是 1000-01-01 00:00:00 到 9999-12-12 23:59:59
(四、)timestamp类型
中文名字叫做时间戳类型 表示的是从格林威尔时间开始计算类型仍为YYYY-MM-DD HH:ii:ss
(五、)Year类型
年类型 系统使用一个字节来保存,插入时一般有2种方式第一种是四位数的具体年,另一种是两位数插入年,如果插入的数是69以下的则以20开头,插入的值在69以上则以19开头。
四、字符串类型
1.char
2.varchar
3,text
4.enum
5.set
(一、)char和varchar
char和varchar都是用来存储字符串的两种类似的存储方式,但是varchar比char更加灵活,vachar会根据字符串的长度来智能的分配长度,char则会给死长度类如
一个utf8字符会占用3个字节
分别用char(2)和varchar(2)存放一个A字符,char会使用6个字节保存,varchar会使用1*3+1=4个字节来保存
(二、)text和Enum
Mediumtext实际保存 2^24+3
Longtext实际保存2^32+4
1.text类型用来保存文本类型(blob用来保存二进制文件列如照片,音频)
text类型分为
Tinytex -小微型文本文件 实际保存为:2^8+1
Text-实际保存 2^16+2
Mediumtext-实际保存 2^24+3
Longtext-实际保存2^32+4
2.enum类型表示枚举法
当需要填写的数据有固定的值则不需要使用大空间来保存,列如性别只有男、女和保密
命令:enum(‘项目一’,‘项目二’,‘项目三’)
(三、)set类型
1.可以理解为enum的加强版,在插入数据时可以插入多条数据如下图
五、记录字符串长度
-
mysql规定的最大限度插入的是65535个字节,但是varchar理论上允许插入65535个字符,实际上是不允许的
-
mysql中不同字符对应不同的字节因此插入字节数的限度也相应的不同。
列如一个Utf8字符占有3个字节则varchar可以存入的数据为 65535/3-2=21843(varchar需要留取两个位置保存长度)
一个gbk字符占有两个字节 则varchar可以存入的数据为 65535/2-2=32765