【Mysql】第四章 数据类型(数值+字符串+日期+enum+set) ...

打印 上一主题 下一主题

主题 559|帖子 559|积分 1677



  

一、数值类型

1.tinyint

占用一个字节,取值范围为-128~127。
  1. 列名 tinyint
  2. num tinyint //一个列为num的用tinyint类型
复制代码
无符号tinyint,占用1字节,取值范围为0~255。
  1. 列名 tinyint unsigned
  2. num tinyint unsigned//一个列为num的用tinyint的无符号类型
复制代码
2.bit

占用1-64位数
  1. 列名 bit[(M)] //M为比特位数,范围1-64,M可以被省略,默认为1
  2. num bit(8)//一个列num的用8个比特位
复制代码
3.float

  1. 列名 float[(m, d)]//m指定显示总长度,d指定小数点位数,占4个字节
  2. num float(4,2)//长度为-99.99~99.99总共四位数,小数点占两位
复制代码
无符号float
  1. 列名 float[(m, d)] unsigned
  2. num float(4, 2) unsigned//长度为0~99.99
复制代码
4.decimal

decimal比float精度更高
  1. 列名 decimal(m, d) [unsigned]//m指定显示总长度,d指定小数点位数
复制代码
注意范围不能省略
二、字符串类型

1.char

  1. 列名 char(L)//L单位是字符,最大255
  2. num char(2)//最多插入两个字符比如'ab',但是不能插入'abc'
复制代码
注意:mysql中的字符就是一个字符,一个字符可以是一个字母a也可以是一个汉字
2.varchar

  1. 列名 varchar(L)//L单位是字符,最大65535
  2. num varchar(6)//最多插入6个字符比如'abcdef',或者6个汉字一二三四五六,但是不能插入'abcdefg',也不能插入一二三四五六七
复制代码
char和varchar区别


  • char类型的数据是定长的,服从高(直接访问定长的空间)。
  • varchar类型的数据是变长的,服从低(需要先读取存储字符串的长度,再访问指定长度的空间)。
三、时间类型

  1. 列名 date//日期格式为'YYYY-MM-DD','2024-1-1',占用三字节。
  2. 列名 datetime//时间日期格式为'YYYY-MM-DD HH:MM:SS','2024-1-1 12:15:24',占用八字节。
  3. 列名 timestamp//时间戳,格式为'YYYY-MM-DD HH:MM:SS',占用四字节,插入不写的话会自动插入当前时间。
复制代码
四、enum和set

设置enum值时只答应选取此中的一个值,设置set值时可以选取此中的一个或多个值
  1. 列名 enum('选项一','选项二')
  2. 列名 set('选项一','选项二')
  3. gender enum('男','女')//设置列为gender,选项有男 女
  4. name set('张三','李四', '王五')//name,选项有张三 李四 王五
复制代码
插入-insert into

  1. //下列表名是student
  2. insert into student value('男', '张三');//用汉字插入一个
  3. insert into student value('男', '张三, 李四');//用汉字插入两个,插入多个中间要用英文逗号隔开
  4. insert into student value('1', '张三');//用数字设置,提供1,2,3...
  5. insert into student value('男', 1);//用汉字插入男张三
  6. insert into student value('男', 2);//用汉字插入男李四
  7. insert into student value('男', 3);//用汉字插入男张三 李四
复制代码
注意:set用的是用数字表现是位图,1对应0001是第一个,2对应0010是第二个,3对应0011是第一和第二个,4对应0100是第三个,以此类推。
查找-直接查-find_in_set

  1. //下列表名是student 列名是gender 筛选是'男'或者数字1
  2. select * from student where gender='男';  或者  select * from student where gender=1;
  3. select * from 表名 where 列名='描述';
复制代码
find_in_set(str,strlist)函数


  • 查找strlist列中是否有str字符串
  • 查找strlist字符串中是否有str字符,返回位置,比方select find_in_set(‘a’,‘a,b,c’);//返回1
  1. //下列表名是student 列name
  2. select * from student where find_in_set('张三'name);//在表student中,列name中。查找'张三'
  3. select * from 表名 where find_in_set('str',strlist);
复制代码
find_in_set和直接查找区别:


  • find_in_set查找包罗str的值,如查找’代码’,那么’代码’,'代码,游泳’都算
  • 直接查找只查找对应值,如查找’代码’,那么’代码’算,'代码,游泳’不算,由于多了游泳


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

知者何南

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表