从头开始学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 
)

        (2)TIME类型用于时间。格式为 HH:MM:SS   (注:hour  minute second) 。不支持数字,必须要加引号。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_DATENOW()  ,插入当前日期。   

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格式的时间,按实际输入的数据格式。

        TIMESTAMP格式的时间,是按照UTC世界标准时间格式存储的。存储时,先把当地时区的时间换算成世界标准时间,取出的时候,再把世界标准时间换算成当地时区的时间。      当地时间  <=====>  世界标准时间

阅读更多

         目录贴:从头开始学MySQL-------目录帖

 

 

 

.

 

 

 

 

posted @ 2022-07-17 12:15  小大宇  阅读(22)  评论(0编辑  收藏  举报