MySQL基础之数据类型和运算符

2023年 4月 29日 30.8k 0

早些年学习MySQL基础之数据类型和运算符的笔记,以便后续回顾学习: 1. 数据类型为int(11),注意到后面的数字11,这表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的

早些年学习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快。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论