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. js的变量,作用域,内存

    一,基本类型和引用类型的值基本类型的值是按值访问的,引用类型的值是保存在内存中的对象1,动态的属性 只有引用类型的值可以添加属性方法 不能给基本类型添加属性和方法2,复制变量值 复制基本类型的值,两个 ...

  2. 数仓增量更新hive实现

    注:参考文末文章,加上自己的理解. 1.增量更新 有一个 base_table 表存放的是 12 月 15 日之前的所有数据,当 12 月 16 日的数据产生后,生成了一个 incremental_t ...

  3. PEP 8 & Style Guide

    PEP 8 & Style Guide Style Guide for Python Code https://www.python.org/dev/peps/pep-0008/ PEP Py ...

  4. chrome devtools dark mode

    chrome devtools dark mode default dark mode https://medium.com/@eshwaren/dark-theme-for-chrome-devel ...

  5. TypeScript & global.d.ts

    TypeScript & global.d.ts https://www.typescriptlang.org/docs/handbook/declaration-files/template ...

  6. DoH & DNS over HTTPS

    DoH & DNS over HTTPS DNS over HTTPS(DoH)服务 http://mozilla.com.cn/thread-422231-1-1.html https:// ...

  7. Axios all in one

    Axios all in one https://github.com/axios/axios#example GET const axios = require('axios'); // Make ...

  8. Flutter NotificationListener 监听列表的滚动

    import 'package:flutter/material.dart'; import 'package:flutter_imagenetwork/flutter_imagenetwork.da ...

  9. (数据科学学习手札108)Python+Dash快速web应用开发——静态部件篇(上)

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 这是我的系列教程Python+Dash快速web ...

  10. re模块之简单计算器的实现

    本节大纲: 表达式的输入及检查.格式化 怎么样进行匹配最里面的括号以及操作数的匹配 如何实现表达式的四则运算 完整代码展示 在我们学习re模块之后,通常的练习就是利用所学相关知识来写一个计算器 那么, ...