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
      (最低)    =(赋值运算),:=

  • 相关阅读:
    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结
    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
    jQuery UI组件库Kendo UI使用技巧小分享
    Kendo UI ListView模板功能,让Web开发更轻松
    UI组件套包DevExpress ASP.NET Core v20.2新版亮点:全新的查询生成器
    Devexpress WinForms最新版开发.NET环境配置Visual Studo和SQL Server对应版本
    全新的桌面应用数据可视化呈现方式,Sankey Diagram控件你了解多少?
    java中的递归方法
    连接数据库查询 将查询结果写入exce文件中
    java连接mysql数据查询数据
  • 原文地址:https://www.cnblogs.com/wf-aiyouwei/p/10995885.html
Copyright © 2011-2022 走看看