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中的日期与时间类型:

类型名称 日期格式 存储需求 日期范围
YEAR YYYY 1字节 1901-2155
TIME HH: MM: SS 3字节 -838:59:59-838:59:59
DATE YYYY-MM-DD 3字节 1000-01-01~9999-12-3
DATETIME YYYY-MM-DD HH: MM: SS 8字节 1000-01-0100:00:00~9999-12-3123:59:59
TIMESTAMP YYYY-MM-DD HH: MM: SS 4字节 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)
  ^
  -(负号),~(位反转)
最高 !
发布了12 篇原创文章 · 获赞 4 · 访问量 435
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览