MySQL中的数据类型

1,Tinyint

在Mysql中有许多衍生的int类型,比如Tinyint就是其中一个,他的最小值是-128 最大值是127

那么为什么Mysql中要对这些数据做如此详细的处理?是为了让程序员对数据的合法插入,数据类型本身也是一种约束。

可以看到,一旦插入数据超过范围,就会报错。

说明:

在MySQL中类型分为无符号和有符号,默认是有符号;

可以通过unsigened来某个字段是无符号的;

例子:

可以看到,该类型就不可插入带符号数字。

int类型衍生中还有:smallint 最小值是-32768,最大值是32767;

mediumint,最小值是-8388608,最大值是8388607;

还有int,bigint。

2,bit类型/字节类型(位类型)

name bit(1); 只能插入0和1,只在二进制位上开了一位,所以取值范围是0和1;

3,浮点类型

1,float

用法:float(m,d);其中m表示显示长度,d表示精度,占用空间四个字节

如果用unsigend定义,那么float的取值范围就是0-99.99,double用法也是一样的就不多说了。

2,decimal

decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数

decimal(5,2) 表示的范围是 -999.99 ~ 999.99

decimal(5,2) unsigned 表示的范围 0 ~ 999.99

decimal和float很像,但是有区别: float和decimal表示的精度不一样

可以看到,decimal的精度比float的进度要高,当插入精度大的数字时可以选用decimal。

4,字符串类型

1,char

固定长度字符串

用法:char(L);L表示字符串的长度,该类型字符串的最大长度位255:

该字符为固定长度,就是在表中定义了多少空间他就给你开多少固定的空间;

从图中可以看到,2并不是开了两个字节的长度,而是可以存两个字符,可以是汉字或英文。

2,varchar

用法:varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节(注意是字节)

用法和char类似:

其中,与char不一样的是,如果给varchar开了长20的长度,但是只给里面塞一个字符,这个时候varchar的长度是1,而不是20.这就是变长字符的优势;其中,大小为65535跟字节,但是要用三个字节来存字符的长度等内容,实际长度是65532,而最长的字符数是21844字符:

5,日期和时间类型

date :日期 'yyyy-mm-dd' ,占用三字节

datetime 时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从 1000 到 9999 ,占用八字节

timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用 四字节

可以看到timestamp它显示的是时事的时间,每次跟新表的时候t3会跟着变

6,enum 和 set类型

语法: enum:枚举,"单选"类型;

enum('选项1','选项2','选项3',...);

set:集合,"多选"类型;

set('选项值1','选项值2','选项值3', ...);

以下是调用方法之一:

当然enum可以使用下标来指代(注意不能使用零下标):

set可以指定多个内容进行写入,具体操作如下:

enum和set只能插入在建表之前定好的量,定义其他会报错。

set还可以使用数字标下标,但是set是以位来当下标,要注意:

可以看到,set并不以数字为下标:

1-->00001;

2-->00010;

7-->00111;

31-->11111;

案例:

set也可插入零号位,但是插入时就不是null而是'',代表插入过的意思。

7,enum 和 set类型查找

操作:

enum:

set:

可以看到,set用where查找时,时按严格匹配来查找,那些含有羽毛球的多个集合里不会被查找出来。

我们可以用关键字 find_in_set 可以看元素集合

方法:

可以用and的方式组合多个查询条件:

希望可以对你们有帮助.

相关推荐
范纹杉想快点毕业12 分钟前
从单片机基础到程序框架:构建嵌入式系统的完整路径
数据库·mongodb
数据知道14 分钟前
PostgreSQL性能优化:如何定期清理无用索引以释放磁盘空间(索引膨胀监控)
数据库·postgresql·性能优化
喵叔哟15 分钟前
67.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--分摊功能总体设计与业务流程
数据库·微服务·架构
tryCbest16 分钟前
Oracle查看存储过程
数据库·oracle
咩咩不吃草22 分钟前
【MySQL】表和列、增删改查语句及数据类型约束详解
数据库·mysql·语法
不懒不懒22 分钟前
【MySQL 实战:从零搭建规范用户表(含完整 SQL 与避坑指南)】
数据库
ID_1800790547326 分钟前
Python结合淘宝关键词API进行商品价格监控与预警
服务器·数据库·python
数据知道40 分钟前
PostgreSQL 故障排查:万字详解如何找出数据库中的死锁
数据库·postgresql
AI_56781 小时前
阿里云OSS成本优化:生命周期规则+分层存储省70%
运维·数据库·人工智能·ai
choke2331 小时前
软件测试任务测试
服务器·数据库·sqlserver