从头开始学MySQL--------数据类型(1)

网友投稿 491 2022-11-16

从头开始学MySQL--------数据类型(1)

从头开始学MySQL--------数据类型(1)

5.1.1  整数类型

整数类型  TINYINT  SMALLINT  MEDIUMINT   INT  BIGINT 。分别占12348字节。

INT(11)后面的数字11,表示的是这个数据能够显示的宽度。显示宽度只用于显示,不能限制取值范围与占用空间。

这里的宽度是指:如果插入的数据小于这个宽度,这个数值会由MySQL进行填充。

CREATE TABLE t_int( x INT , y BIGINT, z TINYINT )

5.1.2  浮点类型与定点数类型

浮点类型有两种:单精度浮点类型FLOAT,双精度浮点类型DOUBLE。它们的区别仅在存储范围不同。分别占4,8字节。

定点类型有一种:DECIMAL。用法与FLOAT、DOUBLE一样。只不过它的占位是 M+2 字节。

浮点类型与定点类型都可以使用 (M,N)表示。其中M成为精度,N成为标度。

M表示总长度,整数位+小数位。  N表示小数位。

插入的时候,按照保留小数位四舍五入。

CREATE TABLE t_fudian( x FLOAT(5,1), //显示长度为5,其中小数位占1位 y DOUBLE(5,2) //显示长度为5,其中小数位占2位);INSERT INTO t_fudian(x,y) VALUES(2.111,'2.4461'); //加不加引号都可以成功插入

5.1.3  日期类型 (简写形式略)

(1)首先要了解的是 NOW()函数,返回的是 'YYYY-MM-DD HH:MM:SS',能够适用于任何的时间类型的插入。它会被截取为适当的时间,比如插入到 YEAR类型,就插入当前的YYYY。如果插入到TIME类型,那么就插入到当前的 HH:MM:SS。        (2)若为DATETIME插入的只有DATE格式的数据,那么它的时间部分用 00:00:00补齐。其它道理也一样。

(1)YEAR的格式是 YYYY 。 范围是1901年到2155年 。超过这个时间报错。1个字节。支持数组与字符串插入。

CREATE TABLE t_year( id INT(11) PRIMARY KEY AUTO_INCREMENT, //一般自增的话要是一个primary key的一个 y YEAR )

不支持数字,必须要加引号。3字节。

CREATE TABLE t_time ( t TIME);INSERT INTO t_time(t) VALUES('102211'),('10:12:11')

向系统插入当前时间。  CURRENT_TIME、 NOW()  都能表示当前的时间。

INSERT INTO t_time(t) VALUES(CURRENT_TIME),(NOW());

(3)Date类型。年月日类型。3字节。

存储年月日。需要3个字节。格式为'YYYY-MM-DD' 或者 'YYYYMMDD'或YYYYMMDD。(注 year month day)

MySQL允许不严格的语法,任何标点符号都能作为日期部分之间的间隔符。如'1998.11.12'、'1996@05@19'

CURRENT_DATE、NOW()

CREATE TABLE t_date( id INT(11) PRIMARY KEY AUTO_INCREMENT, d DATE);INSERT INTO t_date(d) VALUES('1994-05-10'),('1991.12.12');INSERT INTO t_date(d) VALUES(CURRENT_DATE),(NOW());

(4)DATETIME。包含日期+当天时间 的类型。存储需要8个字节。占位最大的数据类型。跨时间段最广。

DATETIME的格式是  'YYYY-MM-DD HH:MM:SS' 或者是 'YYYYMMDDHHMMSS'或YYYYMMDDHHMMSS等

DATETIME时间类型在引号下,可以用任意分割!

CREATE TABLE t_datetime( dt DATETIME);INSERT INTO t_datetime(dt) VALUES('1996.05.19 12:12:12');//Date部分任意分隔符形式INSERT INTO t_datetime(dt) VALUES(19970224061844);//单纯数字形式INSERT INTO t_datetime(dt) VALUES('1996-05-19 12:12:12');//标准形式INSERT INTO t_datetime(dt) VALUES('1994-08-16 19*42*34');//MySQL支持的任意标点符号分割法INSERT INTO t_datetime(dt) VALUES(NOW());//插入当前时间和日期,用 NOW() 函数

(5)TIMESTAMP。显示的格式效果与DATETIME一样,但是范围没有它广。可以使用'任意分隔符'。这么说吧,越长的时间格式,它的要求越不严格。

INSERT INTO t_timestamp VALUES('19931122061245'),(19941122145136),('2018-06-15 12:08:14'),(NOW())

DATETIME与TIMESTAMP的区别        DATETIME格式的时间,按实际输入的数据格式。世界标准时间格式存储的。存储时,先把当地时区的时间换算成世界标准时间,取出的时候,再把世界标准时间换算成当地时区的时间。      当地时间  <=====>  世界标准时间

.

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:从头开始学MySQL-------视图
下一篇:从头开始学MySQL--------算术运算(3)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~