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. 在程序中通过Process启动外部exe的方法及注意事项

    启动外部进程的方法: /// <summary> /// 启动外部进程 /// </summary> /// <param name="path"&g ...

  3. 5种设置ASP.NET Core应用程序URL的方法

    默认情况下,ASP.NET Core应用程序监听以下URL: http://localhost:5000 https://localhost:5001 在这篇文章中,我展示了5种不同的方式来更改您的应 ...

  4. SVG in Action

    SVG in Action HTML5 semantic HTML5 Semantic Elements / HTML5 Semantic Tags figure object <figure& ...

  5. TypeScript Generics All In one

    TypeScript Generics All In one TypeScript 泛型 代码逻辑复用 扩展性 设计模式 方法覆写, 直接覆盖 方法重载,参数个数或参数类型不同 test " ...

  6. .NET 面试题: C# override && overloading (C# 覆写 && 重载)

    1 1 1 .NET 面试题, C# ,override , overloading, 覆写, 重载,.NET,ASP.NET, override (覆写/重写): 方法名相同,参数的个数和类型相同, ...

  7. 使用 js 实现十大排序算法: 堆排序

    使用 js 实现十大排序算法: 堆排序 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法. 大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列: 小顶堆:每个 ...

  8. git whoami

    git whoami $ git config --list $ git config --global --list # quit $ q $ git config user.name xgqfrm ...

  9. how to convert SVG shapes to polygon

    how to convert SVG shapes to polygon 如何将 svg 的 rect 转换成 polygon rect.circle.ellipse.line.polyline.po ...

  10. nodejs package.json中的exports

    test/package.json { "name": "test", "main": "index.js", &quo ...