数据库中的数据类型

目录

一、数据类型

1.整数型

2.小数型

3.字符型

4.日期时间型

5.混合型

二、选取数据类型的原则


人们通过长期的学习,能够很轻松的识别除汉字,字符。可是计算机不能是别,于是人们在每一个计算机语言里都界定了数据类型,他可以是字符型、数值型、日期时间型还有混合型,有了这些数据类型,计算机很容易读取数据。在SQL中,数据类型是一个标签,是一个有利于SQL掌握每列中期望储存什么类型的数据的手册,它也标志了SQL怎样与储存的数据进行交互。SQL中常见的数据类型有多种,本文便介绍一下SQL中基本的数据类型。

一、数据类型

1.整数型

一般常见的整数的数据类型有int、smallint、mediumint、bigint。

数据类型字节大小范围(有符号)范围(无符号- unsigned)用途
TINYINT1 字节(-128,127)(0,255)微小整数值
SMALLINT2 字节(-32 768,32 767)(0,65 535)小整数值
MEDIUMINT3 字节(-8 388 608,8 388 607)(0,16 777 215)中等整数值
INT或INTEGER4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)整数值
BIGINT8 字节(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)大整数值


2.小数型

数据类型字节大小范围(有符号)范围(无符号- unsigned)用途
FLOAT4 字节(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度浮点小数值
DOUBLE8 字节(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度浮点小数

float 和double都是表示小数,实际使用时,如果需要用到的数比较大,可以将数据类型定义为double,反之使用float;由于double消耗内存是float的两倍,double的运算速度比float慢得多,对于编程人员来讲,能用单精度时不用双精度;
还有一种定点数数据类型是decimal类型,他和double区别是decimal所能储存的数比double大,decimal精确度更高;

3.字符型

字符串类型 字节大小 描述及存储需求
CHAR0-255字节   定长字符串,如CHAR(10),定长10占位,不足补空格
VARCHAR 0-255字节 变长字符串  ,如VARCHAR(10),最长10个字节,存储长度按照实际输入长度为准
TINYBLOB 0-255字节不超过255个字符的二进制字符串 
TINYTEXT 0-255字节短文本字符串  
BLOB  0-65535字节二进制形式的长文本数据   
TEXT 0-65535字节长文本数据 
MEDIUMBLOB0-16777215字节 二进制形式的中等长度文本数据 
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LOGNGBLOB0-4 294 967 295字节二进制形式的极大文本数据  
LONGTEXT 0-4 294 967 295字节极大文本数据  
 VARBINARY(M)M  允许长度0-M个字节的变长字节符串,值的长度+1个字节
 BINARY(M)M  允许长度0-M个字节的定长字节符串  

1、字符串型数据,在sql语句中,需要用单引号或者双引号引起来,如果"张三","中国人";
2、char、varchar、text比较:
(1)经常变化的字段用varchar
(2)知道固定长度的用char
(3)尽量用varchar
(4)超过255字符的只能用varchar或者text
(5)能用varchar的地方不用text
(6)按照查询速度: char最快, varchar次之,text最慢。
3、binary和varbinary区别:
(1)binary类型的长度是固定的,在创建表时就指定了,实际数据长度不足最大长度的空间由‘\0’补全。举个例子,binary(50)就是指定binary类型的长度为50;
(2)varbinary类型的长度是可变的,在创建表时指定了最大长度;指定好了varbinary类型的最大值以后,其长度可以在0到最大长度之间。举个例子,varbinary(50)的最大字节长度是50,但是,不是每条记录的字节长度都是50。在这个最大值范围内,使用多少分配多少。varbinary类型实际占用的空间为实际长度加一。这样,可以有效的节约系统的空间;

4.日期时间型

类型字节大小范围格式
DATE4字节1000-01-01/9999-12-31  YYYY-MM-DD  
TIME 3字节 -838:59:59/838:59:59 HH:MM:SS  
YEAR 1字节1901/2155YYYY 
DATETIME8字节1000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS 
TIMESTAMP 4字节1970/1/1 0:00YYYYMMDD HHMMSS 

这里只说datetime与timestamp区别:
 datetime与timestamp都是日期和时间的混合类型,区别在于:
 (1)表示的取值范围不同,datetime的取值范围远远大于timestamp的取值范围;
 (2)将NULL插入timestamp字段后,该字段的值实际上是MySQL服务器当前的日期和时间;
 (3)同一个timestamp类型的日期或时间,不同的时区,显示结果不同;
 (4)insert、update、delete语句中,日期时间型数据,需要用引号(单引号或者双引号)引起来。

5.混合型

数据类型数据说明

ENUM类型

枚举

(1)ENUM类型是一个允许你输入可能值的列表;
(2)在处理相互排拆的数据时容易让人理解,比如人类的性别;
(3)ENUM类型在系统内部可以存储为数字;
(4)一个ENUM 类型最多可以包含65536个元素,其中一个元素被MySQL保留;

SET类型

集合

(1)SET数据是一个字符串对象,可以有零或多个值;
(2)指定包括多个SET成员的SET列值时各成员之间用逗号(‘,’)间隔开;
(3)SET最多可以有64个不同的成员。

enum和set异同点:
mysql中的enum和set都是string类型,而且只能在指定的集合里取值, 不同的是,应用程序从数据库表中读取数据值时,set一次可以取多个值,enum每次只能取一个值。

二、选取数据类型的原则

选择合适的数据类型,不仅可以节省储存空间,还可以有效地提升数据的计算性能。 
(1)在符合应用要求(取值范围、精度)的前提下,尽量使用“短”数据类型
(2)数据类型越简单越好
(3)在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储日期和时间
(4)尽量采用精确小数类型(例如decimal),而不采用浮点数类型。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。
(5)尽量避免NULL字段值【空值】,建表时建议将字段指定为NOT NULL约束。

你的点赞是对博主最大的鼓励
看完记得收藏~
 

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的好家伙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值