Mysql支持的数据类型(总结)
MySQL(二)数据库数据类型详解
MySQL(⼆)数据库数据类型详解 序⾔ 今天去健⾝了,感觉把⾝体练好还是不错的,闲话不多说,把这个数据库所遇到的数据类型今天统统在这⾥讲清楚了,以后在看到什么数据类型,咱度应该认识,下⾯就跟着我的节奏去把这个拿下吧。
---WZY⼀、数据类型 MySQL的数据类型有⼤概可以分为5种,分别是整数类型、浮点数类型和定点数类型、⽇期和时间类型、字符串类型、⼆进制类型。
现在可以来看看你对这5种类型的熟悉程度,哪个看起来懵逼了,那就说明⾃⼰哪个不熟悉,不理解。
注意:整数类型和浮点数类型可以统称为数值数据类型,这不难理解。
数值数据类型 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT 浮点数类型:FLOAT、DOUBLE 定点⼩数:DECIMAL ⽇期/时间类型 YEAR、TIME、DATE、DATETIME、TIMESTAMP 字符串类型 CHAR、VARCHAR、TEXT、ENUM、SET等 ⼆进制类型 BIT、BINARY、VARBINARY、BLOB 1、整数类型 不管你学什么语⾔,在基础⽅⾯,都应该知道 1个字节= 8位⼆进制数。
每个类型的取值范围也就能够知道,⽐如TINYINT占⽤1个字节,也就是8位,2的8次⽅减1等于255,也就是说如果代表没符号的整数,该取值范围为0~255,如果是有符号的,最⾼位为符号号位,也就是2的7次⽅减1,也就是127,取值范围为-128~127,为什么需要减1,这个问题就需要考虑临界值的问题了。
⽽考虑临界值问题⼜有需要讨论原码补码反码的知识,这些度不是我们讨论的重点,所以在这就⾃⾏百度。
给出⼀张范围表,给⼤家做参考。
不同整数类型的取值范围 根据⾃⼰所需去选取不同的类型名称, 例如: CREATE TABLE aaa( id INT(10) PRIMARY KEY, age INT(6) ); 这个例⼦中INT(10)、INT(6) 括号中的数字表⽰的是该数据类型指定的显⽰宽度,指定能够显⽰的数值中数字的个数。
Mysql数据类型(字段)介绍
MySql数据库的列类型(字段类型)MySQL数据库的表是一个二维表,由一个或多个数据列构成。
每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,我们可以把整型数值存放到字符类型的列中,MySQL则会把它看成字符串来处理。
MySQL中的列类型有三种:数值类、字符串类和日期/时间类。
从大类来看列类型和数值类型一样,都是只有三种。
但每种列类型都还可细分。
下面对各种列类型进行详细介绍。
数值类的数据列类型数值型的列类型包括整型和浮点型两大类。
TINYINT:1字节非常小的正整数,带符号:-128~127,不带符号:0~255SMALLINT:2字节小整数,带符号:-32768~32767,不带符号:0~65535MEDIUMINT:3字节中等大小的整数,带符号:-8388608~8388607,不带符号:0~16777215INT:4字节标准整数,带符号:-2147483648~2147483647,不带符号:0~4294967295BIGINT:8字节大整数,带符号:-9223372036854775808~9233372036854775807,不带符号:0~18446744073709551615FLOAT:4字节单精度浮点数,最小非零值:+-1.175494351E-38,最大非零值:+-3.402823466E+38 DOUBLE:8字节双精度浮点数,最小非零值:+-2.2250738585072014E-308,最大非零值:+-1.7976931348623157E+308DECIMAL:M+2字节以字符串形式表示的浮点数,它的取值范围可变,由M和D的值决定。
整型数据列类型MySQL有五种整型数据列类型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。
它们之间的区别是取值范围不同,存储空间也各不相同。
在整型数据列后加上UNSIGNED属性可以禁止负数,取值从0开始。
mysql数据库的number类型
mysql数据库的number类型全文共四篇示例,供读者参考第一篇示例:MySQL数据库的Number类型是一种非常常用的数据类型,它用来存储数值型数据,包括整数和小数。
在实际的数据库设计和开发中,我们经常会用到Number类型来存储各种数字数据,比如订单金额、产品价格、数量等等。
在本文中,我们将详细介绍MySQL数据库中的Number类型,包括其各种子类型和用法。
MySQL数据库中的Number类型主要包括两种子类型,即整数型和浮点型。
整数型包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,分别用来存储不同范围的整数数据。
浮点型包括FLOAT和DOUBLE,用来存储小数数据。
下面我们将分别介绍这些Number类型的特点和用法。
1. TINYINTTINYINT类型用来存储小范围的整数数据,取值范围为-128到127。
TINYINT类型占用1个字节的存储空间,适用于存储性别、状态等只有两个取值的数据。
6. FLOATFLOAT类型用来存储单精度浮点数,即小数数据。
FLOAT类型占用4个字节的存储空间,可以存储6-7位的有效数字,适用于存储科学计算、工程测量等领域的数据。
第二篇示例:MySQL数据库中的number类型主要用于存储数值型数据,包括整型和浮点型两种。
整型数据包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,而浮点型数据包括FLOAT和DOUBLE。
在数据库表的设计中,合理地选择number类型可以提高数据库的性能和数据存储效率。
让我们来了解一下MySQL数据库中number类型的具体描述和用法。
1. TINYINT:TINYINT类型用于存储非常小的整数数据,范围在-128到127之间。
它占用1个字节的存储空间,适用于存储布尔类型数据或者只需要记录小整数的场景。
6. FLOAT:FLOAT类型用于存储单精度浮点数数据,范围在-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38之间。
MySQL数据库常见的数据类型
MySQL数据库常见的数据类型MySQL提供的数据类型包括数值类型(整数类型和⼩数类型)、字符串类型、⽇期类型、复合类型(复合类型包括enum类型和set类型)以及⼆进制类型。
1,整数类型:整数类型的数,默认情况下既可以表⽰正整数⼜可以表⽰负整数(此时称为有符号数)。
如果只希望表⽰零和正整数,可以使⽤⽆符号关键字“unsigned”对整数类型进⾏修饰。
例如:score tinyint unsigned各个类别存储空间及取值范围。
2,⼩数类型decimal(length, precision)⽤于表⽰精度确定(⼩数点后数字的位数确定)的⼩数类型,length决定了该⼩数的最⼤位数,precision⽤于设置精度(⼩数点后数字的位数)。
例如: decimal (5,2)表⽰⼩数取值范围:999.99~999.99 decimal (5,0)表⽰: -99999~99999的整数。
3,字符串char()与varchar(): 例如对于简体中⽂字符集gbk的字符串⽽⾔,varchar(255)表⽰可以存储255个汉字,⽽每个汉字占⽤两个字节的存储空间。
假如这个字符串没有那么多汉字,例如仅仅包含⼀个‘中’字,那么varchar(255)仅仅占⽤1个字符(两个字节)的储存空间;⽽char(255)则必须占⽤255个字符长度的存储空间,哪怕⾥⾯只存储⼀个汉字。
4,⽇期类型。
date表⽰⽇期,默认格式为‘YYYY-MM-DD’; time表⽰时间,格式为‘HH:ii:ss’; year表⽰年份; datetime与timestamp是⽇期和时间的混合类型,格式为'YYYY-MM-DD HH:ii:ss'datetime与timestamp都是⽇期和时间的混合类型,区别在于:表⽰的取值范围不同,datetime的取值范围远远⼤于timestamp的取值范围。
将NULL插⼊timestamp字段后,该字段的值实际上是MySQL服务器当前的⽇期和时间。
基于PostgreSQL和mysql数据类型对比兼容
基于PostgreSQL和mysql数据类型对⽐兼容1、数值类型整数:mysql中的整数类型和pg相⽐,两者有以下区别:mysql:mysql中⽀持int 1,2,3,4,8 字节,同时⽀持有符号,⽆符号。
并且mysql中⽀持在数值列中指定zerofill,⽤来将存储的数值通过填充0的⽅式达到指定数据类型的长度(mysql8开始不建议使⽤ZEROFILL属性,并且在将来的MySQL版本中将不再⽀持该属性)。
pg:pg⽀持 int 2,4,8 字节,且数值都是有符号的。
mysql整数类型:pg整数类型:那么对于mysql中的1,3字节整型,或者⽆符号整型以及zerofill特性,在pg中该如何实现呢?在pg中我们可以使⽤domain来实现mysql中的1,3字节整数以及⽆符号整型。
创建uint8,8字节⽆符号整型bill=# create domain uint8 as numeric(20,0) check (value <= ((2^64::numeric)::numeric(20,0)-1) and value>=0::numeric(20,0));CREATE DOMAIN使⽤domain,插⼊整型数据,且⼤于等于0,⼩于2^64bill=# create table t5(c1 uint8);CREATE TABLEbill=# insert into t5 values (-1);ERROR: value for domain uint8 violates check constraint "uint8_check"bill=# insert into t5 values (0);INSERT 0 1bill=# insert into t5 values (18446744073709551615);INSERT 0 1bill=# insert into t5 values (18446744073709551616);ERROR: value for domain uint8 violates check constraint "uint8_check"bill=# select * from t5;c1----------------------18446744073709551615(2 rows)同样我们也可以来创建domain实现1,3字节有⽆符号整型,2,4,8字节⽆符号等等:create domain int1 as int2 CHECK (VALUE <= 127 AND VALUE >= (-128));create domain uint1 as int2 CHECK (VALUE <= 255 AND VALUE >= 0);create domain uint2 as int4 CHECK (VALUE <= 65535 AND VALUE >= 0);create domain int3 as int4 CHECK (VALUE <= 8388607 AND VALUE >= (-8388608));create domain uint3 as int4 CHECK (VALUE <= 16777215 AND VALUE >= 0);create domain uint4 as int8 CHECK (VALUE <= 4294967295 AND VALUE >= 0);create domain uint8 as numeric(20,0) check (value <= ((2^64::numeric)::numeric(20,0)-1) and value>=0::numeric(20,0));⽽对于mysql中的zerofill,我们可以使⽤lpad函数来实现,并且这也是mysql官⽅⽂档中推荐的⼀种⽅式。
php数据库,mysql字段类型,字段属性详解
本文由lchengm贡献 doc1。
MySQL 字段类型详解 MySQL 提 供 了 整 数 和 浮 点 数 的 数 值 类 型 。
可 根 据 所 要 表 示 的 值 的 范 围 选 择 相 应 的 类 型 。
对 于 整 数 类 型 , 如 果 指 定 了 AUTO_INCREMENT 属 性 , 则 列 必 须 为 PRIMARY KEY 或 UNIQUE 索 引 。
将 NULL 插 入 AUTO_INCREMENT 列 将 会 插 入 一 个 大 于 该 列 中 当 前 最 大 值 的 值 。
如 果 指 定 了 UNSIGNED 属 性 , 则 相 应 的 整 数 类 型 不 允 许 取 负 值 。
如 果 指 定 了 ZEROFILL 属 性 , 则 用 前 导 零 填 充 数 值 类 型 值 以 达 到 列 的 显 示 宽 度 。
1. TINYINT[(M)] 说明:非常小的整数 允 许 的 属 性 : AUTO _ I N C R E M E N T, UNSIGNED, ZEROFILL 取 值 范 围 : - 128 到 127( - 27 到 27- 1) 或 者 如 果 为 U N S I G N E D, 则 0 到 2 5 5 , ( 0 到 2 8-1) 缺 省 值 : 如 果 列 可 为 NULL; 则 为 NULL; 如 果 列 为 NOT NULL, 则 为 0 存储需求:1 字节 2. SMALLINT[(M)] 说明:小整数 允 许 的 属 性 : AUTO _ I N C R E M E N T, UNSIGNED, ZEROFILL 取 值 范 围 : - 32768 到 3 27 6 7( - 215 到 215- 1) 或 者 如 果 为 U N S I G N E D, 则 , 0 到 6 5 5 3 5( 0 到 216- 1) 缺 省 值 : 如 果 列 可 为 NULL; 则 为 NULL; 如 果 列 为 NOT NULL, 则 为 0 存储需求:2 字节 3. MEDIUMINT[(M)] 说明:中等大小的整数 允 许 的 属 性 : AUTO _ I N C R E M E N T, UNSIGNED, ZEROFILL 取 值 范 围 : -8388608 到 8 3 8 8 6 07( - 22 3 到 22 3- 1) 或 者 如 果 为 U N S I G N E , D, 则 0 到 16 7 7 2 15( 0 到 22 4- 1) 缺 省 值 : 如 果 列 可 为 NULL, 则 为 NULL; 如 果 列 为 NOT NULL, 则 为 0 存储需求:4 字节 4. INT[(M)] 说明:标准大小的整数 允 许 的 属 性 : AUTO _ I N C R E M E N T, UNSIGNED, ZEROFILL 取 值 范 围 : - 2147483648 到 2 14 7 4 8 3 6 4 7( - 231 到 2 3 1- 1) 或 者 如 果 为 U N , S I G N E D, 则 0 到 4 2 9 4 9 6 7 2 9 5( 0 到 2 3 2- 1) 缺 省 值 : 如 果 列 为 NULL, 则 为 NULL; 如 果 列 为 NOT FULL, 则 为 0 存储需求:4 字节 同 义 词 : I N T E G E R [(M)] 5. BIGINT[(M)] 说明:大整数 允 许 的 属 性 : AUTO _ I N C R E M E N T, UNSIGNED, ZEROFILL 取 值 范 围 : - 9223372036854775808 到 9 2 2 3 3 7 2 0 3 6 8 5 4 7 7 5 8 07( - 263 到 2 6 3- 1) 或 者 如 果 为 U N S I G N E D, 则 0 到 18 4 4 6 7 4 4 07 3 7 0 9 5 5 16 , 15( 0 到 26 4 -1) 缺 省 值 : 如 果 列 可 为 NULL, 则 为 NULL; 如 果 列 为 NOT NULL, 则 为 0 存储需求:8 字节 6. FLOAT [(M, D)] 说 明 : 小 浮 点 数 ; 单 精 度 ( 精 度 小 于 D O U B L E) 允许的属性:Z E R O F I L L 取 值 范 围 : 最 小 非 零 值 为 ±1.75494351E -38; 最 大 非 零 值 为 ±3 . 4 0 2 8 2 3 4 6 6 E + 3 8 缺 省 值 : 如 果 列 可 为 NULL, 则 为 NULL; 如 果 列 为 NOT NULL, 则 为 0 存储需求:4 字节 同 义 词 : MySQL3.23 版 以 前 , FLOAT(4) 为 具 有 缺 省 M 和 D 值 的 FLOAT 的 同 义 词 。
mysql data类型用法
MySQL是一种流行的关系型数据库管理系统,它支持多种数据类型。
以下是一些常用的MySQL数据类型及其用法:1. 数值数据类型:* INT:用于存储整数,范围为-2147483648到2147483647。
* SMALLINT:用于存储小型整数,范围为-32768到32767。
* MEDIUMINT:用于存储中等大小的整数,范围为-8388608到8388607。
* BIGINT:用于存储大整数,范围为-9223372036854775808到9223372036854775807。
* FLOAT:用于存储单精度浮点数。
* DOUBLE:用于存储双精度浮点数。
* DECIMAL(p,s):用于存储精确小数,其中p是总位数,s是小数点后的位数。
2. 字符串数据类型:* CHAR(n):用于存储固定长度的字符串,其中n是字符数。
例如,CHAR(10)可以存储长度为10个字符的字符串。
* VARCHAR(n):用于存储可变长度的字符串,其中n是最大字符数。
例如,VARCHAR(255)可以存储最大长度为255个字符的字符串。
* TEXT:用于存储较大的文本数据。
3. 日期和时间数据类型:* DATE:用于存储日期,格式为YYYY-MM-DD。
* TIME:用于存储时间,格式为HH:MM:SS。
* DATETIME:用于存储日期和时间,格式为YYYY-MM-DD HH:MM:SS。
* TIMESTAMP:用于存储时间戳,格式为YYYY-MM-DD HH:MM:SS。
与DATETIME相比,TIMESTAMP的范围较小,但精度更高。
* YEAR:用于存储年份,可以存储2位或4位的年份表示。
4. 布尔数据类型:* BOOLEAN:用于存储布尔值,可以存储TRUE或FALSE。
在MySQL中,通常使用tinyint(1)来代替布尔类型。
5. 复合数据类型:* ENUM(value1,value2,...):用于定义一个枚举类型的字段,可以指定一组允许的值。
四、MySQL数据类型和运算符
四、MySQL数据类型和运算符 数据库表由多列字段构成,每⼀个字段指定了不同的数据类型。
指定字段的数据类型之后,也就决定了向字段插⼊的数据内容。
不同的数据类型也决定了MySQL在存储它们的时候使⽤的⽅式,以及在使⽤它们的时候选择什么运算符号进⾏运算。
⼀、MySQL数据类型介绍 MySQL⽀持多种数据类型,主要有数值类型、⽇期/时间类型和字符串类型。
(1)数值数据类型:包括整数类型TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点⼩数数据类型FLOAT和DOUBLE,定点⼩数类型DECIMAL。
(2)⽇期/时间类型:包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。
(3)字符串类型:包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。
字符串类型⼜分为⽂本字符串和⼆进制字符串。
1.1 整数类型 数值型数据类型主要⽤来存储数字,MySQL提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越⼤,其所需的存储空间也会越⼤。
MySQL主要提供的整数类型有:TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT。
整数类型的属性字段可以添加AUTO_INCREMENT⾃增约束条件。
下表列出了MySQL中的数值类型:MySQL中的整数型数据类型数据名称说明存储需求默认宽度值TINYINT很⼩的整数1个字节4SMALLINT⼩的整数2个字节6MEDIUMINT中等⼤⼩的整数3个字节9INT(INTEGER)普通⼤⼩的整数4个字节11BIGINT⼤整数8个字节20 根据占⽤字节数可以求出每⼀种数据类型的取值范围,例如TINYINT需要1个字节(8bits)来存储,那么TINYINT⽆符号数的最⼤值为28-1,即255;TINYINT有符号数的最⼤值为27-1,即127。
MySQL中的时间和日期处理
MySQL中的时间和日期处理MySQL是一种广泛使用的关系型数据库管理系统,被许多企业和开发者用于存储和处理大量的数据。
在数据存储中,时间和日期是常见的数据类型之一。
MySQL提供了一系列的函数和操作符,用于处理时间和日期数据,本文将深入探讨MySQL中的时间和日期处理。
一、时间和日期数据类型在MySQL中,有多种数据类型用于存储时间和日期信息。
最常见的是DATE、TIME、DATETIME和TIMESTAMP。
这些数据类型在存储的范围和精度上有所不同。
1. DATE数据类型用于存储日期,格式为'YYYY-MM-DD',范围从'1000-01-01'到'9999-12-31'。
2. TIME数据类型用于存储时间,格式为'HH:MM:SS',范围从'-838:59:59'到'838:59:59',可以存储负数表示时间差距。
3. DATETIME数据类型用于存储日期和时间,格式为'YYYY-MM-DDHH:MM:SS',范围从'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。
4. TIMESTAMP数据类型用于存储日期和时间,格式为'YYYY-MM-DDHH:MM:SS',范围从'1970-01-01 00:00:01'到'2038-01-19 03:14:07'。
与DATETIME不同的是,TIMESTAMP在存储时会自动转换为UTC,并且有时区的概念。
二、时间和日期的输入和输出在MySQL中,可以使用标准的日期和时间格式输入和输出数据。
例如,使用字符串'2022-10-01'可以插入一个日期值到DATE类型的列中。
同样地,可以使用字符串'12:30:45'插入一个时间值到TIME类型的列中。
mysql 列类型
MySQL 列类型概述MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。
几种列类型描述使用了下述惯例:M 表示最大显示宽度,最大有效显示宽度是255;D 适用于浮点和定点类型,并表示小数点后面的位数。
最大可能的值是30,但不应大于M-2。
方括号([])表示可选部分。
1、数值类型概述如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性。
SERIAL是BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的一个别名。
在整数列定义中,SERIAL DEFAULT VALUE是NOT NULL AUTO_INCREMENT UNIQUE的一个别名。
类型范围说明:类型字节最小值最大值TINYINT 1 带符号的 -128 127无符号0 255SMALLINT 2 带符号的 -32768 32767无符号0 65535MEDIUMINT 3 带符号的-8388608 8388607无符号0 16777215INT 4 带符号的-2147483648 2147483647无符号0 4294967295BIGINT 8 带符号的-92233720368547758089223372036854775807 无符号0 184467440737095516151.1、BITBIT[(M)]位字段类型。
M表示每个值的位数,范围为从1到64。
如果M被省略,默认为1。
1.2、INYINTINYINT[(M)] [UNSIGNED] [ZEROFILL]很小的整数。
带符号的范围是-128到127。
无符号的范围是0到255。
1.3、BOOLBOOL,BOOLEAN是TINYINT(1)的同义词。
zero值被视为假。
非zero值视为真。
在将来,将根据标准SQL引入完全布尔类型的处理。
1.4、SMALLINTSMALLINT[(M)] [UNSIGNED] [ZEROFILL]小的整数。
数据库的数据类型以及范围
Microsoft Access、MySQL 以及 SQL Server 所使用的数据类型和范围。
数据类型描述存储Text用于文本或文本与数字的组合。
最多 255 个字符。
Memo Memo 用于更大数量的文本。
最多存储 65,536 个字符。
注释:无法对 memo 字段进行排序。
不过它们是可搜索的。
Byte允许 0 到 255 的数字。
1 字节Integer允许介于 -32,768 到 32,767 之间的数字。
2 字节Long允许介于 -2,147,483,648 与 2,147,483,647 之间的全部数字 4 字节Single单精度浮点。
处理大多数小数。
4 字节Double双精度浮点。
处理大多数小数。
8 字节8 字节Currency用于货币。
支持 15 位的元,外加 4 位小数。
提示:您可以选择使用哪个国家的货币。
AutoNumber AutoNumber 字段自动为每条记录分配数字,通常从 1 开始。
4 字节Date/Time用于日期和时间8 字节1 比特Yes/No逻辑字段,可以显示为 Yes/No、True/False 或 On/Off。
在代码中,使用常量 True 和 False (等价于 1 和 0)注释:Yes/No 字段中不允许 Null 值Ole Object可以存储图片、音频、视频或其他 BLOBs (Binary Large OBjects)最多 1GB Hyperlink包含指向其他文件的链接,包括网页。
Lookup Wizard允许你创建一个可从下列列表中进行选择的选项列表。
4 字节MySQL 数据类型在 MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。
Text 类型:数据类型描述CHAR(size)保存固定长度的字符串(可包含字母、数字以及特殊字符)。
在括号中指定字符串的长度。
最多 255 个字符。
VARCHAR(size)保存可变长度的字符串(可包含字母、数字以及特殊字符)。
数据库字段类型
数据库字段类型MySQL 数据(字段)类型⼀、数据类型(data_type)规定了列可容纳何种数据类型。
下⾯的表格包含了SQL中最常⽤的数据类型:数据类型描述integer(size)int(size)smallint(size)tinyint(size)仅容纳整数。
在括号内规定数字的最⼤位数。
decimal(size,d) numeric(size,d)容纳带有⼩数的数字。
"size" 规定数字的最⼤位数。
"d" 规定⼩数点右侧的最⼤位数。
char(size)容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。
在括号中规定字符串的长度。
varchar(size)容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。
在括号中规定字符串的最⼤长度。
date(yyyymmdd)容纳⽇期。
⼆、MySQL 数据(字段)类型在创建表的时候,要明确定义字段对应的数据类型。
MySQL 主要的数据类型分为数值类型、字符串(⽂本)类型、时间⽇期类型和其他类型⼏类。
数值类型数值类型说明:类型说明例⼦tinyint存储范围:-128⾄127或0⾄255tinyint(1)smallint存储范围:-32768⾄32767或0⾄65535smallint(3) mediumint存储范围:- 8388608⾄8388607或0⾄16777215mediumint(5)int存储范围:- 2147483648⾄2147483647或0⾄4294967295int(10)bigint存储范围:- 9223372036854775808⾄9223372036854775807或0⾄18446744073709551615bigint(10)float最⼩⾮零值:±1.175494351E – 38,同double⼀样适⽤于精度要求⾼的场合float(3,1)double最⼩⾮零值:±2.2250738585072014E - 308double(10,5)decimal取值范围可变,以来括号内的显⽰尺⼨和⼩数点位数⽽定,适⽤于对精度要求不⾼但准确度要求⾮常⾼的场合decimal(10,2)补充说明1. 在 int(integer)系列中,只能存储整型值,且可以在后⾯⽤括号指定显⽰的尺⼨(M),如果不指定则会默认分配。
mysql数据类型
mysql 数据类型2009年07月18日星期六15:57在计算机中数据有两种特征:类型和长度。
所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类。
在SQL Server 中每个变量、参数、表达式等都有数据类型。
系统提供的数据类型分为几大类,。
其中,BIGINT、SQL_V ARIANT 和TABLE 是SQL Server 2000 中新增加的3 种数据类型。
下面分类讲述各种数据类型。
4.3.1 整数数据类型整数数据类型是最常用的数据类型之一。
1、INT (INTEGER)INT (或INTEGER)数据类型存储从-2的31次方(-2 ,147 ,483 ,648)到2的31次方-1 (2 ,147 ,483,647)之间的所有正负整数。
每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。
2、SMALLINTSMALLINT 数据类型存储从-2的15次方(-32,768)到2的15次方-1(32 ,767 )之间的所有正负整数。
每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。
3、TINYINTTINYINT数据类型存储从0 到255 之间的所有正整数。
每个TINYINT类型的数据占用1 个字节的存储空间。
4、BIGINTBIGINT 数据类型存储从-2^63 (-9 ,223,372,036,854,775,807)到2^63-1(9,223,372,036 ,854 ,775,807)之间的所有正负整数。
每个BIGINT 类型的数据占用8个字节的存储空间。
4.3.2 浮点数据类型浮点数据类型用于存储十进制小数。
浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。
所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1 ,并进行必要的进位。
mysql数据类型转换规则
mysql数据类型转换规则
MySQL支持的数据类型转换规则如下:
1. 自动转换数据类型:当MySQL执行一个操作时,如果操作数的数据类型不同,MySQL会自动进行数据类型转换。
2. 显式转换数据类型:用户可以通过使用MySQL的转换函数来显式地转换数据类型。
3. 数据类型优先级:当MySQL执行一个操作时,会按照数据类型的优先级来进行数据类型转换。
优先级从高到低依次为:BINARY、VARBINARY、BLOB、CHAR、VARCHAR和TEXT,INT、INTEGER、MEDIUMINT、SMALLINT、TINYINT、FLOAT、DOUBLE和DECIMAL。
4. 隐式转换的规则:当MySQL执行一个操作时,如果两个操作数的数据类型不同,则从较低优先级向较高优先级进行强制转换。
例如,如果一个操作数是INT 类型,另一个操作数是FLOAT类型,则FLOAT类型会被自动转换为INT类型。
5. 转换顺序:当MySQL执行一个操作时,如果需要进行多个数据类型转换,则执行顺序和MySQL函数执行顺序一样,即先执行内层函数,再执行外层函数的转换操作。
10分钟梳理MySQL核心知识点
10分钟梳理MySQL核心知识点今天我们用10分钟,重点梳理一遍以下几方面:•数据库知识点汇总;•数据库事务特性和隔离级别;•详解关系型数据库、索引与锁机制;•数据库调优与最佳实践;•面试考察点及加分项。
一、数据库的不同类型1.常用的关系型数据库•Oracle:功能强大,主要缺点就是贵•MySQL:互联网行业中最流行的数据库,这不仅仅是因为MySQL的免费。
可以说关系数据库场景中你需要的功能,MySQL都能很好的满足,后面详解部分会详细介绍MySQL的一些知识点•MariaDB:是MySQL的分支,由开源社区维护,MariaDB虽然被看作MySQL的替代品,但它在扩展功能、存储引擎上都有非常好的改进•PostgreSQL:也叫PGSQL,PGSQL类似于Oracle的多进程框架,可以支持高并发的应用场景,PG几乎支持所有的SQL标准,支持类型相当丰富。
PG更加适合严格的企业应用场景,而MySQL更适合业务逻辑相对简单、数据可靠性要求较低的互联网场景。
2.NoSQL数据库(非关系型数据库)•Redis:提供了持久化能力,支持多种数据类型。
Redis适用于数据变化快且数据大小可预测的场景。
•MongoDB:一个基于分布式文件存储的数据库,将数据存储为一个文档,数据结构由键值对组成。
MongoDB比较适合表结构不明确,且数据结构可能不断变化的场景,不适合有事务和复杂查询的场景。
•HBase:建立在HDFS,也就是Hadoop文件系统之上的分布式面向列的数据库。
类似于谷歌的大表设计,HBase可以提供快速随机访问海量结构化数据。
在表中它由行排序,一个表有多个列族以及每一个列族可以有任意数量的列。
HBase依赖HDFS可以实现海量数据的可靠存储,适用于数据量大,写多读少,不需要复杂查询的场景。
•Cassandra:一个高可靠的大规模分布式存储系统。
支持分布式的结构化Key-value存储,以高可用性为主要目标。
MySQL日期数据类型、时间类型使用总结
MySQL⽇期数据类型、时间类型使⽤总结1、MySQL的五种⽇期和时间类型MySQl中有多种表⽰⽇期和时间的数据类型。
其中YEAR表⽰年份,DATE表⽰⽇期,TIME表⽰时间,DATETIME和TIMESTAMP表⽰⽇期和实践。
它们的对⽐如下:TEAR ,字节数为1,取值范围为“1901——2155”DATE,字节数为4,取值范围为“1000-01-01——9999-12-31”TIME,字节数为3,取值范围为“-838:59:59——838:59:59”DATETIME,字节数为8,取值范围为“1000-01-01 00:00:00——9999-12-31 23:59:59”TIMESTAMP,字节数为4,取值范围为“19700101080001——20380119111407”当插⼊值超出有效取值范围时,系统会报错,并将零值插⼊到数据库中。
2、YEAR类型给YEAR类型复制可以有三种⽅法。
第⼀种是直接插⼊4位字符串或者4位数字。
第⼆种是插⼊2位字符串,这种情况下如果插⼊‘00’~‘69’,则相当于插⼊2000~2069;如果插⼊‘70’~‘99’,则相当于插⼊1970~1999。
第⼆种情况下插⼊的如果是‘0’,则与插⼊‘00’效果相同,都是表⽰2000年。
第三种是插⼊2位数字,它与第⼆种(插⼊两位字符串)不同之处仅在于:如果插⼊的是⼀位数字0,则表⽰的是0000,⽽不是2000年。
所以在给YEAR类型赋值时,⼀定要分清0和‘0’,虽然两者相差个引号,但实际效果确实相差了2000年。
3、TIME类型TIME类型表⽰为“时:分:秒”,尽管⼩时范围⼀般是0~23,但是为了表⽰某些特殊时间间隔,MySQL将TIME的⼩时范围扩发了,⽽且⽀持负值。
对TIME类型赋值,标准格式是‘HH:MM:SS’,但不⼀定⾮要是这种格式。
如果插⼊的是‘D HH:MM:SS’格式,则类似插⼊了‘(D*24+HH):MM:SS’。
MySQL中的空间数据类型和操作方法
MySQL中的空间数据类型和操作方法一、引言在现代世界中,数据已经成为我们生活中不可分割的一部分。
无论是在个人生活中还是在各种行业的应用中,数据的处理和存储都变得越来越重要。
而在这些数据中,空间数据作为一种特殊的数据类型,更是得到了广泛的应用和关注。
MySQL数据库作为一种常用的关系型数据库管理系统,也提供了对空间数据的支持。
本文将介绍MySQL中的空间数据类型和操作方法。
二、MySQL中的空间数据类型MySQL提供了几种用于存储和处理空间数据的数据类型,包括Point、LineString、Polygon、Geometry、GeometryCollection等。
1. PointPoint是一种表示二维平面上的一个点的数据类型,由经度和纬度组成。
2. LineStringLineString是一种表示一组连续的线段的数据类型,可以用来表示路径、道路等线状物体。
3. PolygonPolygon是一种表示封闭区域的数据类型,由一组有序的点组成。
可以用来表示地理区域、建筑物等。
4. GeometryGeometry是一种通用的空间数据类型,可以表示Point、LineString、Polygon 等所有的空间对象。
5. GeometryCollectionGeometryCollection是一种可以包含各种不同类型几何对象的数据类型。
三、MySQL中的空间数据操作方法在MySQL中,空间数据的操作主要包括创建、查询、插入、更新和删除等。
1. 创建空间数据列要在MySQL中创建一个空间数据列,可以使用以下语法:```sqlCREATE TABLE table_name (column_name data_type);```2. 查询空间数据要查询空间数据,可以使用以下语法:```sqlSELECT column_name FROM table_name;```3. 插入空间数据要插入空间数据,可以使用以下语法:```sqlINSERT INTO table_name(column_name) VALUES(geometry_from_text('POINT(经度纬度)'));```4. 更新空间数据要更新空间数据,可以使用以下语法:```sqlUPDATE table_name SET column_name = geometry_from_text('POINT(经度纬度)') WHERE condition;```5. 删除空间数据要删除空间数据,可以使用以下语法:```sqlDELETE FROM table_name WHERE condition;```四、空间数据查询操作示例以下是几个常见的空间数据查询操作的示例。
mysql float的范围值
mysql float的范围值(最新版)目录1.MySQL 浮点数类型的概述2.MySQL 浮点数类型的范围值3.浮点数类型的精度和舍入模式4.浮点数类型的存储空间和示例正文【MySQL 浮点数类型的概述】MySQL 是一种广泛使用的关系型数据库管理系统,它支持多种数据类型以满足各种应用需求。
在 MySQL 中,浮点数类型是一种用于存储实数的数据类型,可以表示小数和整数。
MySQL 提供了两种浮点数类型:float 和 double。
【MySQL 浮点数类型的范围值】MySQL 的 float 类型用于表示单精度浮点数,它的取值范围为-3.4E38 到 3.4E38,有效位数为 6-7 位。
而 double 类型用于表示双精度浮点数,它的取值范围为 -1.8E308 到 1.8E308,有效位数为 15 位。
在实际应用中,根据精度需求选择合适的浮点数类型是非常重要的。
【浮点数类型的精度和舍入模式】MySQL 的浮点数类型支持两种舍入模式:四舍五入(ROUND)和截断(TRUNCATE)。
四舍五入模式会在数字末尾添加一位小数,然后根据末尾数字的值进行舍入。
截断模式则会直接截断小数部分,只保留整数部分。
需要注意的是,这两种舍入模式在存储时并不占用额外的空间,只有在查询时才会进行舍入操作。
【浮点数类型的存储空间和示例】在 MySQL 中,float 类型的存储空间为 4 个字节,而 double 类型的存储空间为 8 个字节。
这意味着,在选择浮点数类型时,需要在存储空间和精度之间进行权衡。
下面是一个简单的示例:```sqlCREATE TABLE test (id INT PRIMARY KEY,value FLOAT,value_double DOUBLE);```在实际应用中,根据数据类型和精度需求,合理选择 MySQL 的浮点数类型,可以有效地存储和管理数据。
MySql中的varchar类型
MySql中的varchar类型今天新开始的项⽬在做数据库设计,发现⾃⼰对MySql的varchar类型还不熟悉,故⼜上⽹收集资料整理如下。
1.varchar类型的变化MySQL 数据库的varchar类型在4.1以下的版本中的最⼤长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。
在 MySQL5.0以上的版本中,varchar数据类型的长度⽀持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字节,也就是说,在4.1或以下版本中需要使⽤固定的TEXT或BLOB格式存放的数据可以使⽤可变长的varchar来存放,这样就能有效的减少数据库⽂件的⼤⼩。
MySQL 数据库的varchar类型在4.1以下的版本中,nvarchar(存储的是Unicode数据类型的字符)不管是⼀个字符还是⼀个汉字,都存为2个字节,⼀般⽤作中⽂或者其他语⾔输⼊,这样不容易乱码 ;varchar: 汉字是2个字节,其他字符存为1个字节,varchar适合输⼊英⽂和数字。
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节);5.0版本以上,varchar(20),指的是20字符,⽆论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最⼤⼤⼩是65532字节;varchar(20)在Mysql4中最⼤也不过是20个字节,但是Mysql5根据编码不同,存储⼤⼩也不同,具体有以下规则:a) 存储限制varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头⽤1到2个字节表⽰实际长度(长度超过255时需要2个字节),因此最⼤长度不能超过65535。
b) 编码长度限制字符类型若为gbk,每个字符最多占2个字节,最⼤长度不能超过32766;字符类型若为utf8,每个字符最多占3个字节,最⼤长度不能超过21845。
mysql中float用什么类型
mysql中float用什么类型对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用8个字节。
FLOAT类型用于表示近似数值数据类型。
SQL标准允许在关键字FLOAT 后面的括号内选择用位指定精度(但不能为指数范围)。
MySQL还支持可选的只用于确定存储大小的精度规定。
0到23的精度对应FLOAT 列的4字节单精度。
24到53的精度对应DOUBLE列的8字节双精度。
MySQL允许使用非标准语法:FLOAT(M,D)或REAL(M,D)或DOUBLEPRECISION(M,D)。
这里,“(M,D)”表示该值一共显示M位整数,其中D位位于小数点后面。
例如,定义为FLOAT(7,4)的一个列可以显示为-999.9999。
MySQL保存值时进行四舍五入,因此如果在FLOAT(7,4)列内插入999.00009,近似结果是999.0001。
MySQL将DOUBLE视为DOUBLEPRECISION(非标准扩展)的同义词。
MySQL 还将REAL视为DOUBLEPRECISION(非标准扩展)的同义词,除非SQL 服务器模式包括REAL_AS_FLOAT选项。
为了保证最大可能的可移植性,需要使用近似数值数据值存储的代码应使用FLOAT或DOUBLEPRECISION,不规定精度或位数。
DECIMAL和NUMERIC类型在MySQL中视为相同的类型。
它们用于保存必须为确切精度的值,例如货币数据。
当声明该类型的列时,可以(并且通常要)指定精度和标度;例如:salaryDECIMAL(5,2)在该例子中,5是精度,2是标度。
精度表示保存值的主要位数,标度表示小数点后面可以保存的位数。
在MySQL5.1中以二进制格式保存DECIMAL和NUMERIC值。
标准SQL要求salary列能够用5位整数位和两位小数保存任何值。
因此,在这种情况下可以保存在salary列的值的范围是从-999.99到999.99。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.数值类型Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。
扩展后增加了TINYINT,MEDIUMINT,BIGINT这3种长度不同的整形,并增加了BIT类型,用来存放位数据。
整数类型字节范围(有符号)范围(无符号)用途TINYINT 1字节(-128,127) (0,255) 小整数值SMALLINT 2字节 (-32 768,32 767) (0,65535) 大整数值MEDIUMINT 3字节(-8 388 608,8 388 607) (0,16 777215) 大整数值INT或INTEGER 4字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值BIGINT 8字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值FLOAT 4字节 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度浮点数值DOUBLE 8字节 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度浮点数值DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值依赖于M和D的值小数值INT 类型:在 MySQL 中支持的 5 个主要整数类型是 TINYINT,SMALLINT,MEDIUMINT,INT 和BIGINT。
这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。
MySQL 以一个可选的显示宽度指示器的形式对 SQL 标准进行扩展,这样当从数据库检索一个值时,可以把这个值加长到指定的长度。
例如,指定一个字段的类型为 INT(6),就可以保证所包含数字少于 6 个的值从数据库中检索出来时能够自动地用空格填充。
需要注意的是,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围。
万一我们需要对一个字段存储一个超出许可范围的数字,MySQL 会根据允许范围最接近它的一端截短后再进行存储。
还有一个比较特别的地方是,MySQL 会在不合规定的值插入表前自动修改为 0。
UNSIGNED 修饰符规定字段只保存正值。
因为不需要保存数字的正、负符号,可以在储时节约一个“位”的空间。
从而增大这个字段可以存储的值的范围。
ZEROFILL 修饰符规定 0(不是空格)可以用来真补输出的值。
使用这个修饰符可以阻止MySQL 数据库存储负值。
FLOAT、DOUBLE 和 DECIMAL 类型MySQL 支持的三个浮点类型是 FLOAT、DOUBLE 和 DECIMAL 类型。
FLOAT 数值类型用于表示单精度浮点数值,而 DOUBLE 数值类型用于表示双精度浮点数值。
与整数一样,这些类型也带有附加参数:一个显示宽度指示器和一个小数点指示器。
比如语句 FLOAT(7,3) 规定显示的值不会超过 7 位数字,小数点后面带有 3 位数字。
对于小数点后面的位数超过允许范围的值,MySQL 会自动将它四舍五入为最接近它的值,再插入它。
DECIMAL 数据类型用于精度要求非常高的计算中,这种类型允许指定数值的精度和计数方法作为选择参数。
精度在这里指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的位数。
比如语句 DECIMAL(7,3) 规定了存储的值不会超过7 位数字,并且小数点后不超过 3 位。
忽略 DECIMAL 数据类型的精度和计数方法修饰符将会使 MySQL 数据库把所有标识为这个数据类型的字段精度设置为 10,计算方法设置为 0。
UNSIGNED 和 ZEROFILL 修饰符也可以被 FLOAT、DOUBLE 和 DECIMAL 数据类型使用。
并且效果与 INT 数据类型相同。
二.字符串类型MySQL 提供了8个基本的字符串类型,分别:CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 各SET等多种字符串类型。
可以存储的范围从简单的一个字符到巨大的文本块或二进制字符串数据。
字符串类型字节大小描述及存储需求CHAR 0-255字节定长字符串VARCHAR 0-255字节变长字符串TINYBLOB 0-255字节不超过 255 个字符的二进制字符串TINYTEXT 0-255字节短文本字符串BLOB 0-65535字节二进制形式的长文本数据TEXT 0-65535字节长文本数据MEDIUMBLOB 0-16 777 215字节二进制形式的中等长度文本数据MEDIUMTEXT 0-16 777 215字节中等长度文本数据LOGNGBLOB 0-4 294 967 295字节二进制形式的极大文本数据LONGTEXT 0-4 294 967 295字节极大文本数据VARBINARY(M) 允许长度0-M个字节的定长字节符串,值的长度+1个字节BINARY(M) M 允许长度0-M个字节的定长字节符串CHAR 和 VARCHAR 类型CHAR 类型用于定长字符串,并且必须在圆括号内用一个大小修饰符来定义。
这个大小修饰符的范围从 0-255。
比指定长度大的值将被截短,而比指定长度小的值将会用空格作填补。
CHAR 类型可以使用 BINARY 修饰符。
当用于比较运算时,这个修饰符使 CHAR 以二进制方式参于运算,而不是以传统的区分大小写的方式。
CHAR 类型的一个变体是 VARCHAR 类型。
它是一种可变长度的字符串类型,并且也必须带有一个范围在 0-255 之间的指示器。
CHAR 和 VARCHGAR 不同之处在于 MYSQL 数据库处理这个指示器的方式:CHAR 把这个大小视为值的大小,不长度不足的情况下就用空格补足。
而 VARCHAR 类型把它视为最大值并且只使用存储字符串实际需要的长度(增加一个额外字节来存储字符串本身的长度)来存储值。
所以短于指示器长度的 VARCHAR 类型不会被空格填补,但长于指示器的值仍然会被截短。
因为 VARCHAR 类型可以根据实际内容动态改变存储值的长度,所以在不能确定字段需要多少字符时使用 VARCHAR 类型可以大大地节约磁盘空间、提高存储效率。
VARCHAR 类型在使用 BINARY 修饰符时与 CHAR 类型完全相同。
TEXT 和 BLOB 类型对于字段长度要求超过 255 个的情况下,MySQL 提供了 TEXT 和 BLOB 两种类型。
根据存储数据的大小,它们都有不同的子类型。
这些大型的数据用于存储文本块或图像、声音文件等二进制数据类型。
TEXT 和 BLOB 类型在分类和比较上存在区别。
BLOB 类型区分大小写,而 TEXT 不区分大小写。
大小修饰符不用于各种 BLOB 和 TEXT 子类型。
比指定类型支持的最大范围大的值将被自动截短。
三.日期和时间类型在处理日期和时间类型的值时,MySQL 带有 5 个不同的数据类型可供选择。
它们可以被分成简单的日期、时间类型,和混合日期、时间类型。
根据要求的精度,子类型在每个分类型中都可以使用,并且 MySQL 带有内置功能可以把多样化的输入格式变为一个标准格式。
类型大小(字节) 范围格式用途DATE 4 1000-01-01/9999-12-31 YYYY-MM-DD 日期值TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间YEAR 1 1901/2155 YYYY 年份值DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值TIMESTAMP 4 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳DATE、TIME 和 TEAR 类型MySQL 用 DATE 和 TEAR 类型存储简单的日期值,使用 TIME 类型存储时间值。
这些类型可以描述为字符串或不带分隔符的整数序列。
如果描述为字符串,DATE 类型的值应该使用连字号作为分隔符分开,而 TIME 类型的值应该使用冒号作为分隔符分开。
需要注意的是,没有冒号分隔符的 TIME 类型值,将会被 MySQL 理解为持续的时间,而不是时间戳。
MySQL 还对日期的年份中的两个数字的值,或是 SQL 语句中为 TEAR 类型输入的两个数字进行最大限度的通译。
因为所有 TEAR 类型的值必须用 4 个数字存储。
MySQL 试图将 2 个数字的年份转换为 4 个数字的值。
把在 00-69 范围内的值转换到2000-2069 范围内。
把 70-99 范围内的值转换到 1970-1979 之内。
如果 MySQL 自动转换后的值并不符合我们的需要,请输入 4 个数字表示的年份。
DATEYIME 和 TIMESTAMP 类型除了日期和时间数据类型,MySQL 还支持 DATEYIME 和 TIMESTAMP 这两种混合类型。
它们可以把日期和时间作为单个的值进行存储。
这两种类型通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用。
如果我们对 TIMESTAMP 类型的字段没有明确赋值,或是被赋与了 null 值。
MySQL 会自动使用系统当前的日期和时间来填充它。
复合类型MySQL 还支持两种复合数据类型 ENUM 和 SET,它们扩展了 SQL 规范。
虽然这些类型在技术上是字符串类型,但是可以被视为不同的数据类型。
一个 ENUM 类型只允许从一个集合中取得一个值;而 SET 类型允许从一个集合中取得任意多个值。
ENUM 类型ENUM 类型因为只允许在集合中取得一个值,有点类似于单选项。