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




    一:MySql 数据类型介绍


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

    •   数值类型:    整数类型:  tinyint 、 smallint、mediumint、int 、 bigint

                                  浮点小数数据类型: float   double 

                                 定点小数类型: decimal

    •   日期/时间类型: year 、time、date、datetime、timestamp
    •   字符串类型: char、varchar、binary、varbinary、blob 、 text、enum 、set  。字符串又分为 文本类型字符串和二进制字符串。




    1:整数类型


                    image


    --【例5.1】创建表tmp1,其中字段x、y、z、m、n数据类型依次为TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,SQL语句如下:
    mysql> CREATE TABLE tmp1 ( x TINYINT,  y SMALLINT,  z MEDIUMINT,  m INT,  n BIGINT );
    ERROR 2006 (HY000): MySQL server has gone away
    No connection. Trying to reconnect...
    Connection id:    15
    Current database: test_db
    
    Query OK, 0 rows affected (1.23 sec)
    
    mysql> DESC tmp1;
    +-------+-----------+------+-----+---------+-------+
    | Field | Type      | Null | Key | Default | Extra |
    +-------+-----------+------+-----+---------+-------+
    | x     | tinyint   | YES  |     | NULL    |       |
    | y     | smallint  | YES  |     | NULL    |       |
    | z     | mediumint | YES  |     | NULL    |       |
    | m     | int       | YES  |     | NULL    |       |
    | n     | bigint    | YES  |     | NULL    |       |
    +-------+-----------+------+-----+---------+-------+
    5 rows in set (0.01 sec)
    
    mysql>
    


    2:浮点数类型和定点数类型

    image


    ---【例5.2】创建表tmp2,其中字段x、y、z数据类型依次为FLOAT(5,1)、DOUBLE(5,1)和DECIMAL(5,1),向表中插入数据5.12、5.15和5.123,SQL语句如下:
    mysql> CREATE TABLE tmp2 ( x FLOAT(5,1),  y DOUBLE(5,1),  z DECIMAL(5,1) );
    Query OK, 0 rows affected, 2 warnings (0.33 sec)
    --向表中插入数据:
    mysql> INSERT INTO tmp2 VALUES(5.12, 5.15, 5.123);
    Query OK, 1 row affected, 1 warning (0.41 sec)
    
    mysql> SHOW WARNINGS;
    +-------+------+----------------------------------------+
    | Level | Code | Message                                |
    +-------+------+----------------------------------------+
    | Note  | 1265 | Data truncated for column 'z' at row 1 |
    +-------+------+----------------------------------------+
    1 row in set (0.00 sec)
    
    mysql>
    
    mysql> select *  from tmp2;
    +------+------+------+
    | x    | y    | z    |
    +------+------+------+
    |  5.1 |  5.2 |  5.1 |
    +------+------+------+
    1 row in set (0.03 sec)
    


    3:日期与时间类型



    image


    3-1:year 

    YEAR类型是一个单字节类型,用于表示年,在存储时只需要1字节。可以使用各种格式指定YEAR值,如下所示:
    (1)以4位字符串或者4位数字格式表示的YEAR,范围为“1901’~‘2155'。输入格式为“YYYY'或者YYYY。例如,输入‘2010’ 或2010,插入到数据库的值均为2010。
    (2)以2位字符串格式表示的YEAR,范围为‘00’到‘99’。‘00’~‘69’和70 ~‘99’范围的值分别被转换为2000~ 2069和1970~1999范围的YEAR值。‘0'与00°的相同。插入超过取值范围的值将被转换为2000。
    (3)以2位数字表示的YEAR,范围为1~99。1~69和70~ 99范围的值分别被转换为2001~2069和1970-1999范围的YEAR值。注意:在这里0值将被转换为0000而不是2000。

    提示:两位整数范围与两位字符串范围稍有不同。例如:插入2000年,读者可能会使用数字格式的0表示YEAR,实际上,插入数据库的值为000,而不是所希望的2000.只有使用字符串格式的"'或'00',才可以被正确地解释为2000。非法YEAR值将被转换为0000
    --【例5.3】创建数据表tmp3,定义数据类型为YEAR的字段y,向表中插入值2010,’2010’,’2166’,SQL语句如下: 首先创建表tmp3:
    mysql> CREATE TABLE tmp3(  y YEAR );
    Query OK, 0 rows affected (0.23 sec)
    --向表中插入数据:
    mysql> INSERT INTO tmp3 values(2010),('2010');
    Query OK, 2 rows affected (0.03 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    --再次向表中插入数据:
    mysql> INSERT INTO tmp3 values ('2166');
    ERROR 1264 (22003): Out of range value for column 'y' at row 1
    mysql> SHOW WARNINGS;
    +-------+------+--------------------------------------------+
    | Level | Code | Message                                    |
    +-------+------+--------------------------------------------+
    | Error | 1264 | Out of range value for column 'y' at row 1 |
    +-------+------+--------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT * FROM tmp3;
    +------+
    | y    |
    +------+
    | 2010 |
    | 2010 |
    +------+
    2 rows in set (0.00 sec)
    --【例5.4】向tmp3表中y字段插入2位字符串表示的YEAR值,分别为’0’、’00’、’77’和’10’,SQL语句如下:
    mysql>
    ---首先删除表中的数据:
    mysql> DELETE FROM tmp3;
    Query OK, 2 rows affected (0.10 sec)
    ---向表中插入数据:
    mysql> INSERT INTO tmp3 values('0'),('00'),('77'),('10');
    Query OK, 4 rows affected (0.03 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    --查看结果:
    mysql> SELECT * FROM tmp3;
    +------+
    | y    |
    +------+
    | 2000 |
    | 2000 |
    | 1977 |
    | 2010 |
    +------+
    4 rows in set (0.00 sec)
    
    mysql>
    
    ---【例5.5】向tmp3表中y字段插入2位数字表示表示的YEAR值,分别为0、78和11,SQL语句如下:
    ---首先删除表中的数据:
    
    mysql> DELETE FROM tmp3;
    Query OK, 4 rows affected (0.00 sec)
    ----向表中插入数据:
    mysql> INSERT INTO tmp3 values(0),(78),(11);
    Query OK, 3 rows affected (0.00 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    ----查看结果:
    mysql> SELECT * FROM tmp3;
    +------+
    | y    |
    +------+
    | 0000 |
    | 1978 |
    | 2011 |
    +------+
    3 rows in set (0.00 sec)
    
    mysql>
    
    
    
    







  • 相关阅读:
    Zend Framework 2.1.5 中根据服务器的环境配置调用数据库等的不同配置
    在基于 Eclipse 的 IDE 中安装和使用 Emmet(ZenCoding)
    【翻译】Emmet(Zen Coding)官方文档 之六 自定义 Emmet
    【翻译】Emmet(Zen Coding)官方文档 之二 缩写
    【翻译】Emmet(Zen Coding)官方文档 之七 一览表
    【翻译】Emmet(Zen Coding)官方文档 之三 CSS 缩写
    【翻译】Emmet(Zen Coding)官方文档 之四 动作
    【翻译】Emmet(Zen Coding)官方文档 之一 web 编程的必备工具
    Zend Framework 2 时区设置警告问题的解决
    【翻译】Emmet (Zen Coding) 元素类型
  • 原文地址:https://www.cnblogs.com/ios9/p/13406479.html
Copyright © 2011-2022 走看看