zoukankan      html  css  js  c++  java
  • 六、数据类型介绍

    介绍

    常见数据类型

    数值型

    • 整形

    • 小数

    • 定点数

    • 浮点数

    字符型

    • 较短的文本

      • char
      • varchar
    • 较长的文本

      • text
      • blob(较长的二进制数据)

    日期型

    数值型-整型

    整数类型 字节 范围
    Tinyint 1 有符号:-128127无符号:0255
    Smallint 2 有符号:-3276832767无符号:065535
    Mediumint 3 有符号:-83886088388607无符号:01677215
    Int、Integer 4 有符号:-21474836482147483647无符号:04294967295
    Bigint 8 有符号:-92233720368547758089223372036854775807无符号:018446744073709551615

    特点

    1. 如果不设置长度,会有默认长度,长度代表了显示的最大宽度,如果不够用0在左边填充,但必须搭配 zerofill 使用,只用了 zerofill ,默认会修改为无符号
    2. 如果插入的数值超出了整型的范围,会报 out of range异常,并插入临界值
    3. 不设置无符号或有符号,默认是有符号,设置无符号关键字:unsigned

    术语解释

    整型中的长度代表的是插入数据的宽度,而不是通俗理解的数据位数的限制。

    举例:

    ​ create table demo(id int(2)); 这里的 id 的长度为2,意思不是id最大到 99 ,而是 id

    的宽度 为 2,满足正常显示,不满足2为会在前面补“0”,为了体现这一效果,必须加

    zerofill 关键字,如:create table demo(id int(2) zerofill); 注意,加了此关键字,默认该

    字段就改为无符号的。

    操作如图:
    在这里插入图片描述
    如不加 zerofill 关键字:
    在这里插入图片描述

    数值型-小数

    浮点数 字节 范围
    float(M, D) 4 ±1.75494351E-38~±3.402823466E+38
    double(M, D) 8 ±2.2250738585072014E-308~±1.7976931348623157E+308
    定点数 字节 范围
    DEC(M, D)DECIMAL(M, D) M+2 最大取值范围与 double 相同,给定 decimal 的有效取值范围由 M 和 D 决定

    特点

    1. M:代表的整数部位+小数部位。D:代表的是小数部位,如果超过范围,则插入临界值
    2. M和D都可以省略,如果类型是 decimal ,则 M 默认是10,D默认是0,如果是 float 或 double,则会根据插入的数值的精度,来决定精度
    3. 定点型的精度度较高,如果要求插入的数值的精度较高(如:货币运算等)则考虑使用

    浮点型

    1、float

    2、double

    3、decimal

    字符型

    较短的文本

    字符串类型 最多字符数 写法 M的意思 特点 描述及存储需求 效率
    char(M) M char(M) 最大的字符数,可省略,默认为 1 固定长度的字符,较浪费空间。 M为0~255之间的整数 较高
    varchar(M) M varchar(M) 最大的字符数,长度不可省略 可变长度的字符,较节约空间。 M为0~65535之间的整数 较低

    除了char、varchar的文本类型:

    1. binary、varbinary类型,类似于char和varchar,不同的是它们包含二进制字符串而不包含非二进制字符串。
    2. Enum类型,又称为枚举类型,要求插入的值必须是列表中指定的值之一。
    3. Set类型,和Enum类型类似,里面可以保存0~64个成员。和 Enum 类型最大的区别是:Set类型一次可以选取多个成员,而 Enum 只能选一个根据成员个数不同,存储所占字节也不同

    Set类型所占字节表:

    成员数 字节数
    1~8 1
    9~16 2
    17~24 3
    25~32 4
    33~64 8

    较长的文本

    1、text

    系统中提供的四种text:

    1. Tinytext:系统使用一个字节来保存,实际能够存储的数据为:2 ^ 8 + 1
    2. Text:使用两个字节保存,实际存储为:2 ^ 16 + 2
    3. Mediumtext:使用三个字节保存,实际存储为:2 ^ 24 + 3
    4. Longtext:使用四个字节保存,实际存储为:2 ^ 32 + 4

    2、blob(保存较大的二进制)

    存储二进制文本(图片,文件),一般都不会使用blob来存储文件本身,通常是使

    用一个链接来指向对应的文件本身。

    日期型

    日期和时间类型 字节 最小值 最大值
    date 4 1000-01-01 9999-12-31
    datetime 8 1000-01-01 00:00:00 9999-12-31 23:59:59
    timestamp 4 19700101080001 2038年的某个时刻
    time 3 -838:59:59 838:59:59
    year 1 1904 2155

    datetime 和 timestamp的区别

    1. Timestamp支持的时间范围较小,取值范围 197001010800012038年的某个时刻,Datetime的取值范围:1000-01-019999-12-31
    2. timestamp和实际时区有关,更能反映实际的日期,而datetime则只能反映出插入时的当地时区
    3. timestamp的属性受Mysql版本和SqlMode(Mysql的环境变量)的影响很大。
  • 相关阅读:
    python之----------字符编码具体原理
    python ---------函数
    python爬虫
    python str 与repr区别
    python 正则表达式
    python 正则表达式里使用 split()方法
    python 基础介绍
    python 数据类型--列表
    python 字符串操作
    django(1.6)操作自带的数据库
  • 原文地址:https://www.cnblogs.com/yliucnblogs/p/11450726.html
Copyright © 2011-2022 走看看