共计 1623 个字符,预计需要花费 5 分钟才能阅读完成。
早些年学习 MySQL 基础之数据类型和运算符的笔记,以便后续回顾学习:
1. 数据类型为 int(11),注意到后面的数字 11,这表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的个数。其他数据类型也可以在定义表结构的时候指定所需要的显示宽度,如果不指定,则系统为每一种类型指定默认的宽度。
2. MySQL 使用浮点数和定点数表示小数。单精度浮点类型有两种:单精度浮点型(float)和双精度浮点型(double)。定点类型只有一种:decimal。浮点类型和定点类型都可以用(M,N)来表示,其中 M 称为进度,表示总共的位数;N 称为标度,表示的是小数的位数。
3. 不论是定点还是浮点类型,如果用户指定的进度超出了进度范围,这回四舍五入进行处理。
4. 浮点数相对于定点数的有点是在长度一定的情况下,浮点数能够表示更大的数据范围,它的缺点是会引起进度问题。
5. MySQL 中,定点数以字符串的形式存储,在对进度要求比较高的时候(比如货币和科学计算)使用 decimal 的类型比较好,另外两个浮点数进行减法和比较运算时也容易出现问题,所以在使用浮点型时需要注意,尽避免做浮点数比较。
6. 保存为 YEAR 类型时,既可以传入整型,也可以传入字符型。若是插入超过了 YEAR 类型的取值范围,值将被转换为 2000。
7. 保存为 TIME 类型时,如果不合法,存储时将变为 00:00:00。
8. 可以使用字符串类型或者数字类型的数据插入 DATE 类型数据,只要符合 DATE 的日期格式即可。
9. MySQL 允许“不严格”的语法:任何标点符号都可以用作日期部分之间的间隔符。例如“98-10-19”、“98.10.18”、“98/10/19”和“98@10@19@”都是等价的,这些字也是可以正确的插入到数据库的。
10. 插入 DATETIME 类型数据时,可以使用字符串类型和数字类型的数据插入,只要符合 DATETIME 的日期格式即可。例如:“YYYY-MM-DD HH:MM:SS”、“YYYYMMDDHHMMSS”、或者用数字 YYYYMMDDHHMMSS、YYMMDDHHMMSS 表示均可。
11. MySQL 允许“不严格”语法:任何标点符号都可以用作日期部分或者时间部分之间的间隔,例如:“98-10-19 12:12:12”、“98.10.19 12+12+12”、“98@10@9 12*12*12”、“98#10#19 12:12:12”都是等效且被允许的。
12. 字符串类型用来存储字符串数据,除了可以存储字符串数据外,还可以存储其他数据,比如图片、声音的二进制数据。
13. MySQL 至此两类字符型数据:文本字符串和二进制字符串。
14. VARCHAR、TEXT、BLOB 都是变长类型,对于其存储需求取决于列值得实际长度,而不是取决于类型的最大可能长度。例如,一个 VARCHAR(10)能保存最大长度为 10 个字符的一个字符串,实际的存储需要字符串实际长度 L 加上一个字节(用于记录字符串的长度)。对于字符串“abcd”,L 是 4,而存储需要 5 个字节。
15. CHAR(M) 为固定长度的字符串,在定义时指定字符串长度。当保存时在右侧填充空格到指定的长度。M 表示列长度,M 的范围是 0~255 个字符。当检索到 CHAR 值时,尾部的空格将被删除。
16. VARCHAR(M) 是可变长的字符串,M 表示最大列长度。M 的范围是 0~65535.VARCHAR 在只保存和检索时尾部的空格人保留。
17. 等于运算符(=)不能用于 null 的判断,但是安全等于运算符(<=>) 可以。
18. 用 LIKE 匹配字符时:
“%”匹配任何数目的字符,甚至包括零字符
“_”只能匹配一个字符。
19. 如果想删除表中所有记录,除了使用 DELETE FROM 表名 表名 的方式之外,还可以使用 TRUNCATETABLE 语句,TRUNCATE 将直接删除原来的表,并重新创建一个新的表。TRUNCATE 直接说删除表而不是删除记录,因此执行速度比 DELETE 快。
: