目录函数[code]在Mysql中函数是一组预定义的指令,用于执行特定的操纵并返回结果,可类比Java中的方法.在SQL中函数根据其作用范围和返回结果方法分为两大类:单行函数,分组函数[/code]单行函数[code]单行函数的特点为对一行数据举行操纵,并只返回一种结果.单行函数通常用于处理单个记录数据[/code]
字符函数
eg:查询员工姓名,姓名字数。 [code]SELECT emplyee_name,CHARACTER_LENGTH(emplyee_name) FROM emplyees;[/code]
eg:将字符串'aaa','bbb','ccc'举行拼接。 [code]SELECT CONCAT('aaa','bbb','ccc');[/code]
eg::查询员工邮箱,并转为大写显示 [code]SELECT UPPER(email) FROM emplyees;[/code]
eg:提取hello world中的hello [code]SELECT substr('hello world',1,5);`[/code]
eg:查询员工电话号码,要求去除中心的横线 ’-’ [code]SELECT REPLACE(phone_number, '-', '') FROM emplyees;[/code]数学函数[code]ROUND(X):[/code]对浮点数X举行四舍五入 eg:查询员工工资,和其四舍五入的整数值 [code]SELECT salary,ROUND(salary) FROM employees;[/code][code]CEIL(X):[/code]对浮点数X向上取整,即返回≥X的最小整数 eg:查询员工工资,并且向上取整 [code]SELECT salary,CEIL(salary) FROM employees;[/code][code]FLOOR(X):[/code]对浮点数X向下取整,即返回≤X的最大整数 eg:查询员工工资,并且向下取整 [code]SELECT salary,FLOOR(salary) FROM employees;[/code][code]TRUNCATE(X,length):[/code]对浮点数的小数部分举行截取→常用于举行保留小数操纵 [code]SELECT TRUNCATE(1.9999,2);->1.99[/code]
日期函数
eg:查询员工姓名、入职时间,入职时间按照xxxx年xx月xx日输出 [code]SELECT DATE_FORMAT(hiredate,'%Y年%m月%d日') FROM employees;[/code]流程控制函数[code]流程控制函数在SQL中根据条件选择性地返回差别的结果,其允许在查询过程中实现条件逻辑[/code]
eg: 如果查询的年龄大于18则返回adult,否则返回minor [code]SELECT age,IF(age>=18,'adult','minor');[/code]
eg:根据查询的部门号返回部门名称 [code]SELECT department_id CASE department_id WHEN 1 THEN '司理办公室' WHEN 2 THEN '财务部' WHEN 3 THEN '后勤部' ELSE 'unkown' END AS department_name FROM departments;[/code]
eg:查询员工姓名以及工资,工资按照一定规则发放,入职时间在2015-01-01之前的员工工资*2,入职时间在2018-01-01之前的员工工资*1.5,其他不变 [code]SELECT employee_name,hiredate,salary 原工资, CASE WHEN hiredate<'2015-01-01' THEN salary*2 WHEN hiredate<'2018-01-01' THEN salary*1.3 ELSE salary END AS 新工资 FROM employees;[/code]分组函数[code]分组函数也称为聚合函数,用于对一组值举行操纵,并返回单个布局[/code]
eg:查询所有员工工资总和、均匀值、最大值、最小值、员工个数; [code]SELECT SUM(salary),AVG(salary),MAX(salary),MIN(salary),COUNT(*) FROM employees;[/code]分组查询[code]分组查询可根据某个或某些列对数据举行分组[/code]按单个字段分组
eg:查询每个部门的最高工资 [code]SELECT MAX(salary) FROM employees GROUP BY department_id;[/code]在分组前举行条件筛选[code]在GROUP BY语句之间利用 WHERE语句对查询结果降序筛选[/code]eg:查询每个部门入职时间在2010-01-01之后,并且工资最高的员工信息 [code]SELECT * FROM employees WHERE hiredate >'2010-01-01' GROUP BY department_id;[/code]在分组之后举行条件筛选通过[code]HAVING[/code]语句可以在[code]GRUOP BY[/code]语句之后举行条件筛选 eg:查询员工人数大于120的部门 [code]SELECT * FROM employees GROUP BY department_id HAVING COUNT(*)>120;[/code]按多字段分组
eg:查询每个部门,男女员工的均匀工资 [code]SELECT department_id,sex,AVG(salary) AS 均匀工资 FROM employees GROUP BY department_id,sex;[/code]连接查询[code]连接查询是SQL中十分告急的知识点,就有”连接不会,彻夜也白搭”,连接查询也称为多表查询,用于将两个以上的表的数据基于某些干系条件组合在一起,通过连接查询,可以从表中提取数据,天生一个新的结果集[/code]
内连接(INNER JOIN)[code]内连接用于返回两个表中所有满足连接条件的所有行数据,内连接可分为:等值连接,非等值连接,自连接[/code]等值连接[code]等值连接是一种常见的连接方式,其基于两表中某一列的相称条件举行连接[/code]其语法布局如下: [code]SELECT colum1,colum2,...., FROM table1 INNER JOIN table2 ON table1.colum = table.colum;[/code]eg:查询员工姓名以及所在的部门名称 [code]SELECT employee_name AS 员工名,department_name AS 部门名 FROM employees e INNER JOIN departments d ON e.department_id=d.department_id;[/code]非等值连接[code]非等值连接基于两表中某一列的不等条件举行连接.如大于,小于,不即是等等[/code]语法布局: [code]SELECT colum1,colum2,...., FROM table1 INNER JOIN ON table1.colum <operator> table2.colum;[/code]此中[code]operator[/code]可以是[code]>,<,≥,≤,≠,BETWEEN…AND[/code]等等; eg:查询员工工资及工资品级 [code]SELECT e.salary,j.grade_level FROM employees e INNER JOIN job_grades j ON e.salary BETWEEN j.lowest_sal AND j.higest_sal;[/code]自连接[code]自连接是指同一个表的连接.这种连接通常用于处理表中有条理布局或函数递归关系的数据[/code]eg:查询员工姓名以及对应的直系领导 [code]SELECT t1.employee_name AS 员工,t2.employee_name AS 领导 FROM employees t1 INNER JOIN employees t2 ON t1.manager_id=t2.employee_id;[/code]外连接[code]外连接用于返回主表中满足连接条件的行,同时保留另一个表中没有匹配的行[/code]左/右外连接
语法布局: [code]SELECT colum1,colum2..., FROM table1 [LEFT|RIGHT] JOIN ON [连接条件];[/code]eg:查询员工姓名以及所在的部门名称,没有部门信息的员工也要查询出来 [code]SELECT employee_name AS 员工姓名,department_name AS 部门名称 FROM employees e LEFT JOIN departments d ON e.department_id=d.department_id;[/code]到此这篇关于Mysql中常用函数 分组,连接查询 的文章就先容到这了,更多干系Mysql分组,连接查询 内容请搜刮脚本之家从前的文章或继续浏览下面的干系文章希望大家以后多多支持脚本之家! 来源:https://www.jb51.net/database/328980agw.htm 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )
GMT+8, 2025-4-4 23:13 , Processed in 0.023760 second(s), 17 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.