增广遗贤

MySQL中那些颠三倒四的事

写在最前

当初学习SQL语言,像八戒吞人生果,不知SQL语言何味?一些关键字段在应用的过程中常常张冠李戴 ,经过一段的细嚼慢咽,品味出了一些劲道.先将其整理一番,以免日后再三(事(四)不过三,学习、练习已犯其二)犯事。

那些颠三倒四的事

  • CHANGE 和 MODIFY

    • CHANGE字段 : 修改字段名,也可用于修改数据类型,修改数据类型时,将新旧字段设置成相同的名称;

    • MODIFY : 修改数据名称.

  • 浮点型(FLOAT 和 DOUBLE)和定点型(DECIMAL)

    • 在长度一样的情况下,FLOAT和DOUBLE型数据相对于定点型数据可以表示更大范围的数据范围,但对两个浮点型数据做加减运算时,容易出现精度损失的问题;

    • 在对精度要求较高的情况(货币和科学计数)下,宜使用定点数据类型.

  • 两位整数范围和字符串范围在YEAR字段中的应用.

    • 数字0表YEAR字段,实际上插入的是值为: 0000 ;

    • 字符串格式的”0”或者”00”表YEAR字段,实际上插入的值是 : 2000.

  • 在MySQL中”:”在TIME字段列的作用

    • 无”:”,MySQL解释最右边的两个数过去的时间,比如插入字段TIME值“1212”,MySQL解释为 : 00:12:12;

    • 带”:”,MySQL解释为当天的时间,举个栗子,插入字段TIME值“12:12”,MySQL解释为 : 12:12:00.

  • DATETIME 和 TIMESTAMP

    • DATATIME存储日期按照实际输入的格式进行存储,与时区无关;

    • TIMESTAMP按照UTC(世界标准时间)格式进行存储,存储对当前时区进行转换,检索时再返回当前时区.

  • ROUND()和TRUNCATE()

    • ROUND()函数在截取值的时候进行四舍五入;

    • TRUNCATE()函数对数值进行直接截取.

  • HAVING和WHERE

    • HAVING在数据分组后进行过滤分组;

    • WHERE在分组之前用来选择记录.

  • UNION和UNION ALL

    • UNION合并查询结果时删除重复行;

    • UNION ALL合并查询结果,保留所有的结果.

  • 正则表达式中的”+”和”*”

    • “+” 至少匹配一个元素;

    • “*” 可以匹配0个元素.

更新中…