学习自 https://www.cnblogs.com/jennyyin/p/7895010.html,感谢原博主的奉献

mysql支持多种类型,大致可以分为三类:数值、字符串、日期/时间。

数值类型

类型大小范围(有符号)范围(无符号)用途

tinyint1字节(-128, 127)(0,255)小整数值

smallint2字节(-32768,32768)(0,65535)大整数值

mediumin3字节(-8388608,8388607)(0,16777215)大整数值

int或integer4字节(-2147483648,2147483647)(0,4294967295)大整数值

bigint8字节(-9233372036854775808,9223372036854775807)(0,18446744073709551615)极大整数值

float4字节(-3.402823466E+38,-1.175494351E-38),0,(1.175494351E-38,3.402823466351E+38)0,(1.175494351E-38,3.402823466E+38)单精度浮点数值

double8字节(-1.7976931348623157E+308,-2.2250738585072014E-308),0,(2.2250738585072014E-308,1.7976931348623157E+308)0,(2.2250738585072014E-308,1.7976931348623157E+308)双精度浮点数值

注:使用int时,字段数值范围只与多少字节、有无符号有关。如tingint 数值范围(有符号-128~127、无符号0~255),与int(m)中的m无关。

m表示最大显示宽度,最大有效显示宽度是255.显示宽度与存储大小或类型包含的值的范围无关。

例如m=5我们可以简单的理解成为, 我们建立这个长度是为了告诉MYSQL数据库我们这个字段的存储的数据的宽度为5位数,  当然如果你不是5位数(只要在该类型的存储范围之内)MYSQL也能正常存储。

字符串

字符串类型指char、varchar、binary、varbinary、blob、text、enum和set。

char和varchar:

1.char(n)若存入字符数小于n,则以空格补于其后,查询时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。

2.char(n)固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。

3.char类型的字符串检索速度要比varchar快。

简单的总结来说,mysql中获取字符串长度的有两个函数:

length:返回字符串所占的字符数,是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符

char_length:返回字符串所占的字符数,不管汉字还是数字或者是字母都算是一个字符

varchar和text:

1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节

2.text类型不能有默认值

3.varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。

enum和set:

1.enum单选字符串类型,设定时需要给定几个选项,存储时只存储其中一个值。设定enum格式:enum('选项1','选项2','选项3',...)。实际上enum的选项都会对应一个数字,依次是1,2,3...,最多有65535个选项。

2.set多选字符串类型,设定时需要给定几个选项,存储时可以存储若干个值。设定set格式:set('选项1','选项2','选项3',...)。set的每个选项也对应一个数字,依次是1,2,4,8,16...,最多有64个选项,使用时可以是选项字符串本身(多个选项用逗号分隔),也可以使用多个选项数字之和(比如:1+2+4=7)

类型

char0-255字节定长字符串

varchar0-65535字节变长字符串

tinyblob0-255字节不超过255个字符的二进制字符串

tinytext0-255字节短文本字符串

blob0-65535字节二进制形式的长文本数据

text0-65535字节长文本数据

mediumblob0-16777215字节二进制形式的中等长度文本数据

mediumtext0-16777215字节中等长度文本数据

longblob0-4294967295字节二进制形式的极大文本数据

longtext0-4294967295字节极大文本数据

日期时间类型

表示时间值的日期和时间类型为datetime、date、timestamp、time和year。

date3字节1000-01-01/9999-12-31yyyy-mm-dd日期值

time3字节'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间

year1字节1901/2155YYYY年份值

datetime8字节1000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值

timestamp4字节1970-01-01 00:00:00/2038 结束时间2038年YYYYMMDD HHMMSS混合日期和时间值,时间戳

二进制

布尔:bit

bit表示1个二进制位

bit(8)表示8个二进制位

性别可以定义为0,1,而不使用male或female字符串

数据逻辑删除

车在车库的停放状态

所有基于两种状态的数据都可以用0,1来存储

这就是微学网-程序员之家为你提供的"mysql字段类型"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/10514.html

mysql 单选字段_mysql字段类型相关推荐

  1. mysql新增加密字段_mysql字段加密

    首先我们来认识一下blob类型的数据 BLOB类型的字段用于存储二进制数据 MySQL中,BLOB是个类型系列,包括:TinyBlob.Blob.MediumBlob.LongBlob,这几个类型之间 ...

  2. mysql double 使用_mysql double类型使用与主键自增

    MySQL设置自增字段的相关语句: alter table album change ALBUM_ID ALBUM_ID bigint not null auto_increment; alter t ...

  3. mysql fulltext 排序_mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的区别

    Normal 普通索引 > 表示普通索引,大多数情况下都可以使用 Unique 唯一索引 > 表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为uni ...

  4. mysql decimal长度_mysql decimal类型与decimal长度用法详解

    以下内容转自:http://blog.csdn.net/zhanghao143lina/article/details/53816884 三者的区别介绍 float:浮点型,含字节数为4,32bit, ...

  5. mysql小数类型字段_mysql小数类型字段,float,double

    mysql float double类型 1.float类型 float列类型默认长度查不到结果,必须指定精度, 比如 num  float,  insert into  table (num) va ...

  6. mysql mediumint 长度_mysql字段类型tinyint、smallint、mediumint、int、bigint详解

    mysql建模的过程中,对于优化来讲一个非常重要的点就是字段类型的设置,好的字段类型的设置可以帮助更快的查询数据同时能节约硬盘空间,这对于优化数据库来讲是非常重要的. mysql的字段类型大体来讲分为 ...

  7. mysql as 后面字段_mysql 字段as详解及实例代码

    mysql 字段使用as 在mysql中,select查询可以使用AS关键字为查询的字段起一个别名,该别名用作表达式的列名,并且别名可以在GROUP BY,ORDER BY或HAVING等语句中使用. ...

  8. mysql 枚举字段_MySQL字段中的枚举

    MySQL字段相信大家都有一些了解,下面将为您介绍的是MySQL字段中的枚举,希望对您学习MySQL字段方面能够有所帮助. MySQL字段中的枚举: mysql> create table me ...

  9. mysql 未知列_mysql – ‘字段列表’连接中的未知列’..’

    您在此查询中至少有两个问题. 首先,当您使用反向标记来分隔标识符时,必须将表别名与列名称分开. `verk.id` -- WRONG `verk`.`id` -- CORRECT 原因是SQL实际上允 ...

最新文章

  1. 生物信息学 几个程序
  2. C++ 输入字符串和string 类型总结
  3. 在 ubuntu 20.04 LTS 上安装 ROS2 执行 rosdep update 命令时出现的问题的解决办法
  4. jmeter获取mysql数据并作为请求参数使用
  5. Codeforces Round #498 (Div. 3) F. Xor-Paths
  6. LeetCode 24. 两两交换链表中的节点(递归+循环)
  7. 数据规模恼同程,混合云飘来除杂症
  8. error C3859: 超过了PCH的虚拟内存范围;请使用“-Zm137”或更大的命令行选项重新编译
  9. VDI环境的性能利器——固态存储
  10. python数据包pandas_python | 数据分析(二)- Pandas数据包
  11. Java Web应用程序开发-深入体验Java Web开发内幕之初步
  12. 儿童python编程入门-一款儿童编程入门的理想工具——PythonTurtle
  13. 初创公司几个投资人,各占多少股份合适?
  14. python绘制登陆时的卫星云图(TBB)
  15. consists of 和 is comprised of
  16. 智能车入门——‘教程引导’ <新手从零做车>
  17. Java VisualVM安装Visual GC插件
  18. 【原创】精品课程之PS快速抠图!50秒快速人像抠图!
  19. 二手房买卖信息管理系统
  20. ods转html android,SAS--output delivery system--ods html

热门文章

  1. C++多线程:package_task异步调用任何目标执行操作
  2. PHP面试内容 整理搜集 PHP面试涉及技术 一文回顾全部 主要含PHP面试命令列表 方法列表...
  3. [Swift]LeetCode901. 股票价格跨度 | Online Stock Span
  4. vue 树形下拉框 亲测 好用
  5. img-responsive class图片响应式
  6. vue.js created函数注意事项
  7. win10 UWP 应用设置
  8. MySQL 的“root”用户修改密码
  9. event.keyCode用法及列表
  10. 关于GridView手动绑定的一段代码,一切尽在不言中