首页 > 数据库 >数据库系统原理-实验二

数据库系统原理-实验二

时间:2023-05-27 15:15:00浏览次数:35  
标签:test1 partsupp pid partsuse part 实验 原理 数据库系统 SELECT

一、实验目的:

掌握使用 SQL 语言进行各种查询的操作和视图的操纵方法。

二、实验要求:

在现有的数据库上进行各种查询操作,对视图的创建、使用等操作。

三、实验步骤:

1、 开始→程序→Microsoft SQL Server→SQL Server Management Studio。

2、 在“连接到服务器”对话框中,选择“Windows 身份验证”,点击“连接”,进 入 SQL Server Management Studio 操作界面。

3、单击“新建查询”按钮,在上部的空白区导入文件“实验二 SQL 语句.doc”中 的 SQL 语句,然后单击工具栏上 “执行”按钮(红色叹号)。建立起实验要操 作的数据库 test1,并在库中建立表、数据。下部的空白区显示该语句的运行情 况。(注:以下操作均在上部的空白区输入 SQL 语句,单击执行后,下部的空 白区显示该语句的运行情况。)

4、在数据库 test1 中进行下列查询操作,将查询语句与结果写入实验报告。

以下为实验中的操作以及相应的sql 语句:

(1)
SELECT *
FROM test1.supplier
ORDER BY city ASC, sname DESC;

(2)
SELECT *
FROM test1.part
ORDER BY pname ASC, weight DESC;

(3)
SELECT *
FROM test1.project
WHERE pname LIKE '%厂%';

(4)
SELECT *
FROM test1.supplier
WHERE substring(sname, 2, 1) = '方';

(5)
SELECT MAX(weight), MIN(weight), AVG(weight)
FROM test1.part;

(6)
SELECT COUNT(DISTINCT color) as num, AVG(weight)
FROM test1.part
WHERE pname = '螺丝刀';

(7)
SELECT test1.partsupp.pid, test1.part.pname, test1.partsupp.sid, test1.partsupp.qty
FROM test1.partsupp
JOIN test1.part ON test1.partsupp.pid = test1.part.pid
WHERE test1.partsupp.sid = 'S1';

(8)
SELECT test1.partsuse.pid, test1.part.pname, test1.partsuse.jid, test1.partsuse.qty
FROM test1.partsuse
JOIN test1.part ON test1.partsuse.pid = test1.part.pid
WHERE test1.partsuse.jid = 'J1';

(9)
SELECT DISTINCT pname
FROM test1.partsuse
JOIN test1.part ON test1.partsuse.pid = test1.part.pid
WHERE test1.partsuse.jid NOT IN (
SELECT jid
FROM test1.partsuse
JOIN test1.part ON test1.partsuse.pid = test1.part.pid
WHERE test1.part.color = '红'
);

(10)
SELECT DISTINCT sname
FROM test1.partsupp
JOIN test1.supplier ON test1.partsupp.sid = test1.supplier.sid
WHERE test1.partsupp.pid NOT IN (
SELECT pid
FROM test1.partsupp
JOIN test1.part ON test1.partsupp.pid = test1.part.pid
WHERE test1.part.color = '红'
);

(11)
SELECT jid
FROM test1.partsuse
GROUP BY jid
HAVING SUM(qty) > 500;


(12)
SELECT jid
FROM test1.partsuse
JOIN test1.part ON test1.partsuse.pid = test1.part.pid
GROUP BY jid
HAVING COUNT(DISTINCT test1.partsuse.pid) > 3;

(13)
SELECT jid
FROM test1.partsuse
GROUP BY jid
HAVING COUNT(DISTINCT pid) = (SELECT COUNT(*) FROM test1.part);

(14)
SELECT test1.partsupp.sid
FROM test1.partsuse
JOIN test1.partsupp ON test1.partsuse.pid = test1.partsupp.pid AND test1.partsuse.jid = 'J1'
GROUP BY test1.partsupp.sid
HAVING COUNT(DISTINCT test1.partsuse.pid) = (SELECT COUNT(DISTINCT pid) FROM test1.partsuse WHERE jid = 'J1');

(15)
SELECT test1.supplier.sname, test1.part.pname, test1.project.pname, test1.partsupp.qty
FROM test1.partsupp
JOIN test1.supplier ON test1.partsupp.sid = test1.supplier.sid
JOIN test1.part ON test1.partsupp.pid = test1.part.pid
JOIN test1.project ON test1.partsupp.jid = test1.project.jid
ORDER BY test1.supplier.sname;

(16)
SELECT test1.part.pname, test1.project.pname, test1.partsupp.qty
FROM test1.partsupp
JOIN test1.supplier ON test1.partsupp.sid = test1.supplier.sid
JOIN test1.part ON test1.partsupp.pid = test1.part.pid
JOIN test1.project ON test1.partsupp.jid = test1.project.jid
WHERE test1.supplier.sname = '东方红';

-- 建立视图
CREATE VIEW v_supplier_part AS
SELECT partsupp.sid, partsupp.pid, partsupp.qty
FROM test1.partsupp
JOIN test1.project ON partsupp.jid = project.jid
WHERE project.pname = '机车厂工程项目';

-- (1)
SELECT pid, SUM(qty) as sum_qty
FROM v_supplier_part
GROUP BY pid;

-- (2)
SELECT *
FROM test1.partsupp
JOIN test1.supplier ON partsupp.sid = supplier.sid
WHERE supplier.sname = 'S2';

标签:test1,partsupp,pid,partsuse,part,实验,原理,数据库系统,SELECT
From: https://www.cnblogs.com/rsy-bxf150/p/17436749.html

相关文章

  • MATLAB实验一:一维寻优法(0.618法)程序设计
    一、实验目的通过一维寻优黄金分割法的程序设计,培养计算机的应用能力,并为今后无约束优化方法的学习和编程,奠定基础;掌握缩小寻优区间的黄金分割法。二、实验内容(1)用0.618法求解优化问题:minf(x)=x^2-sin(x)在区间[0,1]上的极小点和极小值;(2)根据0.618法算法步骤编写Matlab的程......
  • MATLAB实验二:最速下降法程序设计
    一、实验目的通过最速下降法的程序设计,为今后的约束优化方法的学习和编程奠定基础;掌握负梯度方向的定义和最速下降法的迭代公式;通过此次实验,进一步巩固最速下降法的基本原理和思想。二、实验内容(1)求解无约束优化问题:(2)完成最速下降法(负梯度法)的MATLAB编程、调试;(3)要求选取多个......
  • MATLAB实验三:Newton法程序设计
    一、实验目的掌握Hesse矩阵的计算方法和Newton法的基本思想及其迭代步骤;学会运用MATLAB编程实现常用优化算法;正确处理实验数据和分析实验结果及调试程序。二、实验内容(1)求解无约束优化问题(3)完成Newton法(牛顿法)的MATLAB编程、调试;(4)选取几个与实验二中相同的初始点,并给出相关实......
  • MATLAB实验四:共轭梯度法程序设计
    一、实验目的掌握共轭梯度法的基本思想及其迭代步骤;学会运用MATLAB编程实现常用优化算法;能够正确处理实验数据和分析实验结果及调试程序。二、实验内容 (1)求解无约束优化问题:minf(x)=100(x1^2-x2)^2+(x1-1)^2,x∈R;(2)终止准则取||f(x^k)||<=10^-5,搜索方法采用非精确搜索Armijo;......
  • [5月摸鱼计划] 浅谈DCDC电压变换(原理、结构、可用)
    DCDC转换器简介在电子产品中,我们常需要不同的直流电压来为电路提供工作,这时我们便会见到LDO和DC/DC的身影,但是严格意义上LDO也是一种DC/DC,在电源芯片选型中,LDO和DC/DC则是两种完全不同的芯片。与线性稳压器LDO相比较,效率高是DC/DC的显著优势,通常效率在70%以上,效率高的可达到95%以上......
  • java中HashMap的实现原理
    HashMap是Java中常用的一种存储结构,它通过哈希表实现了快速查找数据的功能,下面是它的具体实现原理:HashMap内部存储结构HashMap的内部实现是一个数组和一个链表组成的。数组称为哈希表,用于保存实际存储的数据,链表则用于处理哈希冲突,即不同的键值对可能会被存储到哈希表的同一个位置......
  • Web安全透测试 掌握绝大多数Web漏洞原理及防手段-鸿雁长飞光不度
    Web安全渗测试掌握绝大多数Web漏洞原理及防手段download:3w51xuebccom使用Netty和SpringBoot实现仿微信的示例在本文中,我们将使用Netty和SpringBoot框架来创建一个简单的聊天应用程序,类似于微信。这个应用程序将支持多用户聊天和即时消息发送。下面让我们来一步步看看如何实现......
  • 实验二 数据库安全性与完整性设计与实践
    实验二数据库安全性与完整性设计与实践20201331黄文刚一、实验目的1.系统梳理常规的数据库安全性与完整性技术;2.了解所选用DBMS的安全性控制和完整性约束机制;3.能够在特定的DBMS上进行具体实践。二、实验要求1.能够根据特定的应用进行基于应用场景的安全性与完整性设计,并落实......
  • Mybatis核心原理简单实现
    1、导入一个依赖点击查看代码<dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency>2、有一个mapper.xml文件点击查看代码<?......
  • 数据库系统原理-实验一
    一、实验目的:掌握使用SQL语言进行数据定义和数据操纵的方法。二、实验要求:建立一个数据库stumanage,建立三个关系表student,course,sc。向表中插入数据,然后对数据进行删除、修改等操作,对关系、数据库进行删除操作。三、实验步骤:1、开始→程序→MicrosoftSQLServer→S......