查询数据.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

第六章 SELECT 语句和视图 SQL 语句的核心 数据源中数据表的各种连接 各种关系代数运算和集合运算的实现: 投影、选择、连接、广义笛卡尔积和并、 交、差、除。 函数在 SELECT 中运用 视图及其应用.
Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
强力推进 积极探索 努力提升计算机审计实施水平 AO案例和审计方法撰写介绍 曹红珍.
第6章 数据库管理软件Access 年秋.
淘宝海量数据产品技术架构 张轩丞(朋春) 淘宝网-数据平台与产品部.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
關聯查詢.
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
数据库系统概论 华中科技大学能源与动力工程学院
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
数据库技术 实践.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
Chap 11 SQL基本查詢指令.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第3章 SQL语言初步 2017/3/14.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
文科计算机小公共课规划教材 Access 程序设计.
第一讲 数据查询优化.
第 10 章 更多的查詢技巧.
第6章 数据展示和输出功能 创建和使用报表 报表(Report)是以打印格式展示数据的一种有效方式。在报表中,可以展示图形、文字标题、字段数据或汇总数据等形式的信息,并可以控制各种数据的大小和外观。 利用报表,还可以按照数据之间的逻辑关系和所需的方式来组织数据之间的排版布局,对数据进行多级汇总和统计,或以图形方式展示数据。
软件设计师培训.
计算机应用基础 上海大学计算中心.
第3章 数据查询与SQL命令.
《保險代理手冊》.
第5讲 分组查询 IBM Confidential.
關聯式資料庫.
Access 2007 進銷存管理系統實作 文魁資訊股份有限公司.
第六章 學習SQL語言.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
資料庫系統 Database Systems
Chapter 12 T-SQL 語法與 ASP.NET.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
第9讲 Hibernate查询语言HQL.
第八章 利用SELECT查詢資料.
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
实验 2:MS Access QBE Query使用
第九章 進階的查詢技巧.
国家“十一五”规划教材 数据库原理与应用教程(第3版).
SQL SERVER 一些经典语句 1.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
MySQL 結構化查詢語言 MySQL.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
数据库技术.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
学习目标 1、什么是表连接 2、表连接类型 3、表连接区别.
查询与视图 蔡海洋.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
附錄D Access應用說明 主從式資料庫系統 - 附錄D.
本讲内容 SQL 概述 SQL 的查询功能 SQL 的操作功能 SQL 的定义功能.
新地義工Team力量 新地致富兒童成長嚮導計劃
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
資料庫系統  Database System 施莉萍 2017/12/28.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
模块六 数据库管理软件——Access 2010.
第4章 数据查询.
第 9 章 查詢資料- 善用 SELECT 敘述.
Presentation transcript:

查询数据

主要内容 SELECT语句基本结构 简单查询 高级查询 重点、难点 使用表的连接进行多表查询 子查询

项目要求 对sportsmeet数据库中的athlete表、 score表、item等表进行简单查询、模糊查询、分组查询以及联接查询和子查询 。

SELECT语句基本结构 SELECT语句语法 SELECT [ALL|DISTINCT] 〈目标列表达式〉[,〈目标列表达式〉] FROM 〈表名或视图名〉[,〈表名或视图名〉] [WHERE 〈条件表达式〉] [GROUP BY 〈列名1〉 [HAVING 〈条件表达式〉]] [ORDER BY 〈列名2〉 [ASC | DESC]

简单查询 —选择列 所有列 指定列 使用*,列出所有字段名称 例:查询athlete表中所有运动员的详细信息 列出部分字段名称 简单查询 —选择列 所有列 使用*,列出所有字段名称 例:查询athlete表中所有运动员的详细信息 SELECT *FROM athlete 指定列 列出部分字段名称 SELECT * FROM Goods 例:查询athlete表中所有运动员编码、姓名和性别列的信息。 SELECT a_athleteid, a_name, a_sex FROM athlete

简单查询 —选择列 计算列 使用别名 计算表达式 例:查询所有运动员的号码、姓名和年龄 原字段名 AS 字段别名 简单查询 —选择列 计算列 计算表达式 例:查询所有运动员的号码、姓名和年龄 SELECT a_athleteid, a_name, YEAR(getdate())-YEAR(a_birth) FROM athlete 使用别名 原字段名 AS 字段别名 SELECT g_ID,g_Name,g_Price*g_Number FROM Goods SELECT g_ID AS 商品号,g_Name AS 商品名称, g_Price*g_Number AS 总价值 FROM Goods 例:查询所有运动员的号码、姓名和年龄同时以汉字标题来表示 SELECT a_athleteid AS 运动员编号, a_name AS 姓名, YEAR(getdate())-YEAR(a_birth) AS 生日 FROM athlete

简单查询 —选择行 简单条件查询 复合条件查询 例:查询athlete表T002组的运动员信息。 AND和OR可用来联结多个查询条件 简单查询 —选择行 简单条件查询 例:查询athlete表T002组的运动员信息。 SELECT * FROM athlete WHERE a_teamid='T002' 复合条件查询 AND和OR可用来联结多个查询条件 SELECT * FROM Goods WHERE g_Status = '热点‘ SELECT c_ID ,c_Name ,c_Gender ,c_Address,year(getdate())-year(c_Birth) FROM Customers WHERE (c_Gender='女' AND LEFT(c_Address,4)='湖南')OR(year(getdate())-year(c_Birth)<30) 例:查询athlete表T002组的女运动员编号,姓名和籍贯。 SELECT a_athleteid,a_name,a_address FROM athlete WHERE a_teamid=‘t002’ AND a_sex=‘女’

简单查询 —选择行 指定范围查询 指定集合查询 例:查询年龄在18~22岁的运动员的名称、籍贯和年龄(age) 简单查询 —选择行 指定范围查询 例:查询年龄在18~22岁的运动员的名称、籍贯和年龄(age) SELECT a_Name,a_Address,Year(GetDate())-Year(a_Birth) as age FROM athlete WHERE Year(GetDate())-Year(a_Birth) BETWEEN 18 AND 22 指定集合查询 SELECT c_Name,c_Address,Year(GetDate())-Year(c_Birth) as age FROM Customers WHERE Year(GetDate())-Year(c_Birth) BETWEEN 20 AND 25 例:查询籍贯为“湖南”或“广东”运动员的详细信息 SELECT * FROM athlete WHERE LEFT(c_Address,2) IN (‘广东','湖南')

简单查询 —选择行 字符匹配 例:查询所有姓李的运动员的详细信息 [NOT] LIKE ‘〈模式串〉‘ [ESCAPE ‘〈转义字符〉‘] 简单查询 —选择行 字符匹配 [NOT] LIKE ‘〈模式串〉‘ [ESCAPE ‘〈转义字符〉‘] _:代表任意单个字符 %:代表任意长度(长度可以为0)的字符串 [ ]:代表指定范围(如[x-z])或集合(如[aceg])中的任意一个字符 [^]:代表不属于指定范围(如[^x-z])或集合(如[^aceg])的任意一个字符 例:查询所有姓李的运动员的详细信息 SELECT * FROM athlete WHERE a_Name LIKE ‘李%'

例:在athlete表中,查询姓“李”且名只有一个汉字的运动员的a_athleteid和a_name信息。 SELECT a_athleteid, a_name FROM athlete WHERE a_name LIKE '李_' 例:在athlete表中,查询姓名中第二个字为“丽”字的运动员a_athleteid和a_name信息。 SELECT a_athleteid, a_name FROM athlete WHERE a_name LIKE '_丽%' 例:查询运动员号的最后一位数字不是2-4的运动员信息 SELECT c_Name,c_TrueName,c_Phone,c_Email FROM Customers WHERE c_TrueName LIKE '吴_‘ SELECT c_Name,c_TrueName,c_Phone,c_Email FROM Customers WHERE c_TrueName LIKE '_欢%' SELECT * FROM Customers WHERE c_ID like '____[^2-4]' SELECT * FROM athlete WHERE a_athlete like '____[^2-4]'

简单查询 —选择行 涉及空值的查询 例: 查询运动员姓名中包含%的运动员信息 例:查询暂时没有成绩的运动员编号。 简单查询 —选择行 例: 查询运动员姓名中包含%的运动员信息 SELECT * FROM athlete WHERE a_Name LIKE ‘%\%%' ESCAPE '\' 涉及空值的查询 例:查询暂时没有成绩的运动员编号。 SELECT g_Price,g_Discount FROM Goods WHERE g_Name LIKE '三星SGH\_C408' ESCAPE '\' SELECT s_athleteid FROM score WHERE s_score IS NULL

简单查询 —选择行 消除重复取值行 前N行 DISTINCT 例:查询参加比赛的运员编号 TOP n [percent] 简单查询 —选择行 消除重复取值行 DISTINCT 例:查询参加比赛的运员编号 SELECT DISTINCT s_athleteid FROM score 前N行 TOP n [percent] SELECT DISTINCT c_ID FROM Orders 例:查询前3个运动员的详细信息。 SELECT TOP 3 * FROM athlete

简单查询 —排序 order by asc、desc 例:查询I006的项目成绩信息,先按成绩列降序排列。 简单查询 —排序 order by asc、desc 例:查询I006的项目成绩信息,先按成绩列降序排列。 SELECT s_athleteid,s_itemid,s_grade FROM score WHERE s_itemid='I006' ORDER BY s_grade 例:查询I006的项目成绩信息,先按成绩列降序排列,然后再按运动员号升序排列。 SELECT g_ID,g_Name,g_Price FROM Goods WHERE t_ID='01' ORDER BY g_Price DESC SELECT s_athleteid,s_itemid,s_grade FROM score WHERE s_itemid='I006' ORDER BY s_grade DESC,s_athleteid

简单查询 TOP...WITH TIES 例:查询I006的项目成绩信息的前4行,按成绩列降序排列。 SELECT TOP 4 s_athleteid,s_itemid,s_grade FROM score WHERE s_itemid='I006' ORDER BY s_grade DESC SELECT TOP 3 g_ID,g_Name,g_Price FROM Goods WHERE t_ID='01' ORDER BY g_Price DESC SELECT TOP 4 WITH TIES s_athleteid,s_itemid,s_grade FROM score WHERE s_itemid='I006' ORDER BY s_grade DESC

简单查询 聚合函数 SUM,AVG,MAX,MIN,COUNT 例:计算score表中,I001项目的所有成绩总和平均成绩。 SELECT SUM(s_grade) AS 总成绩, AVG(s_grade) AS 平均成绩 FROM score WHERE s_itemid='I001' 例:计算score表中,I001项目的最好成绩和最差成绩的差值。 SELECT MAX(s_grade) AS -MIN(s_grade) FROM score WHERE s_itemid='I002' SELECT TOP 3 g_ID,g_Name,g_Price FROM Goods WHERE t_ID='01' ORDER BY g_Price DESC 例:统计athlete表中,运动员的数量。 SELECT COUNT(*) AS 运动员总数 FROM athlete

简单查询 —分组 Group by …having 例:查询athlete表中,各组运动员的数量。 简单查询 —分组 Group by …having 例:查询athlete表中,各组运动员的数量。 SELECT a_teamid, COUNT(a_athleteid) AS 人数 FROM athlete GROUP BY a_teamid 例:查询athlete表中,运动员的数量大于3的组的信息。 SELECT t_ID 类别号, COUNT(t_ID) 商品数 FROM Goods GROUP BY t_ID SELECT a_teamid, COUNT(a_athleteid) AS 人数 FROM athlete GROUP BY a_teamid HAVING COUNT(a_athleteid)>3

简单查询 —分组 Group by …having 简单查询 —分组 Group by …having 例:查询项目参赛人数大于3的每个项目参赛人数,最好成绩,和最差成绩信息,并按项目人数升序排列。 SELECT s_itemid, count(s_athleteid) ,max(s_grade),min(s_grade) FROM score GROUP BY s_itemid HAVING count(s_athleteid) >3 ORDER BY count(s_athleteid) SELECT o_ID 订单编号, sum(d_Price*d_Number) 总金额 FROM OrderDetails GROUP BY o_ID HAVING sum(d_Price*d_Number) >5000

简单查询 —分组 WITH CUBE 例:查询athlete表中,各组中男、女运动员的数量及汇总值。 简单查询 —分组 WITH CUBE 例:查询athlete表中,各组中男、女运动员的数量及汇总值。 SELECT a_teamid,a_sex,COUNT(a_athleteid) AS 人数 FROM athlete GROUP BY a_teamid,a_sex WITH rollup SELECT o_ID,d_Price,d_Number FROM OrderDetails ORDER BY o_ID COMPUTE SUM(d_Price),SUM(d_Number)

简单查询 —数据汇总 COMPUTE BY 例:在score表中,查询I001项目的成绩信息,并求出平均成绩、最大值、最小值。 简单查询 —数据汇总 COMPUTE BY 例:在score表中,查询I001项目的成绩信息,并求出平均成绩、最大值、最小值。 SELECT s_athleteid, s_itemid, s_grade FROM score WHERE s_itemid='I001' COMPUTE AVG(s_grade),MAX(s_grade),MIN(s_grade) SELECT o_ID,d_Price,d_Number FROM OrderDetails ORDER BY o_ID COMPUTE SUM(d_Price),SUM(d_Number) SELECT s_athleteid, s_itemid, s_grade FROM score ORDER BY s_itemid COMPUTE AVG(s_grade),MAX(s_grade),MIN(s_grade) BY s_itemid

教学示例数据库(sportsmeet)P68 athlete a_athleteid (运动员编号) a_name (名称) a_teamid (运动队编号) a_address (籍贯) … a001 韦洁名 01 广东 a002 余佳 06 广西 team t_teamid (运动队编号) t_teamname (运动队名称) t_count (人数) t001 红牛 … t002 火箭 t003 时空

athlete.a_teamid=team.t_teamid 联接查询 —内联接 联接过程 athlete.a_teamid=team.t_teamid a_athleteid (运动员编号) a_name (名称) a_teamid (运动队编号) … a001 韦洁名 t001 a002 余佳 t003 t_teamid (运动队编号) t_teamname (运动队名称) t_count (人数) t001 红牛 略 t002 火箭 team athlete 联接结果 a_athleteid (运动员编号) a_name (名称) a_teamid (运动队编号) … t_teamid (运动队编号) t_teamname (运动队名称) t_count (人数) a001 韦洁名 t001 红牛 略 athlete team

联接查询 —内联接 内联接语法 例:需要了解查询所有运动员报名参加比赛项目的情况,包括运动员姓名,项目编号,成绩。 联接查询 —内联接 内联接语法 FROM 表名1 [INNER JOIN] 表名2 ON 连接条件 例:需要了解查询所有运动员报名参加比赛项目的情况,包括运动员姓名,项目编号,成绩。 SELECT Goods.g_ID, Goods.t_ID, Types.t_Name, Goods.g_Name FROM Goods JOIN Types ON Goods.t_ID= Types. t_ID SELECT a_name, s_itemid, s_grade FROM athlete JOIN score ON a_athleteid = s_athleteid

想一想 需要了解所有运动员报名参加比赛项目的情况,包括运动员姓名,项目名称,成绩。 SELECT a_athleteid, a_name, i_itemname, s_grade FROM athlete JOIN score ON a_athleteid = s_athleteid JOIN item ON s_itemid=i_itemid

athlete.a_teamid=team.t_teamid 联接查询 —左外联接 联接过程 athlete.a_teamid=team.t_teamid a_athleteid (运动员编号) a_name (名称) a_teamid (运动队编号) … a001 韦洁名 t001 a002 余佳 t003 t_teamid (运动队编号) t_teamname (运动队名称) t_count (人数) t001 红牛 略 t002 火箭 team athlete 联接结果 a_athleteid (运动员编号) a_name (名称) a_teamid (运动队编号) … t_teamid (运动队编号) t_teamname (运动队名称) t_count (人数) a001 韦洁名 t001 红牛 略 a002 余佳 t003 null athlete team

联接查询 —左外联接 左外联接语法 例:需要了解所有运动员报名参加比赛项目的情况,如果有运动员没有报名参赛也需要显示其基本信息。 联接查询 —左外联接 左外联接语法 FROM 表名1 LEFT JOIN 表名2 ON 连接条件 例:需要了解所有运动员报名参加比赛项目的情况,如果有运动员没有报名参赛也需要显示其基本信息。 SELECT a_athleteid, a_name, s_itemid, s_grade FROM athlete LEFT JOIN score ON a_athleteid = s_athleteid

athlete.a_teamid=team.t_teamid 联接查询 —右外联接 联接过程 athlete.a_teamid=team.t_teamid a_athleteid (运动员编号) a_name (名称) a_teamid (运动队编号) … a001 韦洁名 t001 a002 余佳 t003 t_teamid (运动队编号) t_teamname (运动队名称) t_count (人数) t001 红牛 略 t002 火箭 team athlete 联接结果 a_athleteid (运动员编号) a_name (名称) a_teamid (运动队编号) … t_teamid (运动队编号) t_teamname (运动队名称) t_count (人数) a001 韦洁名 t001 红牛 略 null t002 火箭 athlete team

联接查询 —右外联接 右外联接语法 例:需要了解所有运动员报名参加比赛项目的情况,如果有运动员没有报名参赛也需要显示其基本信息。 联接查询 —右外联接 右外联接语法 FROM 表名1 RIGHT JOIN 表名2 ON 连接条件 例:需要了解所有运动员报名参加比赛项目的情况,如果有运动员没有报名参赛也需要显示其基本信息。 SELECT a_athleteid, a_name, s_itemid, s_grade FROM score RIGHT JOIN athlete ON a_athleteid = s_athleteid

联接查询 —交叉联接和自联接 交叉联接(CROSS JOIN) 自联接 例:对athlete表和team表进行交叉连接。 联接查询 —交叉联接和自联接 交叉联接(CROSS JOIN) 例:对athlete表和team表进行交叉连接。 SELECT * FROM athlete CROSS JOIN team 自联接 例:需要了解比“李巧良”年龄大的运动员的号码、姓名和出生年份,查询结果按出生年月升序排序。 SELECT G2.g_ID 商品号,G2.g_Name 商品名称,G2.g_Price 价格 FROM Goods G1 JOIN Goods G2 ON G1.g_Name='三星SGH_C178' AND G1.g_Price<=G2.g_Price ORDER By G2.g_Price SELECT X1.a_athleteid, X1.a_name, YEAR(X1.a_birth) FROM athlete AS X1 JOIN athlete AS X2 ON X2.a_name = '李巧良' AND X1.a_birth<X2.a_birth ORDER BY X1.a_birth

子查询 子查询 父查询 athlete Select…… Select…… From…… From…… Where…… a_athleteid (运动员编号) a_name (名称) a_teamid (运动队编号) a_address (籍贯) … a001 韦洁名 01 广东 a002 李巧良 06 子查询 父查询 Select…… From…… Where…… Select…… From…… Where 字段1 >{ } Select后不能借别的字段

子查询 使用IN或NOT IN的子查询 例:需要了解与“李巧良”同个地址的运动员信息。 SELECT a_address FROM athlete WHERE a_name='李巧良' step1 SELECT * FROM athlete step2 SELECT g_ID,g_name,t_ID FROM Goods WHERE t_ID in (SELECT t_ID FROM Goods WHERE g_name='摩托罗拉W380') WHERE a_address IN ( ) = ‘广东广州'

想一想 需要了解参加了“女子跳高”项目的运动员姓名、性别和生日。 SELECT a_name,a_sex,a_birth FROM athlete WHERE s_athleteid IN (SELECT s_athleteid FROM score WHERE i_itemid IN (SELECT i_itemid FROM item WHERE i_itemname='女子跳高')) SELECT o_ID,o_Date,o_Sum FROM orders WHERE o_id IN (SELECT o_id FROM orderdetails WHERE g_id IN (SELECT g_id FROM goods WHERE g_name='红双喜牌兵乓球拍'))

子查询 使用比较运算符的子查询 例:查询红牛队的队员人数 SELECT count(*) AS 红牛队人数 FROM athlete WHERE a_teamid=(SELECT t_teamid FROM team WHERE t_name='红牛') SELECT count(distinct o_ID) AS 订单数 FROM Orderdetails WHERE g_id=(SELECT g_ID FROM Goods WHERE g_name='红双喜牌兵乓球拍')

子查询 使用ANY或ALL的子查询 例:需要了解查询比T001组任一运动员小的会员信息,查询结果按降序排列。 SELECT a_athleteid, a_name, a_birth FROM athlete WHERE a_birth> ALL( SELECT a_birth FROM athlete WHERE a_teamid = 'T001' ) AND a_teamid <> 'T001' ORDER BY a_birth DESC SELECT c_ID,c_Name,YEAR(GETDATE())-YEAR(c_Birth) Age,c_Address FROM Customers WHERE LEFT(c_Address,4)<>'湖南长沙' AND c_Birth>ALL(SELECT c_Birth FROM Customers WHERE LEFT(c_Address,4)= '湖南长沙') ORDER BY Age DESC

子查询 使用EXISTS的子查询 例:查询所有报名参加了“I001”项目的运动员a_athleteid和a_name信息。 SELECT a_athleteid, a_name FROM athlete WHERE EXISTS( SELECT * FROM score WHERE a_athleteid=s_athleteid AND s_itemid='I001' ) SELECT o_id,c_id FROM orders WHERE EXISTS (SELECT * FROM orderdetails WHERE o_id= orders.o_id AND g_id='060001')

相关子查询 例:在score表中,查询运动员成绩比该项目平均成绩大的信息。 SELECT s_athleteid, s_itemid, s_grade FROM score AS X1 WHERE s_grade >( SELECT AVG(s_grade) FROM score AS X2 WHERE X1.s_itemid = X2.s_itemid) SELECT * FROM goods AS A WHERE g_Price>( SELECT AVG(g_Price) FROM goods AS B WHERE B.t_ID= A.t_ID)

小结 简单查询方法 联接查询方法 子查询方法 联合查询方法

RENSHI GONGZI BUMEN

想一想 ? 涉及一个表 查询RENSHI表中职工的姓名,性别和职务 查询在部门号为02中工作的人员属于哪些民族(RENSHI) 人事(部门号,职工编号,姓名,性别,民族,出生日期,学历,职称,职务,备注) 工资(部门,职工编号,基本工资,奖金,书报费,洗理费,房补,会费,住房基金) 部门(部门号,部门名) ? 涉及一个表 查询RENSHI表中职工的姓名,性别和职务 查询在部门号为02中工作的人员属于哪些民族(RENSHI) 查询基本工资大于400的职工编号(GONGZI) 查询部门号和按部门号将职工的奖金汇总的金额 (GONGZI , 到SUM函数) 查询职工名称中含有“社”字的职工信息 将职工工资表按基本工资多少降序排列

想一想 人事(部门号,职工编号,姓名,性别,民族,出生日期,学历,职称,职务,备注) 工资(部门,职工编号,基本工资,奖金,书报费,洗理费,房补,会费,住房基金) 部门(部门号,部门名) ? 涉及多个表 查询奖金在300以上的职工编号和部门名称(用INNER JOIN,LEFT JOIN,RIGHT JOIN 分别实现) 查询GONGZI基本工资高于各部门平均工资的职工编号

想一想 LIKE匹配字符有哪几种?如果要查询的字符中包含匹配字符应该如何处理? 进行连接查询时应注意什么? ?