【数据库原理】三级项目——数据库基本操作

news2024/11/17 11:24:16

一、项目名称

数据库基本操作

二、项目内容

  1. 了解一种DBMS的功能和界面。
  2. 使用图形化界面创建数据库。
  3. 使用图形化界面创建课本70页习题6中的关系表。
  4. 使用图形化界面向所建的关系表中插入数据。
  5. 完成70页习题6第3-5小题的各项查询。
  6. 查询每个城市供应的零件总数。
  7. 查询使用零件数量最多的项目编号和零件数。

所用课本为王珊 萨师煊的《数据库系统概论 第五版》,如下图

image-20230727181309346

三、实验报告

3.1 了解一种DBMS的功能和页面

在这里我使用的是下载MySQL 自带的DBMS——MySQL Workbench

img

Graph 1 MySQL Workbench软件的首页

img

Graph 2 新建数据库的链接(这里我之前已经创建了与端口3306的连接了)

img

Graph 3 填写连接相关的信息

注:这里我之前创了一个数据库连接,使用的是MySQL Sever默认端口3306,如果想用别的端口名可以更改MySQL Server的端口号,具体做法如下:你可以在MySQL Server配置文件中更改端口号。默认情况下,MySQL Server的配置文件通常是my.cnf(Unix/Linux)或my.ini(Windows)。您可以打开该文件,搜索并修改"port"(端口)的设置为一个未被占用的端口号,然后重启MySQL Server。完成后,在MySQL Workbench中创建新的数据库连接,并使用您指定的新端口号。

img

Graph 4 完成连接后的操作页面

注:该DBMS的功能栏已用红框框出并使用//给出了相关的使用注释


3.2 使用图形化界面创建数据库(创建模式)

img

Graph 5 右击模式列表空白处

img

Graph 6 在选项卡中填写该模式的相关信息

img

Graph 7 填写完成后点击Apply选项

img

Graph 8 一直Apply即可

img

Graph 9 创建selfpractise模式成功了


3.3 使用图形化界面创建课本70页习题6中的关系表。

设有一个 SPJ 数据库,包括 S、P、]及 SPJ4 个关系模式

  • S(SNO,SNAMESTATUS,CITY)
  • P(PNO.PNAME.COLORWEIGHT)
  • J(JNOJNAME,CITY)
  • SPJ(SNO,PNONO,QTY)

供应商表 S 由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。

工程项目表]由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市 (CITY)组成

供应情况表 SPJ 由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(OTY)组成,表示某供应商供应某种零件给某工程项目的数量为 QTY。
今有若干数据如下

image-20230727182115676

img

Graph 10 进入selfpractise模式右击Table后点击Create Table

img

Graph 11 填写该表的相关属性

img

Graph 12 S表的相关属性

img

Graph 13 创建S表的相关代码(系统自动生成的)

img

Graph 14 P表的相关属性

img

Graph 15 创建P表的相关代码(系统自动生成的)

img

Graph 16 J表的相关属性

img

Graph 17 创建J表的相关代码(系统自动生成的)

img

Graph 18 SPJ表的相关属性

img

Graph 19 创建SPJ表的相关代码(系统自动生成的)


3.4 使用图形化界面向所建的关系表中插入数据

img

Graph 20 进入插入数据页面

img

Graph 21 依次填写各项记录对应的属性值

img

Graph 22 J表填写情况

img

Graph 23 J表填写系统自动生成的代码

img

Graph 24 P表填写情况

img

Graph 25 P表填写系统自动生成的代码

img

Graph 26 S表填写情况

img

Graph 27 S表填写系统自动生成的代码

img

Graph 28 SPJ表填写情况

img

Graph 29 SPJ表填写系统自动生成的代码

注:修改了两处地方分别是各表的?NO类型和SPJ的key,以下是修改细节 1. 将SNO\PNO\JNO属性分别从INT类型调整为CHAR类型 2. 将SPJ表中SNO的PK属性给删除了

3.5 完成70页习题6第3-5小题的各项查询

3.5.1求供应工程J1零件为红色的供应商号码SNO

CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `new_view` AS
    SELECT 
        `spj`.`SNO` AS `SNO`
    FROM
        `spj`
    WHERE
        ((`spj`.`JNO` = 'J1')
            AND `spj`.`PNO` IN (SELECT 
                `p`.`PNO`
            FROM
                `p`
            WHERE
                (`p`.`COLOR` = '红')))

Result:

img

3.5.2 求没有使用天津供应商生产的红色零件的工程号JNO

CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `5-2` AS
    SELECT 
        `spj`.`JNO` AS `JNO`
    FROM
        `spj`
    WHERE
        (`spj`.`SNO` IN (SELECT 
                `s`.`SNO`
            FROM
                `s`
            WHERE
                (`s`.`CITY` <> '天津'))
            AND spj.PNO IN (SELECT 
                p.PNO
            FROM
                p
            WHERE
                (p.COLOR = '红')))

Result:

image-20230727183110781

3.5.3 求至少用了供应商S1所提供的全部零件的工程号JNO

CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `5-3` AS
    SELECT DISTINCT
        `spjz`.`JNO` AS `JNO`
    FROM
        `spj` `spjz`
    WHERE
        EXISTS( SELECT 
                `spjy`.`PNO`
            FROM
                `spj` `spjy`
            WHERE
                ((`spjy`.`JNO` = `spjz`.`JNO`)
                    AND EXISTS( SELECT 
                        `spjx`.`PNO`
                    FROM
                        `spj` `spjx`
                    WHERE
                        ((`spjx`.`SNO` = 'S1')
                            AND (`spjx`.`PNO` = `spjy`.`PNO`)))))

Result:

image-20230727183216329

3.6 查询每个城市供应的零件总数

  1. 先创建了一个j-spj的联合视图
CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `j-spj` AS
    SELECT 
        `j`.`JNO` AS `JNO`,
        `j`.`CITY` AS `CITY`,
        `j`.`JNAME` AS `JNAME`,
        `spj`.`SNO` AS `SNO`,
        `spj`.`PNO` AS `PNO`
    FROM
        (`j`
        JOIN `spj`)
    WHERE
        (`j`.`JNO` = `spj`.`JNO`)

Result:

img

  1. 随后使用查询操作进行分组
SELECT SUM(count) AS count, CITY
FROM (
    SELECT COUNT(PNO) AS count, CITY
    FROM selfpractise.`j-spj`
    GROUP BY JNO, CITY
) AS subquery
GROUP BY CITY;

Result:

img


3.7 查询使用零件数量最多的项目编号和零件数

  1. 先创建项目编号和零件数的视图
CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`localhost` 
    SQL SECURITY DEFINER
VIEW `jno-pnum` AS
    SELECT 
        `spj`.`JNO` AS `JNO`, COUNT(`spj`.`PNO`) AS `PNUM`
    FROM
        `spj`
GROUP BY `spj`.`JNO`

Result:

img

  1. 随后对其零件数最大的一组进行查询
SELECT JNO, PNUM 
from selfpractise.`jno-pnum`
where PNUM = (select max(PNUM) from selfpractise.`jno-pnum`)

Result:

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/800292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安卓:视图绑定——ButterKnife

目录 一、ButterKnife介绍 二、ButterKnife优点&#xff1a; 三、ButterKnife的使用 build.gradle添加 ButterKnife 依赖&#xff1a; 1、视图绑定&#xff1a; 2、点击事件绑定&#xff1a; 3、资源绑定&#xff1a; 4.绑定多个视图元素&#xff1a; 5.绑定视图容器&…

内核链表在用户程序中的移植和使用

基础知识 struct list_head {struct list_head *next, *prev; }; 初始化&#xff1a; #define LIST_HEAD_INIT(name) { (name)->next (name); (name)->prev (name);} 相比于下面这样初始化&#xff0c;前面初始化的好处是&#xff0c;处理链表的时候&#xff0c;不…

Python中运行取消Python console模式

在Python里run的时候突然会发现&#xff0c;进入的不是run模式&#xff0c;而是console模式&#xff0c;这种运行模式能保留你每次的运行历史&#xff0c;因为会重开一个运行小页面&#xff0c;关闭操作如下&#xff1a;

GAMES104里渲染等一些剩下的问题

渲染的一些剩下的问题 1. 如何理解渲染中的AO(环境光遮蔽) 环境光遮蔽 我们先从一个简单的效果开始—环境光遮蔽(Ambient Occlusion,以下简称AO)。大家可以看到&#xff0c;下图中的场景没有任何渲染效果&#xff0c;也没有任何着色效果&#xff0c;但场景呈现出了非常清晰的…

大数据学习教程:Linux 基础教程(上)

1 操作系统概述 1.1 计算机原理 现代计算机大部分都是基于冯.诺依曼结构&#xff0c;该结构的核心思想是将程序和数据都存放在计算机中&#xff0c;按存储器的存储程序首地址执行程序的第一条指令&#xff0c;然后进行数据的处理计算。 计算机应包括运算器、控制器、储存器、…

PLC学习的步骤与重点:

熟悉基础元器件的原理和使用方法&#xff1a;了解按钮、断路器、继电器、接触器、24V开关电源等基础元器件的原理和使用方法&#xff0c;并能够应用它们来实现简单的逻辑电路&#xff0c;例如电机的正反转和单按钮的启停控制。 掌握PLC的接线方法&#xff1a;了解PLC的输入输出…

【C++进阶:map和set】

本节涉及到的所有代码见以下链接&#xff0c;欢迎参考指正&#xff01; ​​​​​​​ practice: 课程代码练习 - Gitee.comhttps://gitee.com/ace-zhe/practice/tree/master/map%E5%92%8Cset ​​​​​​​ 关联式容器 在C初阶阶段&#xff0c;已经学习并总了STL中的部分…

麒麟信安携手先进数通发布“多云协同,加速推进服务器虚拟化国产平滑迁移”信创联合解决方案

金融行业是现代经济的核心&#xff0c;金融行业信息技术应用创新是关系“国家安全”和“科技强国”战略的重要工程。为满足银行等金融机构数字化转型和信创发展的双重需求&#xff0c;麒麟信安与北京先进数通信息技术股份公司携手推出“多云协同&#xff0c;加速推进服务器虚拟…

Elisp之message为内容增加颜色(二十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

驱动 CAN总线

Controller Area Network&#xff08;控制器局部网络&#xff09;是一种有效支持分布式控制或实时控制的串行异步半双工的现场总线&#xff0c;支持多主机多从机&#xff0c;需要 CAN控制器 和 CAN收发器 的硬件支持 标准内容ISO 11898-1:2015定义数据链路层&#xff08;包括逻…

「二叉树与递归的一些框架思维」

文章目录 0 二叉树1 思路2 刷题2.1 二叉树的最大深度题解Code结果 2.2 二叉树的直径题解Code结果 2.3 在每个树行中找最大值题解Code结果 2.4 翻转二叉树题解Code结果 2.5 二叉树展开为链表题解Code结果 2.6 每日一题&#xff1a;数组中两元素的最大乘积题解Code结果 0 二叉树 …

华为开源自研AI框架昇思MindSpore应用案例:Vision Transformer图像分类

目录 一、环境准备1.进入ModelArts官网2.使用CodeLab体验Notebook实例 二、环境准备与数据读取三、模型解析Transformer基本原理Attention模块 Transformer EncoderViT模型的输入整体构建ViT 四、模型训练与推理模型训练模型验证模型推理 近些年&#xff0c;随着基于自注意&…

Spring——Spring是什么?IoC容器是什么?

文章目录 前言一、Spring是什么1.IoC 容器 —— 容器2.IoC 容器 —— IoC传统程序开发控制反转式程序开发 3.Spring IoC 二、DI是什么总结 前言 本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话&#xff0c;互关一下…

Vue2基础四、生命周期

零、文章目录 Vue2基础四、生命周期 1、生命周期 Vue生命周期&#xff1a;一个Vue实例从 创建 到 销毁 的整个过程。生命周期四个阶段&#xff1a;① 创建 ② 挂载 ③ 更新 ④ 销毁 创建阶段&#xff1a;创建响应式数据挂载阶段&#xff1a;渲染模板更新阶段&#xff1a;修改…

基于K8s环境·使用ArgoCD部署Jenkins和静态Agent节点

今天是「DevOps云学堂」与你共同进步的第 47天 第⑦期DevOps实战训练营 7月15日已开营 实践环境升级基于K8s和ArgoCD 本文节选自第⑦期DevOps训练营 &#xff0c; 对于训练营的同学实践此文档依赖于基础环境配置文档&#xff0c; 运行K8s集群并配置NFS存储。实际上只要有个K8s集…

Spring Security内置过滤器详解

相关文章&#xff1a; OAuth2的定义和运行流程Spring Security OAuth实现Gitee快捷登录Spring Security OAuth实现GitHub快捷登录Spring Security的过滤器链机制Spring Security OAuth Client配置加载源码分析 文章目录 前言OAuth2AuthorizationRequestRedirectFilterOAuth2Log…

matlab多线程,parfor循环进度,matlab互斥锁

一. 内容简介 matlab多线程&#xff0c;parfor循环进度&#xff0c;matlab互斥锁 二. 软件环境 2.1 matlab 2022b 2.2代码链接 https://gitee.com/JJW_1601897441/csdn 三.主要流程 3.1 matlab多线程 有好几种&#xff0c;最简单的&#xff0c;最好理解的就是parfor&am…

cpolar内网穿透外网远程访问本地网站

文章目录 cpolar内网穿透外网远程访问本地网站 cpolar内网穿透外网远程访问本地网站 在现代人的生活中&#xff0c;电脑是离不开的重要设备&#xff0c;大家看到用到的各种物品都离不开电脑的支持。尽管移动电子设备发展十分迅速&#xff0c;由于其自身存在的短板&#xff0c;…

Leetcode-每日一题【剑指 Offer 66. 构建乘积数组】

题目 给定一个数组 A[0,1,…,n-1]&#xff0c;请构建一个数组 B[0,1,…,n-1]&#xff0c;其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]A[0]A[1]…A[i-1]A[i1]…A[n-1]。不能使用除法。 示例: 输入: [1,2,3,4,5]输出: [120,60,40,30,24] 提示&#xff1a; 所…

SSIS对SQL Server向Mysql数据转发表数据 (三)

1、在控制流界面&#xff0c;在左侧的组件里&#xff0c;添加一个“序列容器组件”和一个“数据流任务组件” 2、双击数据流任务&#xff0c;进入到数据流界面&#xff0c;然后再在左面添加一个OLE DB 源组件、目标源组件 3、右键源组件&#xff0c;编辑&#xff0c;选择好相关…