zoukankan      html  css  js  c++  java
  • MYSQL数据库——mysql的数据类型和运算符

    一.数据类型和运算符

      数据库表是由多列字段构成,每一个字段都是表的一个属性,每一列都指定了不用的数据类型。指定了数据类型之后,也就决定了向字段内插入的数据的内容。例如,插入的是数字的时候,既可以将它们存储为整数类型,也可以存储为字符串类型。不同的数据类型也决定了 mysql 在存储他们的时候使用的方式,以及在使用他们的时候选择什么运算符号进行运算。 

    二.数据类型

      mysql支持多种数据类型,主要有:数值类型、日期时间类型、字符串类型。

      (1)数值数据类型:包括 整数类型的 (TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT),浮点小数类型的 (FLOAT、DOUBLE),定点小数类型的(DECIMAL)。

      (2)时间日期类型:包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。

      (3)字符串类型:包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SET等。字符串类又分为文本字符串和二进制字符串。

    1.整数类型

      整数类型主要是用来存储数字的。不同类型的数值数据类型,提供不同的取值范围,可以存储的值得范围越大,其所需要的存储空间越大。每个数据类型后面的括号内的数字表示可以显示的数字的宽度,显示宽度只用于显示,不能限制取值范围和占用空间。

      整型:

          

      浮点型:FLOAT为单精度浮点型,DOUBLE为双精度浮点型。浮点型可以用(m,n)表示,m表示精度(可以一共保存几位),n表示精度(保留小数点后几位)

          

       定点类型

    2.日期与时间类型

          

      (1).YEAR

      YEAR类型是一个单字节类型,表示年,在存储时只需要一个字节,定义YEAR类型的几种格式:

      (1)以4位字符串或者4位数字格式表示 YEAR。输入的格式为 YYYY 或者 ‘YYYY’。例如:输入‘2010’或2010,插入的数据均为2010.

      (2)以2位字符串表示YEAR。输入的格式为‘YY’。范围是 ‘00’~‘99’,00~69表示2000~2069,70~99表示1970~1999。例如:输入‘0’ 和‘00’的效果是一样的,都输出的是2000。

      (3)以2位数字格式表示YEAR。输入的格式为YY。范围是1~99,1~69表示2001~2069,70~99表示1970~1999。输入0则输出的是0000,而不是2000。非法YEAR值会被转换为0000。

      (2).TIME

      TIME类型用在只需要时间信息的值,存储的时候需要3个字节。格式为“HH-MM-SS”,HH表示小时,MM表示分钟,SS表示秒。TIME类型不仅可以用于表示一天的时间,还可以表示过去的几件或者两个事件之间的时间的间隔。定义DATE类型的几种格式:

      (1)“D HH:MM:SS”格式的字符串。D表示日,天,可以取0~34之间的值。在插入数据时,D被转化成小时保存。即D*24+HH。

      (2)“HHMMSS”格式的、没有间隔符的字符串或者HHMMSS格式的数值。比如‘101112’表示‘10:11:12’,但是‘109710’就是不合法的,将会被存储为00:00:00

      注意:如果没有间隔符并且时、分、秒没有全部填入的时候(如,1112),那么mysql解释时,就会假定最右面的是秒。然后依次读取。

      (3).DATE

      DATE类型用在仅需要日期值,不需要时间部分的值。存储的时候需要3个字节,格式为“YYYY-MM-DD”,YYYY表示年,MM表示月,DD表示日。定义DATE类型的几种格式:

      (1)以‘YYYYMMDD’或者‘YYYY-MM-DD’格式的字符串表示日期。

      (2)以‘YY-MM-DD’或者‘YYMMDD’格式的字符串类型表示日期。

      (3)以YYMMDD或者YY-MM-DD格式的数字类型表示日期。

      (4)利用 CURRENT_DATE 或者 NOW(),插入当前的系统的时间。

      (4).DATETIME

       DATETIME类型用在需要同时包含日期和时间的信息的值,存储的时候需要8个字节,格式为‘YYYY-MM-DD HH:MM:SS’。定义DATETIME类型的几种格式:

      (1)以 ‘YYYY-MM-DD HH:MM:SS’ 或者 ‘YYYYMMDDHHMMSS’ 字符串格式表示的值。

      (2)以 ‘YY-MM-DD HH:MM:SS’ 或者 ‘YYMMDDHHMMSS’ 字符串格式表示的值。

      (3)以 YYYYMMDDHHMMSS 或者 YYMMDDHHMMSS 数字格式表示的值。

      (5).TIMESTAMP

      TIMESTAMP类型和DATETIME类型显示格式相同。两者的不同是:存储的字节数不同(TIMESTAMP需要4个字节,DATETIME需要8个字节),存储的范围不同。还有一个最大的区别在于,DATETIME在存储日期时间的数据时,按照实际输入的格式存储,即输入什么就存储什么,与时区无关。TIMESTAMP类型与时区有关,存储是以UTC格式保存,存储时对当前时区进行转换,检索时再转换回当时的时区,不同的时区显示的时间是不同的。

          

          

          

          

          

          

    3.字符串类型

      字符串类型是用来存储字符串数据的,除了可以存储字符串数据之外,还可以存储其他的数据,比如说图片和声音的二进制数据。MySQL提供了两类字符型数据:文本字符串和二进制字符串。

      文本字符串类型:

      

      

      二进制字符串类型

    三.常见的运算符

      1.算术运算符:+、-、*、/、DIV、%(取余)

      注意:除法运算,当除数为0的时候,输出的结果为NULL。取余运算的时候,除数为0的时候,最后的结果也是NULL。

      2.比较运算符:>、<、=、>=、<=、!=、IN、BETWEEN AND、IS NULL等

      注意:=运算符,当等号一边或者两边都为NULL的时候,输出的结果为NULL。<=>安全等于运算符,当有一个值为NULL时,返回的值为0;当两边的值都为NULL的时候,返回的结果是1。IN 运算符,当数值为NULL时,返回为NULL;当语法中含有NULL并且前面的数值不能匹配的时候,返回NULL。LEAST运算符,返回最小的值,当里面含有NULL的时候,返回NULL。GREATEST和LEAST一样

      3.逻辑运算符:运算符的结果均为1或者0。逻辑与(&&、AND),逻辑或(||,OR),逻辑非(!,NOT),逻辑异或(XOR)

      注意:注意运算符的优先级别。AND运算符,当AND两边有一个为NULL并且另一个为非零数的时候,返回为NULL。0 AND NULL,返回的是0。OR运算符,当OR两边为 0 OR NULL时,返回的是NULL。

      4.位运算符:按照二进制位进行的运算,包括位与&,位或|,位非~,位异或^,左移<<,右移>>

    四.运算符的优先级

      优先级   运算符
      (最高)     !
            -(负号),~(按位取反)
            ^(按位异或)
            *,/(DIV),%(MOD)
            +,-
            >>,<<
            &
            |
            =(比较运算),<=>,<,<=,>,>=,!=,<>,IN,IS NULL,LIKE,REGEXP
            BETWEEN AND,CASE,WHEN,THEN,ELSE
            NOT
            &&,AND
            XOR
            ||,OR
      (最低)    =(赋值运算),:=

  • 相关阅读:
    jQuery(2)
    jQuery(1)
    underscore.js
    面向对象复习
    1.14函数复习
    面向对象(3)继承
    10.18
    1017
    js笔记二
    js笔记一
  • 原文地址:https://www.cnblogs.com/wf-aiyouwei/p/10995885.html
Copyright © 2011-2022 走看看