版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 SQL Server 2005数据库应用技术数据库应用技术 第五章第五章 数据库的数据查询数据库的数据查询 SQL Server 2005数据库应用技术数据库应用技术 技能目标技能目标 在销售管理系统数据库中能根据按照指定的要求灵活、在销售管理系统数据库中能根据按照指定的要求灵活、 快速地查询相关信息。快速地查询相关信息。 SQL Server 2005数据库应用技术数据库应用技术 知识目标知识目标 u掌握掌握SELECTSELECT语句语法格式;语句语法格式; u掌握最基本的查询技术;掌握最基本的查询技术; u掌握条件查询技术;掌握多重条件查询技术;掌握条件查询技术;掌握多重条件查询技术;
2、 u掌握连接查询技术;掌握嵌套查询。掌握连接查询技术;掌握嵌套查询。 SQL Server 2005数据库应用技术数据库应用技术 SELECTSELECT语句的语法格式语句的语法格式 SELECT SELECT INTO INTO FROM FROM 数据源数据源或视图或视图列表列表 WHERE WHERE GROUP BY GROUP BY HAVING HAVING ORDER BY ORDER BY ASC | DESC ASC | DESC COMPUTE COMPUTE 行聚合函数名行聚合函数名( (表达式表达式),.n ),.n BY BY 表达式表达式 ,.n ,.n SQL S
3、erver 2005数据库应用技术数据库应用技术 SELECTSELECT语句各子句的功能语句各子句的功能 (1 1)SELECTSELECT子句:指定查询返回的列。子句:指定查询返回的列。 (2 2)INTOINTO子句:将检索结果存储到新表或视图中。子句:将检索结果存储到新表或视图中。 (3 3)FROMFROM子句:用于指定查询列所在的表和视图。子句:用于指定查询列所在的表和视图。 (4 4)WHEREWHERE子句:指定用于限制返回的行的搜索条件。子句:指定用于限制返回的行的搜索条件。 (4 4)GROUP BYGROUP BY子句:指定用来放置输出行的组。并且如果子句:指定用来放置输
4、出行的组。并且如果 SELECT SELECT 子子 句句 中包含聚合函数,则计算每组的汇总值。中包含聚合函数,则计算每组的汇总值。 (5 5)HAVINGHAVING子句:指定组或聚合的搜索条件。子句:指定组或聚合的搜索条件。HAVING HAVING 通常与通常与 GROUP GROUP BY BY 子句一起使用。子句一起使用。 (6 6)ORDER BYORDER BY子句:指定结果集的排序。子句:指定结果集的排序。 (7 7)COMPUTECOMPUTE字句:字句:用于对结果集进行分组并对每一组数据进行汇总用于对结果集进行分组并对每一组数据进行汇总 计算。计算。 SQL Server
5、2005数据库应用技术数据库应用技术 SELECT SELECT 语句的执行方式语句的执行方式 SQL Server2005 SQL Server2005 提供了查询编辑器,用于编辑和运行提供了查询编辑器,用于编辑和运行 查询代码。查询代码。 【例】查询所有员工的信息。【例】查询所有员工的信息。 操作的具体步骤如下。操作的具体步骤如下。 (1)启动)启动SQL Server Management Studio。 (2)在【对象资源管理器】中,单击工具栏的【新建查询】按钮,)在【对象资源管理器】中,单击工具栏的【新建查询】按钮, 打开查询编辑器。打开查询编辑器。 (3)在查询编辑器中,输入如下代
6、码。)在查询编辑器中,输入如下代码。 SELECT * FROM employee (4)单击【工具栏】的按钮,进行语法分析。在【结果】窗体中出)单击【工具栏】的按钮,进行语法分析。在【结果】窗体中出 现现“命令已成功完成命令已成功完成”的消息,表示当前的查询语句没有语法错误。的消息,表示当前的查询语句没有语法错误。 (5)单击按钮,在当前数据库中执行查询语句。)单击按钮,在当前数据库中执行查询语句。 SQL Server 2005数据库应用技术数据库应用技术 简单查询简单查询-SELECT -SELECT 子句子句 1 1、查询所有的列(使用、查询所有的列(使用* *) 【例】从商品表中查询
7、所有商品的信息【例】从商品表中查询所有商品的信息 。 2 2、查询指定的列、查询指定的列 【例】从客户表中检索所有客户的公司名称、联系人姓名和地址。【例】从客户表中检索所有客户的公司名称、联系人姓名和地址。 3 3、使用、使用TOP TOP 关键字限制返回行数关键字限制返回行数 【例】检索客户表中前【例】检索客户表中前5位客户的公司名称、联系人姓名和地址。位客户的公司名称、联系人姓名和地址。 4 4、使用、使用DISTINCT DISTINCT 关键字过滤重复行关键字过滤重复行 【例】从员工表中查询所有员工的部门信息,并消去重复记录。【例】从员工表中查询所有员工的部门信息,并消去重复记录。 S
8、QL Server 2005数据库应用技术数据库应用技术 简单查询简单查询-SELECT -SELECT 子句(续)子句(续) 5 5、更改列标题、更改列标题 方法:方法: u采用采用“列标题列标题=列名列名”的格式的格式 u采用采用“列名列名 列标题列标题”的格式的格式 u采用采用“列名列名 as 列标题列标题”的格式的格式 【例】查询每个员工的姓名和性别,并在每人的姓名标题上【例】查询每个员工的姓名和性别,并在每人的姓名标题上 显示显示“员工姓名员工姓名”。 【练习】使用其他两种方法【练习】使用其他两种方法 SQL Server 2005数据库应用技术数据库应用技术 简单查询简单查询-SE
9、LECT -SELECT 子句(续)子句(续) 6 6、使用计算列、使用计算列 【例】查询所有员工的工资在提高【例】查询所有员工的工资在提高10%后信息,将提高后的工资列后信息,将提高后的工资列 标题为标题为“提高后工资提高后工资”。 SQL Server 2005数据库应用技术数据库应用技术 简单查询简单查询- INTO - INTO 子句子句 INTO INTO 子句用于将查询的结果插入新表中,其语法格式子句用于将查询的结果插入新表中,其语法格式 如下。如下。 INTO INTO 新表名新表名 【例】使用【例】使用INTO子句创建一个包含员工姓名和工资,并命名为子句创建一个包含员工姓名和工
10、资,并命名为 new_employee的新表。的新表。 USE CompanySales GO SELECT EmployeeName,Salary INTO new_employee FROM employee GO SQL Server 2005数据库应用技术数据库应用技术 简单查询简单查询- WHERE- WHERE子句子句 使用使用WHEREWHERE子句的目的是为了从表格的数据集中过滤子句的目的是为了从表格的数据集中过滤 出符合条件的行。出符合条件的行。 其语法格式如下其语法格式如下: : SELECT INTO FROM WHERE SQL Server 2005数据库应用技术数据
11、库应用技术 简单查询简单查询- WHERE- WHERE子句(续)子句(续) 1 1、使用算术表达式、使用算术表达式 比较运算符包含多个,例如比较运算符包含多个,例如 、 =、 、!=!=、!、! 等,等, 其中其中、!=!=均表示不等于,均表示不等于,!表示不大于。表示不大于。 【例】查询员工【例】查询员工“蔡慧敏蔡慧敏”的工资。的工资。 【例】【例】 在在CompanySales数据库的员工表(数据库的员工表(employee)中,查询)中,查询 工资大于工资大于3000元的员工信息元的员工信息 2 2、使用逻辑表达式、使用逻辑表达式 表达式表达式 ANDAND或或OR OR 表达式表达式
12、 或:或:NOT NOT 表达式表达式 【例】在【例】在CompanySales数据库的员工表(数据库的员工表(employee)中,查询)中,查询 工资在工资在3400元以下的女性员工姓名和工资信息。元以下的女性员工姓名和工资信息。 SQL Server 2005数据库应用技术数据库应用技术 3 3、使用搜索范围运算符、使用搜索范围运算符 使用关键字使用关键字Betweenand,即查询介于两个值之间的记录信息。,即查询介于两个值之间的记录信息。 语法格式如下:语法格式如下: 列名列名 BetweenBetween【NotNot Between Between】 起始值起始值 And And
13、 终止值终止值 4 4、使用、使用ININ关键字关键字 IN关键字给出表达式的取值范围。如果字段取值等于列表中某个关键字给出表达式的取值范围。如果字段取值等于列表中某个 取值,则运算结果为取值,则运算结果为TRUE,否则运算结果为,否则运算结果为FALSE,并显示相,并显示相 应的记录。语法:应的记录。语法: 列名列名 NOT IN (NOT IN (值值1 , 1 , 值值2 ,2 ,值值n)n) 【例】在【例】在CompanySales数据库的销售订单表(数据库的销售订单表(Sell_order)中,)中, 查询员工编号为查询员工编号为1、5和和7的员工接受订单信息。的员工接受订单信息。
14、SQL Server 2005数据库应用技术数据库应用技术 简单查询简单查询- WHERE- WHERE子句(续)子句(续) 5 5、使用模糊匹配、使用模糊匹配 LIKE子句格式如下:子句格式如下: 列名列名 NOT LIKE NOT LIKE 通配符:通配符: % _(下划线下划线) 【例】找出所有姓【例】找出所有姓“章章”的员工信息。的员工信息。 【例】找出所有不姓【例】找出所有不姓“李李”的员工信息。的员工信息。 6 6、空或非空性、空或非空性 空和非空的判断准则是空和非空的判断准则是IS NULLIS NULL和和IS NOT NULLIS NOT NULL。 【例】在销售管理数据库中
15、,查找目前有哪些主管位置是为不空。【例】在销售管理数据库中,查找目前有哪些主管位置是为不空。 SQL Server 2005数据库应用技术数据库应用技术 简单查询简单查询- ORDER BY- ORDER BY子句子句 通常查询结果集中的记录的显示顺序是它们在表中的通常查询结果集中的记录的显示顺序是它们在表中的 顺序,但有时候用户希望按照表中某个字段的升序或者降顺序,但有时候用户希望按照表中某个字段的升序或者降 序显示。序显示。 语法格式:语法格式: ORDER BY 列名列名1 ASC | DESC ,列名列名2 ASC | DESC,n 【例】按工资降序显示员工的姓名和工资,工资相同时按姓
16、名升序【例】按工资降序显示员工的姓名和工资,工资相同时按姓名升序 排序排序 。 USE CompanySales GO SELECT * FROM employee SQL Server 2005数据库应用技术数据库应用技术 使用聚合函数使用聚合函数 uAVGAVG函数函数 uSUMSUM函数函数 uMAXMAX函数函数 uMINMIN函数函数 uCOUNTCOUNT函数函数 SQL Server 2005数据库应用技术数据库应用技术 使用聚合函数(续)使用聚合函数(续) 1 1求和函数求和函数SUMSUM与求平均值函数与求平均值函数AVGAVG 它们只能用于数值型字段,而且忽略列值为它们只能
17、用于数值型字段,而且忽略列值为NULLNULL的记录。的记录。 2 2最大值函数最大值函数MAXMAX与最小值函数与最小值函数MINMIN 忽略列值为忽略列值为NULLNULL的记录,列表达式中的列可以是任何可排序的的记录,列表达式中的列可以是任何可排序的 类型。类型。 3 3计数函数计数函数COUNTCOUNT 用于统计查询结果集中记录的个数,用于统计查询结果集中记录的个数,“* *”用于统计所有记录的用于统计所有记录的 个数,个数,ALLALL用于统计指定列的列值非空的记录个数,用于统计指定列的列值非空的记录个数,DISTINCTDISTINCT用于统用于统 计指定列的列值非空且不重复的记
18、录个数。默认值为计指定列的列值非空且不重复的记录个数。默认值为ALLALL。 SQL Server 2005数据库应用技术数据库应用技术 简单查询简单查询- GROUP BY- GROUP BY子句子句 如果需要按某一列数据的值进行分类,在分类的基如果需要按某一列数据的值进行分类,在分类的基 础上再进行查询,就要使用础上再进行查询,就要使用GROUP BYGROUP BY子句,它的语法子句,它的语法 格式如下。格式如下。 GROUP BY GROUP BY 【例】查询男女员工的平均工资。【例】查询男女员工的平均工资。 【例】在销售表【例】在销售表Sell_Order表中,统计目前各种商品的订单
19、总数。表中,统计目前各种商品的订单总数。 SQL Server 2005数据库应用技术数据库应用技术 简单查询简单查询- HAVING- HAVING子句子句 HAVING HAVING子句指定组或聚合的搜索条件。子句指定组或聚合的搜索条件。HAVING HAVING 只能只能 与与 SELECT SELECT 语句一起使用。语句一起使用。HAVINGHAVING通常在通常在GROUP BY GROUP BY 子句子句 中使用。中使用。 HAVING HAVING 条件表达式选项,则表示对生成的组进条件表达式选项,则表示对生成的组进 行筛选后,再对每组进行汇总计算。如果不使用行筛选后,再对每组
20、进行汇总计算。如果不使用GROUP BY GROUP BY 子句,则子句,则 HAVINGHAVING的行为与的行为与WHERE WHERE 子句一样,它的语法格子句一样,它的语法格 式如下。式如下。 HAVING 搜索条件搜索条件 【例】在销售表【例】在销售表Sell_Order表中,查询目前订单总数超过表中,查询目前订单总数超过1000的商的商 品订单信息。品订单信息。 SQL Server 2005数据库应用技术数据库应用技术 简单查询简单查询- COMPUTE - COMPUTE 子句子句 COMPUTE COMPUTE子句可以用于子句可以用于SELECT SELECT 语句既查看明细
21、行,语句既查看明细行, 又查看汇总行。可以计算分组的汇总值,也可以计算整个又查看汇总行。可以计算分组的汇总值,也可以计算整个 结果集的汇总值。语法格式如下。结果集的汇总值。语法格式如下。 COMPUTE 聚合函数名聚合函数名 (列名列名) , N BY 表达式表达式, N 【例【例 】查询员工表】查询员工表employee中部门编号为中部门编号为1的各员工工资信息,的各员工工资信息, 并计算平均工资。并计算平均工资。 【例】【例】 对对employee表中部门编号为表中部门编号为1或或2的员工工资,按照其部门的员工工资,按照其部门 编号生成分组汇总行和明细行编号生成分组汇总行和明细行 SQL
22、Server 2005数据库应用技术数据库应用技术 连接查询连接查询 连接的类型分为内连接、外连接和交叉连接。连接的连接的类型分为内连接、外连接和交叉连接。连接的 格式有两种如下。格式有两种如下。 格式一:格式一: SELECT FROM ON ( ) 格式二:格式二: SELECT FROM , WHERE . . SQL Server 2005数据库应用技术数据库应用技术 交叉连接交叉连接 交叉连接又称笛卡儿积,返回两个表的乘积。交叉连接又称笛卡儿积,返回两个表的乘积。 例:例: 表表A有有10行数据,表行数据,表B有有20行数据,那么表行数据,那么表A和表和表B交叉连接的结交叉连接的结
23、果记录集有果记录集有400行(行(1020)数据。)数据。 交叉连接使用交叉连接使用CROSS JOINCROSS JOIN关键字来创建。关键字来创建。 说明:说明: 交叉连接只是用于测试一个数据库的执行效率,在实际应用中是交叉连接只是用于测试一个数据库的执行效率,在实际应用中是 无意义的无意义的 交叉连接的使用是比较少的,交叉连接不需要连接条件。交叉连接的使用是比较少的,交叉连接不需要连接条件。 SQL Server 2005数据库应用技术数据库应用技术 交叉连接(续)交叉连接(续) 【例】查询员工表与部门表的所有组合。【例】查询员工表与部门表的所有组合。 USE CompanySales
24、GO SELECT employee.* , department.* FROM employee CROSS JOIN department GO SQL Server 2005数据库应用技术数据库应用技术 内连接内连接 内连接把两个表中的数据,通过相同的列,连接生成第内连接把两个表中的数据,通过相同的列,连接生成第3 3 个表,仅包含那些满足连接条件的数据行。内连接分为等值个表,仅包含那些满足连接条件的数据行。内连接分为等值 连接、非等值连接和自然连接。连接、非等值连接和自然连接。 【例】查询已订购了商品客户的公司名称,联系人姓名和所订商品【例】查询已订购了商品客户的公司名称,联系人姓名和
25、所订商品 编号和订购数量。编号和订购数量。 【例】查询【例】查询“国皓科技有限公司国皓科技有限公司”的订单信息的订单信息 说明:说明: 在多表查询中,在多表查询中,Select子句或子句或 Where子句中的列名前都加上了子句中的列名前都加上了 表名作为前缀,这样可避免来自不同表中相同属性名发生混淆。表名作为前缀,这样可避免来自不同表中相同属性名发生混淆。 SQL Server 2005数据库应用技术数据库应用技术 外连接外连接 分类:左外连接、右外连接和全外连接。分类:左外连接、右外连接和全外连接。 u左向外连接:只包括左表的所有行,不包括右表的不匹配左向外连接:只包括左表的所有行,不包括右
26、表的不匹配 行的外连接;行的外连接; u右向外连接:只包括右表的所有行,不包括左表的不匹配右向外连接:只包括右表的所有行,不包括左表的不匹配 行的外连接。行的外连接。 u完整外部连接:既包括左表不匹配的行,也包括右表的不完整外部连接:既包括左表不匹配的行,也包括右表的不 匹配的行的连接匹配的行的连接 SQL Server 2005数据库应用技术数据库应用技术 左外连接左外连接 语法如下:语法如下: SELECT FROM 左表名左表名 LEFT OUTER JOIN 右表名右表名 ON 连接条件连接条件 【例】查询是否所有的员工均接受了销售订单,包括员工的姓名和【例】查询是否所有的员工均接受了
27、销售订单,包括员工的姓名和 订单信息。订单信息。 SELECT employee.employeename, sell_order.* FROM employee LEFT JOIN sell_order on employee.employeeID = sell_order.employeeID SQL Server 2005数据库应用技术数据库应用技术 右外连接右外连接 右外连接的语法如下。右外连接的语法如下。 SELECT FROM 左表名左表名 RIGHT OUTER JOIN 右表名右表名 ON 连接条件连接条件 包括右表(出现在包括右表(出现在 JOIN JOIN 子句的最右边)中
28、的所有行。不包括子句的最右边)中的所有行。不包括 左表中的不匹配行。左表中的不匹配行。 【例】查询是否所有的供应商提供的商品情况。【例】查询是否所有的供应商提供的商品情况。 USE CompanySales GO SELECT Purchase_order.*,viderName FROM Purchase_order RIGHT JOIN provider on Purchase_viderID=viderID GO SQL Server 2005数据库应用技术数据库应用技术 全外连接全外连接 全外连接的语法如下。全外连接的语
29、法如下。 SELECT FROM 左表名左表名 FULL OUTER JOIN 右表名右表名 ON 连接条件连接条件 包括所有连接表中的所有记录,不论它们是否匹配。包括所有连接表中的所有记录,不论它们是否匹配。 【例】使用全外连接查询客户和商品的订购信息,包括客户名称、【例】使用全外连接查询客户和商品的订购信息,包括客户名称、 联系人姓名、订购的商品名称、订购的数量和订购日期。联系人姓名、订购的商品名称、订购的数量和订购日期。 SQL Server 2005数据库应用技术数据库应用技术 嵌套查询嵌套查询 在在SQLSQL中,将一条中,将一条SELECTSELECT语句作为另一条语句作为另一条S
30、ELECTSELECT语句语句 的一部分称为嵌套查询。外层的的一部分称为嵌套查询。外层的SELECTSELECT语句被称为外部查语句被称为外部查 询或父查询,内层的询或父查询,内层的SELECTSELECT语句成为内部查询或子查询。语句成为内部查询或子查询。 嵌套查询如下。嵌套查询如下。 SELECT /*外层查询或父查询外层查询或父查询*/ FROM WHERE IN ( SELECT /*内层查询或子查询内层查询或子查询*/ FROM WHERE ) SQL Server 2005数据库应用技术数据库应用技术 单值嵌套单值嵌套 单值嵌套就是通过子查询返回一个单一的数据。当子单值嵌套就是通过
31、子查询返回一个单一的数据。当子 查询返回的是单值,可以使用查询返回的是单值,可以使用 , ,= =,=,!=!=或或 等比较运算符参加相关表达式的运算。等比较运算符参加相关表达式的运算。 SQL Server 2005数据库应用技术数据库应用技术 单值嵌套(续)单值嵌套(续) 【例【例 】查找员工】查找员工“姚安娜姚安娜”所在的部门名称。所在的部门名称。 步骤步骤1:查询员工:查询员工“姚安娜姚安娜”所在的部门编号,查询语句如下。所在的部门编号,查询语句如下。 SELECT departmentID FROM employee WHERE employeeName =姚安娜 得到的结果为得到的
32、结果为 3 步骤步骤2:查询部门编号为:查询部门编号为3 的部门名称。的部门名称。 SELECT departmentName FROM department WHERE departmentID =3 得到结果为得到结果为“人事部人事部”。 组合:组合: SELECT departmentName 部门名称 FROM department WHERE departmentID =(SELECT departmentID FROM employee WHERE employeeName=姚安娜姚安娜) SQL Server 2005数据库应用技术数据库应用技术 单值嵌套(续)单值嵌套(续) 【
33、例【例 】查找年龄最小的员工姓名、性别和工资。】查找年龄最小的员工姓名、性别和工资。 USE CompanySales GO SELECT employeeName 姓名, sex 性别, BirthDate 出生年月, salary 工资 FROM employee WHERE BirthDate=(SELECT MAX(BirthDate) FROM employee ) GO SQL Server 2005数据库应用技术数据库应用技术 多值嵌套多值嵌套 子查询的返回结果是一列值的嵌套查询称为多值嵌套子查询的返回结果是一列值的嵌套查询称为多值嵌套 查询。多值嵌套查询经常使用查询。多值嵌套查询经常使用ININ操作符。操作符。ININ操作符使用的操作符使用的 格式如下。格式如下。 表达式表达式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交通运输的企业管理与发展策略考核试卷
- 宠物灭火和紧急疏散考核试卷
- 摩托车的城市交通运输考核试卷
- 时尚服饰线下零售管理考核试卷
- 保安培训师博雅聘用合同
- 供应链创新与变革策略
- 燃煤运输司机薪资策略
- 洗衣店租约合同模板
- 办公楼施工员聘用协议
- 菏泽市商务酒店租赁合同
- (完整版)新员工进场三级安全教育考核-试卷及答案
- 2024届陕西省西安市西安交大附中中考四模数学试题含解析
- DB3305-T 104-2019环境污染责任保险风险评估技术规范
- 五年级上册数学说课稿 《《解决问题-去尾法和进一法》》人教版
- GB/T 23132-2024电动剃须刀
- 门窗维修简单合同范本(2024版)
- 糖尿病酮症酸中毒
- 03D201-4 10kV及以下变压器室布置及变配电所常用设备构件安装
- 《民用爆炸物品企业安全生产标准化实施细则》解读
- 2024年少先队知识竞赛题库与答案
- 飞控系统讲解
评论
0/150
提交评论