mySQL数据类型介绍

目录

 

mySQL数据类型介绍

1.数值数据类型

1.1整型类型

1.2浮点数类型和定点数类型

2.日期时间类型

3.字符串类型

3.1算术运算符

3.2比较运算符

3.3逻辑运算符

3.4位操作运算符

3.5运算符的优先级


mySQL数据类型介绍

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

(1)数值数据类型:包括整数类型 TINYINT、 SMALLINT、 MEDIUMINT、INT、 BIGINT、浮点小数数据类型 FLOAT和 DOUBLE、定点小数类型 DECIMAL。

(2)日期时间类型:包括YEAR、TIME、DATE、 DATETIME和 TIMESTAMP。

(3)字符串类型:包括CHAR、 VARCHAR、 BINARY、 VARBINARY、BLOB、TEXT、ENUM 和SET等。

1.数值数据类型

1.1整型类型

数值型数据类型主要用来存储数字, MySQL提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,其所需要的存储空间也会越大。 MySQL主要提供的整数类型有: TINYINT、 SMALLINT、 MEDIUMINT、INT( NTEGER)、 BIGINT。整数类型的属性字段可以添加 AUTO INCREMENT自增约束条件。下表列出了 MySQL中的数值类型。

类型名称说明存储需求
tinyint很小的整数1个字节
smallint小的整数2个字节
mediumint中等大小的整数3个字节
int(integer)普通大小的整数4个字节
bigint大整数8个字节

【例子】创建表tmpl,其中字段x、y、z、m、n数据类型依次为TINYINT、SMALLINT、MEDIUMINT、INT、 BIGINT,SQL语句如下: 执行成功之后,便用DESC查看表结构,结果如下:

mysql> create table temp1(
    ->      x tinyint,
    ->      y smallint,
    ->      z mediumint,
    ->      m int,
    ->      n bigint);
Query OK, 0 rows affected (0.35 sec)
​
mysql> desc temp1;
+-------+--------------+------+-----+---------+-------+
| 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.17 sec)

1.2浮点数类型和定点数类型

MySQL中使用浮点数和定点数来表示小数。浮点类型有两种:单精度浮点类型( FLOAT)和双精度浮点类型( DOUBLE)。定点类型只有一种: DECIMAL。浮点类型和定点类型都可以用(M,N)来表示,其中M称为精度,表示总共的位数;N称为标度,是表示小数的位数。下表列出了MySQL中的小数类型和存储需求。

MySQl中的小数类型

类型名称说明存储需求
float单精度浮点数4个字节
double双精度浮点数8个字节
decimal(M,D),DEC压缩的“严格”定点数M+2个字节

 

2.日期时间类型

MySQL中有多种表示日期的数据类型,主要有: DATETIME、DATE、 TIMESTAMP、TIME和YEAR。例如,当只记录年信息的时候,可以只使用YEAR类型,而没有必要使用DATE每个类型都有合法的取值范围,当指定确实不合法的值时系统将“零”值插入到数据库中。本节将介绍 MySQL日期和时间类型的使用方法。

下表列出了 MySQL中的日期与时间类型:

类型名称日期格式存储需求日期范围
YEARYYYY1字节1901-2155
TIMEHH: MM: SS3字节-838:59:59-838:59:59
DATEYYYY-MM-DD3字节1000-01-01~9999-12-3
DATETIMEYYYY-MM-DD HH: MM: SS8字节1000-01-0100:00:00~9999-12-3123:59:59
TIMESTAMPYYYY-MM-DD HH: MM: SS4字节1970-01-0100:00:0lUTC~2038-01-1903:14:07 UTC

3.字符串类型

运算符是告诉 MySQL执行特定算术或逻辑操作的符号。 MySQL的内部运算符很丰富,主要 有四大类,分别是:算术运算符、比较运算符、逻辑运算符、位操作运算符

1.算术运算符 用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)。

2.比较运算符 用于比较运算。包括大于(>)、小于(<)、等于(=)、大于等于(>=)、小于等于(<=)、 不等于(!=)、以及IN、 BETWEEN AND、 IS NULL、 GREATEST、 LEAST、LIKE、 REGEXP等。

3.逻辑运算符 逻辑运算符的求值所得结果均为1(TRUE)、0( FALSE),这类运算符有逻辑非(NOT或者!)、逻辑与(AND或者&&)、逻辑或(OR或者‖)、逻辑异或(XOR) 4.位操作运算符 参与运算的操作数,按二进制位进行运算。包括位与(&)、位或(1)、位非(~)、位异或^)、左移(<<)、右移(>>)6种。 接下来将对 MySQL中各种运算符的使用进行详细的介绍。

3.1算术运算符

运算符作用
+加法运算
-减法运算
*乘法运算
/除法运算,返回商
%求余运算,返回余数

 

3.2比较运算符

一个比较运算符的结果总是1、0或者是NULL,比较运算符经常在 SELECT的查询条件子句中使用,用来査询满足指定条件的记录。 MySQL中比较运算符如表所示。

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

 

3.3逻辑运算符

在SQL中,所有逻辑运算符的求值所得结果均为TRUE、 FALSE或NULL。在 MySQL中,它们体现为1(TRUE)、0( FALSE)和NULL。其大多数都与不同的数据库SQL通用, MySQL中的逻辑运算符如表所示。

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

(1)逻辑非运算符NOT或者!表示当操作数为0时,所得值为1;当操作数为非零值时,所得值为0:当操作数为NULL时,所得的返回值为NULL。

(2)逻辑与运算符AND或者&&表示当所有操作数均为非零值、并且不为NULL时,计算所得结果为1:当一个或多个操作数为0时,所得结果为0,其余情况返回值为NULL。

(3)逻辑或运算符OR或者‖表示当两个操作数均为非NULL值,且任意一个操作数为非零值时,结果为1,否则结果为0;当有一个操作数为NULL,且另一个操作数为非零值时,则结果为1,否则结果为NULL:当两个操作数均为NULL时,则所得结果为NULL。

(4)逻辑异或运算符XOR。当任意一个操作数为NULL时,返回值为NULL;对于非NULL的操作数,如果两个操作数都是非0值或者都是0值,则返回结果为0:如果一个为0值,另一个为非0值,返回结果为1。

3.4位操作运算符

位运算符是用来对二进制字节中的位进行测试、移位或者测试处理, MySQL中提供的位运算符有按位或(|),按位与(&),按位异或(^),按位左移(<),按位右移(>),按位取反(!),如表所示

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

 

3.5运算符的优先级

运算符的优先级决定了不同的运算符在表达式中计算的先后顺序,下表列出了 MySQL中的各类运算符及其优先级。

优先级运算符
最低=(赋值运算),:=
 ||,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、付费专栏及课程。

余额充值