MySQL之数据类型
-
数值类型
无符号:unsigned;
-bit(M):位;M指定位数,默认值是1,范围1~64;
-tinyint:1字节;带符号的范围-128 ~ 127;无符号范围0~255;默认有符号;
-bool:使用0和1表示真和假;
-smallint:2字节;带符号范围是-2^15 ~ 2^15 -1;无符号范围0~(2^16-1);
-mediumint:3字节;带符号范围是-2^15 ~ 2^15 -1;无符号范围0~(2^16-1);
-int:4字节;带符号范围是-2^31 ~ 2^31 -1;无符号范围0~2^32-1;
-bigint:8字节;带符号范围是-2^63 ~ 2^63 -1;无符号范围0~2^64-1;
-float(m,d):m指定显示长度,d指定小数位数,占用4字节;
-double(m,d):表示比float精度更大的小数,占用8字节;
-decimal(m,d):定点数m指定长度,d表示小数点位数; -
文本,二进制类型
-char(size):占用3字节;固定长度字符串,最大255;
-varchar(size):可变长度字符串,最大长度65535;
-blob:二进制数据;
-text:大文本,不支持全文索引,不支持默认值; -
时间日期
-date(3字节)/datetime(8字节):日期类型(yyyy-mm-dd)/(yyyy-mm-dd hh:mm:ss)
-timestamp(4字节):时间戳(当前时间),与datetime格式一样; -
String类型
-enum枚举类型:是一个字符串对象,其值来自表创建时在列规定中显示枚举的一列值;
-set集合类型:是一个字符串对象,可以有0或多个值,其值来自表创建时规定的允许的一列值;指定包括多个set成员的set列值时各成员之间用逗号间隔开;这样set成员值本身不能包含逗号;
MySQL之函数
- 日期函数:
函数名称 | 描述 |
---|---|
current_date() | 当前日期 |
current_time() | 当前时间 |
current_timestamp() | 当前时间戳 |
date_add(date,interval d_value_type) | 在date中添加日期或时间,interval后的数值单位可以是:year,minute,second,day |
date_sub(date,interval d_value_type) | 在date中减去日期或时间,interval后的数值单位可以是:year,minute,second,day |
datediff(date1,date2) | 两个日期的差,单位是天 |
now() | 当前日期时间 |
- 查询两分钟内发布的帖子:
select * from msg where date_add(sendtime,interval 3 minute)>now();
- 字符串函数:
charset(str) | 返回字符集 |
---|---|
concat(string2,…) | 连接字符串 |
Instr(string,substring) | 返回substring在string中出现的位置,没有返回0 |
ucase(string2) | 转换成大写 |
lcase(string2) | 转换成小写 |
left(string2,length) | 从string2中是左起取length个字符 |
length(string) | string的长度 |
replace(str,search_str,replace_str) | 在str中用replace_str替换search_str |
strcmp(string1,string2) | 逐字符比较两字符串大小 |
substring(str,position,length) | 从str的postion开始,取length个字符 |
ltrim(string) rtrim(string) trim(string) | 去掉前空格或后空格 |
- 数学函数:
函数名称 | 描述 |
---|---|
abs(number) | 绝对值 |
bin(decimal_number) | 十进制转二进制 |
hex(decimalNumber) | 转成16进制 |
conv(number,from_base,to_base) | 进制转换 |
ceiling(number) | 向上去整 |
floor(number) | 向下去整 |
format(nuber,decimal_places) | 格式化,保留小数位数 |
rand() | 返回随机浮点数,范围【0.0,1.0) |
mod(number,denominator) | 取模,求余 |