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~18446744073709551615mysql> 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字节

TIMEHH:MM:SS-838:59:59~838:59:593字节

DATEYYYY-MM-DD1000-01-01~9999-12-313字节

DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00~

9999-12-31 23:59:598字节

TIMESTAMPYYYY-MM-DD HH:MM:SS1970-01-01 00:00:01 utc~

2038-01-19 03:14:07 utc4字节

文本字符串类型

类型名称说明存储需求

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)

^

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

最高!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值