索鸟网

  1. 首页
  2. 四、MySQL的数据类型和运算符

四、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~1270-255
SMALLINT-32768~327670~65535
MEDIUMINT-8388608~83886070~16777215
INT-2147483648~21474836470~4294967295
BIGINT-9223372036854775808~92233720368547758070~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)

日期与时间类型

类型名称日期格式日期范围存储需求
YEARYYYY1901~21551字节
TIME
HH:MM:SS-838:59:59~838:59:593字节
DATEYYYY-MM-DD1000-01-01~9999-12-313字节
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)
非常小的BLOBL+1字节,L<2^8
BLOB(M)
小BLOBL+2字节,L<2^16
MEDIUMBLOB(M)
中等大小的BLOBL+3字节,L<2^24
LONGBLOB(M)
非常大的BLOBL+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)

^

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


最高


本文出自 “随风而飘” 博客,请务必保留此出处http://yinsuifeng.blog.51cto.com/10173491/1952481

数据类型 数值类型 日期

来源地址:http://yinsuifeng.blog.51cto.com/10173491/1952481 版权归作者所有!

相关教程

  • MySQL(四)之MySQL数据类型

    一、数据字典   数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。 数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。被动
  • 数据类型转换&运算符

    int a = -12; printf(“%u”, a); //4294967284 -12 源码:10000000 00000000 00000000 00001100 反码:11111111 11111111 11111111 11110011 补码:11111111 11111111 11111111 11110100 当我们用%u格式控制符输出a时,计算机将会把它识别为 一
  • Java的四大类运算符!

    Java的运算符可分为4类:算术运算符、关系运算符、逻辑运算符和位运算符。 1.算术运算符 Java的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数之间。算术运算符的操作数必须是数值类型。 (1)一元运算符: 一元运算符有:正(+)、负(-)、加1(++)和减1(--)4个。 加1、减1运算符只允许用于数值
  • Python变量、数据类型与运算符

             1、掌握变量使用及命名规则1.1 变量赋值变量赋值通过“=”实现,实例: a = 5 b = 3.14 c = ‘abc’注意事项:变量名尽量具有现实意义  实例: price = 100 Name = 
  • JAVA基础 - 复习 - 基本数据类型和运算符 --(1)

    基本数据类型: byte、int、char、short、long、float、double、boolean 1.当这些数据类型 创建静态变量(未赋予初始值)的时候,默认值是多少呢? static int aa; //0 static char a; // "\u0000"(null) (输出结果为一个类似方块的东西
  • Mysql数据类型

    mysql中的数据类型:整数型:#查看int整数型的帮助。mysql> ? int Name: "INT" Description: INT[(M)] [UNSIGNED] [ZEROFILL] A normal-size integer. The signed range&
  • golang数据类型与MySQL数据类型的对应

    本文原创文章,转载注明出处,博客地址 https://segmentfault.com/u/to... 第一时间看后续精彩文章。觉得好的话,顺手分享到朋友圈吧,感谢支持。
  • MySQL数据类型选择

    当一个列可以选择多种数据类型时,应该优先选择数字类型,其次是日期或二进制类型,最后是字符类型。越简单的数据类型,需要的处理资源就越少。对于相同级别的数据类型,应该优先选择占用空间小的数据类型。因为在数据库中,数据处理是以页为单位的,每个页存储的数据量是一定的(Innodb一页是16K),列的长度越小,单页能容纳的行数就越多。这有利于减少磁盘IO,提高数据