zoukankan      html  css  js  c++  java
  • Mysql-6-数据类型和运算符

    1.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等

    (4)二进制类型:包括bit、binary、varbinary、tinyblob、blob、mediumblob和longblob。

    2.整数类型

    类型名称

    说明

    存储类型

    tinytin

    很小的整数

    1个字节

    smallint

    小的整数

    2个字节

    mediumint

    中等大小的整数

    3个字节

    int

    普通大小的整数

    4个字节

    bigint

    大整数

    8个字节

    3.浮点数类型和定点数类型(表示小数)

    类型名称

    说明

    存储需求

    float

    单精度浮点数

    4个字节

    double

    双精度浮点数

    8个字节

    decimal

    压缩的“严格”定点数

    M+2个字节

    decimal不同于floatdouble,其是以字符串存储的。

    例:mysql> create table ex2(a float(4,1),b double(4,1),c decimal(4,1));
    mysql> insert into ex2 values(4.23,4.26,4.234);
    mysql> select * from ex2;
    +------+------+------+
    | a    | b    | c    |
    +------+------+------+
    |  4.2 |  4.3 |  4.2 |
    +------+------+------+
    1 row in set (0.02 sec)
    M成为精度:表示总共的位数;D成为标度:表示小数的位数。

    4.日期与时间类型

    类型名称

    日期格式

    日期范围

    存储需求

    year

    yyyy

    1901-2155

    1个字节

    time

    hh:mm:ss

    -838:59:59

    3个字节

    date

    yyyy-mm-dd

    3个字节

    datetime

    yyyy-mm-dd hh:mm:ss

    8个字节

    timestamp

    yyyy-mm-dd hh:mm:ss

    4个字节

    insert into ex4 values (now());表示现在的时间。

    5.字符串类型

    类型名称

    说明

    存储需求

    char

    固定长度非二进制字符串

    M字节,1<=m<=255

    varchar

    变长非二进制字符串

    L+1字节,在此L<=M1<=m<=255

    tinytext

    非常小的非二进制字符串

    L+1字节,在此L<28

    text

    小的非二进制字符串

    L+2字节L<28

    mediumtext

    longtext

    longtext

    枚举类型,只能有一个枚举字符串值

    12个字节

    set

    一个集合,字符串对象可以有零个或多个

     

    6.二进制类型

    类型名称

    说明

    bit

    位字段类型

    binary

    固定长度的二进制字符集

    varbinary

    可变长度的二进制字符串

    tinyblob

    非常小的blob

    blob

    blob

    mediumblob

    中等大小的blob

    longblob

    非常大的blob

    7.如何选择数据类型

    1)整数和浮点数

    如果插入的数据不需要小数部分则用整数类型存储数据如果需要小数部分则使用浮点数类型

    2)浮点数和定点数

    浮点数floatdouble与定点型decimal的不同是在长度固定的情况下浮点型能表示的范围更大对于精确度要求比较高时要使用定点型decimal来存储

    一定要注意如果进行数值比较时最好使用定点型decimal。

    3)日期和时间类型

    a.根据实际需要选择能够满足应用的最小存储的日期类型。

    b.如果要记录年月日时分秒,并且记录的年代久远,最好使用datetime

    c.如果记录的日期需要让不同时区的用户使用使用timestamp

    4charvarchar

    char属于固定长度的字符串,而varchar属于可变长度的字符类型。

    5enumset

    enum只能取单值它的数据列表时一个枚举类型。set可以取多个值都是以字符串形式出现的但在mysql内部实际是以数值索引的形式存储它们

    6blobtext

    一般保存少量字符串的时候可以选择char或者varchar而在保存大文件时通常选择使用text或者blob差别:blob能用来保存二进制数据如照片音频信息等text只能保存字符数据如一篇文章或日记

    8.常见运算符

    运算符

    作用

    +

    加法运算

    -

    减法运算

    *

    乘法运算

    /

    除法运算,返回商

    %

    求余运算,返回余数

    mysql> insert into tmp14 value(99);
    mysql> select num,num+1 from tmp14;
    +------+-------+
    | num  | num+1 |
    +------+-------+
    |   99 |   100 |
    +------+-------+

    9.比较运算符

    运算符

    作用

    =

    等于

    <=>

    安全等于(可以比较null

    <>(!=)

    不等于

    <=

    小于等于

    =>

    大于等于

    <

    小于

    >

    大于

    is null

    判断一个值是否为null

    is not null

    判断一个值是否不为null

    least

    在有两个或多个参数时,返回最小值

    createst

    当有两个或多个参数时,返回最大值

    between and

    判断一个值是否落在两个值之间

    isnull

    is null相同

    in

    判断一个值是in列表中的任意一值

    not in

    判断一个值不是in列表中的任意一值

    like

    通配符匹配

    regexp

    正则表达式匹配

    例子:

    mysql> select 1=2,3=3,4>5,9>2;
    +-----+-----+-----+-----+
    | 1=2 | 3=3 | 4>5 | 9>2 |
    +-----+-----+-----+-----+
    |   0 |   1 |   0 |   1 |
    +-----+-----+-----+-----+
    1 row in set (0.00 sec)

    10.逻辑运算

    运算符

    作用

    not或者

    逻辑非

    and或者&&

    逻辑与

    or或者||

    逻辑或

    xor

    逻辑异或

    例:mysql> select not 2,not (2-2);
    +-------+-----------+
    | not 2 | not (2-2) |
    +-------+-----------+
    |     0 |         1 |
    +-------+-----------+

    11.位运算符:用来对二进制字节中的位进行测试、位移或者测试处理。

    运算符

    作用

    |

    位或

    &

    位与

    ^

    位异或

    <<

    位左移

    >>

    位右移

    ~

    位取反,反转所有比特

    例:mysql> select 10|15,9|4|2;
    +-------+-------+
    | 10|15 | 9|4|2 |
    +-------+-------+
    |    15 |    15 |
    +-------+-------+
    1 row in set (0.00 sec)

    12.运算符的优先级:决定了不同运算符在表达式中计算的先后顺序。

    优先级

    运算符

    最低

    =赋值运算

    ||or

    xor

    &&and

    not

    between and,case,when,then,else

    =比较运算,<=>,,,,,is like regexp in

    |

    &

    <<,>>

    -,+

    *,/,%

    ^

    ~

    最高

  • 相关阅读:
    Laravel学习之旅(一)
    telnet模拟邮件发送
    学习CodeIgniter框架之旅(二)继承自定义类
    学习CodeIgniter框架之旅(一)自定义模板目录
    MySQL主从复制实现
    coreseek增量索引
    锁(MySQL篇)—之MyISAM表锁

    php文件锁
    进程与线程
  • 原文地址:https://www.cnblogs.com/caicairui/p/7295446.html
Copyright © 2011-2022 走看看