当前位置:网站首页>Mysql中的数据类型和运算符
Mysql中的数据类型和运算符
2022-08-01 03:41:00 【1 + 1=王】
文章目录
Mysql的数据类型
Mysql支持数值型、文本型和日期时间型三大数据类型。
数值型数据
数值型是描述定量数据的数据类型,包括整数型数据类型和浮点型数据类型。
整数型数据类型
整数型数据类型包括INTEGER、SMALLINT、TINYINT、MEDIUMINT和BIGINT五种长度不同的类型。
| 数据类型 | 说明 | 字节数 |
|---|---|---|
| INTEGER | 普通大小的整数 | 4 |
| SMALLINT | 较小的整数 | 2 |
| TINYINT | 很小的整数 | 1 |
| MEDIUMINT | 中等大小的整数 | 3 |
| BIGINT | 大整数 | 8 |
根据占用字节数可以求出每一种数据类型的取值范围,例如:
TINYINT需要1字节(即8bits),那么TINYINT无符号数的取值的最大值为28-1=255;有符号数的最大值为27-1=127。
| 数据类型 | 无符号数取值范围 | 有符号数取值范围 |
|---|---|---|
| INTEGER | -231 ~ 231-1 | 0 ~ 232-1 |
| SMALLINT | -215 ~ 215-1 | 0 ~ 216-1 |
| TINYINT | -128 ~ 127 | 0 ~ 255 |
| MEDIUMINT | -223 ~ 223-1 | 0 ~ 224-1 |
| BIGINT | -263 ~ 263-1 | 0 ~ 264-1 |
浮点型型数据类型
Mysql中浮点型数据类型包括浮点型(单精度FLOAT、双精度DOUBLE)和定点型(DECIMAL)。
此类数据可以用(M,N)来表示,其中M称为精度,表示总位数;N称为标度,表示小数的位数。
例如:
- FLAOT(8,3)表示是FLOAT类型,数据长度为8,小数点后保留3位。
字符型数据
字符型数据可以用来存储字符串、图片和声音的二进制数据。
MYsql中的字符型数据有CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM、SET和二进制形式文本数据等。
字符串数据
- 定长字符串CHAR(M):固定长度的字符串。在定义的时候需要定义字符串长度为M(0~255),保存时,在右侧填充空格已达到指定长度。
- 变长字符串VARCHAR(M),长度可变的字符串。M(0~65535)表示最大长度,实际占用为字符串的实际长度加1。
文本类型数据
文本类型可以保存非二进制字符串。当保存或查询文本类型的值时,不删除尾部空格。
| 类型 | 长度 |
|---|---|
| TINYTEXT | 255 |
| TEXT | 255 |
| MEDIUMTEXT | 16777215 |
| LONGTEXT | 4GB |
枚举类型数据
枚举字符串(ENUM)是一个字符串对象,语法格式如下:<字段名> ENUM('值 1', '值2', ..., '值n')
ENUM的特点如下:
- 取值时,在指定的枚举列表中获取,一次只能获取一个。
- 如果创建的成员中有空格,尾部的空格将被自动删除。
- ENUM值的内部用整数表示(索引编号),最多可以有65535个元素。
- ENUM值按照索引顺序排列,空字符串排在非空字符串前面,NULL值排在其他所有枚举值之前。
- ENUM存在默认值。声明为NULL时,默认值为NULL;声明为NOT NULL时,默认值为允许的值列表的第一个元素。
SET类型数据
SET是一个字符串对象,语法格式如下:<字段名> SET('值 1', '值2', ..., '值n')
SET的特点如下:
- SET内部用整数表示(索引编号),最多可以有64个元素;
- SET成员中有空格,尾部的空格将被自动删除。
- SET的值可以从定义的元素值中选择多个联合。
二进制形式的文本数据
二进制数据类型用于存储图像、有格式的文本(Word、Excel等)、音频等数据。
| 数据类型 | 说明 | 长度 |
|---|---|---|
| BIT(M) | 位字段类型 | M |
| BINARY(M) | 固定长度的二进制字符串 | M |
| VARBINARY(M) | 可变长度的二进制字符串 | M+1 |
| TINYBLOB(M) | 非常小的BLOB | 28-1 |
| BLOB(M) | 小的BLOB | 216-1 |
| MEDIUMBLOB(M) | 中等大小的BLOB | 224-1 |
| LONGBLOB(M) | 非常大的BLOB | 231-1 |
日期时间型数据
Mysql中的日期和时间数据包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。
| 数据类型 | 取值范围 | 长度 | 格式 |
|---|---|---|---|
| YEAR | 1901~2155 | 1 | YYYY-MM-DD |
| TIME | -838:59:59~838:59:59 | 2 | HH:MM:SS |
| DATE | 1000-01-01~9999-12-3 | 3 | YYYY |
| DATETIME | 1000-01-01 00:00:00~9999-12-3 23:59:59 | 8 | YYYY-MM-DD HH:MM:SS |
| TIMESTAMP | 1980-01-01 00:00:01 UTC~2040-01-19 03:14:07 UTC | 4 |
Mysql的运算符
算数运算符
| 运算符 | 说明 | 例子 | 结果 |
|---|---|---|---|
| + | 加 | SELECT 1+1 | 2 |
| - | 减 | SELECT 1-1 | 0 |
| * | 乘 | SELECT 2*1 | 2 |
| / | 除 | SELECT 5/2 | 2 |
| %,MOD | 取余 | SELECT 5%2 | 1 |
比较运算符
| 运算符 | 说明 | 例子 | 结果 |
|---|---|---|---|
| = | 等于 | SELECT 1=2 | 0 |
| <=> | 安全等于 | SELECT 1<=>2 | 0 |
| <>, != | 不等于 | SELECT 2<>1 | 1 |
| <= | 小于等于 | SELECT 1<=2 | 1 |
| >= | 大于等于 | SELECT 1>=2 | 0 |
| > | 大于 | SELECT 1>2 | 0 |
| < | 小于 | SELECT 1<2 | 1 |
| IS NULL | 是否为空 | SELECT IS NULL | 1 |
| IS NOT NULL | 是否不为空 | SELECT ‘aaa’ IS NOT NULL | 1 |
| BETWEEN AND | 是否在两个值之间 | SELECT 2 BETWEEN 1 AND 3 | 1 |
逻辑运算符
| 运算符 | 说明 | 例子 | 结果 |
|---|---|---|---|
| NOT,! | 非 | SELECT NOT 1 | 0 |
| AND,&& | 与 | SELECT 1< AND 0 | 0 |
| OR, | 或 | SELECT 1 OR 0 | 1 |
| XOR | 异或 | SELECT 1 XOR 1 | 0 |
边栏推荐
- 纽约大学等 | TM-Vec:用于快速同源检测和比对的模版建模向量
- Unknown Bounded Array
- 一个往年的朋友
- 雪糕和轮胎
- Ordinary users cannot access HGFS directory
- Open source project site must-have & communication area function
- Invalid classes inferred from unique values of `y`. Expected: [0 1 2], got [1 2 3]
- 初出茅庐的小李第113篇博客项目笔记之机智云智能浇花器实战(2)-基础Demo实现
- 阿叶的目标
- JS new fun(); class and instance JS is based on object language Can only act as a class by writing constructors
猜你喜欢

Article summary: the basic model of VPN and business types

预言机简介

使用ts-node报错

How to download the Keil package

opencv 缩小放大用哪种插值更好??

The 16th day of the special assault version of the sword offer

初出茅庐的小李第113篇博客项目笔记之机智云智能浇花器实战(2)-基础Demo实现

Flink 1.13 (8) CDC

MLP neural network, GRNN neural network, SVM neural network and deep learning neural network compare and identify human health and non-health data

The fledgling Xiao Li's 113th blog project notes: Wisdom cloud smart flower watering device combat (2) - basic Demo implementation
随机推荐
【入门教程】Rollup模块打包器整合
指定set 'execution.savepoint.path'后,重启flinksql报这个错是啥
After specifying set 'execution.savepoint.path', restart flinksql and report this error
Raspberry pie arm version of GCC installed configuration and environment variables
MySQL modifies SQL statements to optimize performance
每周小结(*67):为什么不敢发表观点
Difference Between Compiled and Interpreted Languages
785. Quick Sort
【分层强化学习】HIRO:Data-Efficient Hierarchical Reinforcement Learning
leetcode:126. Word Solitaire II
The kernel's handling of the device tree
Simple and easy to use task queue - beanstalkd
【愚公系列】2022年07月 Go教学课程 024-函数
Simulation of Active anti-islanding-AFD Active Anti-islanding Model Based on Simulink
2. # code comments
787. 归并排序
Parse the bootargs from the device tree (dtb format data)
EntityFramework saves to SQLServer decimal precision is lost
Dynamic Programming 01 Backpack
lambda