设为首页 加入收藏

TOP

SQL应用与开发:(七)数据操作·查·(一)常规型(一)
2015-07-24 10:14:54 来源: 作者: 【 】 浏览:1
Tags:SQL 应用 开发 数据 操作 · 常规

数据库是为了便于有效地管理信息而创建的,人们希望数据库可以随时提供所需要的数据信息。因此,对用户来说,数据查询是数据库最重要的功能。在数据库中创建了对象并且在基表中添加了数据后,用户便可以从数据库中检索特定信息。

1.常规型

常规型数据查询是通过SELECT语句来完成的。SELECT语句可以从数据库中按用户要求检索数据,并将查询结果以表格的形式返回。

1.1SELECT语句概述

SELECT子句是SQL编程人员最常用的语句之一,也是SQL标准中最灵活和应用最为广泛的语句之一。SELECT语句是一个查询表达式,它以关键字SELECT开头,并且包括大量构成该表达式的元素。SELECT语句可以从数据库中按用户的要求查询行,而且允许从一个表或多个表中选择满足给定条件的一个或者多个行或列,并将数据用用户规定的格式进行整理后返回给客户端。

SELECT语句可以精确地对数据库进行查找,并且SELECT语句的SQL语法显得直观、结构化。当然,SELECT语句也可以进行模糊查找。

由于SELECT语句的完整语句比较复杂,所以在这里只列举它的主要子句。SELECT语句的主要格式如下:

SELECT [ALL | DISTINCT ] { * | }

FROM [ {, }...]

[WHERE ]

[GROUP BY ]

[HAVING ]

[ORDER BY ]

其中,[ ]表示可选项,SELECT子句和FROM子句是必选的,其他子句都是可选的。其具体含义如下:

SELECT子句 [用来指定由查询返回的列。各列在SELECT子句中的顺序决定了它们在结果表中的顺序。]

FROM子句 [用来指定从中查询行的源表。]

WHERE子句 [用来指定限定返回的行的搜索条件。]

GROUP BY子句 [用来指定查询结果的分组条件,即归纳信息类型。]

HAVING子句 [用来指定组或聚合的搜索条件。]

ORDER BY子句 [用来指定结果集的排序方式。]

1.2使用SELECT子句

SELECT子句是查询的第一部分,在SELECT子句中指定所需列、列的顺序以及列名。SELECT子句一共有三种形式,分别为:

SELECT列 在该形式下能够获取列出的列,并按这些列在被列出的列表中的顺序放置这些列,还可以对列名进行重命名。(例如:

SELECT 客户姓名 AS NAME,客户地址 AS ADDRESS,联系电话 AS TELEPHONE_NUM

FROM 客户信息

SELECT *或SELECT 表名.* 在该形式下能够获取表中所有列,并且其放置顺序与表中的顺序相同。但是,不能再SQL语句中重新对列名命名。另外,在添加表中的列以外的其他列时,需要在星号"*"前输入表名,表名与星号之间用一个句点隔开。(例如:

SELECT *

FROM 业务员信息

SELECT DISTINCT列在该形式下,除了完成SELECT列形式下的功能外,还可以去除结果中的而重复行。(例如:

SELECT DISTINCT 客户地址

FROM 客户信息

1.3使用WHERE子句

用户在查询数据库时往往不需要检索全部的数据,而只需要查询其中一部分满足给定条件的信息,此时需要在SELECT语句中加入条件,以选择其中的部分记录。这就用到WHERE子句来指定查询返回行的条件,WHERE子句用于选取需要检索的数据行。带WHERE子句的SELECT语句的基本格式如下:

SELECT

FROM

WHERE

其中,为指定查询时要返回的行记录所应满足的条件,该条件由表达式及逻辑运算符等组成。

WHERE子句获取FROM子句返回的值,每一行都要根据搜索条件进行评估。若评估为真,则作为查询结果的一部分返回;若评估如果为未知或假,则这些行不包括在查询结果中。而评估的关键是所指定的搜索条件。

1.3.1WHERE子句中比较运算符的使用:

其语法格式:

SELECT

FROM

WHERE

举例来说:

SELECT 供应商名称,供应商所在城市,联系人姓名,联系电话

FROM 供应商名称

WHERE 供应商所在城市='北京市'

1.3.2WHERE子句中逻辑运算符的使用:

其格式如下:

SELECT

FROM

WHERE {NOT | }

其中,表示逻辑运算符,它可以是AND、OR两个逻辑表达式中的任意一个,用到NOT时,要将NOT放在表达式的前面。

举例来说:

SELECT 操作人员姓名,入库权限,出库权限,联系电话

FROM 操作人员信息

WHERE 入库人员=1 AND 出库人员=1

1.3.3WHERE子句中IN条件的使用:

SELECT

FROM

WHERE [NOT] IN

其中,[NOT]为可选项,表示值列表。

在WHERE子句中使用IN或NOT IN关键字指定条件时,IN关键字用来显示一个组中的成员关系。当有一个满足条件的离散值列表时,就会用到IN关键字。

有效值列表中不能包含NULL值得数据,因为在WHERE子句中使用IN关键字作为指定条件时不允许数据中有NULL值。

举例来说:

SELECT 客户姓名,客户地址,联系电话

FROM 客户信息

WHERE 客户地址 IN ('北京市宣武区','北京市海淀区')

1.3.4WHERE子句中LIKE条件的使用:

其格式如下:

SELECT

FROM

WHERE [NOT] LIKE 'string'

其中,[NOT]为可选项,'string'表示用来进行比较的字符串。利用WHERE子句进行查询的过程中,为了实现对字符串的模糊匹配,可以在string字符串中使用通配符。

举例来说:

SELECT 商品名称,供应商编号,产地,单价

FROM 商品信息

WHERE 商品名称 LIKE '[A-M]%'

1.3.5WHERE子句中IS NULL的使用:

其格式如下:

SELECT

FROM

WHERE IS [NOT] NULL

其中,表示列名,[NOT]为可选项。

举例来说:

SELECT 消费者姓名,消费者消费金额,消费者所在城市,联系电话

FROM 顾客信息

WHERE 联系电话 IS NULL

1.4使用ORDER BY子句

SELECT语句获得的数据一班没有任何的按一定的规律进行排序。也就是说,这一次提取的数据组的排列顺序与下次提取的数据组的排序顺序可以截然不同。为了方便阅读和使用,最好对查询结果进行排序。SQL语言中,ORDER BY子句用来指定查询结果是按照升序(使用关键字ASC)还是降序(使用关键字DESC)进行排序。ORDER BY子句的基本语法格式为:

SELECT

FROM

ORDER BY[{ []ASC | DESC}...]

其中,表示用于排序的列的列名或列的别名和表达式,或者指定为代表选择列表内的名称、别名或表达式的位置的负整数。如果需按多列进行排序,则根据ORDER BY后各列的次序先后决定排序的优先级;ASC指定查询结果按照升序进行排序,DESC指定查询结果按照降序进行排序。

ORDER BY子句是一个可选的子句。在使用ORDER BY子句时,只需指定一列或多列以及可选关键字ASC或DESC(没列只使用一个关键字)。如果没有指定关键字,那么ASC为默认的关键字。

举例来说,从数据库“ 销售管理系统”中,以列“出库单编号”、“客户编号”、“库存编号”和“出库日期”的形式返回“出库日期”的降序排序。

SELECT 出库单编号,客户编号,库存编号,出库日期

FROM 出库

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇关于sqlplus用法的一些总结 下一篇SQLServer聚集索引在函数中进行转..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解c语言指针和 (2025-12-27 01:19:11)
·为什么C标准库没有链 (2025-12-27 01:19:08)
·玩转C语言和数据结构 (2025-12-27 01:19:05)
·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)