数据查询语言DQL介绍及其应用:

查询是SQL语言的核心,SQL语言只提供唯一一个用于数据库查询的语句,即SELECT语句。用于表达SQL查询的SELECT语句是功能最强也是最复杂的SQL语句,它提供了很多选项和使用方法。SELECT语句的命令格式如下: SELECT查询语句是由七个子句构成,其中SELECT和FROM

 

查询是SQL语言的核心,SQL语言只提供唯一一个用于数据库查询的语句,即SELECT语句。用于表达SQL查询的SELECT语句是功能最强也是最复杂的SQL语句,它提供了很多选项和使用方法。SELECT语句的命令格式如下:

SELECT查询语句是由七个子句构成,其中SELECT和FROM子句是一个完整SELECT查询语句必须要有的,其它的子句可以根据具体需要任选。上述的每个子句功能说明如下:

(1)SELECT子句

列出所有要求SELECT语句进行检索的数据项,这些项可能取自数据库中关系表的列,也可以是SQL在执行查询时进行计算的表达式。这里的ALL和DISTINCT选项,表示查询出的结果中是否容许有内容重复的行出现,缺省时是ALL项,表示容许有重复的行出现,而*则表示查询出所指定关系表中所有的列。

(2)FROM子句

FROM子句列出包含所要查询的数据关系表。

(3)WHERE子句

WHERE子句告诉SQL只查询某些关系表中满足一定要求的行的数据,查询要求由WHERE子句中的查询条件确定。

(4)GROUP BY子句

GROUP BY子句指定当前查询是汇总查询,即不是对根据每行产生一个查询结果,而是对相似的行进行分组,然后再对每组产生一个汇总查询的结果。

(5)HAVING子句

HAVING子句告诉SQL只对由GROUP BY所得到的某些行组的结果进行过滤,选择出满足分组条件的分组。

(6)ORDER BY子句

ORDER BY子句确定是否将查询出的结果按一列或多列中的数据进行排序,缺省时是不排序的。

(7)INTO子句

INTO子句确定是否将查询出的结果存入一张新的关系表中,缺省时只将查询出现的结果显示在屏幕上。这是非标准SELECT语句中的子句,但目前绝大多数实际应用的SQL数据库系统的SQL语言提供了这一选项。

下面是一些使用SELECT查询语句进行数据查询的示例。

例1:列出销售额超过6000元的销售人员的姓名、销售目标和超过销售目标的销售额。

SELECT NAME,QUOTA,(SALES_QUOTA)

FROM SALESREPS

WHERE SALES>6000

例2:查出1999年最后一个季度的订单情况。

SELECT ORDER_NUM,ORDER_DATE,PRODUCT,AMOUNT

FROM ORDERS

WHERE ORDER_DATE BETWEEN "01-OCT-99" AND "31-DEC-99"

例3:查出名称是以ABC开头的产品订单情况。

SELECT ORDER_NUM,ORDER_DATE,PRODUCT,AMOUNT

FROM ORDERS

WHERE PRODUCT LIKE "ABC%"

例4:列出所有的销售处,按区域名字母顺序排列。

SELECT CITY,REGION

FROM OFFICE

ORDER BY REGION ASC

在这里ASC表示升序,如果表示降序可用DESC。

例5:列出每个销售人员以及他们工作的城市和区域的情况。

SELECT NAME,CITY,REGION

FROM SALESREPS,OFFICE

WHERE REP_OFFICE=OFFICE

例6:查出有多少销售员的销售额超过了其目标额,以及他们的销售额总和。

SELECT COUNT(NAME),SUM(SALES)

FROM SALESREPS

WHERE SALES>QUOTA

注意本例中使用了函数,与前面介绍的查询不同之处在于:它不仅仅是从数据库中查出某些数据,并且对查出的数据进行多种计算处理,并将结果作为查询结果输出。SQL语言提供了6种处理函数,帮助完成不同的处理工作。这6种函数是:

▲SUM(),用于计算表中某一列的总和。

▲AVG(),用于计算表中某一列的平均值。

▲MIN(),用于选择表中某一列的最小值。

▲MAX(),用于选择表中某一列的最大值。

▲COUNT(),用于计算表中某一列中值的个数。

▲COUNT(*),用于计算某张表的行数。

例7:对于每两个或更多的销售员的销售点,计算其中所有销售员的总销售员的总销售目标值和总销售员金额。

SELECT CITY,SUM(QUOTA),SUM(SQLESREPS.SALES)

FROM OFFICE,SALESREPS

GROUP BY CITY

HAVING COUNT(*)>=2

例8:列出哪些所有的销售员已销售了销售点指标50%的销售点和指标。

SELECT CITY,TARGET

FROM OFFICE

WHERE (0.5*TARGET)<ALL(SELECT SALES

FROM OFFICE

WHERE REP_OFFICE=OFFICE)

SELECT查询处理工作过程描述总结:

▲形成FROM子句所指定的目标表(表的乘积)。如果FROM子句仅指定一个表,则此表为目标表。

▲如果有WEHER子句,则将其搜索条件用于目标表中的每一行,保留使搜索条件为TRUE的行,剔除使搜索条件为FALSE或NULL的行。若WHERE子句中包含另一个SELECT查询语句,先去完成另一个SELECT查询语句操作,然后将其查询结果用到本次查询的搜索条件中,进行检测。

▲若有GROUP BY子句,则对目标表中所保留的行进行分组,以使得每组中的各行具有相同的分组列的列值。

▲若有HAVING子句,则将其搜索条件作用于每个行组,保留那些使搜索条件为TRUE的组,剔除使搜索条件为FALSE或NULL的行。若HAVING子句中包含另一个SELECT查询语句,先去完成另一个SELECT查询语句操作,然后将其查询结果用到本次查询的HAVING子句搜索条件中,进行检测。

▲对于所保留的每一行(或行组),计算由SELECT子句所指定的每项值,对于简单的列指定,取当前行(或行组)中该列的值;对于列函数,若有GROUP BY子句,则用当前行组作为参数;否则,用所有行作为其参数;剔除SELECT子句中没有指定的各列。本文来自编程入门网

▲若SELECT子句后选择了DISTINCE,则将所生成结果中的所有内容重复的行剔除掉。

▲若有ORDER BY子句,则按相应的排序设置对结果进行排序。

学习资料 数据查询语言DQL的更多相关文章

  1. 数据查询语言DQL 与 内置函数(聚合函数)

    数据查询语言DQL 从表中获取符合条件的数据 select select*from表的名字   查询表所有的数据.(select跟from必须一块用 成对出现的) * 表示所有字段,可以换成想要查询的 ...

  2. MySQL数据库笔记三:数据查询语言(DQL)与事务控制语言(TCL)

    五.数据查询语言(DQL) (重中之重) 完整语法格式: select 表达式1|字段,.... [from 表名 where 条件] [group by 列名] [having 条件] [order ...

  3. MySQL之数据查询语言(DQL)

    数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块: SELECT <字段> FROM <表名> WHERE <查询条件> - ...

  4. mysql数据查询语言DQL

    DB(database)数据库:存储数据的'仓库',保存了一系列有组织的数据 DBMS(Database Management System)数据库管理系统:用于创建或管理DB SQL(Structu ...

  5. 30443数据查询语言DQL

    5.4 SQL的数据查询功能 数据查询是数据库最常用的功能.在关系数据库中,查询操作是由SELECT语句来完成.其语法格式如下: SELECT column_expression FROM table ...

  6. SQL 复习二(数据查询语言)

    1.1 数据查询语言 DQL就是数据查询语言,数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端. 语法: SELECT selection_list /*要查询的列名称*/ FR ...

  7. Mysql基础3-数据操作语言DML-数据查询语言DQL

    主要: 数据操作语言DML 数据查询语言DQL 数据操作语言DML DML: Data Mutipulation Language 插入数据(增) 一般插入数据形式 1)形式1: insert [in ...

  8. 最近整理出了有关大数据,微服务,分布式,Java,Python,Web前端,产品运营,交互等1.7G的学习资料,有视频教程,源码,课件,工具,面试题等等。这里将珍藏多年的资源免费分享给各位小伙伴们

    大数据,微服务,分布式,Java,Python,Web前端,产品运营,交互 领取方式在篇尾!!! 基础篇.互联网架构,高级程序员必备视频,Linux系统.JVM.大型分布式电商项目实战视频...... ...

  9. 大数据-storm学习资料视频

    storm学习资料视频 https://pan.baidu.com/s/18iQPoVFNHF1NCRBhXsMcWQ

随机推荐

  1. 【Linux】系统 之 Load

    一.查看系统负荷 在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行).你在终端窗口键入uptime,系统会返回一行信息.这行信息的后半部分,显示"load ave ...

  2. 【wp之二 页面布局】

    1. panoramic全景视图 新建工程选择:Windows Phone Panorama Application 相当于用放大镜看报纸的感觉.用一张图片作为背景. 2.pivot透视视图

  3. MHI ,运动历史图像的的获取[下载自CSDN]

    #include "cv.h" #include "highgui.h" #include "stdlib.h" #include &quo ...

  4. [物理学与PDEs]第3章习题参考解答

    [物理学与PDEs]第3章习题1 只有一个非零分量的磁场 [物理学与PDEs]第3章习题2 仅受重力作用的定常不可压流理想流体沿沿流线的一个守恒量 [物理学与PDEs]第3章习题3电磁场的矢势在 Lo ...

  5. Javascript函数声明与函数表达式

    在定义函数时,我们一般使用下面这两种方法: 使用函数声明定义: function sum (a, b) { return a + b; } 使用函数表达式定义: var sum = function ...

  6. Android屏幕适配建议

    一.关于布局适配 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_parent . 3.能够使用权重的地方尽量使用权重(android:layout_weight) 4.如 ...

  7. Spring读取配置文件

    在spring中可以通过下面的方式将配置文件中的项注入到配置中 <bean class="org.springframework.beans.factory.config.Proper ...

  8. java反射机制详解 及 Method.invoke解释

    JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为ja ...

  9. Jmeter监控系统等资源,ServerAgent端口的修改

    默认情况下在下载的ServerAgent下,如果服务是windows系统,则直接启动"startAgent.bat"即可,如果是Linux系统,则直接启动"./start ...

  10. C++学习24 虚析构函数

    在C++中,构造函数用于在创建对象时进行初始化工作,不能声明为虚函数.因为在执行构造函数前对象尚未创建完成,虚函数表尚不存在,也没有指向虚函数表的指针,所以此时无法查询虚函数表,也就不知道要调用哪一个 ...