首页 > 数据库 >5. SQL--数据类型

5. SQL--数据类型

时间:2022-08-26 18:45:17浏览次数:43  
标签:01 字节 -- 数据类型 字符串 SQL 类型 size

1. 前言

数据类型用来指明存储在表中的数据的性质。例如,在表的某一列中,如果我们想存储字符串,那么就必须将该字段声明为字符串类型。

在 SQL 中,每个字段、变量和表达式都有特定的数据类型,您可以在创建表时指明字段的类型,也可以根据需要随时修改字段的类型。

大部分数据库都支持以下 4 种类别的基本数据类型:

  • 字符串类型
  • 数值类型(整数+小数)
  • 日期时间类型
  • 二进制类型


本教程以 MySQL 8.0 为例讲解 SQL 数据类型,其它数据库支持的数据类型与 MySQL 大体类似,但是细节(例如数据类型的名称、数据类型的大小等)有所差别。

2. MySQL 数据类型

字符串类型
类型说明
char(size) 用于表示固定长度的字符串,该字符串可以包含数字、字母和特殊字符。size 的大小可以是从 0 到 255 个字符,默认值为 1。
varchar(size) 用于表示可变长度的字符串,该字符串可以包含数字、字母和特殊字符。size 的大小可以是从 0 到 65535 个字符。
tinytext 表示一个最大长度为 255(28-1)的字符串文本。
text(size) 表示一个最大长度为 65,535(216-1)的字符串文本,也即 64KB。
MEDIUMTEXT 表示一个最大长度为 16,777,215(224-1)的字符串文本,也即 16MB。
longtext 表示一个最大长度为 4,294,967,295(232-1)的字符串文本,也即 4GB。
enum(val1, val2, val3,...) 字符串枚举类型,最多可以包含 65,535 个枚举值。插入的数据必须位于列表中,并且只能命中其中一个值;如果不在,将插入一个空值。
set( val1,val2,val3,....) 字符串集合类型,最多可以列出 64 个值。插入的数据可以命中其中的一个或者多个值,如果没有命中,将插入一个空值。


说明:enum 类型相当于单选题,set 类型相当于多选题。

整数类型
类型大小(字节)有符号数取值范围无符号数取值范围说明
tinyint 1 (-128, 127) (0, 255) 超小整数
smallint 2 (-32 768, 32 767) (0, 65 535) 小整数
wediumint 3 (-8 388 608, 8 388 607) (0, 16 777 215) 中等整数
int 或 integer 4 (-2 147 483 648, 2 147 483 647) (0, 4 294 967 295) 整数
bigint 8 (-263, 263-1) (0, 264-1) 大整数
类型说明
bool 布尔类型,只有 true 和 false 两个有效值;零值被认为是 false,非零值被认为是 true。

注意,MySQL 并不真正支持 BOOL 类型,BOOL 是 TINYINT(1) 的别名。

 

小数类型
类型分类说明
FLOAT(size, d) 浮点数(近似值) 单精度浮点数类型,4 个字节大小。size 参数用来指定数字的总个数,d 参数用来指定小数部分(小数点后边)的数字个数。
FLOAT(p) 单精度浮点数类型,参数 p 用来决定使用 FLOAT 类型还是 DOUBLE 类型:
  • 如果 p 的取值介于 0 和 24 之间,那么数据类型将变成 FLOAT();
  • 如果 p 的取值介于 25 和 53 之间,那么数据类型将变成 DOUBLE()。
DOUBLE(size, d) 双精度浮点数类型,size 参数用来指定数字的总个数,d 参数用来指定小数部分(小数点后边)的数字个数。
DECIMAL(size, d) 定点数(精确值) 定点数类型,size 参数用来指定数字的总个数,d 参数用来指定小数部分(小数点后边)的数字个数。size 的最大值是 65,默认值是 10;d 的最大取值是 30,默认值是 0。
DEC(size, d) 等价于 DECIMAL(size, d)。

 

日期时间类型
类型说明
DATE 日期类型,格式为 YYYY-MM-DD,取值范围从 '1000-01-01' 到 '9999-12-31'。
DATETIME(fsp) 日期和时间类型,格式为 YYYY-MM-DD hh:mm:ss,取值范围从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'。
TIMESTAMP(fsp) 时间戳类型,它存储的值为从 Unix 纪元('1970-01-01 00:00:00' UTC)到现在的秒数。TIMESTAMP 的格式为 YYYY-MM-DD hh:mm:ss,取值范围从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC。
TIME(fsp) 时间类型,格式为 hh:mm:ss,取值范围从 '-838:59:59' 到 '838:59:59'。
YEAR 四位数字的年份格式,允许使用从 1901 到 2155 之间的四位数字的年份。此外,还有一个特殊的取值,就是 0000。

 

二进制类型
类型说明
BIT(size) 二进制位(Bit)类型,位数由 size 参数指定;size 的大小从 1 到 64,默认值为 1。
BINARY(Size) 等价于 CHAR() 类型,但是存储的是二进制形式的字节串。size 参数以字节(Byte)为单位指定列的长度,默认值为1。
VARBINARY(Size) 等价于 VARCHAR() 类型,但是存储的是二进制形式的字节串。size 参数以字节(Byte)为单位指定列的最大长度。
TINYBLOB 存储较小的二进制数据,最多可容纳 255 (28-1)个字节。
BLOB(size) 用来储存二进制数据,最多可以容纳 65,535(216-1)个字节,也即 64KB。
MEDIUMBLOB 存储中等大小的二进制数据,最多可以容纳 16,777,215(224-1)字节,也即 16MB。
LONGBLOB 存储较大的二进制数据,最多可容纳 42,94,967,295(232-1)字节,也即 4GB。


说明:BLOB 是 Binary Large Objects 的缩写,译为“大型二进制对象”,也即二进制数据块。

标签:01,字节,--,数据类型,字符串,SQL,类型,size
From: https://www.cnblogs.com/jiajunling/p/16628821.html

相关文章

  • Linux操作系统之ls -l|grep “^-“|wc -l命令
    前言1、 ls-l|grep^-|wc-l 含义:Linux操作系统下查看当前目录内的文件数量(不包含子目录中的文件)2、分段解释: ls-l :列出当前目录下所有文件。 grep^- :grep......
  • 聊聊数据库建表的15个小技巧
    前言对于后端开发同学来说,访问数据库,是代码中必不可少的一个环节。系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracle等。后端开发的日常工......
  • 肖sir__jenkins搭建20220826
    Jenkins操作手册1、持续集成(CI)Continuousintegration 持续集成 团队开发成员每天都有集成他们的工作,通过每个成员每天至少集成一次,也就意味着一天有可 能多......
  • 生成随机数
    publicstaticvoidmain(String[]args){Randomrandom=newRandom();random.ints(-100,100).limit(10)/......
  • heloworld
    HelloWorld1随便新建一个文件夹存放代码2新建一个Java文件文件的后缀名为.javaHelloWorld.java【注意】系统可能不显示后缀需要自行打开填入代码public......
  • MySQL大量的delete后空间如何回收
    今天试验了MySQL(版本5.5.27)大量的delete后空间如何回收问题一、myisam表 optimize table tablename;  #二、innodb表(独立表空间)--innodb-file-per-tablea.方......
  • python 比较两个list
    参考1 https://blog.csdn.net/weixin_44151034/article/details/124286429 参考2参考代码defis_diff_ele(list1,list2):"""判断两个列表元素是否一致(......
  • HTML与CSS-Day1
    一、html骨架<!DOCTYPEhtml>这句话的大意就是告诉我们html用哪个版本,html对应的就是html5.<html>所有的html中的根节点,标签中的老大<head>头部标签<tit......
  • Ajax的封装
        //ajax的回调函数的封装,建议不使用回调函数处理异步问题    letbtn=document.querySelector('button')    btn.addEventListener('clic......
  • 深入理解JUC:第四章:CountDownLatch倒计时器
    理论:CountDownLatch是一个非常实用的多线程控制工具类。常用的就下面几个方法:CountDownLatch(intcount)//实例化一个倒计数器,count指定计数个数countDown()//计数......