【Mysql 学习】算术运算及字符串,数值函数

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

逻辑运算

not 表示 非逻辑!not null 返回 的仍是null
mysql> select not 1,not 0, not null;
+-------+-------+----------+
| not 1 | not 0 | not null |
+-------+-------+----------+
|     0 |     1 |     NULL |
+-------+-------+----------+
1 row in set (0.00 sec)

 and 与 逻辑  任何 与null的逻辑运算的结果都是 null!

mysql> select (1 and 0) ,( 0 and 1 ) ,( 2 and 2 ) ,( 1 and null );
+-----------+-------------+-------------+----------------+
| (1 and 0) | ( 0 and 1 ) | ( 2 and 2 ) | ( 1 and null ) |
+-----------+-------------+-------------+----------------+
|         0 |           0 |           1 |           NULL |
+-----------+-------------+-------------+----------------+
1 row in set (0.00 sec)

mysql> select (1 and 0) ,( 0 and 1) ,(2 and 2), (1 and null) ,(null and null);
+-----------+------------+-----------+--------------+-----------------+
| (1 and 0) | ( 0 and 1) | (2 and 2) | (1 and null) | (null and null) |
+-----------+------------+-----------+--------------+-----------------+
|         0 |          0 |         1 |         NULL |            NULL |
+-----------+------------+-----------+--------------+-----------------+
1 row in set (0.00 sec)

or 逻辑或 运算

mysql> select (1 or 0) ,( 0 or 1) ,(2 or 2), (1 or  null) ,(null or null);
+----------+-----------+----------+--------------+----------------+
| (1 or 0) | ( 0 or 1) | (2 or 2) | (1 or  null) | (null or null) |
+----------+-----------+----------+--------------+----------------+
|        1 |         1 |        1 |            1 |           NULL |
+----------+-----------+----------+--------------+----------------+
1 row in set (0.01 sec)

 xor 异或运算。

mysql> select 1 xor 1 ,0 xor 1 ,0 xor  0 , 1 xor null,0 xor null;
+---------+---------+----------+------------+------------+
| 1 xor 1 | 0 xor 1 | 0 xor  0 | 1 xor null | 0 xor null |
+---------+---------+----------+------------+------------+
|       0 |       1 |        0 |       NULL |       NULL |
+---------+---------+----------+------------+------------+
1 row in set (0.01 sec)

mysql> select 2&5; 0010&0101
+-----+
| 2&5 |
+-----+
|   0 |
+-----+
1 row in set (0.01 sec)

mysql> select 5&5;
+-----+
| 5&5 |
+-----+
|   5 |
+-----+
1 row in set (0.01 sec)

mysql> select 2|3;  或 运算或运算对操作数的二进制做或运算
+-----+
| 2|3 |
+-----+
|   3 |
+-----+
1 row in set (0.01 sec)

或运算 对操作数的二进制做与运算

mysql> select 2&3&4; 0010&0011&0100
+-------+
| 2&3&4 |
+-------+
|     0 |
+-------+
1 row in set (0.00 sec)

mysql> select 2^3;  位异或运算 对操作数的二进制做异或
+-----+
| 2^3 |
+-----+
|   1 |
+-----+
1 row in set (0.00 sec)

mysql> select ~1; 位 取反!
+----------------------+
| ~1                   |
+----------------------+
| 18446744073709551614 |
+----------------------+
1 row in set (0.00 sec)

mysql> select 1000 >>3; -右移位操作!除以2的3次方
+----------+
| 1000 >>3 |
+----------+
|      125 |
+----------+
1 row in set (0.01 sec)

mysql> select 1000 <<3;左移位操作!乘以2的3次方
+----------+
| 1000 <<3 |
+----------+
|     8000 |
+----------+
1 row in set (0.00 sec)
--常用函数。
在默认状态下, 在函数和紧随其后的括号之间不得存在空格。这能帮助  MySQL 分析程序区分一些同函数名相同的函数调用以及表或列。不过,函数自变量周围允许有空格出现。
--当前使用的数据库
mysql> select database();
+------------+
| database() |
+------------+
| test       |
+------------+
1 row in set (0.00 sec)
--当前的数据库版本
mysql> select version();
+----------------+
| version()      |
+----------------+
| 5.1.7-beta-log |
+----------------+
1 row in set (0.02 sec)
-当前的登录用户
mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.01 sec)
--返回主机ip地址的数字
mysql> select inet_aton('192.168.12.128');
+-----------------------------+
| inet_aton('192.168.12.128') |
+-----------------------------+
|                  3232238720 |
+-----------------------------+
1 row in set (0.00 sec)
--返回数字代表的ip
mysql> select inet_ntoa(3232238720);
+-----------------------+
| inet_ntoa(3232238720) |
+-----------------------+
| 192.168.12.128        |
+-----------------------+
1 row in set (0.00 sec)
---返回字符串密码的加密版
mysql> select password('12356');
+-------------------------------------------+
| password('12356')                         |
+-------------------------------------------+
| *DC594838253636AA6E73A5366878F6F0502BDC5D |
+-------------------------------------------+
1 row in set (0.00 sec)
--字符串函数:
字符串指用单引号(‘'’)或双引号(‘"’)引起来的字符序列。例如:
'a string'
"another string"
如果SQL服务器模式启用了NSI_QUOTES,可以只用单引号引用字符串。用双引号引用的字符串被解释为一个识别符。
--连接字符
mysql> select concat('aa','bb','yangqilong'),concat('yangql' ,null);
+--------------------------------+------------------------+
| concat('aa','bb','yangqilong') | concat('yangql' ,null) |
+--------------------------------+------------------------+
| aabbyangqilong                 | NULL                   |
+--------------------------------+------------------------+
1 row in set (0.00 sec)
---insert(str,x,y ,insrt)将字符串从第x位置开始,y个字符替换为instr
mysql> select insert ('beijing2008iloveyou',12,3,'me');
+------------------------------------------+
| insert ('beijing2008iloveyou',12,3,'me') |
+------------------------------------------+
| beijing2008meveyou                       |
+------------------------------------------+
1 row in set (0.00 sec)
--转换大小写
mysql> select lower('YANGQILONG') ,upper('yangqilong');
+---------------------+---------------------+
| lower('YANGQILONG') | upper('yangqilong') |
+---------------------+---------------------+
| yangqilong          | YANGQILONG          |
+---------------------+---------------------+
1 row in set (0.00 sec)
--left(str,x)返回字符串最左边的x个字符
--right(str,x)返回字符串最右边的x个字符
mysql> select left('yangqlloveMysql',6), left ('yangqlloveMysql',null),right('yangqlloveMysql',9);
+---------------------------+-------------------------------+----------------------------+
| left('yangqlloveMysql',6) | left ('yangqlloveMysql',null) | right('yangqlloveMysql',9) |
+---------------------------+-------------------------------+----------------------------+
| yangql                    |                               | loveMysql                  |
+---------------------------+-------------------------------+----------------------------+
1 row in set (0.00 sec)
--字符填充函数 lpad('yangql',11,'mysql')
mysql> select lpad('yangql',11,'mysql') ,rpad('mysql', 11,'yangql');
+---------------------------+----------------------------+
| lpad('yangql',11,'mysql') | rpad('mysql', 11,'yangql') |
+---------------------------+----------------------------+
| mysqlyangql               | mysqlyangql                |
+---------------------------+----------------------------+
1 row in set (0.00 sec)

--去掉str 左边的空格!
mysql> select ltrim(' |yangqlmysql') ,rtrim('yangqlmysql|   ');
+------------------------+--------------------------+
| ltrim(' |yangqlmysql') | rtrim('yangqlmysql|   ') |
+------------------------+--------------------------+
| |yangqlmysql           | yangqlmysql|             |
+------------------------+--------------------------+
1 row in set (0.00 sec)
--repeat(str,N)重复 str N 次!
mysql> select repeat('yangql ',2);
+---------------------+
| repeat('yangql ',2) |
+---------------------+
| yangql yangql       |
+---------------------+
1 row in set (0.00 sec)
--比较字符串的大小
mysql> select strcmp('a','b') ,strcmp('a','a'),strcmp('c','b');
+-----------------+-----------------+-----------------+
| strcmp('a','b') | strcmp('a','a') | strcmp('c','b') |
+-----------------+-----------------+-----------------+
|              -1 |               0 |               1 |
+-----------------+-----------------+-----------------+
1 row in set (0.00 sec)
--substring(STR,X,Y)返回从字符串str x 位置起y个字符长度的字符串!
mysql> select substring('yangql mysql',1,6) ,substring('yangql mysql',7,12);
+-------------------------------+--------------------------------+
| substring('yangql mysql',1,6) | substring('yangql mysql',7,12) |
+-------------------------------+--------------------------------+
| yangql                        |  mysql                         |
+-------------------------------+--------------------------------+
1 row in set (0.00 sec)
--去掉 str 两边的空格,如果中间有空格,则不去掉!
mysql> select trim(' | yangql mysql |');
+---------------------------+
| trim(' | yangql mysql |') |
+---------------------------+
| | yangql mysql |          |
+---------------------------+
1 row in set (0.00 sec)
--数值函数
--ABS(X) 返回x的绝对值。
mysql> select abs(-0.5),abs(0.5);
+-----------+----------+
| abs(-0.5) | abs(0.5) |
+-----------+----------+
|       0.5 |      0.5 |
+-----------+----------+
1 row in set (0.01 sec)
--CEIL(X) :返回大于x的最小整数。
mysql> select ceil(-0.5),ceil(0.5);
+------------+-----------+
| ceil(-0.5) | ceil(0.5) |
+------------+-----------+
|          0 |         1 |
+------------+-----------+
1 row in set (0.00 sec)
--FLOOR(X):返回小于X的最大整数,和CEIL 相反!
mysql> select floor(-0.5),floor(0.5);
+-------------+------------+
| floor(-0.5) | floor(0.5) |
+-------------+------------+
|          -1 |          0 |
+-------------+------------+
1 row in set (0.00 sec)
--随机值函数:返回0--1 之间的数值,不重复!
mysql> select rand(),rand();
+------------------+-------------------+
| rand()           | rand()            |
+------------------+-------------------+
| 0.65191487563021 | 0.031441814295428 |
+------------------+-------------------+
1 row in set (0.00 sec)
--利用ceil 和rand 可以产生指定范围内的随机数
mysql> select ceil(100*rand()),ceil(100*rand());
+------------------+------------------+
| ceil(100*rand()) | ceil(100*rand()) |
+------------------+------------------+
|               21 |               92 |
+------------------+------------------+
1 row in set (0.00 sec)
--ROUND(X,Y):返回x的四舍五入的有y位 小数的值!
mysql> select round(1.25),round(1.25,1),round(1.25,2);
+-------------+---------------+---------------+
| round(1.25) | round(1.25,1) | round(1.25,2) |
+-------------+---------------+---------------+
|           1 |           1.3 |          1.25 |
+-------------+---------------+---------------+
1 row in set (0.00 sec)

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
JSON 关系型数据库 MySQL
Mysql(5)—函数
MySQL提供了许多内置的函数以帮助用户进行数据操作和分析。这些函数可以分为几类,包括聚合函数、字符串函数、数值函数、日期和时间函数、控制流函数等。
93 1
Mysql(5)—函数
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
56 3
|
2天前
|
SQL 关系型数据库 MySQL
【MySQL基础篇】盘点MySQL常用四大类函数
本文介绍了MySQL中的四大类常用函数:字符串函数、数值函数、日期函数和流程函数。
【MySQL基础篇】盘点MySQL常用四大类函数
|
2天前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
18天前
|
SQL 关系型数据库 MySQL
MySQL常见函数第二期,你都用过哪些呢 ?
本期介绍了20个常用的MySQL函数,涵盖日期处理(如CURDATE()、DATE_FORMAT())、数学运算(如ABS()、ROUND())、统计分析(如COUNT()、SUM())等,帮助提高SQL查询效率和数据处理能力。希望对大家的学习有所帮助。
59 7
|
20天前
|
关系型数据库 MySQL
MySQL常见函数第一期,你都用过哪些呢 ?
本期介绍10个常用的MySQL函数:字符串连接(CONCAT)、提取子字符串(SUBSTRING)、获取字符串长度(LENGTH)、转换大小写(UPPER、LOWER)、去除空格(TRIM)、替换字符串(REPLACE)、查找子字符串位置(INSTR)、带分隔符的字符串连接(CONCAT_WS)以及获取当前日期时间(NOW)。
56 8
|
21天前
|
数据采集 关系型数据库 MySQL
MySQL常用函数:IF、SUM等用法
本文介绍了MySQL中常用的IF、SUM等函数及其用法,通过具体示例展示了如何利用这些函数进行条件判断、数值计算以及复杂查询。同时,文章还提到了CASE WHEN语句和其他常用函数,如COUNT、AVG、MAX/MIN等,强调了它们在数据统计分析、数据清洗和报表生成中的重要性。
|
25天前
|
关系型数据库 MySQL 数据处理
【MySQL】函数
MySQL 提供了丰富的函数集,涵盖字符串处理、数值运算、日期时间操作和聚合计算等多个方面。这些函数在日常数据库操作中极为重要,通过合理使用这些函数,可以大大提高数据处理和查询的效率。用户还可以通过自定义函数,扩展 MySQL 的功能以满足特定需求。
28 3
|
27天前
|
关系型数据库 MySQL 数据处理
MySQL函数与约束
MySQL 提供了丰富的函数和强大的约束机制,用于数据处理和完整性维护。通过掌握这些工具,可以有效地管理和分析数据库中的数据,确保数据的一致性和准确性。无论是在日常数据查询中使用内置函数,还是在数据库设计中应用各种约束,都是确保数据库系统稳定、高效运行的关键。希望本文对您理解和应用 MySQL 函数与约束有所帮助。
31 1
|
1月前
|
关系型数据库 MySQL Serverless
MySQL函数
最常用的MySQL函数,包括聚合函数,字符串函数,日期时间函数,控制流函数等
37 1