数据类型和运算符

3.1 MySQL数据类型介绍

3.1.1 整数类型

数值型数据类型主要用来存储数字。

TINYINT、SMALLINT、MEDIUMINT、
INT(INTEGER)、 BIGINT。

3.1.2 浮点数类型和定点数类型

MySQL中使用浮点数和定点数来表示小数。

浮点类型:FLOAT、DOUBLE。
定点类型:DECIMAL。
F:4字节;D:8字节;D:M+2字节;若用户指定的精度超出精度范围,则会四舍五入进行处理

3.1.3 日期与时间类型

DATETIME、DATE、TIMESTAMP、TIME
和YEAR。

3.1.4 字符串类型

字符串类型用来存储字符串数据,除了可以存储字符串数据之外,还可以存储其它数据,比如图片和声音的二进制数据。

CHAR、VARCHAR、BINARY、VARBINARY
BLOB、TEXT、ENUM和SET。
模式匹配查找;  CHAR、VARCHAR起码对于我来说还用过,其他的没用过

3.1.5 二进制类型

前面讲解了存储文本的字符串类型,这一节将讲解MySQL中存储二进制数据的数据类型
BIT、BINARY、VARBINARY、TINYBLOB、
BLOB、MEDIUMBLOB、LONGBLOB,

3.2 如何选择数据类型

整数和浮点数
浮点数和定点数

日期与时间类型

只需要记录年份使用year类型,只需要记录时间使用time类型。存储范围较大的日期(时间和年份)可以使用DATETIME(timestamp也可记录日期,当需要插入当前时间使用它)

CHAR与VARCHAR之间的特点与选择

如果对存储要求不大,在性能上有需求,可以使用char类型;char是固定字节,varchar是可变长字节使用它在某种程度上可以节省空间。

ENUM和SET

ENUM只能去单个值,他的数据类型是一个枚举集合,他的合法取值列表最多允许有65535个成员。
SET可以去多个值,他的合法取值列表最多有64个成员。
BLOB和TEXT

3.3 常见运算符介绍

算术运算符
算术运算符是SQL中最基本的运算符。
+、 -、 *、 /、 %

比较运算符
一个比较运算符的结果总是1,0或者是NULL。
=、<=>、<> (!=)、<=、>=、>、IS NULL
IS NOT NULL、LEAST、GREATEST、
BETWEEN . . . AND. . . 、ISNULL、IN、NOT
IN、LIKE、REGEXP

<=>安全等于运算符;<> 不等于运算符;LEAST、GREATEST分别为有两个或多个参数时,返回最小值、最大值

LIKE :

可使用% 匹配任何数目的字符,甚至包括零字符
_只能匹配一个字符

REGEXP

正则表达式的匹配运算符

运算符的通用使用模式(编写)

均是以SELECT开头,执行多个字符匹配可以使用逗号(,)分隔开来

select 'ss' like'%','sqsa' regexp 'p$','rrrr' regexp '.*r'

逻辑运算符

逻辑运算符的求值所得结果均为TRUE、FALSE或NULL。
NOT 或者 !
AND 或者 &&
OR 或者 ||
XOR

位操作运算符

位运算符是用来对二进制字节中的位进行测试、移位或者测试处理。
位或(|)
位与(&)
位异或(^ )
位左移(<<)
位右移(<<)
位取反(~)

运算的优先级决定了不同的运算符在表达式中计算的先后顺序。
级别高的运算符先进行计算,如果级别相同,MySQL按表达式的顺序从左到右依次计算。当然,在无法确定优先级的情况下,可以使用圆括号“()”来改变优先级。

优先级 运算符
(最高)  !
 3     -(负号),~(按位取反)
 4     ^(按位异或)
 5     *,/(DIV),%(MOD)
 6     +,-
 7     >>,<<
 8     &
 9     |
10     =(比较运算),<=>,<,<=,>,>=,!=,<>,IN,IS NULL,LIKE,REGEXP
11    BETWEEN AND,CASE,WHEN,THEN,ELSE
12    NOT
13    &&,AND
14    XOR
15    ||,OR(最低)    =(赋值运算),:=

3.4 综合案例——运算符的使用

posted @ 2021-09-19 19:21  索匣  阅读(81)  评论(0编辑  收藏  举报