MySQL入门(3)——数据类型
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)——数据类型的更多相关文章
- MySQL入门笔记 - 数据类型
参考书籍<MySQL入门很简单> 数据类型是数据的一种属性,可以决定数据的存储方式.有效范围和相应的限制. 1.整数类型 1.1 MySQL的整数类型 MySQL中int类型和inte ...
- MySQL入门(引擎、数据类型、约束)
MySQL入门(二) 表的引擎:驱动数据的方式 - 数据库优化 # 概要:引擎是建表规定的,提供给表使用,不是数据库的 # 展示所有引擎 show engines; # innodb(默认): 支持事 ...
- 21分钟 MySQL 入门教程(转载!!!)
21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...
- MySQL入门(三)
写了两篇<MySQL入门>以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧. 一 写SQL 其实我是不想 ...
- MySQL入门笔记
MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: · rpm包形式 · 通用二进制 ...
- MySQL入门转载
21分钟 MySQL 入门教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html 目录 一.MySQL的相关概念介绍 二.Wi ...
- mysql 入门 基本命令
MYSQL入门学习之一:基本操作 1.登录数据库 www.2cto.com 命令:mysql -u username –p (mysql -h主机地址 -u用户名 -p用户密码) ...
- MySQL入门笔记(一)
一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_nam ...
- 第二章 MySQL入门篇
第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...
随机推荐
- mysql+python+pymysql的一些细节问题
报错 (1044, "Access denied for user 'erio'@'localhost' to database 'library'") 就是权限问题了,没什么好说 ...
- anaconda jupyter notebook 启动方法
介绍 anaconda jupyter notebook是一种基于浏览器的python编译环境.(大概) 使用时可能因为浏览器缓存造成问题. 但是很方便. 启动方法 anaconda navigato ...
- Regular Expressions all in one
Regular Expressions all in one Regular Expressions Cheatsheet https://developer.mozilla.org/en-US/do ...
- taro weapp
taro weapp 开发指南 https://nervjs.github.io/taro/docs/GETTING-STARTED.html#微信小程序 taro # build $ taro bu ...
- Dart 中断Future
更多 中断future 方法1) import 'package:async/async.dart'; void main() { var get = CancelableOperation.from ...
- “Fatal error: Unable to find local grunt.” when running “grunt” command
下载到本地 >npm install grunt >grunt 命令行运行:grunt,出现以下问题: 这些是Gruntfile.js中引用的,依次安装: npm install grun ...
- NGK推出SPC算力币,开启算力新玩法!
这两天,NGK公链再度上了热搜.因为既成功的打造DeFi生态以后,NGK又将目光对准了算力市场.试图通过算力代币化,让NGK算力持有者可以获得算力代币,同时,如果不想要了,算力持有者也可以抛售代币. ...
- Scrapy 项目:腾讯招聘
目的: 通过爬取腾讯招聘网站(https://careers.tencent.com/search.html)练习Scrapy框架的使用 步骤: 1.通过抓包确认要抓取的内容是否在当前url地址中,测 ...
- 《Activity显示界面历险记》—说说View的那些理不清的关系
前言 在Activity显示View的过程中,有一些重要的角色总让人理不清,比如PhoneWindow.DecorView.ViewRootImpl. 也常常有面试题会问到,他们四者之间的关系?创建的 ...
- 6. vue组件详解(一)
主要内容: 1. 组件的基本使用 2. 全局组件和局部组件 3. 父组件和子组件 4. 组件语法糖的写法 5. 组件data关联的写法 6. 父子组件的通信 组件系统是 Vue 的一个重要概念,因为它 ...