MySQL 数据类型  数据库  第1张
MariaDB [db1]> create table t1(id int)engine=innodb; # t1.frm  t1.ibd
MariaDB [db1]> create table t2(id int)engine=myisam; # t2.MYD  t2.MYI  t2.frm
MariaDB [db1]> create table t3(id int)engine=memory; # t3.frm
MariaDB [db1]> create table t4(id int)engine=blackhole; # t4.frm

# memory和blackhole二种储存模块仅有表结构,无数据
# memory,在重新启动mysql或是重新启动设备后,表内数据信息清除
# blackhole,往表内插进一切数据信息,都等同于丢进超级黑洞,表内始终不存纪录
储存模块

储存模块(默认设置InnoDB,此外掌握3种:memoryDB、blackhole和Myisam)决策了表的种类

而表内储放的数据信息还要有不一样的种类

mysql常见基本数据类型概述

#1. 数据:
    整形:tinyinit  int  bigint
    低:
        float :在十位数较为短的状况下不精确
        double :在十位数较为长的状况下不精确
            0.000001230123123123
            存成:0.000001230000

        decimal:(假如用低,则用强烈推荐应用decimal)
            精确
            內部基本原理是以字符串数组方式去存

#2. 字符串数组:
    char10):简单直接,消耗室内空间,存取速度快
        root存成root000000
    varchar:精确,节约室内空间,存取速度慢

    sql优化:创建表时,定长的种类向前放,拉长的往后面放
                    例如性別           例如详细地址或叙述信息内容

    >255字符,超了就把文件路径储放到数据库查询中。
            例如照片,视頻等找一个文件服务器,数据库查询中只存途径或url。



#3. 時间种类:
    最常见:datetime
  
YEAR
            YYYY(1901/2155
============year===========
MariaDB [db1]> create table t10(born_year year); #不管year特定哪种总宽,最终都默认设置是year(4)
MariaDB [db1]> insert into t10 values  
    -> (1900),
    -> (1901),
    -> (2155),
    -> (2156);
MariaDB [db1]> select * from t10;
 ----------- 
| born_year |
 ----------- 
|      0000 |
|      1901 |
|      2155 |
|      0000 |
 ----------- 
DATE 
YYYY-MM-DD(1000-01-01/9999-12-31)
TIME
HH:MM:SS('-838:59:59'/'838:59:59')
DATETIME
YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)
============date,time,datetime===========
MariaDB [db1]> create table t11(d date,t time,dt datetime);
MariaDB [db1]> desc t11;
 ------- ---------- ------ ----- --------- ------- 
| Field | Type     | Null | Key | Default | Extra |
 ------- ---------- ------ ----- --------- ------- 
| d     | date     | YES  |     | NULL    |       |
| t     | time     | YES  |     | NULL    |       |
| dt    | datetime | YES  |     | NULL    |       |
 ------- ---------- ------ ----- --------- ------- 

MariaDB [db1]> insert into t11 values(now(),now(),now());
MariaDB [db1]> select * from t11;
 ------------ ---------- --------------------- 
| d          | t        | dt                  |
 ------------ ---------- --------------------- 
| 2017-07-25 | 16:26:54 | 2017-07-25 16:26:54 |
 ------------ ---------- --------------------- 
TIMESTAMP
YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某日)
============timestamp===========
MariaDB [db1]> create table t12(time timestamp);
MariaDB [db1]> insert into t12 values();
MariaDB [db1]> insert into t12 values(null);
MariaDB [db1]> select * from t12;
 --------------------- 
| time                |
 --------------------- 
| 2017-07-25 16:29:17 |
| 2017-07-25 16:30:01 |
 --------------------- 

============看这里,看这里,看这里===========
1. 独立插进時间时,必须以字符串数组的方式,依照相匹配的文件格式插进
2. 插进年代时,尽可能应用4位值
3. 插进俩位年代时,<=69,以20开始,例如50,  結果2050      
                >=70,以19开始,例如71,結果1971
MariaDB [db1]> create table t12(y year);
MariaDB [db1]> insert into t12 values  
    -> (50),
    -> (71);
MariaDB [db1]> select * from t12;
 ------ 
| y    |
 ------ 
| 2050 |
| 1971 |
 ------