MySQL【第三篇】数据类型
一、整型
整型的每一种都有无符号(unsigned)和有符号(signed)两种类型。
MySQL数据类型 | 含义 |
tinyint(m) | 1个字节表示:signed(-128~127);unsigned(0~255) |
smallint(m) | 2个字节表示:signed(-32768~32767);unsigned(0~65535) |
mediumint(m) | 3个字节表示:signed(-8388608~8388607);unsigned(0~16777215) |
int(m) | 4个字节表示:signed(-2147483648~2147483647);unsigned(0~4294967295) |
bigint(m) | 8个字节表示:signed(-2^63 (-9223372036854775808) ~ 2^63-1 (9223372036854775807) );unsigned(0~18446744073709551615) |
二、浮点型
MySQL数据类型 | 含义 |
float(m,d) | 单精度浮点型,8位精度(4字节),m是十进制数字的总个数,d是小数点后面的数字个数 |
double(m,d) | 双精度浮点型,16位精度(8字节) |
三、定点数
decimal(m,d) 定点类型:浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。参数m是定点类型数字的最大个数(精度),范围0~65,d为小数点右侧数字的个数,范围为0~30.但不能超过m。
对定点数计算能精确65位数字。
四、字符串
MySQL数据类型 | 含义 |
char(n) | 固定长度的字符串,最多255个字符 |
varchar(n) | 固定长度的字符串,最多65535个字符 |
tinytext | 可变长度字符串,最多255个字符 |
text | 可变长度字符串,最多65535个字符 |
mediumtext | 可变长度字符串,最多2的24次方-1个字符 |
longtext | 可变长度字符串,最多2的32次方-1个字符 |
char和varchar:
- 都可以通过指定n来限制存储的最大字符数长度,char(20)和varchar(20)将最多只能存储20个字符,超过的字符将会被截掉。n必须小于该类型允许的最大字符数
- char类型指定了n之后,如果存入的字符数小于n,后面将会以空格补齐,查询的时候再将末尾的空格去掉,所以char类型存储的字符串末尾不能有空格,varchar不受此限制
- 内部存储的机制不同。char是固定长度,char(4)不管是存1个字符、2个字符或者4个字符(英文的),都将占用4个字节。varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以,varchar(4)存入一个字符将占用2个字节,2个字符占用3个字节,4个字符占用5个字节
- char类型的字符串检索速度要比varchar类型快
varchar和text:
- 都是可变长度的,最多能存储65535个字符
- varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节
- text类型不能有默认值
- varchar可直接创建索引,text创建索引要指定前多少个字符,查询速度varchar要快于text
五、二进制数据
xxxblob和xxxtext是对应的,不过存储方式不同。xxxtext是以文本方式存储的,如果存储英文,应区分大小写;而xxxblob是以二进制方式存储的,不区分大小写。
xxxblob存储的数据只能整体读出。
xxxtext可以指定字符集,xxxblob不能指定字符集
六、日期时间类型
MySQL数据类型 | 含义 |
date | 日期,如'2016-12-12' |
time | 时间,如'22:22:22' |
datetime | 日期+时间,如'2016-12-12 22:22:22' |
timestamp | 不固定 |
timestamp比较特殊,如果定义一个字段的类型为timestamp,这个字段的时间会在其他字段修改的时候自动刷新。所以这个数据类型的字段可以存放这条记录最后被修改的时间,而不是真正的存放时间。
七、数据类型的属性
在定义表时,可以指定每个字段的一些属性。
MySQL关键字 |
含义 |
NULL | 数据列可包含NULL值 |
NOT NULL | 数据列不允许包含NULL值 |
DEFAULT xxx | 默认值,如果插入记录的时候没有指定值,将取这个默认值 |
PRIMARY KEY | 主键 |
AUTO_INCREMENT | 递增,如果插入记录的时候没有指定值,则在上一条记录的值上加1,仅适用于整数类型 |
UNSIGNED | 无符号 |
CHARACTER SET name | 指定一个字符集 |
MySQL【第三篇】数据类型的更多相关文章
- 解剖SQLSERVER 第三篇 数据类型的实现(译)
解剖SQLSERVER 第三篇 数据类型的实现(译) http://improve.dk/implementing-data-types-in-orcamdf/ 实现对SQLSERVER数据类型的解 ...
- Mysql的三种数据类型
Mysql的三种数据类型 1.数值类型 2.日期和时间类型 3.字符串类型 00x1 [数值类型] 00x2 [日期和时间类型] 00x3 [字符串类型]
- mysql第三篇:表操作
第三篇:表操作 一.什么是表 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 二.创建表 语法 CREATE TABLE 表名( 字段名1 类型 ...
- MySQL 第三篇:表操作
一 存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 详见:http://www.cnblogs.com/moyand/p/9020698.html 二 表介绍 表相当于文 ...
- 详解MySQL第三篇—DCL语句
DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句.这些语句定义了数据库.表.字段.用户的访问权限和安全级别.主要的语句关键字包括 g ...
- Mysql优化(出自官方文档) - 第三篇
目录 Mysql优化(出自官方文档) - 第三篇 1 Multi-Range Read Optimization(MRR) 2 Block Nested-Loop(BNL) and Batched K ...
- MySQL之查询篇(三)
一:查询 1.创建数据库,数据表 -- 创建数据库 create database python_test_1 charset=utf8; -- 使用数据库 use python_test_1; -- ...
- 学习mysql语法--基础篇(一)
前 言 mysql mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: 一.创建用户,创建数据库,给 ...
- 小白两篇博客熟练操作MySQL 之 第二篇
小白两篇博客熟练操作MySQL 之 第二篇 一. 视图 视图是一个虚拟表,其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用名称即可获取结果集, 并可以将其当做表来使用. s ...
- mysql第四篇:数据操作之多表查询
mysql第四篇:数据操作之多表查询 一.多表联合查询 #创建部门 CREATE TABLE IF NOT EXISTS dept ( did int not null auto_increment ...
随机推荐
- RecyclerView一个奇怪的npe异常
java.lang.NullPointerException at android.support.v7.widget.RecyclerView.computeVerticalScrollOffset ...
- IPSEC实现
IPSEC介绍与实现 一.介绍 IPSec 协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议 Authentication Header(AH).封装安全载 ...
- 【HDOJ】1042 N!
肯定是大叔,本来以为用加法做乘法,后来想想这样麻烦,还是可以使用乘法的,按位乘,ov可以看成不止一位,程序如下所示: #include <stdio.h> #define MAX 4000 ...
- IBM Rational-完整的软件工程解决方案工具集
IBM,即国际商业机器公司,1911年创立于美国,是全球最大的信息技术和业务解决方案公司,其业务遍及全球170多个国家和地区.IBM软件分为五个部分,其中Rational系列是专门针对软件工程的软件工 ...
- Subline Text快捷键
我经常使用的快捷键 Ctrl+A: 全选Ctrl+C: 复制 重复工作必备: Ctrl+D:选择单词,重复可增加选择下一个相同的单词Alt+F3:选择所有相同的词F3: 下一个Shift+F3:前一个 ...
- BZOJ_2049_[Sdoi_2008]_Cave_洞穴勘测_(LCT/并查集)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=2049 给出一个森林,起始互不相连,现在有link和cut两种操作,问x,y是否在一棵树里. 分 ...
- 新浪微博2.5.1 for Android 去广告
新浪微博更新到2.5.1版,就开始来广告了,伤不起啊... 亲,看到没,手机屏幕就那么一小块,还要往里面塞东西,另外是一个在后台运行的AdCenter服务. 所需要用到的工具有:apktool,JD- ...
- POJ ---3070 (矩阵乘法求Fibonacci 数列)
Fibonacci Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 ...
- 【JS】Beginner2:Variables & Data
1.Variables name :name it in a way that tells what you've stored there value: 2.Create a variable =& ...
- 【HTML】Intermediate5:Definition Lists
dl(defination list) dt(defination term) dd(defination description)