MySQL——常见数据类型

1、数值型

        整型

        小数:定点型、浮点型

2、字符型

        较短的文本:char、varchar

        较长的文本:text、blob(较长的二进制数据)

3、日期型

<选择数据类型原则:越简单越好,能保存数值的类型越小越好>

一、整型

分类:tinyint、smallint、mediumint、int / integer、bigint

MySQL——常见数据类型

特点:

        (1)如不设置有/无符号,默认为有符号。设置无符号需要添加 unsigned关键字

        (2)如果插入的数值超出了整型的范围,会报out of range,并插入临界值

        (3)如果不设置长度,会有默认的长度

                 长度代表显示的最大宽度,如果不够会用0在左边填充,但必须使用zerofill关键字搭配

                使用zerofill后,默认为无符号型。

1、设置无符号和有符号

CREATE TABLE tab_int(
    t1 INT,    #有符号
    t2 INT UNSIGNED   #无符号
);

MySQL——常见数据类型

 2、指定整型长度为显示的宽度,搭配zerofill关键字使用后,默认为无符号

CREATE TABLE tab_int(
    t1 INT(7) ZEROFILL,
    t2 INT(7) ZEROFILL
);

INSERT INTO tab_int VALUE(-123,123);

SELECT * FROM tab_int;

MySQL——常见数据类型

二、小数

1、浮点型

分类:float(M,D)、double(M,D)

2、定点型

分类:DEC(M,D) / DECIMAL(M,D)

MySQL——常见数据类型

 特点:

        (1)M:整数部位+小数部位

                D:小数部位

                如果超过范围,则插入临界值或四舍五入

        (2) M、D都可以省略

                如果是Decimal,则M默认为10,D默认为0

                如果是float和double,则会根据插入的数值的精度来决定精度

        (3)定点型的精确度相对较高,如果要求插入数值的精度较高,则优先使用

1、M和D测试

CREATE TABLE tab_float(
    f1 FLOAT(5,2),
    f2 DOUBLE(5,2),
    f3 DECIMAL(5,2)
);

INSERT INTO tab_float VALUES 
(123.456,123.456,123.456),
(123.4,123.4,123.4),
(1523.4,1523.4,1523.4);

SELECT * FROM tab_float;

MySQL——常见数据类型

#若省略M、D

 CREATE TABLE tab_float(
    f1 FLOAT,
    f2 DOUBLE,
    f3 DECIMAL
);

INSERT INTO tab_float VALUES (1523.4243,1523.444,1523.415);

SELECT * FROM tab_float;

MySQL——常见数据类型

三、字符型

 1、较短的文本

分类:char、varchar、enum(枚举)、set(集合) 、binary / varbinary(较短的二进制)

MySQL——常见数据类型

特点:

        (1)写法:char(M)、varchar(M),M为最大字符数

                char的M可省略,默认为1;varchar的M不可省略

        (2)char代表固定长度的字符,varchar代表可变长度的字符

        (3)char空间消耗较高,效率更高;varchar空间较节省,效率更低

eg1.枚举类型的使用

CREATE TABLE tab_char(
    c1 ENUM('a','b','c')
);

INSERT INTO tab_char VALUES 
('a'),('e'),('A'),('c');

SELECT * FROM tab_char;

MySQL——常见数据类型

eg2.集合类型的使用

CREATE TABLE tab_set(
    c1 set('a','b','c','d')
);

INSERT INTO tab_set VALUES 
('a,b'),('A,B,c'),('a,e'),('e,f');

SELECT * FROM tab_set;

MySQL——常见数据类型

   2、较长的文本

分类:text、blob(较长的二进制数据)

四、日期型

分类:date、datetime、timestamp、time、year

date只保存日期,time只保存时间,year只保存年

datetime保存日期+时间,timestamp保存日期+时间 

MySQL——常见数据类型

datetime和timestamp区别:

        (1)timestamp支持的时间范围较小

        (2)timestamp和实际时区有关,更能反映实际的日期,而datetime只能反映出插入时的当地时区

        (3)timestamp的属性受MySQL版本和SQLMode的影响

#显示时区

SHOW VARIABLES LIKE 'time_zone';

eg1.设置时区为东九区

CREATE TABLE tab_date(
    t1 DATETIME,
    t2 TIMESTAMP
);

INSERT INTO tab_date VALUES(NOW(),NOW());

SET time_zone='+9:00';

SHOW VARIABLES LIKE 'time_zone';

SELECT * FROM tab_date;
MySQL——常见数据类型

 

 

 

上一篇:MySQL学习--数据类型


下一篇:[Android Pro] activity-alias的使用