《第19讲101计算机等级三级数据库技术精第六章美工版2013.8.18章节》由会员分享,可在线阅读,更多相关《第19讲101计算机等级三级数据库技术精第六章美工版2013.8.18章节(11页珍藏版)》请在金锄头文库上搜索。
1、全国计算机等级考试 三级数据库技术 精讲班,6.1.3 将查询结果保存到新表中 问题提出:SELECT查询结果怎么保存 解决方法:SELECT 查询列表序列 INTO FROM 数据源(其他行过滤、分组语句) 解释:创建新表+执行查询+存入新表 注意:表名前加#为局部临时表,#为全局临时表,只有表名为永久表。 例子:SELECT * INTO #HD_Customer FROM Table_Customer WHERE ,第6章 高级数据库查询,6.2 查询结果的并、交、差运算 6.2.1并运算 问题提出:如何将多个查询结果并为一个结果集,添加更多的行。 解决方法:UNION操作 SELECT
2、 语句1 UNION ALL SELECT 语句2 UNION ALL ,第6章 高级数据库查询,SELECT 语句n 解释:ALL子句是全部记录,包括重复的,默认是删除合并后重复的。 注意:SELECT中列数必须相同,语义相同;每个列的数据类型隐式兼容,如char(20)与varchar(40);合并后结果采用第一个SELECT语句的列标题。 例子:SELECT Address FROM Table_Customer UNION SELECT Address FROM Table_Salesperson,第6章 高级数据库查询,6.2.2 交运算 问题提出:如何获得同时在两个集合中出现的记录
3、。 解决方法:INTERSECT操作 SELECT 语句1 INTERSECT SELECT 语句2 INTERSECT SELECT 语句n 注意:同并运算,第6章 高级数据库查询,6.2.3 差运算 问题提出:如何获得第一个集合中有但第二个集合中没有的数据。 解决方法:EXCEPT 操作 SELECT 语句1 EXCEPT SELECT 语句2 EXCEPT SELECT 语句n 注意:同并运算,第6章 高级数据库查询,实例 1查询顾客朱时七和王达力所购买的相同商品 (2王达力购买了但朱时七没买),列出商品名和商品销售单价 SELECT GoodsName,SaleUnitPrice FR
4、OM Table_Goods G JOIN Table_SaleBillDetail SD ON SD.GoodsID=G.GoodsID JOIN Table_SaleBill S ON S.SaleBillID=SD. SaleBillID JOIN Table_Customer C ON C.CardID=S. CardID WHERE Name=王达力 INTERSECT(EXCEPT) WHERE Name=朱时七,第6章 高级数据库查询,【样题】设在SQL Server2008 某数据库中有购买表(顾客号,商品号,购买时间),现要查询C01顾客购买过但C02顾客没有购买过的商品。请
5、补全下面语句 SELECT 商品号 FROM 购买表 WHERE 顾客号=C01 【9】 SELECT 商品号 FROM 购买表 WHERE 顾客号=C02; 答案:EXCEPT,第6章 高级数据库查询,6.3相关子查询 包含子查询常用格式 1.使用子查询进行基于集合的测试 WHERE 表达式NOTIN(子查询) 先执行子查询(结果是范围),然后是外查询 实例:SELECT Cname,Address FROM Table_Customer WHERE Address IN(SELECT Address FROM Table_Customer WHERE Cname=王晓) AND Cname!= 王晓 解释:与王晓相同地址的顾客的姓名和地址。,第6章 高级数据库查询,2.WHERE 表达式 比较运算符(子查询) 将表达式值与子查询结果(单值)比较,结果为真,返回TRUE,否则为FALSE 实例:查询单价最高的商品的名称和单价 SELECT Goodname,SaleUnitPrice FROM Table_Goods a WHERE SaleUnitPrice= (SELECT MAX(SaleUnitPrice) FROM Table_Goods),第6章 高级数据库查询,10-1,