四、MySQL的数据类型和运算符

4.1、MySQL数据类型介绍

MySQL支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。


数值数据类型:

包括整数类型   TINYINT、SMALLINT、MEDIUMINT、INT、BIFINT、

浮点小数据类型 FLOAT、DOUBLE

定点小数类型   DECIMAL

日期/时间类型:

YEAR、TIME、DATE、DATETIME、TIMESTAMP

字符串类型:

CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SET

整数类

MySQL中的整数型数据类型

类型名称 说明 存储需求
TINYINT 很小的整数 1个字节
SMALLINT 小的整数 2个字节
MEDIUMINT 中等大小的整数 3个字节
INT 普通大小的整数 4个字节
BIGINT 大整数 5个字节

不同整数类型的取值范围

数据类型 有符号 无符号
TINYINT -128~127 0-255
SMALLINT -32768~32767 0~65535
MEDIUMINT -8388608~8388607 0~16777215
INT -2147483648~2147483647 0~4294967295
BIGINT -9223372036854775808~9223372036854775807 0~18446744073709551615
mysql> CREATE TABLE tmp1(x TINYINT,y SMALLINT,z MEDIUMINT,m INT,n BIGINT);
Query OK, 0 rows affected (0.05 sec)

mysql> DESC tmp1;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| x     | tinyint(4)   | YES  |     | NULL    |       |
| y     | smallint(6)  | YES  |     | NULL    |       |
| z     | mediumint(9) | YES  |     | NULL    |       |
| m     | int(11)      | YES  |     | NULL    |       |
| n     | bigint(20)   | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

浮点数类型和定点数类型

数据类型 说明 存储需求
FLOAT 单精度浮点数 4个字节
DOUBLE 双精度浮点数 8个字节
DECIMAL(M,D) 压缩的"严格"定点数 M+2个字节
mysql> CREATE TABLE tmp2 (x FLOAT(5,1), y DOUBLE(5,1),z DECIMAL(5,1));
Query OK, 0 rows affected (0.02 sec)

mysql> DESC tmp2;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| x     | float(5,1)   | YES  |     | NULL    |       |
| y     | double(5,1)  | YES  |     | NULL    |       |
| z     | decimal(5,1) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

日期与时间类型

类型名称 日期格式 日期范围 存储需求
YEAR YYYY 1901~2155 1字节
TIME HH:MM:SS -838:59:59~838:59:59 3字节
DATE YYYY-MM-DD 1000-01-01~9999-12-31 3字节
DATETIME YYYY-MM-DD HH:MM:SS
1000-01-01 00:00:00~

9999-12-31 23:59:59

8字节
TIMESTAMP YYYY-MM-DD HH:MM:SS
1970-01-01 00:00:01 utc~

2038-01-19 03:14:07 utc

4字节


文本字符串类型

类型名称 说明 存储需求
CHAR(M) 固定长度非二进制字符串 M字节, 1<=M<=255
VARCHAR(M) 变长非二进制字符串 L+1字节,L<=M和 1<=M<=255
TINYTEXT 非常小的非二进制字符串 L+1字节,L<2^8
TEXT 小的非二进制字符串 L+2字节,L<2^16
MEDIUMTEXT 中等大小的二进制字符串 L+3字节,L<2^24
LONGTEXT 大的非二进制字符串 L+4字节,L<2^32
ENUM 枚举类型,只能有一个枚举字符串值 1或2个字节,取决于枚举值的数目(最大值65535)
SET
一个设置,字符串对象可以有零个或

多个SET成员

1,2,3,4或8个字节,取决于集合成员的数量(最多64个成员)

二进制字符串类型

类型名称 说明 存储需求
BIT(M) 位字段类型 大约(M+7)/8个字节
BINARY(M) 固定长度二进制字符串 M个字节
VARBINARY(M) 可变长度二进制字符串 M+1个字节
TINYBLOB(M) 非常小的BLOB L+1字节,L<2^8
BLOB(M) 小BLOB L+2字节,L<2^16
MEDIUMBLOB(M) 中等大小的BLOB L+3字节,L<2^24
LONGBLOB(M) 非常大的BLOB L+4字节,L<2^32

4.2、常见运算符介绍

运算符连接表达式中各个操作数,其作用是用来指明对操作数所进行的运算。运用运算符可以更加灵活地使用表中的数据,常见的运算符类型有:算术运算符、比较运算符、逻辑运算符、位运算符。

算术运算符

算术运算符是SQL中最基本的运算符,包括加、减、乘、除、求余。

运算符 作用
+ 加法运算
- 减法运算
* 乘法运算
/ 除法运算,返回商
% 求余运算,返回余数
mysql> CREATE TABLE tmp14 (num INT);
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO tmp14 value(64);
Query OK, 1 row affected (0.01 sec)

mysql> SELECT num,num+10,num-3+5,num+36.5 FROM tmp14;
+------+--------+---------+----------+
| num  | num+10 | num-3+5 | num+36.5 |
+------+--------+---------+----------+
|   64 |     74 |      66 |    100.5 |
+------+--------+---------+----------+
1 row in set (0.00 sec)

mysql> SELECT num,num/0,num%0 FROM tmp14;
+------+-------+-------+
| num  | num/0 | num%0 |
+------+-------+-------+
|   64 |  NULL |  NULL |
+------+-------+-------+
1 row in set (0.00 sec)

比较运算符

运算符 作用
= 等于
<=> 安全的等于
<>(!=) 不等于
<= 小于等于
>= 大于等于
> 大于
IS NULL 判断一个值是否为NULL
IS NOT NULL 判断一个值是否不为NULL
LEAST 有两个或多个参数时,返回最小值
GREATEST 两个或多个参数时,返回最大值
BETWEEN AND 判断一个值是否落在两个值之间
ISNULL 与IS NULL 作用相同
IN 判断一个值是IN列表中任意一个值
NOT IN 判断一个值不是IN列表中任意一个值
LIKE 通配符匹配
REGEXP 正则表达式匹配

逻辑运算符

运算符 作用
NOT或者| 逻辑非
AND或者&& 逻辑与
OR 或者|| 逻辑或
XOR 逻辑异或

位运算符

运算符 作用
| 位或
& 位与
^ 位异或
<< 位左移
>> 位右移
~ 位取反,反转所有位

运算符的优先级

优先级 运算符
最低 =(赋值运算),:=

||,OR

XOR

&&,AND

NOT

BETWEEN,CASE,WHEN,THEN,ELSE

=(比较运算),<=>,>=,>,<=,<,<>,!=,IS,LIKE,REGEXP,IN

|

&

<<,>>

-,+

*,/(DIV),%(MOD)

^

-(符号),~(位反转)

最高
时间: 2024-08-06 11:58:47

四、MySQL的数据类型和运算符的相关文章

03 MySQL之数据类型和运算符

01-数据类型 MySQL支持多种数据类型,主要有 数值类型.日期/时间类型和字符串类型. 1.1 整数类型 1.2 浮点数类型和定点数类型 单精度浮点类型(FLOAT)和双精度浮点类型 (DOUBLE). 1.3 日期和时间类型 # 创建表 CREATE TABLE tmp3 (y YEAR); # 插入数据 INSERT INTO tmp3 values ('2010'); # 删除表中数据 DELECT FROM tmp3; 1.4 文本字符串类型 02-常用运算符 2.1 算术运算符 加

Java 第二章 变量 、数据类型和运算符 笔记

Java 第二章 变量 .数据类型和运算符 一.变量:存储数据的一个基本单元. 二.变量的声明和赋值: 1)声明并赋值:数据类型 变量名=值;      例:int  price=1000; 2)声明.赋值分两步:数据类型 变量名;   例: int  price; 变量名=值;              price=1000; 三.数据类型2种: 1)基本数据类型8种: Byte 长度:-128~127(-2的7次方到2的7次方减1) Short   -2的15次方到2的15次方减1 Int

Java 数据类型和运算符

                                                  Java   数据类型和运算符 Java 基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是一个模板,它描述一类对象的行为和状态. 方法:方法就是行为,一个类可以有很多方法.逻辑

java中的数据类型和运算符的总结归类。

首先学习java肯定先要了解java的发展史,以及java的特点,常见的dos命令,jdk的安装,如何开发java程序等等一下概念行的东西,这里面我都不一一说了. 今天这一章主要想总结一下java中的数据类型和运算符2大方面. 再说数据类型之前先说一下标识符的命名规则: 总的命名规则:见名知意.如果有多个单词组成,首单词小写,其余单词的首字母大写(驼峰命名法).1.首字母只能是字母,下划线和$2.其余字母可以字母,下划线,$和数字3.不能使用预留关键字4.严格区分大小写(总体来说和c语音一样)

第二章:数据类型和运算符

第二章:数据类型和运算符 计算机中的进制 **标识符 总的命名规则:见名知意.如果有多个单词组成,首单词小写,其余单词的首字母大写(驼峰命名法).1.首字母只能是字母,下划线和$2.其余字母可以字母,下划线,$和数字3.不能使用预留关键字4.严格区分大小写 数据类型*** 基本数据类型 整型 byte(1个字节) short(2个字节) int(4个字节) long(8个字节) 浮点型 float(4个字节) double(8个字节) 字符型 char(2个字节)采用Unicode码 布尔型 b

第二章 变量,数据类型和运算符

第二章 &变量,数据类型和运算符 英文新识: double 双精度浮点 string  字符串 character  字母 integer  整数 Scanner  扫描仪 score  分数         name  名字     boolean  布尔   true  真          false  假 语法新知: double score =98.5; //声明双精度浮点型变量score存储分数 String name="张大侠";        //声明字符串型变

2018-1-24 数据类型和运算符

有关于php数据类型和运算符的相关知识: 整体划分: 标量类型: int, float, string, bool 复合类型: array, object 特殊类型: null, resouce 整数类型:int integer 整数进制:十进制.八进制.十六进制 十进制转二进制:$v1 = decbin(123); 注意:参数必须是10进制数字,转换后的结果必然是二进制字符串. 十进制转八进制:$r1 =  decoct(十进制数字): 结果是一个8进制数字字符串. 十进制转十六进制:dech

mysql 基本命令(3)-数据类型和运算符

一.数值类型 1.数据类型有:数值类型.日i期类型.字符串类型. 2.int(20),int 指整数的取值范围,里面的参数20,只是表示数据显示的宽度.显示宽度和数据类型的取值范围是无关的.显示宽度只是指明mysql最大可能显示的宽度,如果插入的数据大于显示宽度的值,只要该值不超过 该数据类型的取值范围,数值依然可以插入,而且还能全部显示出来.例如:规定 id int(4),插入一个数值123456到id,显示的还是123456,和宽度无关.数据类型的宽度可以指定也可以不指定,不指定,系统会根据

mysql系列之二数据类型和运算符

数据库表由多列字段构成,每一个字段指定了不同的数据类型.指定字段得数据类型之后,也就决定了向字段插入的数据内容,例如,当要插入数值的时候,可以将他们存储为整数类型,也可以将它们存储为字符串类型:不同的数据类型也决定了mysql在存储它们的时候使用的方式,以及在使用它们的时候选择什么运算符号进行运算. 1.MySQL数据类型介绍 MySQL支持多种数据类型,主要有数值类型.日期/时间类型和字符串类型. (1)数值数据类型:包括整数类型TINYINT.SMALLINT.MEDIUMINT.INT.B