MySql小知识
int类型
设计表的时候 int(3) 并不能限制取值范围和占用空间这个是int类型本身限制的
例:int(3) 在插入数据的时候 1000也能插入成功(一版设计表的时候只填写类型,后面不加(X))
year类型
以2位字符串存入的取值范围
'00'-'69' - '70'-'99' -> 2000-2069 - 1970-1999
以2位数字类型存入的取值范围
1-69 - 70-99 -> 2001-2069 - 1970-1999(2000年2位数字是0的话存入为0000)
time类型
有 : 时间从左往右记录没有则从右往左
例:'20:20' -> 20:20:00
'2020' -> 00:20:20
date类型
字符串格式插入无论连接符为什么(英文单引号除外)最后都会转为yyyy-mm-dd格式
例:'2022*11)14' -> 2022-11-14
datetime类型
同date类型但是日期和时间部分之间的空格不能是其他字符
timestamp类型
格式和datetime类型相同,但是取值范围小
datatime类型存储的是插入日期,timestamp类型存入的是当时日期的转换世界标准时间
字符串类型限值在严格模式下会启用,插入超过的限值的数据会报错
char(4)和varchar(4)区别

enum类型
类似元组那种键值对,存入数据时候存入enum的key或者value显示为enum的value
set类型
set类型的列可以从定义列的值中选择多个字符联合且保持有序性,不同于enum的只能选择一个值插入
例:定义set类型字段x为a,b,c,d,e,当插入a,b,a时显示为a,b 插入a,c,b时显示为a,b,c 插入a,b,z时因没有定义z报错
比较运算符
=和<=>功能一致,唯一区别是=不能比较null值<=>可以,=比较的返回null(字符串和数字相比较mysql会把字符串转为数字)
least
返回最小值,有null返回null
greatest
返回最大值,有null返回null
like
like 'xxx_' 匹配以xxx开头的4位字符串
regexp
正则表达式匹配,格式同like
逻辑运算符
否 -> ! 或 not
和 -> && 或 and
或 -> || 或 or
异或 xor (当xor左右两边值都为0 或 都大于0时返回0,否则返回1,有null返回null)
位运算符(感觉用不到,略过了)

运算符的优先等级
区分大小写比较 -> binary 'a' = 'A' 返回0
数学函数
ABS(x) 返回绝对值
PI() 返回圆周率
SQRT(x) 返回非负数的平方根
MOD(x,y) 返回求余结果
获取整数函数
CEIL(x)和CEILING(x) 返回最小整数,类型为bigint
FLOOR(x) 返回最大整数,类型为bigint
随机数函数
RAND() 返回随机浮点值的数
四舍五入函数
ROUND(x) 返回x的四舍五入结果
ROUND(x,y) 返回x的四舍五入结果,保留y位小数
TRUNCATE(x,y) 返回x值去除y位小数后结果
幂运算函数
POW(x,y) 和 POWER(x,y) 返回x的y次方
根据自我理解改写

浙公网安备 33010602011771号