用途
LIKE用于模糊匹配查询,结合%与_一起使用,其中%匹配大于等于1个字符,_只匹配一个字符
使用!%‘ escape ’! 或者 !_‘ escape ’! 分别转义 %和 _;
语法
Select
columns
From
tables
Where
column1
Like
‘%_value_%’;
Select
*
From
suppliers
Where
supplier_name
Like
‘h% ! %’
Escape
‘ ! ’;
!是转义符
查询名称是以H开头,_结尾,H与_之间有任意字符的供应商,如Hello_
Select
*
From
suppliers
Where
supplier_name
Like
'H%!_'
Escape
'!'
;
查询名称包含cro的供应商(名称中cro前后可能有任意字符,也可能没有字符)
Select
*
From
suppliers
Where
supplier_name
Like
'%cro%'
;
用途
EXISTS 判断子查询是否有数据返回,有则为TURE, 否则为FALSE,EXISTS也可用于INSERT、UPDATE、DELETE;
语法
SELECT columns FROM tables WHERE EXISTS ( subquery );
Select
*
From
suppliers sp
Where
Exists
(
Select
*
From
orders od
Where
od.supplier_id = sp.supplier_id);
里面()查询的有结果返回就为真
Delete
From
suppliers sp
Where
Not
Exists
(
Select
*
From
orders od
Where
od.supplier_id = sp.supplier_id);
oderid 在supplier表找不到对应的字段
用途
GROUP BY用于将结果集按指定列分组,并进行聚合;
语法
SELECT column1, column2, ... column_n, aggregate_function (expression)
FROM tables
WHERE predicates
GROUP BY column1, column2, ... column_n;
aggregate_function 是汇聚函数,通常为SUM, COUNT, MIN, MAX
查询每个部门及部门总工资
Select
department_name,
Sum
(salary)
As
total_salary
From
employees_v
Group
By
department_name;
-----------------------------------------------------------------------------------------------------------
Group by 后面跟的,必须是select后面的第一个列或多列,但不包括使用了函数的列。如上题,就一定要是department_name,不可以是total_salary。
而且group by 后面也不能跟聚集函数。如group by sum(salary)…
用途
HAVING从句与GROUP BY从句一起使用,用于聚合条件的判断,如COUNT(*)>1,因聚合条件不能在WHERE指明;
语法
SELECT column1, column2, ... column_n, aggregate_function (expression)
FROM tables
WHERE predicates
GROUP BY column1, column2, ... column_n;
HAVING aggregate_condition1 ... condition_n;
aggregate_function 是汇聚函数,通常为SUM, COUNT, MIN, MAX,AVG(平均)
查询总工资大于35000的部门
Select
department_name,
Sum
(salary)
As
total_salary
From
employees_v
Group
By
department_name
Having
Sum
(salary) >
35000
;
-----------------------------------------------------------------------------------------------------------------
查询有最高工资为10000的部门,及最高员工的工资
Select
department_name,
Max
(salary)
As
highest_salary
From
employees_v
Group
By
department_name
Having
Max
(salary) =
10000
having 后面跟聚合函数
直接聚合
COUNT、SUM、MIN、MAX、AVG可以不和GROUP BY一起使用,直接对查询数据直接进行聚合,但SELECT不能包含其他列。
如果还要查找其它列,就一定要用group by
示例
查询员工总数
Select Count(*) From employees
查询员工平均工资
Select avg(salary) From employees
查询员工最高工资
Select max(salary) From employees
查询员工最低工资
Select min(salary) From employees
查询员工工资总数
Select sum(salary) From employees
用了聚集函数,而且查询的不止一个列的时候就一定要用
group by
,而且要按第一个字段分组。
分享到:
相关推荐
在Java的Hibernate框架中,有时候我们需要执行自定义的SQL查询以获取特定的数据,这时就可以使用SQLQuery接口。本文将深入探讨Hibernate如何通过SQLQuery接口执行原生SQL查询,并展示如何处理查询结果。 一、创建...
SQLQuery.sql
SQLQuery4.sql
SQLQuery2.sql
Native SQL 查询 (使用 SQLQuery) 在 Hibernate 中,使用 SQLQuery 可以执行 Native SQL 查询,控制查询的执行是通过 SQLQuery 接口进行的,通过执行 Session.createSQLQuery() 获取这个接口。下面将详细介绍如何...
SQLQuery3.sql
SQLQuery17.sql
SQLQuery1.sql
### 关于SQLQuery读取大数据量的问题及解决方法 #### SQLQuery概述 SQLQuery是一种用于在编程语言中执行SQL查询的技术。它允许开发者通过编写SQL语句直接与数据库交互,从而实现灵活的数据检索、更新等功能。然而,...
我自己写的小工具,sqlquery(全能数据库查询器)1.0版,能够查询SqlServer,mysql,access,sqlite,excel等数据库,并能导出结果集为excel,是玩数据库必备软件,目前还没有可视化修改表结构的功能,等有时间了会在...
标题中的"Sql.query.stress"指的是SQL Query Stress,这是一款专为SQL Server设计的并发压力测试工具。在数据库性能优化和系统稳定性验证中,这样的工具是至关重要的。它允许用户模拟大量的并发查询来测试SQL Server...