实验二 交互式SQL 邓云.

Slides:



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

作業一 : USING DBMS ( 使用 DB2 及 SQL 基本練習 ) 報告人:學生楊群期 學號: 課程 : 高等資料庫 講師 : 楊維邦教授.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
目 录 第 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版) 任课教师:刘雅莉
第3章 SQL语言初步 2017/3/14.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
資料庫 (Database) SQL Server 2008實作
第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. 计算机网络.
软件设计师培训.
计算机应用基础 上海大学计算中心.
第3章 数据查询与SQL命令.
資料庫管理 資管二 賴柏融.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
数据库应用与程序设计.
第五讲 利用视图进行查询优化.
關聯式資料庫.
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
第六章 學習SQL語言.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
第 8 章 資料的 新增、修改與刪除.
資料庫系統 Database Systems
課程名稱:資料庫系統 授課老師:李春雄 博士
作业三讲评 04计算机.
数据库技术 第三章 关系数据库标准语言SQL 中国科学技术大学网络学院 阚卫华.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
第三章 关系数据库标准查询语言SQL 3.1 SQL概述 3.2数据定义语言(DDL) 3.3 SQL的数据查询(DML)
第 7 章 建立資料表與 資料庫圖表.
資料庫安全 (Database Security)
MySQL数据库基础与实例教程 之 MySQL表结构的管理 郭水泉.
国家“十一五”规划教材 数据库原理与应用教程(第3版).
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
作业3-点评.
作业2&3讲评.
iRepor报表设计基础 IReport安装 普通实体报表 数据结果集报表 工作流主从报表 饼状图报表 柱状图,曲线图报表 条形码报表
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
实验二讲评 … 张榆….
数据库技术.
数据库技术与应用.
MySQL开发规范 DB组-张浩.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
第三章作业点评 助教: 干艳桃、张榆 Contact 干艳桃
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
第三章 SQL Server数据管理.
作业二讲评.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
第4章 数据查询.
Web安全基础教程
Presentation transcript:

实验二 交互式SQL 邓云

实验内容概况 完成情况基本良好 大多数同学态度都很端正 实验之星:徐晨灿,陈佳威,丁迪童,史少晨,仇 浩波 39

实验2.1 67人提交了报告,12人未提交 未提交报告的同学: 王干,揭宇如,王庆一,李广耀,王嘉良,余岸轩, 丁海涛,安东,杜紫薇,彭芃,王灏 39

实验2.2 64人提交了报告,15人未提交,1人文件损坏 未提交报告的同学: 王干,揭宇如,卓炜,王庆一,李广耀,王嘉良,余 岸轩,丁海涛,刘一鸣,邓捷,张微,梁雨诗,许 玉珏,王灏,汪洲 提交作业文件损坏同学:陈晓钟 18

建表及数据插入 在SQLSERVER中,如果列名和关键字同名,则 须用“[]”括起来 注意添加外键约束 CREARE TABLE S( SNO VARCHAR(3) PRIMARY KEY , SNAME VARCHAR(24), [STATUS] INT, CITY VARCHAR(24) ) CREARE TABLE SPJ( SNO VARCHAR(3), PNO VARCHAR(3), JNO VARCHAR(3), QTY INT, PRIMARY KEY (SNO,PNO,JNO), FOREIGN KEY (SNO) REFERENCES S(SNO), FOREIGN KEY (PNO) REFERENCES P(PNO), FOREIGN KEY (JNO) REFERENCES J(JNO) 在SQLSERVER中,如果列名和关键字同名,则 须用“[]”括起来 注意添加外键约束

SQL查询 求供应工程J1零件P1的供应商号码 求供应工程J1零件为红色的供应商号码,并按其供 应数量之和降序排列显示 SELECT SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' 结果:(S1,S3) 求供应工程J1零件为红色的供应商号码,并按其供 应数量之和降序排列显示 SELECT SNO FROM SPJ, P WHERE SPJ.PNO = P.PNO AND P.COLOR='红' AND JNO='J1' GROUP BY SNO ORDER BY SUM(QTY) DESC; 结果:(S1,S3)

SQL查询 求没有使用天津供应商生产的红色零件的工程号 结果:(J2, J5, J6, J7) SELECT JNO FROM J WHERE JNO NOT IN ( SELECT JNO FROM SPJ, P, S WHERE SPJ.PNO=P.PNO AND SPJ.SNO=S.SNO AND S.CITY='天津' AND P.COLOR='红‘ ) 结果:(J2, J5, J6, J7) SELECT JNO FROMS,P,SPJ WHERE S.CITY != '天津' AND COLOR!='红' AND P.PNO=SPJ.PNO AND S.SNO=SPJ.SNO 没有考虑用了天津供应商提供的非红色的零件的工程和用了红色但非天津供应商提供的零件的工程

SQL查询 求被供应零件P1的平均数量大于供应给工程J1的任 意零件的最大数量的工程号 SELECT JNO FROM J T1 嵌套查询和被嵌套查询的关联一定要记得描述 SELECT JNO FROM J T1 WHERE (SELECT AVG(QTY) FROM SPJ WHERE PNO='P1' AND JNO=T1.JNO) > (SELECT MAX(T2.QTY) FROM SPJ T2 WHERE JNO='J1') 结果:(J4)

SQL查询 求被供应零件P1的平均数量大于供应给工程J1的任 意零件的最大数量的工程号 结果:空 SELECT DISTINCT SNO FROM SPJ T1 WHERE PNO='P1‘ AND QTY > ( SELECT AVG(QTY) FROM SPJ T2 T2.JNO=T1.JNO ) 结果:空

SQL查询 求至少有一个供应商、零件或工程所在的城市 SELECT CITY FROM S UNION SELECT CITY FROM J 结果:(北京, 长春, 常州, 南京, 上海, 唐山, 天津)

SQL查询——除法 语义描述: 在一个集合A中寻在满足如下条件的元组,该元组在关系C中跟集合B的所有元 组都有关系 普通的SQL表示形式: result A B C a2 a1 b1 AID BID a2 b2 a1.id b1.id a2.id b1.id … … a2.id b2.id an bm a2.id bm.id an.id b2.id an.id bm.id … … 普通的SQL表示形式: SELECT a FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE NOT EXISTS ( SELECT * FROM C WHERE C.AID=A.ID AND C.BID=B.ID )

SQL查询——除法 文艺的SQL表示形式: SELECT a FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE B.ID NOT IN ( SELECT C.BID FROM C WHERE C.AID=A.ID ) SELECT a FROM A WHERE (SELECT COUNT(*) FROM B) = (SELECT COUNT(DISTINCT C.BID) FROM C WHERE C.AID=A.ID) ( (SELECT B.ID FROM B) EXCEPT (SELECT C.BID FROM C WHERE C.AID=A.ID) ) 此处默认C中C.BID存在外键引用B.ID。 如果没有则需要再添加什么条件呢?

SQL查询 求至少用了供应商S1所供应的全部零件的工程号 结果:(J4) SELECT WHERE NOT EXISTS JNO FROM J T1 * FROM SPJ T2 WHERE T2.SNO=‘S1’ AND SELECT * FROM SPJ WHERE T2.PNO = SPJ.PNO AND T1.JNO = SPJ.JNO 结果:(J4)

SQL查询 求对所有工程都提供了同一零件的供应商号码 (零件,供应商,工程) / (工程) 结果:空 (零件,供应商,工程) / (工程) SELECT DISTINCT SNO FROM SPJ T1 WHERE NOT EXISTS (SELECT * FROM J WHERE NOT EXISTS (SELECT * FROM SPJ T3 WHERE T1.SNO = T3.SNO AND T1.PNO = T3.PNO AND J.JNO = T3.JNO) ) 结果:空

SQL查询 求供应商号码对,其中Sx和Sy供应的零件都相同 (SX.id,工程) / (SY供应零件的工程工程) (SY.id,工程) / (SX供应零件的工程工程) SELECT T1.SNO, T2.SNO FROM J T1, J T2 WHERE T1.SNO > T2.SNO AND NOT EXISTS( SELECT * FROM SPJ T3 WHERE T3.SNO=T2.SNO AND NOT EXISTS (SELECT * FROM SPJ T4 WHERE T4.PNO = T3.PNO AND T4.SNO=T1.SNO) ) SELECT * FROM SPJ T5 WHERE T5.SNO=T1.SNO AND NOT EXISTS (SELECT * FROM SPJ T6 WHERE T6.PNO = T5.PNO AND T6.SNO=T2.SNO) 第一列供应商提供了了第二列供应商提 供的所有零件 第二列供应商提供了了第一列供应商提 供的所有零件 结果:空

SQL更新 将所有工程中红色零件的使用数量加100 UPDATE SPJ SET QTY=QTY+100 WHERE PNO in( SELECT PNO FROM P WHERE COLOR='红‘ )

SQL删除与临时表 删除工程J1和J2都使用的零件及相关记录 步骤: 第一步和第二步也可以用一句select into语句完成。 删除SPJ表中相关记录 删除P表中相关记录 删除临时表 CREATE TABLE #TMP( PNO VARCHAR(3) ); INSERT INTO #TMP(PNO) SELECT DISTINCT X.PNO FROM SPJ X, SPJ Y WHERE X.PNO = Y.PNO AND X.JNO = 'J1' AND Y.JNO = 'J2'; DELETE FROM SPJ WHERE PNO IN (SELECT * FROM #TMP); DELETE FROM P WHERE DROP TABLE #TMP; 第一步和第二步也可以用一句select into语句完成。