单元四数据的查询 数据库原理与应用 课内例题 任务 5 多表查询 课内例题 例创建数据表 orders, 并向表中添加记录 首先创建表 orders,sql 语句如下 : CREATE TABLE orders( o_num int NOT NULL AUTO_INCREMENT, o_date d

Similar documents
untitled

恩 典 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 欢 迎 在 门 口 欢 迎 孩 子, 聆 听 他 们 分 享 本 周 开 心 或 烦 恼 的 事 无 预 备 活 动 <10 分 钟 A 十 诫 石 板 B 我 是 谁? 粘 土 牙 签 一 些 名 人 的 照

单元四数据的查询 数据库原理与应用 教学设计 数据库原理与应用 教学设计 课题名称 综合案例 数据的查询一 授课班级 移动通信 课时 2 学时 授课地点 实训室 知识目标能力目标素质目标 1. 掌握查询所有数据的方 1. 能够熟练地查询表中的 1. 培养学生的吃苦耐劳 法 ; 所有数据 ; 克服困难

作业参考答案

ebook4-14

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

PowerPoint Presentation

ebook46-23

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

11.2 overview

恩 典 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 1 欢 迎 持 续 在 门 口 欢 迎 学 生, 聆 听 他 们 分 享 本 周 开 心 或 烦 恼 的 事 预 备 活 动 <10 分 钟 A 猜 猜 是 谁 B 上 帝 的 礼 物 无 孩 子 们 的 儿 时

团 契 就 体 力 来 说, 参 孙 乃 是 地 上 极 强 壮 的 人 ; 但 在 自 制 忠 贞 和 坚 稳 上, 他 却 是 人 间 最 软 弱 的 了 先 祖 与 先 知 第 页 教 室 布 置 见 第 一 课 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动

目錄 C ontents Chapter MTA Chapter Chapter

幻灯片 1

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

季刊9web.indd

幻灯片 1


目錄

untitled

Microsoft Word - 第4章 单表查询—教学设计.doc

第四章 关系数据库标准语言SQL.doc

四川省普通高等学校

Microsoft PowerPoint - 05-SQL3-advanced.ppt

SQL: Interactive Queries (2)

评 标 准 扣.4 全 科 医 学 科.4. 建 立 全 科 医 学 科 作 为 培 训 基 地 的 综 合 医 院 独 立 设 置 全 科 医 学 科, 牵 头 承 担 全 科 住 培, 与 相 关 临 床 轮 转 科 室 密 切 协 同, 指 导 帮 助 基 层 实 践 基 地 加 强 带 教

恩 典 1 * 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 欢 迎 在 门 口 欢 迎 学 生 ; 倾 听 他 们 的 快 乐 或 烦 恼 预 备 活 动 <10 分 钟 A. 顺 境 或 逆 境 B. 平 衡 书 本 赞 美 和 祈 祷 <10 分 钟 课 堂 教 学 概

Microsoft Word - FINAL CHINESE VER- MOH OOB CODE OF PROFESSIONAL CONDUCT _AMENDED VERSION II_ edited

目 录

团 契 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 欢 迎 在 门 口 欢 迎 学 生, 聆 听 他 们 分 享 本 周 开 心 或 烦 恼 的 事 -- 无 预 备 活 动 <10 分 钟 A 味 觉 检 测 赞 美 和 祈 祷 <10 分 钟

第 八 条 凡 在 考 评 过 程 中 提 供 虚 假 信 息 的, 一 经 查 实, 视 情 节 轻 重, 扣 除 该 实 验 室 5~10 分, 并 通 报 批 评 第 九 条 文 科 学 院 没 有 实 验 室 的, 其 学 院 年 度 工 作 目 标 管 理 考 核 中 实 验 室 工 作

服 侍 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 欢 迎 预 备 活 动 赞 美 祈 祷 圣 经 课 程 <10 分 钟 <10 分 钟 <20 分 钟 在 门 口 欢 迎 学 生, 听 他 们 分 享 开 心 或 不 如 意 的 事 A 时 间 表 B 偶 像

Untitled


团 契 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 欢 迎 在 门 口 欢 迎 学 生, 听 他 们 分 享 开 心 或 不 如 意 的 事 A. 种 子 发 芽 无 使 用 上 星 期 的 物 品 1 预 备 活 动 <10 分 钟 B. 种 子 C. 生 长

控 制 评 价 结 果 推 测 未 来 内 部 控 制 的 有 效 性 具 有 一 定 的 风 险 二 内 部 控 制 评 价 结 论 根 据 公 司 财 务 报 告 内 部 控 制 重 大 缺 陷 的 认 定 情 况, 于 内 部 控 制 评 价 报 告 基 准 日, 不 存 在 财 务 报 告

窑 缘 愿 窑 意 义 重 大 袁 与 之 相 关 的 表 观 遗 传 学 研 究 主 要 来 自 动 物 实 验 遥 有 学 者 发 现 母 鼠 对 幼 仔 的 舔 舐 和 理 毛 渊 造 蚤 糟 噪 蚤 灶 早 葬 灶 凿 早 则 燥 燥 皂 蚤 灶 早 袁 蕴 郧 冤 及 弓 背 看 护 行

评 估 内 容 与 内 涵 评 估 方 式 评 2.2 管 理 制 度 (10 ) 重 点 制 度 落 实 情 况 4 院 级 和 职 能 部 门 有 明 确 的 会 议 制 度 培 训 制 度 质 量 评 价 制 度 师 资 培 训 制 度 评 价 体 系 等, 并 有 实 施 办 法

恩 典 课 堂 教 学 概 览 1 * 欢 迎 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 在 门 口 欢 迎 孩 子 们, 聆 听 他 们 开 心 或 烦 恼 的 事 情 预 备 活 动 <10 分 钟 A. 婴 孩 时 间 赞 美 和 祈 祷 <10 分 钟 B. 耶 稣

习题1

SP_ SP_03 JAVA...6 SP_10 SQL...8 SP_ SP_ SP_ SP_ SP_ SP_ SP_ SP_04.NET...33 SP_02 C...37 SP_05


硕士论文正文

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

通过Hive将数据写入到ElasticSearch

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

untitled

PowerPoint Presentation

123

第二章 关系数据库

2006年暑期工作安排

目 录 主 编 寄 询... 1 老 小 学 话 题... 3 老 小 学 3 月 大 事 记... 7 亰 物 与 访... 9 镜 头 聚 焦 老 小 学 4 月 活 劢 预 告 単 文 赏 枂 多 彩 好 声 音 主 编 : 大 花 编 辑 :

untitled

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

第1套

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

软件测试(TA07)第一学期考试

Oracle高级复制冲突解决机制的研究

2013半年度报告全文.doc

Oracle数据库应用技术13 [兼容模式]

I

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

设计模式 Design Patterns

第4单元 创建数据类型和表

PowerPoint Presentation

一步一步教你搞网站同步镜像!|动易Cms

PowerPoint 演示文稿

未命名

南京晓庄学院2011年本科教学质量报告

Microsoft Word 年9月二级VF真卷.doc

* 目 錄 * 一. 我 們 的 學 校 1. 辦 學 宗 旨 P.1 2. 校 訓 P.1 3. 教 育 目 標 P.1 4. 靈 育 發 展 P 校 園 環 境 及 設 施 P.2 6. 校 董 會 組 合 P.2 7. 行 政 架 構 P.3 二. 我 們 的 學 生 班 級 組

Microsoft Word - 第4章 单表查询—样章.doc

数据库系统概论

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft PowerPoint - Ch6

Microsoft Word - oracle-排版文件.doc

epub 61-6

untitled

SQL Server SQL Server SQL Mail Windows NT

精 品 库 我 们 的 都 是 精 品 _www.jingpinwenku.com (8) 数 据 库 数 据 库 系 统 和 数 据 库 管 理 系 统 之 问 的 关 系 是 ( ) A) 数 据 库 包 括 数 据 库 系 统 和 数 据 库 管 理 系 统 B) 数 据 库 系 统 包 括

Microsoft Word - CCC cinese tradizionale 1601.doc

幻灯片 1

1、系统功能结构图

课程名称:数据库系统概论

ebook45-5

10

Microsoft Word - 正文.doc

MySQL执行计划选择--成本模型v1.0

ebook 165-5

<4D F736F F D204D CCAFDBEDDBFE2B4D3C8EBC3C5B5BDBEABCDA820B5DA35D5C22E646F63>

Microsoft Word - 序+目錄.doc

SQL Server基础

untitled

前 言 学 习 计 算 机 的 我 们 无 时 无 刻 不 在 和 数 据 打 交 道, 怎 么 有 效 的 管 理 这 些 数 据 变 成 我 们 必 须 要 谈 论 的 话 题 这 个 问 题 也 正 是 本 书 需 要 探 讨 的 问 题 : 数 据 库 技 术, 目 前 的 数 据 技 术

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

3.1 num = 3 ch = 'C' 2

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架

Transcription:

任务 5 多表查询 课内例题 例创建数据表 orders, 并向表中添加记录 首先创建表 orders,sql 语句如下 : CREATE TABLE orders( o_num int NOT NULL AUTO_INCREMENT, o_date datetime NOT NULL, c_id int NOT NULL, PRIMARY KEY (o_num) ) ; 插入需要演示的数据,SQL 语句如下 : INSERT INTO orders(o_num, o_date, c_id) VALUES(30001, '2008-09-01', 10001), (30002, '2008-09-12', 10003),(30003, '2008-09-30', 10004), (30004, '2008-10-03', 10005),(30005, '2008-10-08', 10001); 1. 为表或字段取别名 例 1 为 orders 表取别名 o, 查询 30001 订单的下单日期,SQL 语句如下 : SELECT * FROM orders AS o WHERE o.o_num = 30001; 例 2 查询 fruits 表, 为 f_name 取别名 fruit_name,f_price 取别名 fruit_price, 为 fruits 表取别名 f1, 查询表中 f_price < 8 的水果的名称,SQL 语句如下 : SELECT f1.f_name AS fruit_name, f1.f_price AS fruit_price FROM fruits AS f1 WHERE f1.f_price < 8; 例 3 在 orderitems 表中, 查询订单价格大于 100 的订单号和总订单价格,SQL 语句如下 : SELECT o_num, SUM(quantity * item_price) as totalprice FROM orderitems GROUP BY o_num HAVING totalprice >= 100

ORDER BY totalprice; 2. 连接查询首先创建数据表 suppliers,sql 语句如下 : CREATE TABLE suppliers ( s_id int NOT NULL AUTO_INCREMENT, s_name char(50) NOT NULL, s_city char(50) NULL, s_zip char(10) NULL, s_call CHAR(50) NOT NULL, PRIMARY KEY (s_id) ) ; 插入需要演示的数据,SQL 语句如下 : INSERT INTO suppliers(s_id, s_name,s_city, s_zip, s_call) VALUES(101,'FastFruit Inc.','Tianjin','300000','48075'), (102,'LT Supplies','Chongqing','400000','44333'), (103,'ACME','Shanghai','200000','90046'), (104,'FNK Inc.','Zhongshan','528437','11111'), (105,'Good Set','Taiyuang','030000', '22222'), (106,'Just Eat Ours','Beijing','010', '45678'), (107,'DK Inc.','Zhengzhou','450000', '33332'); 例 4 在 fruits 表和 suppliers 表之间进行查询 ( 从 fruits 表中查询 f_name f_price 字段, 从 suppliers 表中查询 s_id s_name) 查询之前, 查看两个表的结构 : DESC fruits; DESC suppliers; 由结果可以看到,fruits 表和 suppliers 表中都有相同数据类型的字段 s_id, 两个表通过 s_id 字段建立联系 接下来从 fruits 表中查询 f_name f_price 字段, 从 suppliers 表中查询 s_id s_name,sql 语句如下 : SELECT suppliers.s_id, s_name,f_name, f_price

FROM fruits,suppliers WHERE fruits.s_id = suppliers.s_id; 说明 : 在两个表中有相同字段时, 在比较时需要完全限定表名 ( 格式为 : 表名. 列名 ), 如果只给出列名,MySQL 将不知道指的是哪一个, 并返回错误信息 例 5 在 fruits 表和 suppliers 表之间, 使用 INNER JOIN 语法进行内连接查询, SQL 语句如下 :( 内连接查询 ) SELECT suppliers.s_id, s_name,f_name, f_price FROM fruits INNER JOIN suppliers ON fruits.s_id = suppliers.s_id; 为表名取别名之后的 SQL 语句如下 : select s.s_id,s_name,f_name,f_price from suppliers as s inner join fruits as f on s.s_id=f.s_id; 注意 : 取别名之后, 再引用表名时需要使用别名, 否则会出错! 例 6 查询供应 f_id= a1 的水果供应商提供的其他水果种类,SQL 语句如下 : ( 自连接查询 ) SELECT f1.s_id, f1.f_id, f1.f_name FROM fruits AS f1, fruits AS f2 WHERE f1.s_id = f2.s_id AND f2.f_id = 'a1'; +------+------------+ f_id f_name +------+------------+ a1 apple b1 blackberry c0 cherry +------+------------+ 为防止产生二义性, 需要对表取别名 第一次出现的 fruits 表的别名是 f1, 第二次出现的别名是 f2 例 7 在 customers 表和 orders 表中, 查询所有客户, 包括没有订单的客户,SQL 语句如下 :( 左连接查询 ) SELECT customers.c_id, orders.o_num FROM customers LEFT OUTER JOIN orders

ON customers.c_id = orders.c_id; c_id o_num 10001 30001 10001 30005 10002 NULL 10003 30002 10004 30003 例 8 在 customers 表和 orders 表中, 查询所有订单, 包括没有客户的订单,SQL 语句如下 :( 右连接查询 ) SELECT customers.c_id, orders.o_num FROM customers RIGHT OUTER JOIN orders ON customers.c_id = orders.c_id; c_id o_num 10001 30001 10003 30002 10004 30003 NULL 30004 10001 30005 3. 子查询 (1) 带 ANY 或 SOME 关键字的子查询下面定义两个表 tbl1 和 tbl2: CREATE table tb1 ( num1 INT NOT NULL); CREATE table tb2 ( num2 INT NOT NULL); 分别向两个表中插入数据 : INSERT INTO tb1 values(1), (5), (13), (27); INSERT INTO tb2 values(6), (14), (11), (20); ANY 关键字接在一个比较操作符的后面, 表示若与子查询返回的任何值比较为 TRUE, 则返回 TRUE 例 9 返回 tb2 表的所有 num2 列, 然后将 tb1 中的 num1 的值与之进行比较, 只

要大于 num2 的任何 1 个值, 即为符合查询条件的结果 SELECT num1 FROM tb1 WHERE num1 > ANY (SELECT num2 FROM tb2); (2) 带 ALL 关键字的子查询 例 10 返回 tb1 表中比 tb2 表 num2 列所有值都大的值,SQL 语句如下 : SELECT num1 FROM tb1 WHERE num1 > ALL (SELECT num2 FROM tb2); (3) 带 EXISTS 关键字的子查询 例 11 查询 suppliers 表中是否存在 s_id=107 的供应商, 如果存在, 则查询 fruits 表中的记录,SQL 语句如下 : SELECT * FROM fruits WHERE EXISTS (SELECT s_name FROM suppliers WHERE s_id = 107); 例 12 查询 suppliers 表中是否存在 s_id=107 的供应商, 如果存在, 则查询 fruits 表中的 f_price 大于 10.20 的记录,SQL 语句如下 : SELECT * FROM fruits WHERE f_price>10.20 AND EXISTS (SELECT s_name FROM suppliers WHERE s_id = 107);

例 13 查询 suppliers 表中是否存在 s_id=107 的供应商, 如果不存在则查询 fruits 表中的记录,SQL 语句如下 : SELECT * FROM fruits WHERE NOT EXISTS (SELECT s_name FROM suppliers WHERE s_id = 107); 无符合条件的记录 (4) 带 IN 关键字的子查询 例 14 在 orderitems 表中查询 f_id 为 c0 的订单号, 并根据订单号查询具有订单号的客户 c_id,sql 语句如下 : SELECT c_id FROM orders WHERE o_num IN (SELECT o_num FROM orderitems WHERE f_id = 'c0'); 上述查询过程可以分步执行, 先用内层子查询在表 orderitems 中查询出符合条件的订单号,SQL 语句如下 SELECT o_num FROM orderitems WHERE f_id = 'c0'; 可以看到, 符合条件的 o_num 列的值有两个 :30003 和 30005, 然后执行外层查询, 在 orders 表中查询订单号等于 30003 或 30005 的客户 c_id 嵌套子查询语句还可以改写为如下形式, 实现相同的效果 : SELECT c_id FROM orders WHERE o_num IN (30003, 30005); 例 15 与前一个例子类似, 但是在 SELECT 语句中使用 NOT IN 关键字,SQL 语句如下 : SELECT c_id FROM orders WHERE o_num NOT IN

(SELECT o_num FROM orderitems WHERE f_id = 'c0'); SELECT * FROM orders; (5) 带比较运算符的子查询 例 16 在 suppliers 表中查询 s_city 等于 Tianjin 的供应商 s_id, 然后在 fruits 表中查询所有该供应商提供的水果的种类,SQL 语句如下 : SELECT s_id, f_name FROM fruits WHERE s_id = (SELECT s1.s_id FROM suppliers AS s1 WHERE s1.s_city = 'Tianjin'); 例 17 在 suppliers 表中查询 s_city 等于 Tianjin 的供应商 s_id, 然后在 fruits 表中查询所有非该供应商提供的水果的种类,SQL 语句如下 : SELECT s_id, f_name FROM fruits WHERE s_id <> (SELECT s1.s_id FROM suppliers AS s1 WHERE s1.s_city = 'Tianjin');

4. 合并查询结果 例 18 在 fruits 表中查询所有价格小于 9 的水果的信息, 查询 s_id 等于 101 和 103 所有的水果的信息, 使用 UNION 连接查询结果,SQL 语句如下 : SELECT s_id, f_name, f_price FROM fruits WHERE f_price < 9.0 UNION SELECT s_id, f_name, f_price FROM fruits WHERE s_id IN(101,103); 例 19 查询所有价格小于 9 的水果的信息, 查询 s_id 等于 101 和 103 的所有水 果的信息, 使用 UNION ALL 连接查询结果,SQL 语句如下 :

SELECT s_id, f_name, f_price FROM fruits WHERE f_price < 9.0 UNION ALL SELECT s_id, f_name, f_price FROM fruits WHERE s_id IN(101,103);