zoukankan      html  css  js  c++  java
  • mysql快速上手之数据类型、字符集

    Mysql支持的数据类型

    数值类型

    • MySQL 支持所有标准 SQL 中的数值类型,其中包括严格数值类型(INTEGER、SMALLINT、 DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION),并在此基础上做了扩展。扩展后增加了 TINYINT、MEDIUMINT 和 BIGINT 这 3 种长度不同的整 型,并增加了 BIT 类型,用来存放位数据。

     注意:

    • 所有的整数类型都有一个可选属性 UNSIGNED(无符号),如果需要在字段里面保存非负数或者需要较大的上限值时,可以用此选项,例如,tinyint 有符号范围是-128~+127,而无符号范围是 0~255。
    • 整数类型还有一个属性:AUTO_INCREMENT。这个属性只用于整数类型。值一般从 1 开始,每行增加 1。一个表中最多只能有一个AUTO_INCREMENT列。应该定义为 NOT NULL,并定义为 PRIMARY KEY 或定义为 UNIQUE 键。
    • MySQL 小数分为两种方式:浮点数和定点数。浮点数包括 float(单精度) 和 double(双精度),而定点数则只有 decimal 一种表示。定点数在 MySQL 内部以字符串形式存放,比浮点数更精确,适合用来表示货币等精度高的数据。
    • 数据插入 bit 类型字段时,首先转换为二进制,如果位数允许,将成功插入;如果位数小于 实际定义的位数,则插入失败。

    字符串类型

    • MySQL 中提供了多种对字符数据的存储类型, MySQL 中提供了多种对字符数据的存储类型。

     注意:

    • CHAR 和 VARCHAR 很类似, 二者的主要区别在于存储方式的不同:CHAR 列的长度固定为创建表时声明的长度,长度可以为从 0~255 的任何值; 而 VARCHAR 列中的值为可变长字符串, 在检索的时候,CHAR 列删除了尾部的空格,而 VARCHAR 则保留这些空格。

    日期时间类型

     注意:

    • 如果要用来表示年月日,通常用 DATE 来表示。
    • 如果要用来表示年月日时分秒,通常用 DATETIME 表示。
    • 如果只用来表示时分秒,通常用 TIME 来表示。
    • 如果只是表示年份,可以用 YEAR 来表示,它比 DATE 占用更少的空间。
    • 如果需要经常插入或者更新日期为当前系统时间,则通常使用 TIMESTAMP 来表示。

    复合类型

    区别:
    • enum 只允许从一个集合中 取出一个值
    • set 允许从集合中 取出任意多个值

    总结示例

    create table if not exists numbers(
        id INT(11) UNSIGNED not null,
        username VARCHAR(50) not null,
        content LONGTEXT not null,
        create_time datetime not null,
        sex TINYINT UNSIGNED not null DEFAULT 1,
        age TINYINT DEFAULT 18
    )ENGINE=INNODB DEFAULT CHARSET=utf8;
    
    create table if not exists nums(
        id INT(11)  not null,
        username VARCHAR(50) not null,
        content LONGTEXT not null,
        create_time datetime not null,
        sex TINYINT UNSIGNED not null DEFAULT 1,
        age TINYINT zerofill
    )ENGINE=INNODB DEFAULT CHARSET=utf8;
    
    zerofill # 表示填充0
    UNSIGNED # 不能出现负数
    default # 设置默认值
    not null # 表示不为空

    字符集

  • 相关阅读:
    Linq 中 表连接查询
    Html Div 拖拽
    持续集成:TestNG中case之间的关系
    测试技术培训:如何测试磁盘写的速度
    POPTEST 测试开发 免费培训课程报名
    接上文 下面是一段示例代码
    老李分享:android手机测试之适配(1)
    (转)POPTEST创始人李爱然:谢谢,帮助我的朋友!!!!
    性能调优之SQL优化
    大数据测试之Hadoop的基本概念
  • 原文地址:https://www.cnblogs.com/wuzc/p/12199380.html
Copyright © 2011-2022 走看看