Mysql数据库入门-列类型

1、整型

  • Tinyint:迷你整型 一个字节,表示范围0-255
  • Smallint:小整型,两个字节,表示范围:0-65535之间
  • Mediumint:中整型,采用三个字节保存数据
  • Int:标准整型:采用四个字节保存数据
  • Bigint:大整型,采用8个字节
  • 无符号标识设定
  • 在数据类型后面加上 unsigned
alter table my_int add int_6 tinyint unsigned first;

2、显示长度:

指定数据在显示的时候,到底可以显示多长位。

Tinyint(3):表示最长可以显示3位

只表示数据是否可以达到指定长度,但是不会自动满足到指定的长度,如果想数据保持高位(显示长度),还需要增加一个zerofill(填充0)才可以
应用:日期显示的格式对齐比如:01、02,12

3、小数型(浮点数)

浮点数:
又叫精度型,是一种可能丢失精度的数据类型,数据可能不准确(尤其是在超出范围的时候),浮点型之所以能够存储较大的数据(不精确)原因就是利用存储数据的位来存储指数。

  • float:单精度类型:4个字节,表示范围:10的38次方,只能保证大概7个左右的精度
    基本语法:
    float:表示不指定小数位的浮点数
    float(M,D):表示一共存储M个有效数字,其中小数部分占D位。

注:如果数据精度丢失,那么浮点型是按照四舍五入的方式进行计算。

  • Double:双精度类型,8个自己,表示范围:10的308次方,精度在15位左右

定点数:

  • Decimal
    定点数:系统自动根据存储的数据来分配空间,每大概9个数就会分配四个字节进行存储,同时小数和整数部分是分开的。
    基本语法:Decimal(M,D):M表示总长度,最大值不能超过65,D表示小数部分长度,最长不能超过30位。
    定点数的应用:涉及到钱方面的数据,定点型相对精确

4、时间日期型

- Data 日期类型
长度:三个字节,格式:YYYY-mm-dd,范围:1000-01-01 到 9999-12-12,初始值:0000-00-00


- Time 时间类型
长度:三个字节,格式:HH-ii-ss,范围:-838:59-59 到 838:59-59

*特性:

本质是用来表示时间区间,能表示的范围比较大。


- Datetime 日期时间类型
长度:8个字节,格式:YYYY-mm-dd HH-ii-ss 范围:1000-01-01 00:00:00 到 9999-12-12 23:59:59,初始值:0000-00-00 00:00:00


- Timestamp 时间戳
便是从格林威治时间开始,格式依然是:YYYY-mm-dd HH-ii-ss

*特性:

1、不能为空,默认值为:当前时间戳对应的时间
2、当对应数据被更新的时候(这个修改不一定是本身),这个字段自动更新为当前最新的时间
3、PHP中有着强大的日期转化函数,date将时间戳换成想要的格式,strtotime又可以将很多格式转化成对应的时间戳,PHP通常不需要数据库的协助来处理这么复杂的时间日期。所以通常配合PHP的时候,时间的保存通常使用时间戳(真正的),从而用整型来保存。


- Year 年类型
长度:一个字节,范围:1900-2155 年,两种插入方式,0~99和四位数的具体年

*特性:
插入两位数字的时候,临界点为69,70,当输入69以下的数字时,系统时间为20+数字,如果是70以上,系统时间为19+数字。


3、字符串类型

- char和varchar

char:定长字符,指定长度后,系统会分配固定空间存储数据
基本语法:char(L), L代表字符数(中英文一样),L长度为0-255.

varchar:变长字符,系统会根据实际存储的数据来自动分配对应的存储空间
基本语法:varchar(L), L代表字符数(中英文一样),L长度为0-65535.

特点:会增加额外开销,用来记录字符长度。存储数据小于127;额外开销1个字节,如果大于127额外开销2个字节。
在这里插入图片描述char和varchar区别
1、char系统一定会指定存储空间,varchar根据数据来定空间
2、char的数据查询效率比varchar高,varchar需要根据记录数进行计算

  • 如果确定字符长度,请使用char
  • 如果不确定,请使用varchar
  • 如果字符超出255长度,不论是否固定长度,都使用text类型。

- text和enum

text文本类型:
两种类型:
text:存储普通的字符文本
Blob:存储二进制文本(图片,文件),一般不会用这个方式来存储文件,通常是存储一个指向文件的链接。

  • 数据类型:

Tineytext:
长度:1个字节,存储容量:2的8次方+1
Text:
长度:2个字节,存储容量:2的16次方+2
Mediumtext:
长度:3个字节,存储容量:2的24次方+3
Longtext:
长度:4个字节,存储容量:2的32次方+4

注意:
1、在选对应的存储文本时,不用刻意选择text类型,系统会根据存储的长度自动选择适合的类型。
2、选择字符存储的时候,如果超过255个字符,那么一定选择Text存储。


enum枚举类型:

在插入数据时,预设值几个项,这几个项就是最终出现的数据结果
基本语法:enum(数据1,数据2…)

// 实例
create table my_enum(
gender enum('男','女','保密')
)charset utf8;

特性:

  1. 能规范数据输入,保证数据一致性。不在枚举中的数据是无法插入到表中
  2. 节约存储空间:实际存储的数据并非字符串,而是对应的下标。在插入数据时可使用对应的数值来进行。
Enum(1=>'男',2=>'女',3=>'保密')
insert into my_enum values(3);

-set集合类型
是一种将多个数据选项可以同时保存的数据类型,本质是用二进制数来标识指定的选项,1标识被选中,0非选中。
基本语法:set(‘值1’,‘值2’,‘值3’…)
系统会提供多个字节来进行存储,系统会自动分配。
1个字节:set只能8个选项
2个字节:set只能16个选项
…以此类推

create table my_set(

hobby set('篮球','足球','羽毛球','橄榄球','地球')

)charset utf8;

insert into my_enum values(3);
insert into my_set values('篮球','橄榄球','地球');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值