`
zhhaojie
  • 浏览: 28590 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

sql Query

    博客分类:
  • DB
阅读更多
用途
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 ,而且要按第一个字段分组。

分享到:
评论

相关推荐

    Hibernate SQLQuery执行原生SQL.docx

    在Java的Hibernate框架中,有时候我们需要执行自定义的SQL查询以获取特定的数据,这时就可以使用SQLQuery接口。本文将深入探讨Hibernate如何通过SQLQuery接口执行原生SQL查询,并展示如何处理查询结果。 一、创建...

    SQLQuery.sql

    SQLQuery.sql

    SQLQuery4.sql

    SQLQuery4.sql

    SQLQuery2.sql

    SQLQuery2.sql

    Native SQL查询 (使用SQLQuery).doc

    Native SQL 查询 (使用 SQLQuery) 在 Hibernate 中,使用 SQLQuery 可以执行 Native SQL 查询,控制查询的执行是通过 SQLQuery 接口进行的,通过执行 Session.createSQLQuery() 获取这个接口。下面将详细介绍如何...

    SQLQuery3.sql

    SQLQuery3.sql

    SQLQuery17.sql

    SQLQuery17.sql

    SQLQuery1.sql

    SQLQuery1.sql

    关于sqlQuery读取数据问题

    ### 关于SQLQuery读取大数据量的问题及解决方法 #### SQLQuery概述 SQLQuery是一种用于在编程语言中执行SQL查询的技术。它允许开发者通过编写SQL语句直接与数据库交互,从而实现灵活的数据检索、更新等功能。然而,...

    sqlquery(全能数据库查询器).rar

    我自己写的小工具,sqlquery(全能数据库查询器)1.0版,能够查询SqlServer,mysql,access,sqlite,excel等数据库,并能导出结果集为excel,是玩数据库必备软件,目前还没有可视化修改表结构的功能,等有时间了会在...

    Sql。query。stress

    标题中的"Sql.query.stress"指的是SQL Query Stress,这是一款专为SQL Server设计的并发压力测试工具。在数据库性能优化和系统稳定性验证中,这样的工具是至关重要的。它允许用户模拟大量的并发查询来测试SQL Server...

Global site tag (gtag.js) - Google Analytics