当前位置:文档之家› 第05章 销售管理数据库的数据查询

第05章 销售管理数据库的数据查询


连接查询
连接的类型分为内连接、外连接和交叉连接。连接的 格式有两种如下。
格式一:
SELECT <输出列表> FROM <表1 > <连接类型> <表2 > [ON ( <连接条件>)]
格式二:
SELECT <输出列表> FROM < 表1 > , < 表2 > [WHERE <表1 > .<列名> <连接操作符> < 表2 >. <列名>]
(6)ORDER BY子句:指定结果集的排序。
(7)COMPUTE字句:用于对结果集进行分组并对每一组数据进行汇总 计算。
SQL Server 2005数据库应用技术
SELECT 语句的执行方式
SQL Server2005 提供了查询编辑器,用于编辑和运行 查询代码。
【例】查询所有员工的信息。
操作的具体步骤如下。
【例】按工资降序显示员工的姓名和工资,工资相同时按姓名升序 排序 。
USE CompanySales GO SELECT * FROM employee
SQL Server 2005数据库应用技术
使用聚合函数
AVG函数
SUM函数
MAX函数
MIN函数 COUNT函数
SQL Server 2005数据库应用技术
SQL Server 2005数据库应用技术
交叉连接
交叉连接又称笛卡儿积,返回两个表的乘积。
例: 表A有10行数据,表B有20行数据,那么表A和表B交叉连接的结 果记录集有400行(10×20)数据。
交叉连接使用CROSS JOIN关键字来创建。
说明: 交叉连接只是用于测试一个数据库的执行效率,在实际应用中是 无意义的。 交叉连接的使用是比较少的,交叉连接不需要连接条件。
SQL Server 2005数据库应用技术
简单查询- GROUP BY子句
如果需要按某一列数据的值进行分类,在分类的基 础上再进行查询,就要使用GROUP BY子句,它的语法格 式如下。 GROUP BY <组合表达式>
【例】查询男女员工的平均工资。 【例】在销售表Sell_Order表中,统计目前各种商品的订单总数。
简单查询- WHERE子句
使用WHERE子句的目的是为了从表格的数据集中过滤 出符合条件的行。
其语法格式如下:
SELECT <输出列表> [INTO <新表名>] FROM <数据源列表> [ WHERE < 查询条件表达式>
SQL Server 2005数据库应用技术
简单查询- WHERE子句(续)
SQL Server 2005数据库应用技术
简单查询- WHERE子句(续)
5、使用模糊匹配
LIKE子句格式如下:
列名 [NOT]
LIKE
<模式字符串>
通配符: %
_(下划线)
【例】找出所有姓“章”的员工信息。 【例】找出所有不姓“李”的员工信息。
6、空或非空性 空和非空的判断准则是IS NULL和IS NOT NULL。
1、使用算术表达式
比较运算符包含多个,例如>、<、>=、>、!=、!>等, 其中<>、!=均表示不等于,!>表示不大于。
【例】查询员工“蔡慧敏”的工资。 【例】 在CompanySales数据库的员工表(employee)中,查询 工资大于3000元的员工信息
2、使用逻辑表达式
表达式 AND或OR 表达式 或:NOT 表达式
[ ASC | DESC ] ]
[ COMPUTE 行聚合函数名(表达式)[,...n] [BY 表达式 [,...n ]]]
SQL Server 2005数据库应用技术
SELECT语句各子句的功能
(1)SELECT子句:指定查询返回的列。
(2)INTO子句:将检索结果存储到新表或视图中。 (3)FROM子句:用于指定查询列所在的表和视图。
SQL Server 2005数据库应用技术
右外连接
右外连接的语法如下。
SELECT <选择列表> FROM 左表名 RIGHT [OUTER] JOIN 右表名
ON 连接条件
包括右表(出现在 JOIN 子句的最右边)中的所有行。不包括 左表中的不匹配行。
【例】查询是否所有的供应商提供的商品情况。
USE CompanySales GO SELECT Purchase_order.*,provider.providerName
SQL Server 2005数据库应用技术
简单查询-SELECT 子句
1、查询所有的列(使用*)
【例】从商品表中查询所有商品的信息 。
2、查询指定的列
【例】从客户表中检索所有客户的公司名称、联系人姓名和地址。
3、使用TOP 关键字限制返回行数
【例】检索客户表中前5位客户的公司名称、联系人姓名和地址。
(1)启动SQL Server Management Studio。 (2)在【对象资源管理器】中,单击工具栏的【新建查询】按钮, 打开查询编辑器。 (3)在查询编辑器中,输入如下代码。 SELECT * FROM employee (4)单击【工具栏】的按钮,进行语法分析。在【结果】窗体中出 现“命令已成功完成”的消息,表示当前的查询语句没有语法错误。 (5)单击按钮,在当前数据库中执行查询语句。
SQL Server 2005数据库应用技术
交叉连接(续)
【例】查询员工表与部门表的所有组合。
USE CompanySales GO
SELECT employee.* , department.*
FROM employee CROSS JOIN department GO
SQL Server 2005数据库应用技术
第五章 数据库的数据查询
SQL Server 2005数据库应用技术
技能目标
在销售管理系统数据库中能根据按照指定的要求灵活、 快速地查询相关信息。
SQL Server 2005数据库应用技术
知识目标


掌握SELECT语句语法格式;
掌握最基本的查询技术; 掌握条件查询技术;掌握多重条件查询技术; 掌握连接查询技术;掌握嵌套查询。
SQL Server 2005数据库应用技术
简单查询-SELECT 子句(续)
6、使用计算列
【例】查询所有员工的工资在提高10%后信息,将提高后的工资列 标题为“提高后工资”。
SQL Server 2005数据库应用技术
简单查询- INTO 子句
INTO 子句用于将查询的结果插入新表中,其语法格式 如下。
SQL Server 2005数据库应用技术
简单查询- HAVING子句
HAVING子句指定组或聚合的搜索条件。HAVING 只能 与 SELECT 语句一起使用。HAVING通常在GROUP BY 子句 中使用。 HAVING 条件表达式选项,则表示对生成的组进 行筛选后,再对每组进行汇总计算。如果不使用GROUP BY 子句,则 HAVING的行为与WHERE 子句一样,它的语法格 式如下。
4、使用IN关键字
IN关键字给出表达式的取值范围。如果字段取值等于列表中某个 取值,则运算结果为TRUE,否则运算结果为FALSE,并显示相 应的记录。语法:
列名 [NOT]
IN
(值1 , 值2 ,„值n)
【例】在CompanySales数据库的销售订单表(Sell_order)中, 查询员工编号为1、5和7的员工接受订单信息。
左外连接
语法如下:
SELECT <选择列表> FROM 左表名 LEFT [OUTER] JOIN 右表名
ON 连接条件
【例】查询是否所有的员工均接受了销售订单e.employeename, sell_order.*
FROM employee LEFT JOIN sell_order on employee.employeeID = sell_order.employeeID
INTO 新表名
【例】使用INTO子句创建一个包含员工姓名和工资,并命名为 new_employee的新表。
USE CompanySales
GO
SELECT EmployeeName,Salary INTO new_employee
FROM employee
GO
SQL Server 2005数据库应用技术
HAVING 搜索条件 【例】在销售表Sell_Order表中,查询目前订单总数超过1000的商 品订单信息。
SQL Server 2005数据库应用技术
简单查询- COMPUTE 子句
COMPUTE子句可以用于SELECT 语句既查看明细行, 又查看汇总行。可以计算分组的汇总值,也可以计算整个 结果集的汇总值。语法格式如下。
使用聚合函数(续)
1.求和函数SUM与求平均值函数AVG
它们只能用于数值型字段,而且忽略列值为NULL的记录。
2.最大值函数MAX与最小值函数MIN
忽略列值为NULL的记录,列表达式中的列可以是任何可排序的 类型。
3.计数函数COUNT
用于统计查询结果集中记录的个数,“*”用于统计所有记录的 个数,ALL用于统计指定列的列值非空的记录个数,DISTINCT用于统 计指定列的列值非空且不重复的记录个数。默认值为ALL。
【例】在CompanySales数据库的员工表(employee)中,查询 工资在3400元以下的女性员工姓名和工资信息。
SQL Server 2005数据库应用技术
相关主题