mysql

1.整数:

tinyint          1bit

smallint        2bit

mediumint   3bit

int                4bit

bigint           8bit

java中整数是byte,short,int,long, 分别是1,2,4,8  储存的时候可以对应起来-。-   mediumint感觉没什么用。。。

CREATE TABLE table1(
    num1 INT,             #有符号,支持负数, oracle注解可以用//,meysql不行,不过两个都可以用/* */
    num2 INT UNSIGNED     #无符号,只能插入正数
)

定义的时候的int(10) , 10代表的显示长度,int默认为11(因为最大值是个11位的数字)

2.浮点型

CREATE TABLE table2(
    num1 FLOAT,    #4字节
    num2 DOUBLE,   #8字节
    num3 DEC(5,3)  #整数+小数 5位,小数3位,可设置的最大范围和double一样
) 

3.字符型

CREATE TABLE table3(
    num1 CHAR(10),      #固定长度,相当于oracle中的varchar,括号里的数字是字符长度,默认为1
    num2 VARCHAR(10)    #可变长度,相当于oracle中的varchar2
) 

4.枚举

CREATE TABLE table4(
    sex ENUM ('','')   #enum里面只能是字符串
);

INSERT INTO table4 VALUES(''), (''), (''), (''), (''); #如果插入不是enum的值会报错,据说以前貌似会插入空值,网上说可以('男','女')这么插入,但是我试的时候不行,感觉版本变化蛮大的,还是尽量正规方法来吧

SELECT COUNT(*) FROM table4 WHERE sex = '';  
SELECT COUNT(*) FROM table4 WHERE sex = 1;       #下标从1开始,所以男是1,女是2,可以直接用下表取值。

5.日期

date 年月日

datetime 年-月-日 时:分:秒

timestamp 年月日时分秒

time 时:分:秒

year 年

CREATE TABLE table5(
    t1 TIMESTAMP,    # 修改时区后数值会跟着改变
    t2 DATETIME      # 数值不变
);

INSERT INTO table5 VALUES(NOW(),NOW());

SHOW VARIABLES LIKE 'time_zone'; #查询时区

SET time_zone = '+9:00';  #修改时区

SELECT NOW();  #t1变了,t2不变

SET time_zone = 'SYSTEM'; #把时区改回去
原文地址:https://www.cnblogs.com/clamp7724/p/11790493.html