导图社区 数据类型
这是一篇关于数据类型的思维导图,包括:数值类型(整型、浮点型)、字符类型、枚举类型、日期时间类型。
编辑于2022-10-15 12:38:19 新疆数据类型
数值类型 (整型、浮点型)
整型
int-大整型
4个字节(32位),取值范围:2**32-1→42亿多
4个字节(32位),取值范围:2**32-1→42亿多
tinyint-微小整型
1个字节(8位),最常用的有2种: A.有符号(signed):默认,取值范围:-128→+127 B.无符号(unsigned):取值范围:0→255 eg.创建表时添加字段名与数据类型:age tinyint unsigned
1个字节(8位),最常用的有2种: A.有符号(signed):默认,取值范围:-128→+127 B.无符号(unsigned):取值范围:0→255
smallint-小整型
2个字节(16位),取值范围:2**16-1→65535
2个字节(16位),取值范围:2**16-1→65535
bigint-极大整型
8个字节(64位),取值范围:2**64-1
8个字节(64位),取值范围:2**64-1
浮点型
注意: 1.浮点型插入整数时会自动补全小数位位数 2.小数位多于指定的位数,会对下一位进行四舍五入操作
float
用法:字段名 float(m,n) 其中,m为总位数(整数位位数+小数位位数),n为小数位位数。 存储空间:4个字节 致命限制:最多显示7个有效位(从左→右显示,无论整数位还是小数位)。 注意:m赋值时,最大为7。
用法:字段名 float(m,n) 其中,m为总位数(整数位位数+小数位位数),n为小数位位数。 存储空间:4个字节 致命限制:最多显示7个有效位(从左→右显示,无论整数位还是小数位)。 注意:m赋值时,最大为7。
decimal
用法:字段名 decimal(m,n),m、n的用法同float中。 限制:最多显示28个有效位(从左→右显示,无论整数位还是小数位)。 存储:整数部分与小数部分分开存储,存储空间=整数部分所占字节数+小数部分所占字节数。
用法:字段名 decimal(m,n),m、n的用法同float中。 限制:最多显示28个有效位(从左→右显示,无论整数位还是小数位)。 存储:整数部分与小数部分分开存储,存储空间=整数部分所占字节数+小数部分所占字节数。
注意: 1.浮点型插入整数时会自动补全小数位位数 2.小数位多于指定的位数,会对下一位进行四舍五入操作
字符类型
char
用法:char(定长) 宽度取值范围:1→255.若不指定宽度,则默认宽度为1,存储一个字符。
用法:char(定长) 宽度取值范围:1→255.若不指定宽度,则默认宽度为1,存储一个字符。
varchar
用法:varchar(变长) 宽度取值范围:1→65535.必须指定宽度,无默认宽度值。
用法:varchar(变长) 宽度取值范围:1→65535.必须指定宽度,无默认宽度值。
char和varchar对比: name char(10):"A ----------" name varchar(10):"A" 相同点:超出指定宽度,都会存储失败。 不同点:char放入小于指定宽度的字符时,会自动在字符后面补空格; varchar放入小于指定宽度的字符时,不补空格,就占字符长度的空间。 各自特点:char-浪费存储空间,性能高。 varchar-节省存储空间,性能低。
text/longtext(4G)/blob/longblob(4G)
用法:存储文本,无需指定宽度。
用法:存储文本,无需指定宽度。
枚举类型
单选
用法:字段名 enum(值1,值2,......) 规则:只能选择其中某一个值。 举例:sex enum("男","女","未知")
用法:字段名 enum(值1,值2,......) 规则:只能选择其中某一个值。 举例:sex enum("男","女")
多选
用法:字段名 set(值1,值2,......) 规则:可以选择其中一个值或者同时选择多个值。 举例:hobby set("唱歌","跳舞","游泳","跑步","听音乐")
用法:字段名 set(值1,值2,......) 规则:可以选择其中一个值或者同时选择多个值。 举例:hobby set("唱歌","跳舞","游泳","跑步","听音乐")
日期时间类型
数据类型
date:"YYYY-MM-DD"
time:"HH:MM:SS"
datetime:"YYYY-MM-DD HH:MM:SS"
不赋值,返回NULL空值
timestamp:"YYYY-MM-DD HH:MM:SS"
不赋值,默认返回系统当前时间
区别
不赋值,返回NULL空值
不赋值,默认返回系统当前时间
日期时间函数
now()
返回服务器当前时间
返回服务器当前时间
curdate()
返回当前日期
返回当前日期
curtime()
返回当前时间
返回当前时间
year(date)
返回指定时间的年份
返回指定时间的年份
date(date)
返回指定时间的日期
返回指定时间的日期
time(date)
返回指定时间的时间
返回指定时间的时间
日期时间运算
语法格式: SELECT * FROM 表名 WHERE 字段名 运算符 (时间-INTERVAL时间间隔单位) 时间间隔单位: 1 day | 2 hour | 1 minute | 2 year | 3month 示例练习: 查询一天以内的记录。查询一年以前的记录。 SELECT * FROM t1 WHERE shijian > (NOW()-INTERVAL 1 DAY); SELECT * FROM t1 WHERE shijian < (NOW()-INTERVAL 1 YEAR);
语法格式: SELECT * FROM 表名 WHERE 字段名 运算符 (时间-INTERVAL时间间隔单位) 时间间隔单位: 1 day | 2 hour | 1 minute | 2 year | 3month 示例练习: 查询一天以内的记录。查询一年以前的记录。 SELECT * FROM t1 WHERE shijian > (NOW()-INTERVAL 1 DAY); SELECT * FROM t1 WHERE shijian < (NOW()-INTERVAL 1 YEAR);