作业3-点评.

Slides:



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

作業一 : USING DBMS ( 使用 DB2 及 SQL 基本練習 ) 報告人:學生楊群期 學號: 課程 : 高等資料庫 講師 : 楊維邦教授.
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
数据库系统概论 华中科技大学能源与动力工程学院
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
数据库技术 实践.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
复习重点; 1. 关系模型、ER模型 2. SQL 3. 事务管理 4. 函数依赖与规范化 5. 数据库设计  复习题 一、单项选择题
第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等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
软件设计师培训.
计算机应用基础 上海大学计算中心.
資料庫管理 資管二 賴柏融.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
数据库应用与程序设计.
第7章 建立資料表與完整性限制條件 7-1 資料型別 7-2 資料表的建立 7-3 建立完整性限制條件 7-4 修改與刪除資料表
第五讲 利用视图进行查询优化.
第11章 详细设计.
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
作业4讲评.
第六章 學習SQL語言.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
資料庫系統 Database Systems
第 8 章 資料的 新增、修改與刪除.
資料庫系統 Database Systems
課程名稱:資料庫系統 授課老師:李春雄 博士
作业三讲评 04计算机.
实验二 交互式SQL 邓云.
数据库技术 第三章 关系数据库标准语言SQL 中国科学技术大学网络学院 阚卫华.
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
題庫解析:MTA資料庫檢定 授課老師:李春雄 博士
第 7 章 建立資料表與 資料庫圖表.
資料庫安全 (Database Security)
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
建立/修改/刪除資料表 建立資料表 使用Enterprise Manager工具
MySQL数据库基础与实例教程 之 MySQL表结构的管理 郭水泉.
Principle and Application of Database
国家“十一五”规划教材 数据库原理与应用教程(第3版).
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
作业2&3讲评.
Ch4.SQL Server 2005資料庫組成員元件介紹
实验二讲评 … 张榆….
数据库技术.
第20章 MySQL数据库.
数据库技术与应用.
第三章作业点评 助教: 干艳桃、张榆 Contact 干艳桃
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
SQL查询语句 蔡海洋.
第三章 SQL Server数据管理.
第 7 章 建立資料表與資料庫圖表.
第4章 表的创建与维护 4.1 数据类型 4.2 数据完整性约束 4.3 创建数据表 4.4 修改数据表 4.5 删除数据表.
作业二讲评.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
第4章 数据查询.
104 四技二專甄選入學 簡章解析 輔導室 何乙娟.
Web安全基础教程
Presentation transcript:

作业3-点评

基本情况总结 题目:第三章1~5题 难:4.4,4.5,5.4,5.6,5.7,5.10 中:3,4.1,4.2,4.3,5.5,5.8,5.9,5.11 易:1,2,5.1,5.2,5.3, P.S. dbhw2的答案已经上传至FTP,请大家自行下载更 正答案

概念性题目(第1,2题) 第1题 SQL语言5个特点 基本回答正确 第2题 SQL定义功能 包括CREATE ,ALTER和DROP

第3题 考核要点 共同问题 理解题设中隐含的完整性约束要求 考查DDL的运用 没有声明主码、外码 缺少必要的check 非空属性没有not null约束 声明了主码后,多余地添加unique,not null约束等 不知道如何声明包含多个属性的主码

第3题(续) 例1: 例2 create table P ( PNO char(5) primary key, PNAME char(10) not null, COLOR char(10), WEIGHT int check(weight > 0 ) ); 例2 create table SPJ ( SNO char(5) not null references S(SNO) , PNO char(5) not null references P(PNO), JNO char(5) not null references J(JNO), QTY int check(QTY > 0) primary key (SNO,PNO,JNO) 声明primary key之后还有not null或unique

第4、5题 考核要点 共同问题 理解题设的语义 SQL语句操作 没有认真审题,所答非所问 如5.6题,题设要求工程名称,而很多同学回答的却是工程号 对谓词any,all,exists理解不够深刻 缺乏理论知识 没有从语义来分析 何时需要distinct?

4.1 求供应工程J1零件的供应商号码 需要distinct 参考答案: select distinct SNO from SPJ where JNO = ‘J1’ 在这里需要去重;因为指定一个工程,一个供应商可能提供多种零件

4.2 求供应工程J1零件P1的供应商号码 需要distinct吗? 参考答案: select SNO from SPJ where (JNO = 'J1'and PNO = 'P1'); 这里无需去重; 因为(SNO,JNO,PNO)是主码,确定了JNO和PNO,SNO只能是唯一的了

4.3 求供应工程J1零件为红色的供应商号码SNO 参考答案: select SPJ.SNO from SPJ , P where SPJ.JNO = 'J1‘ and P.PNO = SPJ.PNO and P.COLOR = '红';

4.4* select JNO from J where not exists (select * from S, P, SPJ 求没有使用天津供应商生产的红色零件的工程号 要包括没有使用任何零件的工程 不能从SPJ表里面找JNO,而是从J表中找 参考答案 select JNO from J where not exists (select * from S, P, SPJ where S.SNO=SPJ.SNO and S.CITY='天津' and SPJ.PNO=P.PNO and P.COLOR='红' and SPJ.JNO=J.JNO ) ; 如果没有使用任何零件,那么该条件不会被满足,嵌套的select不会得到结果,not exists返回true。

4.5* 变换后语义: 求至少使用了供应商S1所供应的全部零件的工程号 查询解释为: 形式化表示: 查询工程号为x的工程,对所有的零件y,只要S1供应商提供零件y, 则工程x就使用了y。 形式化表示: 用P表示谓词“供应商S1提供了零件y” 用q表示谓词“工程x使用了零件y” 则上述查询为: (∀y) p → q (∀y)p →q ≡ ¬ ∃y(p∧¬q) 变换后语义: 不存在这样的零件y,供应商S1生产了y,而工程x没有使 用。

4.5参考答案 select JNO from J where not exists ( select * from P 参考答案1 参考答案2 select JNO from J where not exists ( select * from P where PNO in ( select PNO from SPJ where SNO='S1') and not exists ( select * from SPJ where J.JNO=JNO and PNO=P.PNO) ) select distinct JNO from SPJ SPJX where not exists ( select * from SPJ SPJY where SPJY.SNO = ‘S1' and not exists ( select * from SPJ SPHZ where SPJX.JNO = SPJZ.JNO and SPJY.PNO = SPJZ.PNO )

5.4 找出工程项目J2使用的各种零件的名称及其数量 典型错误: 参考答案 应该是PNAME,有些同学写的是零件号PNO 没有对同类的零件进行group by ,再对重量QTY求和 参考答案 select PNAME , sum(QTY ) from P ,SPJ where SPJ.JNO = ‘J2’ and SPJ.PNO = P.PNO group by P.PNO, P.PNAME

5.6 找出使用上海产的零件的工程名称 主要问题: 应该是JNAME,而不是工程号码JNO 典型错误: select JNO from SPJ,S where SPJ.SNO = S.SNO and S.CITY = ‘上海’ select JNAME from J where JNO in ( select JNO where SPJ.SNO=S.SNO and CITY=’上海’ ) 参考答案1 参考答案2 select distinct J.JNAME from S, J, SPJ where SPJ.JNO = J.JNO and SPJ.SNO = S.SNO and S.CITY = ‘上海’

5.7 找出没有使用天津产的零件的工程号码 与4.4类似,需要包含没有使用任何零件的工程 select JNO from J where JNO not IN (select JNO from SPJ,S where SPJ.SNO = S.SNO and S.CITY = '天津' ) 参考答案1 参考答案2 select JNO from J where not exists ( select * from SPJ, S where SPJ.JNO = J.JNO and SPJ.SNO = S.SNO and S.CITY = ‘天津’)

5.10 从供应商关系中删除S2的纪录,并从供应情况关系中 删除相应的纪录 应该先删除SPJ表中的相应的记录,再删除S表中的相 应的记录! 或: alter table SPJ add foreign key(SNO) references S(SNO) on delete cascade delete from S where SNO=’S2’

总结 成绩分布图 优秀作业:杨涛,王伟,于彦雷 ,张小雪 未交作业:蔡荀,李京哲 ,李三川,徐源

Tips 写SQL语句的时候注意格式工整,让人能够清晰看出 各个子句,最好不要所有的字句都写在一起 能用连接实现的就不要用嵌套查询,因为连接算法有 很多优化措施,这点在实验4中大家可以通过查询执行 计划来体会 书写工整很重要,不工整的书写会导致阅读者不明白 写的是什么,从而无法做出准确判断