当面对两个选择时,抛硬币总能奏效。并不是因为它总能给出对的答案,而是在你把它抛在空中的那一秒里。你突然就知道,你希望的结果是什么了。
前言
这是我自己学习mysql数据库的第二篇博客总结。后期我会继续把mysql数据库学习笔记开源至博客上。
上一期笔记是关于mysql数据库的基础知识,没看的同学可以过去看看:
数据类型
数据约束
1. 如果向mysql特定的类型中插入不合法的数据,mysql一般是直接拦截。
2. 反过来,如果已经有数据被成功插入到mysql中了,那么插入一定是合法的。
3. 所以在mysql中,数据类型本身也是一种数据约束。
tinyint-smallint-int-bigint
1. tinyint数据范围:-2^7~2^7-1。
2. tinyint unsigned数据范围:0~2^8-1。
3. int数据范围:-2^31~2^31-1。
4. int unsigned数据范围:0~2^32-1。
5. 在mysql中,整型可以指定是有符号的和无符号的,默认是有符号的,可以通过unsigned来说明某个字段是无符号的。
bit
1. bit(M): M表示每个值的位数,范围从1到64,如果M被忽略,默认为1。
2. bit字段在显示时,是按照ASCII码对应的值进行显示,所以如果值太小,bit是不会显示出来的。
3. 如果我们有这样的值:只有0和1两种值,这时可以定义bit(1),这样可以节省空间。
float-decimal-double
1. float(m,d) : m指定显示的长度,d指定小数的位数。
2. float在合法范围内,会发生四舍五入。
3. decimal(m, d): m指定显示的长度,d指定小数的位数。
4. decimal和float很像,但是有区别: float和decimal表示的精度不一样,如果希望小数的精度高,推荐使用decimal。
char-varchar
1. char(L): 固定长度字符串,L是可以存储字符的长度,单位为字符,而非字节,最大长度为255字符。
2. varchar(L): 可变长度字符串,L表示字符长度,最大长度为65535字节。但是有1-3个字节用于记录数据大小,所以说有效字节数是65532。当我们的表的编码是utf8时,一个字符占 用3个字节,varchar(L)的参数L最大值是65532/3=21844字节。
date-datetime-timestamp
1. date:日期'yyyy-mm-dd'。
2. datetime :时间日期格式 'yyyy-mm-dd HH:ii:ss' 。3. timestamp : 时间戳 ,从 1970年 开始计算,格式和 datetime 完全一致。4. timestamp 在表格 发生修改时 ,会 自动更新时间 ,而 date 和 datetime 需要自己 手动更新 。
enum-set
1. enum:枚举,''单选''类型。
2. enum插入数据时,既可以输入选项,也可以输入编号,编号从1开始,最多到65535。
3. set:集合,''多选''类型。
4. set插入数据时,尽量输入选项,不推荐使用编号,非常不方便。
5. set查询数据 需要用到函数: find_in_set(sub,str_list) ,如果 sub 在 str_list 中,则 返回编号 ; 如果不在, 返回0 。
致谢
感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!