【MySQL】数据类型
https://i-blog.csdnimg.cn/direct/896c7828b47c4ddcb042f2d760e7a9fc.pngMySQL 数据类型表
1. 数值类型
类型字节说明TINYINT18 位整数,范围 -128 到 127(无符号时 0 到 255)SMALLINT216 位整数,范围 -32,768 到 32,767(无符号时 0 到 65,535)MEDIUMINT324 位整数,范围 -8,388,608 到 8,388,607(无符号时 0 到 16,777,215)INT / INTEGER432 位整数,范围 -2,147,483,648 到 2,147,483,647(无符号时 0 到 4,294,967,295)BIGINT864 位整数,范围 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807(无符号时 0 到 18,446,744,073,709,551,615)DECIMAL(M, D) / NUMERIC(M, D)变长准确浮点数,M 是总位数,D 是小数位数FLOAT4单精度浮点数,精度约 7 位DOUBLE / REAL8双精度浮点数,精度约 16 位 数值类型中我们偏重解说tinyint类型和int类型还有float类型和decimal类型
tinyint类型
tinyint类型和C++中的char的范围是一样的,当我们需要一个小的数值类型时,我们可以选择tinyint。
我们创建一个只有tinyint的表,然后向其插入数据:
验证tinyint类型的范围:
https://i-blog.csdnimg.cn/direct/f0f7d042082c4713943970b7b5f13926.png
在创建表的时候我们可以在tinyint类型后面加上unsigned,使其变成无符号类型:
无符号类型的数据返回时由以前的-128到127变成了0到255
https://i-blog.csdnimg.cn/direct/7325258a54304483b93f81352ce4798c.png
BIT类型
根本语法:
bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。
https://i-blog.csdnimg.cn/direct/b6972f2a47044ee78db1fe1cbb5cc1f8.png
我们创建一张表,然后测试BIT类型的范围,可以看见,当凌驾BIT类型的最大范围的时候,使用是不被允许的。
通常我们查询的时候,前面都带有0X样式的十六进制:
https://i-blog.csdnimg.cn/direct/72dce5ff5b1b43d68bed6b39bcbe2c14.png
检察十进制样式:
https://i-blog.csdnimg.cn/direct/702b83a5349d4673bd4f3278575877b2.png
float类型和decimal类型
float类型:
根本语法:
float[(m, d)] : M指定显示长度,d指定小数位数,占用空间4个字节
我们创建一张表:
注意:中括号中的第一个数字表现最高有多少位数字,包含小数点后的数字,第二个数字表现小数点后一共有多少位数字
https://i-blog.csdnimg.cn/direct/b1e2ce36edb5433e89a2249388a4e671.png
我们这里创建的是最多4个数,最多显示两位小数:
https://i-blog.csdnimg.cn/direct/639203e0199340a28f17813f9dc63082.png
上面这个是最坏的情况,当我们插入非法的数据的时候也会被阻止:
https://i-blog.csdnimg.cn/direct/8cd73c3d89df406c8d61f360834dad8f.png
不管是float还是decimal,都是有四舍五入的性子的,假如我们只要求保存2位小数,我们加上第三位小数,这里第三位小数会被四舍五入,如果四舍五入之后的数字是正当的那么会被插入到表中,如果不正当则会报错
decimal
float类型和decimal类型都是小数类,有什么区别呢,有个很大的区别就是精度题目,当我们需要的精度很大时最好还是选择decimal,这里我们做一个测试,测试一下decimal和float的精度:
我们创建一张同时有float类型和decimal类型的表
https://i-blog.csdnimg.cn/direct/20cb30390a5444ff9969fb10a6452f0e.png
向两张表中插入相同的数据,然后比力精度:
https://i-blog.csdnimg.cn/direct/7e1bac4bcea84bbebe70da94812a98ba.png
可以看到decimal完全符合要求。
2. 日期和时间类型
类型字节说明DATE3仅存储日期,格式 YYYY-MM-DD,范围 1000-01-01 到 9999-12-31DATETIME8日期 + 时间,格式 YYYY-MM-DD HH:MM:SSTIMESTAMP4时间戳,格式 YYYY-MM-DD HH:MM:SS,自动更新,范围 1970-01-01 到 2038-01-19TIME3仅存储时间,格式 HH:MM:SS,范围 -838:59:59 到 838:59:59YEAR1存储 4 位年份(1901 到 2155) date :日期 'yyyy-mm-dd' ,占用三字节
datetime 时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从 1000 到 9999 ,占用八字节
timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用
四字节
日期类型没有什么好说的,只是表现形式差别,timestamp可以用来获取当前时间。
我们创建一张三个类型的表:
https://i-blog.csdnimg.cn/direct/48e303318b4c4c8ea4494cad58b28003.png
插入数据:
https://i-blog.csdnimg.cn/direct/44c1d1efa6d24689b48672fb7ef01ad7.png
可以看见,很简单的三个类型。
3. 字符串类型
类型字节说明CHAR(M)M固定长度字符串(0-255)VARCHAR(M)变长可变长度字符串(0-65535,取决于 row format)TEXT变长长文本,最大 65535 字节TINYTEXT变长最多存储 255 字节MEDIUMTEXT变长最多存储 16,777,215 字节LONGTEXT变长最多存储 4,294,967,295 字节BLOB变长二进制大对象TINYBLOB变长最多存储 255 字节MEDIUMBLOB变长最多存储 16,777,215 字节LONGBLOB变长最多存储 4,294,967,295 字节 char和varchar类型
char类型:
根本语法:
char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255
注意:char类型括号中代表的是字符串长度,虽然中文汉字占3个字节,但是如果我们定义的char(2)还是可以插入两个汉字,这里的字符是指符号,而不是像C++中的一个字符占几个字节的那种。
varchar类型:
根本语法:
varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节
varchar和char的区别就是char是固定大小的,而varchar是假如我们定义的是varchar(32),我们用多少varchar只开辟多少,而char是原本就是多少,不管我们用多少,这个char都是那么大
但是varchar65535中有3个字节是用来管理的。
https://i-blog.csdnimg.cn/direct/01b52458e281483098cd2bac912881b5.png
https://i-blog.csdnimg.cn/direct/24406f1c0c7044ea93c878640443941e.png
3. 罗列和聚集类型
类型说明ENUM('value1', 'value2', ...)罗列类型,存储单选值,最多可定义 65,535 个选项SET('value1', 'value2', ...)聚集类型,存储多选值,最多可定义 64 个选项 enum和set
enum只支持单选1,而set支持多选多
我们创建一张表对比一下这两个类型:
https://i-blog.csdnimg.cn/direct/21c7b2c38ecf4028ac36f28dfcab86bd.png
https://i-blog.csdnimg.cn/direct/75fdc56de1f24d148d3a55155d5bf104.png
插入数据:
https://i-blog.csdnimg.cn/direct/22aeeb948a4947fd93c74e5120237f3e.png
set插入多个数据:
https://i-blog.csdnimg.cn/direct/d704cc295ba14eff943481a0377cfc3d.png
查找数据:
https://i-blog.csdnimg.cn/direct/6ded1e83ea574ed2a2528c2b662bdcfc.png
我们已set为基准查找:
https://i-blog.csdnimg.cn/direct/06db81f19f3b410786dd78fc836c69b8.png
可以看见mick被排除在外了,因为mick有多个爱好,以是我们应该用一个函数:
https://i-blog.csdnimg.cn/direct/0a98f4395623451183570f9bbcc95007.png
https://i-blog.csdnimg.cn/direct/24b9b7a053674f07ad1f0d88af172229.png
假如我们需要筛选两个标准:
https://i-blog.csdnimg.cn/direct/7421844f821249a3b9a5e00fa5460470.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]