MYSQL常见运算符和函数

Wesley13
• 阅读 361

MYSQL常见运算符和函数【重要】

字符函数 (1)CONCAT():字符连接 SELECT CONCAT(‘IMOOC’,’-‘,’MySQL’);//IMOOC-MySQL SELECT CONCAT (first_name,last_name) AS fullname FROM test; (2)CONCAT_WS():使用指定的分隔符进行字符连接,(第一个位置指定分隔符,后面的为分割的内容) SELECT CONCAT_WS(‘%’,’abc’,’def’); //第一个是指定的分隔符;//abc%def (3)FORMAT():数字格式化 SELECT FORMAT(123560.75,2); //123,560.75;第二个参数若为0(四舍五入),显示整数 (4)LOWER():转化小写 (5)UPPER():转换大写 SELECT UPPER(‘mysql’);//MYSQL (6)LEFT():获取左侧字符 (7)RIGHT():获取右侧字符 SELECT LEFT (‘MYSQL’,2); //MY SELECT LOWER(LEFT(‘mYsql’,2)); //函数嵌套;//my (8)LENGTH():取得字符串长度 LENGTH(‘MYSQL ’);//6;最后加了个空格 (9)LTRIM():清空字符串前面(左端)空格 (10)RTRIM():清空字符串末尾(右端)空格 (11)TRIM():删除前导、后续空格或者指定字符 SELECT TRIM(’ MySQL ‘); SELECT TRIM(LEADING ‘?’ FROM ‘??MYSQL???’); //删除前导? SELECT TRIM(TRAILING ‘?’ FROM ‘??MYSQL???’); //删除后续? SELECT TRIM(BOTH ‘?’ FROM ‘??MYSQL???’); //前后均删除,但不能删除中间的? (12)REPLACE():替换 SELECT REPLACE(‘MY???SQL’,’?’,”); //将问号换成空白,即去掉? SELECT REPLACE(‘MY???SQL’,’?’,’~~’); //可以将n个?换成m个组合符号 (13)SUBSTRING():字符串截取(从1开始,编程里可能从0开始) SELECT SUBSTRING(‘mYSQL’,1,2); //从字符串中的第一个位置开始截取2个字符mY SELECT SUBSTRING(‘mYSQL’,3); //SQL 从第3的位置开始截取到结束 SELECT SUBSTRING(‘mYSQL’,-2); //QL 从倒数第2位开始截取到结束 SELECT SUBSTRING(‘mYSQL’,-3,-1); //F,长度不能是负的,但是有些编程语言支持,而mysql不支持 (14)[NOT] LIKE:模式匹配(百分号%代表任意个字符; 下划线_代表任意一个字符) 例子:”tom%” SELECT * FROM test WHERE first_name LIKE ‘%1%%’ ESCAPE ‘1’; // 去除’1’后面的编译,查找包含’%’符号的信息 ‘_’任意一个字符

MySQL 会自动将数字转化为字符串,反之亦然。

字符串转数字:(例如:'123'转换成123)

方法一:SELECT CAST('123' AS SIGNED);
方法二:SELECT CONVERT('123',SIGNED);
方法三:SELECT '123'+0;

数字转字符串:(例如:123转换成'123')--若想要将数字明确地转化为字符串,可使用 CAST()或 CONCAT()函数:

mysql> SELECT 38.8, CAST(38.8 AS CHAR);

​ -> 38.8, '38.8'

mysql> SELECT 38.8, CONCAT(38.8);

​ -> 38.8, '38.8'

数值运算符函数 SELECT CEIL(3.01) ==>4 /*有n.xx 都是n+1 进一取整 向上取整 SELECT FLOOR(3.99) ==>3 /*取n.xx 都是n 舍一取整 向下取整 SELECT 3 DIV 4 ==> 0 /*整数除法,取商 SELECT 3/4 ==>0.75 /*除法 SELECT 2.1 MOD 2 ==>0.1 /*取余数(取模) 被除数是整数,小数都可以 SELECT 21 % 2 ==>1 /*取余数 mod=% SELECT POWER(3,4) ==>81 /*3的4次方 幂运算 SELECT ROUND(3.1415926,4) ==>3.1416 /*四舍五入,保留4位小数 SELECT TRUNCATE(123.89,1) ==>123.8 /*截取小数点后的位数 SELECT TRUNCATE(123.89,0) ==>123 /*截取小数点后的位置,0位为整数部分 SELECT TRUNCATE(123.89,-1) ==>120 /*截取-1,从个位起去掉后面的数值替换为0

比较运算符和函数 [NOT]BETWEEN…AND…[不]在范围之内,结果返回1或0。 例如:15 BETWEEN 10 AND 16; //1。 [NOT]IN()列出值选项。 例如:SELECT 10 IN(5,10,25); //1。 IS [NOT] NULL:只有NULL IS [NOT] NULL返回1,其他情况(包括”,0)都返回0。

日期时间函数 (1)SELECT NOW(); // 当前日期时间。 (2)SELECT CURDATE(); // 当前日期。 (3)SELECT CURTIME(); // 当前时间。 (4)SELECT DATE_ADD(‘2014-3-12’,INTERVAL [-]365 DAY); // 2015-03-12,DAY还可以替换为WEEK,MONTH,YEAR等。DATE_ADD不是增加的意思,是变化,既可以增加,也可以减去。 (5)DATEDIFF(); // 日期的差值。 DATEDIFF(‘2013-3-12’,’2014-3-12’); // -365 日期差值。 (6)DATE_FORMAT(); // 日期格式化。 SELECT DATE_FORMAT(‘2014-3-2’,’%m%d%Y’); // 03/02/2014(’%’带有前导0作用)。

更全的参考:  https://www.cnblogs.com/duhuo/p/5650876.html

信息函数 SELECT CONNECTION_ID(); ==>2 /*连接ID SELECT DATABASE(); /*当前打开的数据库 SELECT LAST_INSERT_ID(); /*最后插入的记录 同时写入多条记录是只返回写入的第一条的id。而且表中必须要有自动编号的字段。 DESC tab_name; /查看数据库字段及属性,查看表结构 SELECT USER(); / 打印当前用户信息 SELECT VERSION(); /*打印当前数据库信息

聚合函数 只有一个返回值 AVG() - 平均值 SELECT ROUND(AVG(goods_price),2) AS avg_price FROM tdb_goods; COUNT() - 计数 SELECT COUNT(goods_id) as counts FROM tdb_goods; MAX() - 最大值 SELECT MAX(goods_price) as counts FROM tdb_goods; MIN() - 最小值 SUM() - 求和 SELECT SUM(goods_price) as counts FROM tdb_goods;

加密函数 MD5():信息摘要算法 select md5(’admin’);//给admin加密。如果mysql中的信息是为了web开发做准备,那么尽量使用md5 password():密码算法 set password=password(‘1236’)修改了当前登录密码为1236

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这