zoukankan      html  css  js  c++  java
  • mysql中的数据类型

    一、SQL中的数据类型分为三大类:数值型、字符串型、时间日期型。

      1.数值型分为整数型和小数型。

        ① 整数型又分为5种:

          tinyint   -- 迷你整型, 1字节,取值范围(无符号)0 ~ 255 或 (有符号)-128 ~ 127;

          smallint   -- 小整型, 2字节, 取值范围(无符号)0 ~ 65535 或(有符号)-32768 ~ 32767;

          mediumint -- 中等整型, 3字节, 取值范围(无符号)0 ~ 16777215 或(有符号)-8388608 ~ 8388607;

          int     -- 标准整型, 4字节

          bigint    -- 大整型, 8字节

           备注:可以使用 unsigned 设置无符号, 默认为有符号;

            可以使用 zerofill 设置当位数不够时是否用前导0进行填充;

            可以使用 tinyint(1) 做为bool类型使用        

             类型后面括号中的数字表示显示宽度,通常搭配zerofill一起使用, 当实际宽度 < 显示宽度时, 前面填充0以保证显示宽度。

        ② 小数型分为浮点型和定点型

          浮点型, 超出精度范围后, 会丢失精度(自动四舍五入)

              float  -- 单精度浮点型, 4字节, 精度范围 7 位左右

              double -- 双精度浮点型, 8字节, 精度范围 15 位左右

              使用方式:create table myf(
                    f1 float,    -- 小数点后的无效0全部舍去;
                    f2 float(10,2)    -- 总长度为10, 小数部分长度为2, 超出部分会四舍五入, 

                   )charset utf8;    整数部分长度为 10 - 2 = 8 位, 插入数据时不能超出, 但允许因系统四舍五入导致的超宽.

            定点型, 整数部分不会被四舍五入,但小数部分不保证。

              decimal  -- 可变长度, 大致是每9个数字采用4字节存储, 整数部分与小数部分分开计算

                    总长度最大值:65  小数部分最大值:30  默认 (10, 2) 

                    整数部分长度不能超过指定宽度, 包括因系统四舍五入导致的超宽也不允许.

                    小数部分超出长度会四舍五入。

    二、时间日期类型

      1. datatime  -- 格式YY-mm-dd HH:ii:ss  范围:1000 ~ 9999年, 有0值:0000-00-00 00:00:00

      2. data    -- datatime 中的data部分

      3. time    -- 时间(段)-时间 ~ +时间

      4. timestamp  -- 时间戳, 从1970年开始的datatime, 不能为空, 有默认值current_timestamp, 当所属条目有任何一项改动时都会自动更新到当前时间。

      5. year    -- 分为year(2)  1970 ~ 2069

                 year(4)   

    三、字符串类型

      分6种:char, varchar, text, blob, enum, set -- mysql记录中:如果有一个字段允许为空, 那么系统会自动从整个记录中保留一个字节来存储NULL,

                              如果想释放这个字节, 必须保证所有的字段都不允许为NULL。

      1. 定长字符串 char(L)  -- 创建时就需要指定好字符串的长度L, 并且不能改变。L的单位为字符, 长度为255.

      2. 变长字符串 varchar(L)  -- 创建时按指定长度分配空间, 但实际使用情况根据具体数据确定, L的理论长度为65535字符, 但会使用其中 1 ~ 2 个字节存储数据实际长度

                    但因为mysql规定, 任何一条记录的长度都不能超过65535字节, 所以varchar 永远不可能达到理论长度。

      3. 文本字符串, 数据量非常大时使用, 不占用记录长度, 但是会使用记录中的10个字节来存储数据的地址和长度。

             text  -- 存储文字

             blob  -- 存储二进制

      4. 枚举 enum(可能出现的元素列表)  -- 如:enum('红色','绿色','蓝色') , 使用时只能从定义的元素中选择。且只能选择一个.

                         数据库中实际存储的是按元素定义顺序编号的数字,从1开始。所以插入数据时,可以使用元素列表中的元素名字, 也可以使用对应的数字

      5. 集合 set(元素列表)  -- 使用时可以选择多个, 用逗号分隔。最大数量64

                    数据库中把每个元素都对应一个二进制位, 选中为1,  否则为0, 二进制顺序反转后的值存储到数据库中。

      

  • 相关阅读:
    HDU2473 Junk-Mail Filter 【可删除的并查集】
    NOI2001 食物链【扩展域并查集】*
    POJ1733 Parity game 【扩展域并查集】*
    Codeforces 9D How many trees? 【计数类DP】
    Codeforces 28C Bath Queue 【计数类DP】*
    Codeforces 280C Game on tree【概率DP】
    Codeforces 914H Ember and Storm's Tree Game 【DP】*
    Codeforces 1027E Inverse Coloring 【DP】
    BZOJ3673 可持久化并查集 by zky 【主席树】
    BZOJ4561 JLoi2016 圆的异或并 【扫描线】【set】*
  • 原文地址:https://www.cnblogs.com/pengyin/p/6366545.html
Copyright © 2011-2022 走看看