ToB企服应用市场:ToB评测及商务社交产业平台
标题:
【Mysql】第四章 数据类型(数值+字符串+日期+enum+set)
[打印本页]
作者:
知者何南
时间:
2024-8-7 13:22
标题:
【Mysql】第四章 数据类型(数值+字符串+日期+enum+set)
一、数值类型
1.tinyint
占用一个字节,取值范围为-128~127。
列名 tinyint
num tinyint //一个列为num的用tinyint类型
复制代码
无符号tinyint,占用1字节,取值范围为0~255。
列名 tinyint unsigned
num tinyint unsigned//一个列为num的用tinyint的无符号类型
复制代码
2.bit
占用1-64位数
列名 bit[(M)] //M为比特位数,范围1-64,M可以被省略,默认为1
num bit(8)//一个列num的用8个比特位
复制代码
3.float
列名 float[(m, d)]//m指定显示总长度,d指定小数点位数,占4个字节
num float(4,2)//长度为-99.99~99.99总共四位数,小数点占两位
复制代码
无符号float
列名 float[(m, d)] unsigned
num float(4, 2) unsigned//长度为0~99.99
复制代码
4.decimal
decimal比float精度更高
列名 decimal(m, d) [unsigned]//m指定显示总长度,d指定小数点位数
复制代码
注意
范围不能省略
二、字符串类型
1.char
列名 char(L)//L单位是字符,最大255
num char(2)//最多插入两个字符比如'ab',但是不能插入'abc'
复制代码
注意
:mysql中的字符就是一个字符,一个字符可以是一个字母a也可以是一个汉字
2.varchar
列名 varchar(L)//L单位是字符,最大65535
num varchar(6)//最多插入6个字符比如'abcdef',或者6个汉字一二三四五六,但是不能插入'abcdefg',也不能插入一二三四五六七
复制代码
char和varchar区别
char类型的数据是定长的,服从高(直接访问定长的空间)。
varchar类型的数据是变长的,服从低(需要先读取存储字符串的长度,再访问指定长度的空间)。
三、时间类型
列名 date//日期格式为'YYYY-MM-DD','2024-1-1',占用三字节。
列名 datetime//时间日期格式为'YYYY-MM-DD HH:MM:SS','2024-1-1 12:15:24',占用八字节。
列名 timestamp//时间戳,格式为'YYYY-MM-DD HH:MM:SS',占用四字节,插入不写的话会自动插入当前时间。
复制代码
四、enum和set
设置enum值时只答应选取此中的一个值,设置set值时可以选取此中的一个或多个值
列名 enum('选项一','选项二')
列名 set('选项一','选项二')
gender enum('男','女')//设置列为gender,选项有男 女
name set('张三','李四', '王五')//name,选项有张三 李四 王五
复制代码
插入-insert into
//下列表名是student
insert into student value('男', '张三');//用汉字插入一个
insert into student value('男', '张三, 李四');//用汉字插入两个,插入多个中间要用英文逗号隔开
insert into student value('1', '张三');//用数字设置,提供1,2,3...
insert into student value('男', 1);//用汉字插入男张三
insert into student value('男', 2);//用汉字插入男李四
insert into student value('男', 3);//用汉字插入男张三 李四
复制代码
注意
:set用的是用数字表现是位图,1对应0001是第一个,2对应0010是第二个,3对应0011是第一和第二个,4对应0100是第三个,以此类推。
查找-直接查-find_in_set
//下列表名是student 列名是gender 筛选是'男'或者数字1
select * from student where gender='男'; 或者 select * from student where gender=1;
select * from 表名 where 列名='描述';
复制代码
find_in_set(str,strlist)函数
查找strlist列中是否有str字符串
查找strlist字符串中是否有str字符,返回位置,比方select find_in_set(‘a’,‘a,b,c’);//返回1
//下列表名是student 列name
select * from student where find_in_set('张三'name);//在表student中,列name中。查找'张三'
select * from 表名 where find_in_set('str',strlist);
复制代码
find_in_set和直接查找区别:
find_in_set查找包罗str的值,如查找’代码’,那么’代码’,'代码,游泳’都算
直接查找只查找对应值,如查找’代码’,那么’代码’算,'代码,游泳’不算,由于多了游泳
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4