MySql 数据类型

总览

Mysql支持的多种数据类型主要有:数值数据类型、日期/时间类型、字符串类型。

整数

int(11)

    在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度。
 这个11代表显示宽度,整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。
  int是整型,(11)是指显示字符的长度,但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示00000000001 ~~~00000000010,当字符的位数超过11,它也只显示11位,如果你没有加那个让它未满11位就前面加0的参数,它不会在前面加0
  声明整型数据列时,我们可以为它指定个显示宽度M(1~255),如INT(5),指定显示宽度为5个字符,如果没有给它指定显示宽度,MySQL会为它指定一个默认值。显示宽度只用于显示,并不能限制取值范围和占用空间,如:INT(3)会占用4个字节的存储空间,并且允许的最大值也不会是999,而是 INT整型所允许的最大值。

浮点数、定点数

:定点数以字符串形式存储,对精度要求高时使用decimal较好;尽量避免对浮点数进行减法和比较运算。 

长度和精度:数据类型(总长度,小数点长度)

时间、日期类型

字符串类型

blog-二进制大对象,用来存储可变数量的数据。

mysql日期和字符相互转换方法

date_format(date,'%Y-%m-%d %H:%i:%s')    -------------->oracle中的to_char();

str_to_date(date,'%Y-%m-%d %H:%i:%s')     -------------->oracle中的to_date();

%Y:代表4位的年份
%y:代表2为的年份
 
%m:代表月, 格式为(01……12)  
%c:代表月, 格式为(1……12)
 
%d:代表月份中的天数,格式为(00……31)  
%e:代表月份中的天数, 格式为(0……31) 
 
%H:代表小时,格式为(00……23)  
%k:代表 小时,格式为(0……23)  
%h: 代表小时,格式为(01……12)  
%I: 代表小时,格式为(01……12)  
%l :代表小时,格式为(1……12)
  
%i: 代表分钟, 格式为(00……59) 

%r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)  
%T:代表 时间,格式为24 小时(hh:mm:ss) 

%S:代表 秒,格式为(00……59)  

%s:代表 秒,格式为(00……59) 

mysql 取一条离当前时间最近的记录

# mysql写法
SELECT *, ABS(NOW() - startTime)  AS diffTime
FROM PolicyShuPrice
ORDER BY diffTime ASC

LIMIT 0, 1

###########

select  t.road_length, t.practitioner_num,  t.stations_num,
t.bridge_num, t.tunnel_num, date_format(t.index_time,'%Y-%m-%d %h:%i:%s')
from ix_road_basic_data  t
where t.index_time = (select max(index_time) from ix_road_basic_data)
limit 1

# oracle写法
SELECT * FROM (
    SELECT *, ABS(NOW() - startTime) AS diffTime
    FROM PolicyShuPrice
    ORDER BY diffTime ASC 

) C WHERE rownum=1

JSON数据类型

一文说透 MySQL JSON 数据类型(收藏) - 知乎

MYSQL类型与JAVA类型对应表

类型名称显示长度数据库类型JAVA类型JDBC类型索引(int)

varchar

L+NVARCHARjava.lang.String12

char

NCHARjava.lang.String1

blob

L+NBLOBjava.lang.byte[]-4

text

65535VARCHARjava.lang.String-1

bit

1BITjava.lang.Boolean-7

integer

4INTEGER UNSIGNEDjava.lang.Integer4

tinyint

3TINYINT UNSIGNEDjava.lang.Integer-6

smallint

5SMALLINT UNSIGNEDjava.lang.Integer5

mediumint

8MEDIUMINT UNSIGNEDjava.lang.Integer4

bigint

20BIGINT UNSIGNEDjava.math.Long-5

float

4+8FLOATjava.lang.Float7

double

22DOUBLEjava.lang.Double8

decimal

11DECIMALjava.math.BigDecimal3

boolean

1同TINYINT

id

11PK (INTEGER UNSIGNED)java.lang.Long4

date

10DATEjava.sql.Date91

time

8TIMEjava.sql.Time92

datetime

19DATETIMEjava.sql.Timestamp93

timestamp

19TIMESTAMPjava.sql.Timestamp93

year

4YEARjava.sql.Date91
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值