一.数据类型概念和分类

1.概念

2.分类

  数值型:
       整型
       小数:
           定点数
           浮点数
  字符型:
        段文本
        长文本

  日期型:

二.数值型

1.整形

  1. 取值的算法,我们用TINYINT 来举例说名,首先我们知道 1个字节 = 8位, 每个位里面可以存储1或0两种状态,一共有8个位,也就2的8次方就是256, 所以我们无符号最大的取值范围就是255, 我们把256个状态分成两份,一份存正数,一份存负数,就是我们有符合的 取值范围 -128 到 127,这里的0 是属于正数,所以正数是127。
    我们在用SMALLINT来计算一下,首先我们知道SMALLINT 占2个字节 = 16位, 每个位里面可以存储1或0两种状态,一共有16个位,也就2的16次方就是65536, 所以我们无符号最大的取值范围就是65535, 我们把65535个状态分成两份,一份存正数,一份存负数,就是我们有符合的 取值范围 -8388608 到 8388607,这里的0 是属于正数,所以正数是8388607。

  2. size 这里的size 并不表示的存储数据的长度,而是显示的长度在声明的时候 搭配 ZEROFILL关键字使用,表示不够长度的用0填充:

      CREATE TABLE stu(
               t1 INT(3) ZEROFILL    -- 创建一个int类型的一个字段,数据显示长度为3的,通过 ZEROFILL 关键字 长度不满足的用0填充。
            );
    
     INSERT INTO stu VALUES(
               57
           );
    

    int(3)显示结果为057

数据类型 占用字节 size默认长度 默认符号 取值范围
TINYINT(size) 1 4 默认是有符号,在声明类型时,通过关键字UNSIGNED更改为无符号的 带符号-128到127 ,无符号0到255。
SMALLINT(size) 2 6 默认是有符号,在声明类型时,通过关键字UNSIGNED更改为无符号的 带符号范围-32768到32767,无符号0到65535。
MEDIUMINT(size) 3 9 默认是有符号,在声明类型时,通过关键字UNSIGNED更改为无符号的 带符号范围-8388608到8388607,无符号的范围是0到16777215。
INT(size) 4 11 默认是有符号,在声明类型时,通过关键字UNSIGNED更改为无符号的 带符号范围-2147483648到2147483647,无符号的范围是0到4294967295。
BIGINT(size) 8 20 默认是有符号,在声明类型时,通过关键字UNSIGNED更改为无符号的 带符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615。

2.小数

  1. 在 m 参数中规定显示最大位数。在 d 参数中规定小数点后保留几位。
  2. 如果超出范围 去临界值
  3. DECIMAL 默认的 m,d值为10,0, 而 FLOAT,DOUBLE 默认没有限制,根据插入数据的 m ,d 来设置FLOAT,DOUBLE的精度。
数据类型 占用字节 描述
FLOAT(m,d) 4 单精度浮点型
DOUBLE(m,d) 8 双精度浮点型
DECIMAL(m,d) 3

设一个字段定义为FLOAT(5,2) ,如果插入一个数123.33333,实际数据库里存的是123.33,如果插入一个数123.33677,实际数据库里存的是123.34。

3. 字符串

  1. 固定长度:
    创建字段的时候就已经固定好长度。
  2. 可变长度:
    根据数据的长度去创建储存空间。
  3. M 是存储的字符长度
数据类型 描述
CHAR(M) 固定长度,最多255个字符
VARCHAR(M) 固定长度,最多65535个字符

4. 日期类型

  1. TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
数据类型 格式 取值范围
datetime 日期时间 '2008-12-2 22:06:44' 1000-01-01 00:00:00 -- 9999-12-31 23:59:59
timestamp 自动存储记录修改时间 19700101080001 -- 2038 年的某个时刻
date 日期型 '2008-12-2' 1000-01-01 -- 9999-12-31
time 时间型 '12:25:36' -838:59:59 -- 838:59:59
YEAR 年日期格式:YYYY 1901 -- 2155
 posted on 2020-12-13 17:19  风趣  阅读(140)  评论(0)    收藏  举报