- 16
- 0
- 约9.78千字
- 约 21页
- 2017-07-09 发布于河南
- 举报
第4章 数据库的查询
第4章 数据库的查询 数据库检索速度的提高是数据库技术发展的重要标志之一。在数据库的发展过程中,数据检索曾经是一个非常困难的事情,直到使用了SQL语言之后,数据库的检索才变得相对简单。对于使用SQL语言的数据库,检索数据都要使用SELECT语句。使用SELECT语句,既可以完成简单的单表查询、联合查询,也可以完成复杂的联接查询、嵌套查询。下面从SELECT的语句结构开始介绍本章的内容。 4.1 SELECT语句结构 SELECT语句能够从数据库中检索出符合用户需求的数据,并将结果以表格的形式返回,是SQL Server中使用最频繁的语句之一。它功能强大,所以也有较多的子句,包含主要子句的基本语法格式如下: SELECT 列名1 [ ,列名2 ]... [ INTO 新表名 ] FROM 表名1 [ ,表名2 ]... [ WHERE 条件 ] [ GROUP BY 列名列表 ] [ HAVING 条件 ] [ ORDER BY 列名列表 [ASC | DESC] ] 其中,用[ ]表示可选项。SELECT语句是比较复杂的语句,上述结构还不能完全说明其用法,因此将把它拆分为若干部分详细讲述。 SELECT语句至少包含两个子句:SELECT和FROM,SELECT子句指定要查询的特定表中的列,FROM子句指定查询的表。WHERE子句指定查询的条件,GROUP BY子句用于对查询结果进行分组,HAVING子句指定分组的条件,ORDER BY子句用于对查询结果进行排序。 4.2 基本子句查询 4.2.1 SELECT子句 SELECT子句用于指定要返回的列,其完整的语法如下: SELECT [ ALL│DISTINCT ] [ TOP n [PERCENT][WITH TIES]] 列名 列名::= { * │{ 表名│视图名│表的别名 }.* │ { 列名│表达式│IDENTITYCOL│ROWGUIDCOL } [[AS] 别名] │别名=表达式 } [ ,...n ] 其中,用 表示在实际编写语句时可以用相应的内容代替,用[,…n]表示重复前面的内容,用{ }表示是必选的,用A│B表示A和B只能选择一个。各参数说明如表4-1所示。 表4.1 SELECT子句参数 4.2 基本子句查询 4.2.1 SELECT子句 2. 使用DISRINCT关键字消除重复记录 【例4.3】 查询进货表中的所有的生产厂商,去掉重复值 3. 使用TOP n 指定返回查询结果的前n行记录 【例4.4】 查询进货表中商品名称、单价和数量的前4条记录 4. 使用列别名改变查询结果中的列名 【例4.5】 使用列的别名,查询员工表中所有记录的员工编号(别名为number),姓名(别名为name)和电话(别名为telephone) 5. 使用列表达式 在SELECT子句中可以使用算术运算符对数字型数据列进行加(+)、减(-)、乘(*)、除(/)和取摸(%)运算,构造列表达式,获取经过计算的查询结果。 【例4.6】 查询各件商品的进货总金额 4.2 基本子句查询 4.2.2 FROM子句 只要SELECT子句有要查询的列,就必须使用FROM子句指定进行查询的单个或者多个表。此外,SELECT语句要查询的数据源除了表以外还可以是视图,视图相当于一个临时表,其语法格式如下: FROM { 表名|视图名 } [ ,...n ] 当有多个数据源时,可以使用逗号“,”分隔,但是最多只能有16个数据源。数据源也可以像列一样指定别名,该别名只在当前的SELECT语句中起作用,方法为:数据源名 AS 别名,或者数据源名 别名。指定别名的好处在于以较短的名字代替原本见名知意的长名。 【例4.7】 在Employees表中查询姓名为王峰的员工的联系电话 4.2 基本子句查询 4.2.3 WHERE子句 WHERE子句指定查询的条件,限制返回的数据行。其语法格式如下: WHERE 指定条件 WHERE子句用于指定搜索条件,过滤不符合查询条件的数据记录,使用比较灵活且复杂。可以使用的条件包括比较运算、逻辑运算、范围、模糊匹配以及未知值等。表4.2列出了过滤的类型和用于过滤数据的相应搜索条件。 表4.2 过滤的类型与相应搜索条件 【例4.8】 查询笔记本电脑的进货信息 【注意】 数据类型为char、nchar、varchar、nvarchar、text、datetime和smalldatetime的数据,引用时要用单引号括起来。 【例4.9】 查询在2005年1月1日以前销售的商
原创力文档

文档评论(0)