mysql函数

mysql 筛选后分组查询

匿名 (未验证) 提交于 2019-12-02 22:06:11
语法: select 分组函数,列(要求出现在group by的后面) from 表 where .. group by 分组的列表 order by ... #案例:查询各个部门的平均工资 SELECT AVG ( salary ), department_id FROM employees GROUP BY department_id ORDER BY department_id DESC ; #案例:查询每个工种的最高工资 SELECT MAX ( salary ), job_id FROM employees GROUP BY job_id ; #案例:查询每个部门的位置个数 SELECT COUNT ( location_id ), department_name FROM departments GROUP BY department_name ; #案例:查询邮箱中包含a字符的,每个部门的平均工资 SELECT AVG ( salary ), department_id FROM employees WHERE email LIKE ( '%a%' ) GROUP BY department_id ; #案例:查询有奖金的每个领导手下员工的最高工资 SELECT MAX ( salary ), manager_id FROM employees WHERE

mysql 按表达式或函数分组、多个字段分组、排序

匿名 (未验证) 提交于 2019-12-02 22:06:11
按表达式或函数分组: #案例:按员工的姓名的长度分组,查询每一组的员工个数,筛选员工个数大于五 SELECT COUNT(*),LENGTH(last_name) FROM employees GROUP BY LENGTH(last_name) HAVING COUNT(*)>5; 按多个字段分组: #案例:查询每个部门每个工种的员工的平均工资 SELECT AVG(salary),department_id,job_id FROM employees GROUP BY department_id,job_id; 排序 #案例:查询每个部门每个工种的部门编号不为null的员工的平均工资>10000,并且按平均工资的高低显示 SELECT AVG(salary),department_id,job_id FROM employees WHERE department_id IS NOT NULL GROUP BY department_id,job_id HAVING AVG(salary)>10000 ORDER BY AVG(salary) DESC; 来源:51CTO 作者: wx5d21d5e6e5ab1 链接:https://blog.51cto.com/14437184/2436653

mysql 基本字符函数

匿名 (未验证) 提交于 2019-12-02 22:06:11
#查看当前字符集 SHOW VARIABLES LIKE '%char%'; #单行函数 USE myemployees; #字符函数 SELECT LENGTH('哈哈') #获取参数字节个数 SELECT CONCAT(last_name,'_',first_name) FROM employees; #字符串拼接 SELECT UPPER('aaa'); #转换成大写 SELECT LOWER('AAA'); #转换成小写 #mysql中索引位置从1开始,sbstr和substring效果一样 SELECT SUBSTR('李莫愁爱上了陆展元',7); #截取陆展元字符串,从7开始到之后所有 SELECT SUBSTR('李莫愁爱上了陆展元',1,3);#截取李莫愁,第二个数字表示长度 SELECT INSTR('杨不悔爱上了殷六侠','殷六侠') AS out_put;#返回子字符串在大字符串中第一次出现的起始索引位置,没有返回0 SELECT TRIM(' 张翠山 ') AS out_put; #去掉前后空格 SELECT TRIM('a' FROM 'aaaaa张aaa翠aaaaa山aaaaaa') AS out_put; #去掉前后指定字符,不能去掉中间的 SELECT LPAD('黄大侠',10,'*') AS out_put; #从左边填充*直到指定长度10

mysql instr()函数

匿名 (未验证) 提交于 2019-12-02 22:06:11
解析:string2 的值要在string1中查找,是从start_position给出的数值(即:位置)开始在string1检索,检索第nth_appearance(几)次出现string2。 注:在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。 只检索一次 ,也就是说从字符的开始到字符的结尾就结束。 2)实例 格式一 1 select instr('helloworld','l') from dual; --返回结果:3 默认第一次出现“l”的位置 2 select instr('helloworld','lo') from dual; --返回结果:4 即:在“lo”中,“l”开始出现的位置 3 select instr('helloworld','wo') from dual; --返回结果:6 即“w”开始出现的位置 格式二 1 select instr('helloworld','l',2,2) from dual; --返回结果:4 也就是说:在"helloworld"的第2(e)号位置开始,查找第二次出现的“l”的位置 2 select instr('helloworld','l',3,2) from dual; --返回结果:4 也就是说:在"helloworld"的第3(l)号位置开始,查找第二次出现的“l”的位置 3

MySQL十大报错函数

匿名 (未验证) 提交于 2019-12-02 22:06:11
1.Floor() round() 遵循四舍五入把原值转化为指定小数位数,如:round(1.45,0) = 1;round(1.55,0)=2 floor()向下舍入为指定小数位数 如:floor(1.45,0)= 1;floor(1.55,0) = 1 ceiling()向上舍入为指定小数位数 如:ceiling(1.45,0) = 2;ceiling(1.55,0)=2 floor(x),返回小于或等于x的最大整数。 x表示concat(database(),rand(0)*2),rand(0)以0为随机种子产生0-1之间的随机数,*2产生0-2之间的随机数。 报错原因:主键重复,必需:count()、rand()、group by payload: id=1 and select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a); 2.ExtractValue() ExtractValue(xml_frag, xpath_expr) ExtractValue() 接受两个字符串参数,一个XML标记片段 xml_frag 和一个XPath表达式 xpath_expr (也称为 定位器); 它返回 CDATA

mysql - varchar类型与数字的比较和转换

匿名 (未验证) 提交于 2019-12-02 22:06:11
convert(对象, 目标类型)是mysql中常用的类型转换对象函数。eg: select convert(‘1.123’, decimal(10.4)) ,结果就是1.1230。对象可以用列名替代。 前两天发现,一个小伙伴之前设计表时把某个表数据类型设计成了varchar,实际用于存储Decimal。我需要用其数据进行过滤筛选 如果文章内容有问题,欢迎评论或与我进行讨论(请注明原因): mail: wgh0807@qq.com 微信: hello-wgh0807 qq: 490536401 使用convert或直接进行数字比较,在字符串与数字进行比较时,先对字符串进行了解析,遇到非数字类型(即字母等)会停止识别,然后将成功解析的部分(从左到右,异常为止)识别转换为数字。如 '1.56a8d7' -> 1.56 , 'abcdefg...'->0 。 若确定数据实际上是数字类型,可以使用数字进行比较,如 column>1.1 。 如果用到将数字存储为字符串,需要转换回数字或需要进行比较的操作,推荐使用convert方法。 CONVERT(column, decimal(10,5)) ,数据类型可以按照实际需要修改。 我一直习惯于在idea中Database console 下直接编写sql语句完成所有对数据库的操作,这次也是,我使用了以下sql进行查询: select *

MySQL数据库中字符串函数之left、right用法

匿名 (未验证) 提交于 2019-12-02 22:06:11
语法 LEFT(str,len) Returns the leftmost len characters from the string str, or NULL if any argument is NULL. 返回从字符串str最左边的len个字符,如果任一参数为null则返回null。 RIGHT(str,len) Returns the rightmost len characters from the string str, or NULL if any argument is NULL. 返回从字符串str最右边的len个字符,如果任一参数为null则返回null 实例 来源:博客园 作者: 黑夜的宠儿 链接:https://www.cnblogs.com/bkyqtr/p/11414390.html

MySQL substring_index函数

匿名 (未验证) 提交于 2019-12-02 22:06:11
substring_index(str,delim,count) 例子:str= www.wikibt.com 也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容 如:   substring_index(substring_index(str,'.',-2),'.',1); 来源:博客园 作者: 落日长烟 链接:https://www.cnblogs.com/cyfblogs/p/11406677.html

Mysql注入中的outfile、dumpfile、load_file函数详解

匿名 (未验证) 提交于 2019-12-02 22:02:20
在利用sql注入漏洞后期,最常用的就是通过mysql的file系列函数来进行读取敏感文件或者写入webshell,其中比较常用的函数有以下三个 into dumpfile() into outfile() load_file() 测试如下: 读写文件函数调用的限制 因为涉及到在服务器上写入文件,所以上述函数能否成功执行受到参数 secure_file_priv 的影响。官方文档中的描述如下: 翻译一下就是 其中当参数 secure_file_priv 为空时,对导入导出无限制 当值为一个指定的目录时,只能向指定的目录导入导出 当值被设置为NULL时,禁止导入导出功能 这个值可以通过命令 select @@secure_file_priv 查询。由于这个参数不能动态更改,只能在mysql的配置文件中进行修改,然后重启生效。 dumpfile与outfile的区别 导出数据库场景下的差异 select …… into outfile 先来看一下mysql官方文档里对于这两个函数的解释 其中有两个值得注意的坑点 outfile函数可以导出多行,而dumpfile只能导出一行数据 outfile函数在将数据写到文件里时有特殊的格式转换,而dumpfile则保持原数据格式 接下来通过导出测试看看这里面的细节 首先通过命令 select * from test into outfile '

Mysql

匿名 (未验证) 提交于 2019-12-02 22:02:20
一、UNION 操作符 描述 MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。 UNION 只会选取不同的值。请使用 UNION ALL 来选取重复的值! UNION 语句:用于将不同表中相同列中查询的数据展示出来;(不包括重复数据) UNION ALL 语句:用于将不同表中相同列中查询的数据展示出来;(包括重复数据) 使用形式如下: SELECT 列名称 FROM 表名称 UNION SELECT 列名称 FROM 表名称 ORDER BY 列名称; SELECT 列名称 FROM 表名称 UNION ALL SELECT 列名称 FROM 表名称 ORDER BY 列名称; 二、LIKE 子句 like 匹配/模糊匹配,会与 % 和 _ 结合使用。 '%a' //以a结尾的数据 'a%' //以a开头的数据 '%a%' //含有a的数据 '_a_' //三位且中间字母是a的 '_a' //两位且结尾字母是a的 'a_' //两位且开头字母是a的 三、ORDER BY 子句 使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 SELECT * from runoob_tbl ORDER BY submission_date ASC; 四、GROUP BY 语句 GROUP