网站大量收购独家精品文档,联系QQ:2885784924

数据库课件3第三章 实体与的关系.pptx

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库课件3第三章 实体与的关系

实体与关系;目录;3.1 实体间的关系;关系的度;递归关系;二元关系;三元关系;关系的连接性;三种基本二元关系示例;n-元关系;关系的存在性;关系的属性;从关系到表;外键;3.2 在关系上的查询;3.2.1 多表连接;例1:找出所有顾客购买的商品名称和数量。 ;自连接;例4:找出在同一城市居住的顾客对。 SELECT c1.cid, c2.cid FROM customers c1, customers c2 WHERE c1.city = c2.city; 自身配对不列出 WHERE c1.city = c2.city AND c1.cid c2.cid; 不重复列出(a,b)和(b,a) WHERE c1.city = c2.city AND c1.cid c2.cid; ;例5:找出比Smith工资高的销售员。 SELECT a2.sname FROM sales a1, sales a2 WHERE a1.sname = ‘Smith’ AND a2.salary a1.salary; 当有多个smith时,该问题的答案 例6:写出购买过商品的顾客姓名和产品名称。 SELECT c.cname, p.pname FROM customers c, products p, orders o WHERE o.cid = c.cid AND o.pid = p.pid; 一般来说,N个表连接需要N-1个连接条件。;例7:写出购买过单价超过1元的产品的顾客名单。(多表连接) SELECT c.cname FROM orders o, customers c, products p WHERE o.cid = c.cid AND o.pid = p.pid AND p.price 1; 例8:找出与经理在同一城市的销售员。 SELECT s2.sname FROM sales s1, sales s2, locations l1, locations l2 WHERE s1.manager = s2.sid AND s1.lid = l1.lid AND s2.lid = l2.lid AND l1.city = l2.city; ;3.2.2 子查询;使用子查询的方法;3.2.2.1 直接使用子查询;例2:查询比Smith工资高的销售员信息。 SELECT * FROM sales WHERE salary (SELECT salary FROM sales WHERE sname = ‘Smith’); (需要保证只有一个叫Smith的人) ;例3:查询比平均工资高的人员信息。 SELECT * FROM sales WHERE salary (SELECT AVG(salary) FROM sales); 例4:销售量第二高的单笔销售额。 SELECT MAX(dollars) FROM orders WHERE dollars (SELECT MAX(dollars) FROM orders); ;直接使用子查询的要求;3.2.2.2 量词;例5:找出比工作在L01的所有人工资高的人员。 SELECT * FROM sales WHERE salary ALL(SELECT salary FROM sales WHERE lid = ‘L01’);;例6:求通过居住在L01的销售员购买货物的顾客ID。 SELECT cid FROM orders WHERE sid = SOME (SELECT sid FROM sales WHERE lid = ‘L01’); 例7:薪水最高的sid及姓名。 SELECT sid, sname FROM sales WHERE salary = (SELECT MAX(salary) FROM sales); 或者 WHERE SALARY = ALL(SELECT salary FROM sales); ;3.2.2.3 使用IN;例9:找出工作地点和薪金与Smith相同的其他人员。 SELECT * FROM sales WHERE lid IN (SELECT lid FROM sales WHERE sname = ‘Smith’) AND salary IN (SELECT salary FROM sales WHERE sname = ‘Smith’); 当有多个Smith时,上面语句出错;例9:找出

文档评论(0)

fangsheke66 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档