首页 > 数据库 >数据库实验1

数据库实验1

时间:2024-06-19 21:32:54浏览次数:13  
标签: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/bdsz/p/18257461

相关文章

  • Django链接数据库,ORM迁移数据库,ORM操作之数据操作,Django框架之生命周期流程图,Djan
    ⅠDjango链接数据库默认的Django数据库是sqlite3链接MySQL数据库--->电脑上则会运行MySQL【一】下载数据库【二】在settings.py设置定义参数#链接MySQL数据库DATABASES={'default':{#指定我们使用的引擎是mysql数据库的引擎'ENGINE':'......
  • web实验1
    1)编写index.jsp文件,展示某一类物品或知识的介绍,可以是歌曲、人物、名胜古迹等。要求至少有三个条目,用户登录后才能浏览这三个条目的内容。如果用户尚未登录,需要显示用户为“游客”,否则显示用户名。页面下端设置超链接,指向login.jsp。如果用户尚未登录,单击了某一条目的内容,则系统......
  • web实验2
    <%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head>   <title>无题</title></head><bodybackground="/image/gb1.jpg"><divalign="center"style......
  • Linux 中断实验
    Linux中断实验先来回顾一下裸机实验里面中断的处理方法:①、使能中断,初始化相应的寄存器。②、注册中断服务函数,也就是向irqTable数组的指定标号处写入中断服务函数②、中断发生以后进入IRQ中断服务函数,在IRQ中断服务函数在数组irqTable里面查找具体的中断处理函数,找......
  • verilog 设计与综合实验报告(5)
    题目5:序列检测器1、设计方案2、程序代码modulesequential5_detector(inputi_clk, inputi_rst, inputi_seq, outputregout);parameteridle=5'b00000,s1=5'b00001,s2=5'b00010,s3=5'b00100,......
  • 1950 Springboot汽修技能点评系统idea开发mysql数据库APP应用java编程计算机网页源码m
    一、源码特点 springboot汽修技能点评系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSPjava编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。前段主要技术bootstrap.cssjquery......
  • MySQL 查询数据库响应时长详解
    前言作为一名测试工程师,在性能测试中,查询数据库的响应时长是一个重要指标。MySQL提供了多种方法来监控和优化查询性能。本文将详细介绍如何使用MySQL的内置功能和工具来查询数据库响应时长,并分享一些性能优化的技巧。启用查询日志开启慢查询日志慢查询日志用于记录执......
  • Pgsql数据库之Linux环境备份Windows环境还原
    Pgsql数据库之Linux环境备份Windows环境还原Linux环境备份使用pg_dump备份pg_dump是一个命令行工具,用于备份单个数据库。它可以生成一个SQL脚本文件,该文件包含了重建数据库所需的所有SQL命令。pg_dump-h主机名-p端口号-U用户名-Fc-b-v-fmypg.pgdumpmypg......
  • Zabbix监控神通数据库教程
    作者:乐维社区(forum.lwops.cn)乐乐神通数据库,即神舟通用数据库(ShenTongDatabase),是我国自主研发的一款关系型数据库管理系统。它在国内市场有一定的应用,尤其是在一些对数据安全、独立性有较高要求的领域,如政府、金融、电信、能源、医疗等行业。Zabbix是一款被广泛应用的开源监控......
  • MySQL数据库初体验
    目录1.数据库的基本概念(1)关系型数据库(SQL)(2)非关系型数据库(NoSQL)(3)主流的数据库介绍2.MySQL安装方法1.数据库的基本概念数据库分两大类:关系型数据库SQL、非关系型数据库NoSQL。(1)关系型数据库(SQL)典型代表:MySQL、MariaDB、PostgreSQL、SQL、Server、Oracle、Db2。信创标准(国产......