数据库系统实验二-交互式SQL

题目:交互式SQL

实验环境:Windows 10操作系统、MySQL 8.0、Navicat

实验内容与完成情况:

一、在MySQL中建立一个数据库,进行实验所要求的各种操作,所有的SQL操作均在此建立的新库里进行。

二、根据以下要求,记录所有的实验用例。

1.任务要求:

        数据定义

                熟悉基本表的创建、修改及删除。

                熟悉索引的创建和删除。

                熟悉视图的创建和删除。

        数据操作

                完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询)。

                完成各类更新操作(插入数据,修改数据,删除数据)。

        视图的操作

        视图的定义(创建和删除),查询,更新(注意更新的条件)。

2.第4题:用SQL语句建立第2章习题6中的4个表;

【SQL语句编写】

CREATE DATABASE IF NOT EXISTS SPJ CHARACTER SET 'utf8';
USE SPJ;
 
CREATE TABLE IF NOT EXISTS S(
    SNO VARCHAR(2),
    SNAME VARCHAR(5),
    `STATUS` INT(3),
    CITY VARCHAR(5)
);
INSERT INTO S
VALUES 
('S1', '精益',20,'天津'),
('S2', '盛锡',10,'北京'),
('S3', '东方红',30,'北京'),
('S4', '丰泰盛',20,'天津'),
('S5', '为民',30,'上海');
CREATE TABLE IF NOT EXISTS P(
    PNO VARCHAR(2),
    PNAME VARCHAR(5),
    COLOR VARCHAR(2),
    `WEIGHT` INT(2
);
INSERT INTO P
VALUES 
('P1', '螺母','红',12),
('P2', '螺栓','绿',17),
('P3', '螺丝刀','蓝',14),
('P4', '螺丝刀','红',14),
('P5', '凸轮','蓝',40),
('P6', '齿轮','红',30);
CREATE TABLE IF NOT EXISTS J(
    JNO VARCHAR(2),
    JNAME VARCHAR(5),
    CITY VARCHAR(5)
);
INSERT INTO J
VALUES 
('J1', '三建','北京'),
('J2', '一汽','长春'),
('J3', '弹簧厂','天津'),
('J4', '造船厂','天津'),
('J5', '机车厂','唐山'),
('J6', '无线电厂','常州'),

('J7', '半导体厂','南京');

CREATE TABLE IF NOT EXISTS SPJ(
    SNO VARCHAR(2),
    PNO VARCHAR(2),
    JNO VARCHAR(2),
    QTY INT(5)
);
INSERT INTO SPJ
VALUES 
('S1', 'P1','J1',200),
('S1', 'P1','J3',100),
('S1', 'P1','J4',700),
('S1', 'P2','J2',100),
('S2', 'P3','J1',400),
('S2', 'P3','J2',200),
('S2', 'P3','J4',500),
('S2', 'P3','J5',400),
('S2', 'P5','J1',400),
('S2', 'P5','J2',100),
('S3', 'P1','J1',200),
('S3', 'P3','J1',200),
('S4', 'P5','J1',100),
('S4', 'P6','J3',300),
('S4', 'P6','J4',200),
('S5', 'P2','J4',100),
('S5', 'P3','J1',200),
('S5', 'P6','J2',200),
('S5', 'P6','J4',500);

【运行结果】

针对建立的4个表用SQL语言完成下列查询。

  1. 求供应工程J1零件的供应商号码SNO;

  1. 求供应工程J1零件P1的供应商号码SNO;

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

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

  1. 求至少用了供应商S1所供应的全部零件的工程号JNO。

S1所供应的零件为P1、P2,只有J4都用了P1、2P

3.第5题:针对习题4中的4个表试用SQL语言完成以下各项操作:

(1)找出所有供应商的姓名和所在城市;

(2)找出所有零件的名称、颜色、重量;

(3)找出使用供应商S1所供应零件的工程号码;

(4)找出工程项目J2使用的各种零件的名称及其数量;

  1. 找出上海厂商供应的所有零件号码;

  1. 找出使用上海产的零件的工程名称;

(7)找出没有使用天津产的零件的工程号码;

(8)把全部红色零件的颜色改成蓝色;

(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改;

(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;

(11)请将(S2,J6,P4,200)插入供应情况关系。

    

4.第9题:请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。

  

针对该试图完成下列查询:

  1. 找出三建工程项目使用的各种零件代码及其数量;

 

  1. 找出供应商S1的供应情况。

    

出现的问题:

  • 问题一:创建表时报错

解决方案:

  • 问题一:对关键字STATUS进行标注所用的符号有误,不是单引号’,而是`

心得体会:

     通过本次实验,对sql语句对数据库操作有了更好的了解,本次实验中,通过sql语句建库、建表、向表中添加数据、删除数据、查询数据等操作,更加明白了sql语句操作的方便性。sql语句是一个非过程化的语言,因为它一次处理一个记录,对数据库提供自动导航。同时,sql语句不要求用户指定对数据的存放方法,也可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其他类型的终端用户。

    通过对数据库的单表、多表查询操作,对sql语句的查询操作的逻辑和操作有了更好的了解,方便了以后对数据库进行查询操作。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是蒸饺吖~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值