MySQL入门(3)——数据类型

数字类型

整数数据类型:

数据类型 取值范围 说明 单位
TINYINT 符号值:-127~127
无符号值:0~255
最小的整数 1字节
BIT 符号值:-127~127
无符号值:0~255
最小的整数 1字节
BOOL 符号值:-127~127
无符号值:0~255
最小的整数 1字节
SMALLINT 符号值:-32 768~32 767
无符号值:0~65 535
小型整数 2字节
MEDIUMINT 符号值:-8 388 608~8 388 607
无符号值:0~16 777 215
中型整数 3字节
INT 符号值:-2 147 683 648~2 147 683 647
无符号值:0~4 294 967 295
标准整数 4字节
BIGINT 符号值:-9 223 372 036 854 775 808~9 223 372 036 854 775 807
无符号值:0~18 446 744 073 709 551 615
大整数 8字节

浮点数据类型:

数据类型 取值范围 说明 单位
FLOAT +(-)3.402 823 466E+38 单精度浮点数 8或4字节
DOUBLE +(-)1.797 693 134 862 315 7E+308
+(-)2.225 073 858 507 201 4E-308
双精度浮点数 8字节
DECIMAL 可变 一般整数 自定义长度

字符串类型

字符串类型分为3类:普通的文本字符串类型(CHAR和VARCHAR)、可变类型(TEXT和BLOB)和特殊类型(SET和ENUM)。

常规字符串类型:

类型 取值范围 说明
[national]
char(M)
[binary|ASCII|unicode]
0~255个字符 固定长度为M的字符串,其中M的取值范围是0~255。national关键字指定了应该使用的默认字符集。binary关键字指定了数据是否区分大小写(默认区分大小写)。ASCII关键字指定了在该列中使用latin1字符集。unicode关键字指定了使用UCS字符集。
char 0~255个字符 char(M)类似。
[national]
varchar(M)
[binary]
0~255个字符 长度可变,其它和char(M)类似。

可变类型(TEXT适用于长文本,BLOB适用于二进制数据):

类型 最大长度(字节数) 说明
TINYBLOB 2^8-1(255)​ 小BLOB字段
TINYTEXT 2^8-1(255)​ 小TEXT字段
BLOB 2^16-1(65 535)​ 常规BLOB字段
TEXT 2^16-1(65 535)​ 常规TEXT字段
MEDIUMBLOB 2^24-1(16 777 215)​ 中型BLOB字段
MEDIUMTEXT 2^24-1(16 777 215)​ 中型TEXT字段
LONGBLOB 2^32-1(4 294 967 295)​ 长BLOB字段
LONGTEXT 2^32-1(4 294 967 295)​ 长TEXT字段

特殊类型:

类型 最大值 说明
Enum("value1","value2",...) 65 535 该类型的列只可容纳所列值之一或为NULL
Set("value1","value2",...) 64 该类型的列可以容纳一组值或为NULL

使用字符串类型时,应当有如下考量:

  • 为优化速度,要选择固定的列,可考虑CHAR类型;
  • 为节省空间,要选择动态的列,可考虑VARCHAR类型;
  • 要将列中内容限制为一种选择,可考虑ENUM类型;
  • 允许一个列中有多于一个条目,可考虑SET类型;
  • 搜索内容不区分大小写,可考虑TEXT类型;
  • 搜索内容区分大小写,可考虑BLOB类型。

日期和时间类型

日期和时间的每种类型都有其取值范围,若赋值不合法则会被“0”取代。

类型 取值范围 说明
DATE 1000-01-01
9999-12-31
日期,格式YYYY-MM-DD
TIME -838:58:59
835:59:59
时间,格式HH:MM:SS
DATETIME 1000-01-01 00:00:00
9999-12-31 23:59:59
日期和时间,格式YYYY-MM-DD HH:MM:SS
TIMESTAMP 1970-01-01 00:00:00
2037年的某个时间
时间戳,在处理报告时使用显示格式取决于M的值
YEAR 1901-2155 年份可以指定两位数字和四位数字格式

MySQL入门(3)——数据类型的更多相关文章

  1. MySQL入门笔记 - 数据类型

    参考书籍<MySQL入门很简单> 数据类型是数据的一种属性,可以决定数据的存储方式.有效范围和相应的限制. 1.整数类型   1.1 MySQL的整数类型 MySQL中int类型和inte ...

  2. MySQL入门(引擎、数据类型、约束)

    MySQL入门(二) 表的引擎:驱动数据的方式 - 数据库优化 # 概要:引擎是建表规定的,提供给表使用,不是数据库的 # 展示所有引擎 show engines; # innodb(默认): 支持事 ...

  3. 21分钟 MySQL 入门教程(转载!!!)

    21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...

  4. MySQL入门(三)

    写了两篇<MySQL入门>以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧. 一 写SQL 其实我是不想 ...

  5. MySQL入门笔记

    MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: ·          rpm包形式 ·          通用二进制 ...

  6. MySQL入门转载

    21分钟 MySQL 入门教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html 目录 一.MySQL的相关概念介绍 二.Wi ...

  7. mysql 入门 基本命令

    MYSQL入门学习之一:基本操作  1.登录数据库    www.2cto.com     命令:mysql -u username –p (mysql -h主机地址 -u用户名 -p用户密码)   ...

  8. MySQL入门笔记(一)

    一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_nam ...

  9. 第二章 MySQL入门篇

    第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...

随机推荐

  1. Kubernets二进制安装(7)之部署主控节点服务--apiserver二进制安装

    kube-apiserver集群规划 主机名 角色 IP地址 mfyxw30.mfxyw.com kube-apiserver主 192.168.80.30 mfyxw40.mfyxw.com kub ...

  2. canvas实现简易时钟效果

    代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...

  3. window.onresize使用实例

    <!DOCTYPE html> <html> <head> <title>请调整浏览器窗口</title> <meta charset ...

  4. 使用MCSManager搭建Minecraft服务器

    目录 一.准备工作 1.MCSManager Windows环境下安装 Linux安装 2.Minecraft服务端 3.Java 二.配置 1.登录面板 2.上传服务端 3.服务端的配置 三.开启服 ...

  5. Swift 5.3 All In One

    Swift 5.3 All In One refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

  6. modal 遮罩层,滚动穿透 bug

    modal 遮罩层,滚动 穿透bug float 弹层 taro 小程序弹框 滚动击穿 问题 https://segmentfault.com/q/1010000011134345 solution ...

  7. 2021,狗狗币暴涨,VAST更加疯狂!

    2021年的币圈,多多少少出乎人的意料.很多币圈玩家们看好比特币,比特币却在达到4万美金的巅峰之后,极速下滑.很多玩家们看好以太坊,以太坊的手续费却出现了飙涨,让众多的中小散户们再次退却.而前几年已经 ...

  8. Mybatis-04 日志、分页

    Mybatis-04 日志.分页 日志 1.日志工厂 如果数据库操作出现异常,就需要打印日志来排错. 日志工厂会把日志工作委托实现: SLF4J Apache Commons Logging Log4 ...

  9. alpakka-kafka(1)-producer

    alpakka项目是一个基于akka-streams流处理编程工具的scala/java开源项目,通过提供connector连接各种数据源并在akka-streams里进行数据处理.alpakka-k ...

  10. eclipse安装mybatis的插件

    在help中打开Eclipse Marketplace... 输入mybatis后搜索,点击install即可 功能说明: 1.查找某一个方法 在dao接口中 按住Ctrl键,鼠标指到方法名称上 选择 ...