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. kubernetes进阶(六)k8s平滑升级

    当我们遇到K8S有漏洞的时候,或者为了满足需求,有时候可能会需要升级或者降级版本, 为了减少对业务的影响,尽量选择在业务低谷的时候来升级: 首先准备好文件:我这里选择的是内网文件服务器上下载的,请自行 ...

  2. linux repo init 遇到的问题

    问题描述: 利用repo从远程服务器上取代码时候,出现错误  fatal: cannot make .repo directory:Permission denied, 加了sudo 之后,还是不行, ...

  3. const,volatile,static,typdef,几个关键字辨析和理解

    1.const类型修饰符 const它限定一个变量初始化后就不允许被改变的修饰符.使用const在一定程度上可以提高程序的安全性和可靠性.它即有预编译命令的优点也有预编译没有的优点.const修饰的变 ...

  4. How to get the real screen size(screen resolution) by using js

    How to get the real screen size(screen resolution) by using js 获取用户屏幕的真实像素分辨率, 屏幕实际尺寸 window.deviceP ...

  5. Windows 常用键盘快捷键:

    键盘快捷键 通过使用键盘快捷键可以节省时间. Windows 和 Mac 的键盘快捷键 在现代操作系统中和计算机软件程序中,键盘快捷键经常被使用. 使用键盘快捷键能帮您节省很多时间. 基本的快捷键 描 ...

  6. how to fetch a group promise api in order with the returned resolved result

    how to fetch a group promise api in order with the returned resolved result promise 一组依次请求,generator ...

  7. Taro Advanced

    Taro Advanced aro 代码与小程序代码混写 https://nervjs.github.io/taro/docs/hybrid.html https://github.com/NervJ ...

  8. ts 在Function上创建静态属性和方法

    interface IMessage { (value: any): void; success(): void; error(): void; version: string; } const Me ...

  9. 「NGK每日快讯」12.15日NGK公链第42期官方快讯!

  10. 死磕Spring之IoC篇 - 深入了解Spring IoC(面试题)

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...