`
realizeamg
  • 浏览: 32509 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MySQL学习笔记--数据类型

阅读更多
方括号中的属性可以在DDL语句中控制COLUMN的详细属性
一、整数型
1.INT[(width)][UNSIGNED][ZEROFILL]
MySQL用4 bytes存储INT型数据,其值在-2,147,483,648到2,147,483,647之间,如果选择了UNSIGNED类型,那么值在0到4,294,967,295。INT和INTEGER可以互换。(width)指定了数字的位数,如果实际的值超出了这个位数,那么(width)会被忽略。如果是UNSIGEND,通过指定ZEROFILL会由0在左侧占位补足

2.BOOLEAN
也可以写为BOOL或BIT,需要1个byte空间,用来存储boolean value,false(zero)或者true(nonzero),等价于TINYINT(1)

3.TINYINT[(width)][UNSIGNED][ZEROFILL]
需要一个byte空间,值的范围在-127到128或0到255

4.SMALLINT[(width)][UNSIGNED][ZEROFILL]
需要2bytes空间,值的范围在-32768到32767或者0到65535

5.MEDIUMINT[(width)][UNSIGNED][ZEROFILL]
需要3个byte,范围在-8,388608到8,388,607或者0到16,777,215

6.BIGINT[(width)][UNSIGNED][ZEROFILL]
需要8个byte,范围在-9,223,372,036,854,775,808到9,223,372,036,854,775,807或0到18,446,744,073,709,551,615

二、浮点数型
1.DECIMAL[(width[,decimals])][UNSIGNED][ZEROFILL]
也可以使用关键字DEC,NUMERIC,FIXED。在5.0.3版本以前,是作为string来存储的。从5.0.3版本以后,采用二进制存储,对每9位数字用4bytes存储。和INT不同,DECIMAL能存储的值是由(width,decimal)来确定的,超过的值会保存为指定范围内最接近的值。在5.0.3版本以前,正数的存储范围还可以比指定的范围在整数部分多1位

2.FLOAT[(width,decimals)][UNSIGNED][ZEROFILL] or FLOAT[(precision)][UNSIGNED][ZEROFILL]
默认的,FLOAT是一个4byte的单精度浮点值。当precision在0到24之间时,FLOAT就采用默认形式,当precision在25到53之间时,相当于DOUBLE。width不影响数据存储,只影响显示

3.DOUBLE[(width,decimals)][UNSIGNED][ZEROFILL]
默认为8byte双精度浮点值,width同样只影响显示。也可以写为REAL或DOUBLE PRECISION

三、时间和日期
1.DATE
存储和显示的范围在1000-01-01到9999-12-31之间,MySQL始终以YYYY-MM-DD的格式显示数据
输入可以采用以下格式
(1)YYYY-MM-DD or YY-MM-DD
如果以YY输入,70-99被解释为1970-1999,00-69被解释为2000-2069
(2)YYYY/MM/DD, YYYY:MM:DD, YY/MM/DD
可以使用任何标点(punctuation characters)作为分割符
(3)YYYY-M-D, YYYY-MM-D, or YYYY-M-DD
(4)YYYYMMDD or YYMMDD
如果输入的日期超出了范围,MySQL会保存为0000-00-00(zero date)。另外,从5.0.2版本开始,对无效日期,也会保存为zero date

2.TIME
存储的范围在-838:59:59到838:59:59,即34天,22小时,59分,59秒。如果输入值超出了范围,会被存储为最接近的值。如果在某个部分无效,会被存储为00:00:00
输入可以用以下格式
(1)DD HH:MM:SS, HH:MM:SS; DD HH:MM, HH:MM; DD HH; SS
(2)H:M:S, 可以为1-3位数字
(3)HHMMSS, MMSS, SS

3.TIMESTAMP
以YYYY-MM-DD HH:MM:SS的格式存储和显示一个日期-时间对。存储的范围从1970-01-01 00:00:00到2037年的某个时间。但这个类型具体的含义在MySQL的各个版本中都略有不同。TIMESTAMP可以在INSERT或UPDATE表时,被一同自动更新为当前时间。但对每张表,只有一个TIMESTAMP是可以自动更新的。如果有多个TIMESTAMP型的COLUMN,需要将其他的COLUMN置一个constant default(such as DEFAULT 0)。如果要在INSERT时自动设置,需要在建表时指定为DEFAULT CURRENT_TIMESTAMP,如果需要在UPDATE时也自动更新,需要在建表时指定为ON UPDATE CURRENT_TIMESTAMP。如果两者都要,则都要指定。
DEFAULT NULL对表中的第一个TIMESTAMP,会被解释为DEFAULT CURRENT_TIMESTAMP,对后面的TIMESTAMP, 会被解释为DEFAULT 0。
输入可以采用以下格式
(1)YYYY-MM-DD HH:MM:SS or YY-MM-DD HH:MM:SS,可以采用其他标点作分隔符
(2)YYYYMMDDHHMMSS or YYMMDDHHMMSS

4.YEAR[(digits)]
需要1个byte,digits可以为2或4,默认为4。2digits存储的范围为70到69,即1970-2069;4digits存储的范围1901-2155,也包括0000,无效值都会被转化为0000

5.DATETIME
也是时间-日期对,同TIMESTAMP相比只是没有了自动更新的特性。范围从1000-01-01 00:00:00到9999-12-31 23:59:59。如果用一个date赋值,time部分会被设为00:00:00;如果用一个time赋值,date部分会被设为0000-00-00。输入可以采用的形式与TIMESTAMP相同

四、字符
1.CHAR[(width)]
width默认为1,最大值为255,超过255会被转化为最小的TEXT。可以定义CHAR(0),只能包含NULL或者""(empty string)两种值,它只需要一个bit来存储。另外,字符串中的trailing spaces都会被忽略掉。

2.VARCHAR[(width)]
变长字符串,width最大为65,535,在5.0.3版本前为255。另外需要1到2个byte来存储字符串长度。超过长度限制会被转为最小的TEXT。在存储是trailing spaces同样会被去掉

3.BINARY(width) and VARBINARY(width)
与CHAR或VARCHAR等效,只不过是以二进制存储。从4.1.2版本引入,在4.1.2以前版本,可以通过在CHAR或VARCHAR后面指定BINARY关键字获得这一特性

4.BLOB
以二进制形式存储大型数据,最大长度为65535bytes。对字符串不会去除trailing spaces,不允许DEFAULT clause

5.TEXT
存储大型string,最大长度也是65535bytes。同BLOB相比,TEXT有字符集属性,排序是大小写无关的

6.TINYBLOB and TINYTEXT
最大长度255bytes的BLOB和TEXT

7.MEDIUMBLOB and MEDIUMTEXT
16,777,215bytes的BLOG和TEXT

8.LONGBLOB and LONGTEXT
最大长度4gigabytes的BLOG和TEXT,有效长度取决于server的内存配置等

9.ENUM('value1'[,'value2'[, ... 'valuen]])
string的枚举,最多包含65535个不同的枚举值。在输入和显示时都是string,但数据库内部存储实际是INTEGER。另外,ENUM还可以包含NULL(stored as NULL)和empty string ''(stored as 0),其他有效的枚举值则为1,2,...n。通过声明NOT NULL,是ENUM拒绝接受NULL。另外,无效的枚举值会被保存为''

10.SET('value1'[,'value2'[, ... 'valuen]])
输入和显示是string,数据库内部同样以INTEGER存储。最多存储64个元素,无效的元素也会被保存为''。SET和ENUM的区别是ENUM只能保存枚举值中的一个,而SET可以同时保存多个元素
分享到:
评论

相关推荐

    MySQL学习笔记:MySQL安装,MySQL数据类型,MySQL事务,MySQL函数

    MySQL学习笔记:MySQL安装,MySQL数据类型,MySQL事务,MySQL函数等学习笔记整理

    mysql学习笔记(一).txt

    mysql入门学习笔记整理,如何创建数据库、查看数据库,删除数据库,创建表和对表字段类型操作、约束、mysql数据类型整理

    Mysql学习笔记.pdf

    Mysql学习笔记 1. MYSQL 体系架构、特性、基本概念 2. 基本数据类型 3. 数据对象: 表、 索引、 视图 4. 基本 SQL 语法、 Mysql 语法 5. 常用函数 6. 事务、 锁相关 7. 性能优化

    非常详细的某培训机构mysql学习笔记

    非常详细的某培训机构mysql学习笔记,内容系统全面,实用性强 MySQL1 MySQL基础 MySQ单实例部署 MySQL多实例部署 MySQL数据库操作 MySQL数据类型 MySQL存储引擎 MySQL表操作 MySQL2 MySQL数据操作 MySQL单...

    学习笔记Mysql数据类型(字段)介绍.doc

    [学习笔记]Mysql数据类型(字段)介绍.doc

    MySQL学习笔记3-数据库设计与优化.md

    本文首先介绍了数据库设计的几大原则,如规范化、完整性、选择数据类型等。然后重点概述了数据库性能优化的常见方法,如索引优化、查询优化、分区表、缓存等,并给出了示例代码。最后通过一个图书管理系统的数据库设计...

    MySQL5.5学习笔记

    MySQL5.5学习笔记,里边是MySQL基础知识,包括对数据库,数据表,视图,数据类型和运算符,MySQL函数,存储过程和函数,以及对数据的增删改查等知识,还有MySQL用户管理以及数据备份与还原的知识!适合初学者学习~

    mysql学习笔记和案例(完全版)

    这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知识点,查询,子查询,分组,排序,常用函数,多表连接,视图,约束,分页,建库建表,数据类型,标识列,级联删除...

    mysql学习笔记和案例(完全版)2019_10_17.zip

    这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知 识点,查询,子查询,分组,排序,常用函数,多表连接,视图,约束,分页,建库建表,数据类型, 标识列,级联...

    mysql学习笔记和案例(完全版)2019_10_21.zip

    这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知 识点,查询,子查询,分组,排序,常用函数,多表连接,视图,约束,分页,建库建表,数据类型, 标识列,级联...

    一千行 mysql 学习笔记.docx

    一千行 mysql 学习笔记 说起 MySQL 的查询优化,相信大家收藏了一堆奇技淫巧:不能使用 SELECT *、不使用 NULL 字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解它背后...

    Java学习笔记-个人整理的

    {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{subsection.1.4.2} {1.4.3}\texttt {char}}{24...

    Mysql高性能学习笔记02

    前言  高性能Mysql中的第二章-基准测试和第三章-服务器性能剖析是需要全局考虑的问题,不同的...在原生的Mysql中,数据类型大体上分为以下几种:整数类型、实数类型、字符串类型、日期时间类型、位数类型、特殊类型。

    mysql学习笔记和案例(完全版)2019_10_22.zip

    这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知 识点,查询,子查询,分组,排序,常用函数,多表连接,视图,约束,分页,建库建表,数据类型, 标识列,级联...

    1000行 MySQL 学习笔记,不怕你不会,就怕你不学!

    -- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格) 连接与断开服务器 mysql -h 地址 -P 端口 -u 用户名 -p 密码 SHOW PROCESSLIST -- 显示哪些...

    小白终是踏上了这条不归路—-小文的mysql学习笔记(16)—-常见的约束条件以及它的添加和删除方式

    小白终是踏上了这条不归路—-小文的mysql学习笔记(1) 小白终是踏上了这条不归路—-小文的mysql学习笔记(2)—-条件查询 小白终是踏上了这条不归路—-小文的mysql学习笔记(3)—-排序询查 小白终是踏上了这条不...

    mysql数据库基础笔记及安装包

    安装包mysql-5.5.28-winx64.msi;mysql-5.1.58-win32.msi 如何连接数据库执行SQL语句; 数据库中如何保存数据; 数据库相关SQL;...数据类型; idea中配置数据库相关内容; 数据分组,排序,聚合,分页......

    MYSQL数据库入门实战课程-重点笔记

    MySQL 数据类型 MySQL操作表中数据 MySQL常⽤运算符概述 MySQL视图、索引 Mysql ⾯试和经典查询案例演示 mysql数据库实战训练课程简介 MySQL函数⼤全,MySQL常⽤函数汇总 MySQL约束、函数和运算符 MySQL数据类型和...

    MySQL学习笔记

    对于MySQL学习时的简要记录,包含了MySQL学习基础知识(数据类型、触发器、储存过程等),进阶的优化管理等操作

    MySQL学习笔记之数据的增、删、改实现方法

    本文实例讲述了MySQL学习笔记之数据的增、删、改实现方法。分享给大家供大家参考,具体如下: 一、增加数据 插入代码格式: insert into 表明 [列名…] values (值…) create table test21(name varchar(32)); ...

Global site tag (gtag.js) - Google Analytics