文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

四、MySQL的数据类型和运算符

2024-04-02 19:55

关注

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)

^

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


最高


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯