MySQL数据库实验二

目录

文章目录

前言

实验二 数据库的查询实验

实验目的

实验要求

实验内容及步骤

总结


前言

本文是继续上一段实验一创建的数据库基础上完成的
主要进行数据库的查询,单表查询以及多表查询等相关内容
如有需要请访问实验一
Mysql之图书发行数据库应用系统:实验一-CSDN博客


实验二 数据库的查询实验

  • 实验目的

要求学生掌握SQL语言的使用方法,熟练掌握和使用简单表的数据查询﹑数据排序和数据连接查询﹑嵌套查询等操作方法,

  • 实验要求

  1. 检索L1从书店S1购买的图书的书号及其册数;
  2. 检索馆址在“上海”的图书馆及其电话号码;
  3. 检索L4收藏图书的书名;
  4. 检索S3发行的图书书名及数量;
  5. 检索收藏图书“数据库设计”的馆名。
  6. 检索没有购买上海新华书店出售的图书的图书馆号LNO。
  • 实验内容及步骤

  • 1.检索L1从S1购买的图书书号以及册数,我们主要查询图书发行表LBS即可
    代码如下
    SELECT BNO, QTY
    FROM LBS
    WHERE LNO = 'L1' AND SNO = 'S1';

    查询结果如下 

  • 2检索地址为上海的图书管以及电话只需要查找L表进行查询
    代码如下
    -- 检索馆址在“上海”的图书馆及其电话号码;

    SELECT L.LName,TEL
    from L
    where CITY ='上海';

    查询结果如下 

    3检索L4收藏的图书名,需要多表查询,首先要查询LBS 表寻找到L4对应的BNO,然后在

    B表中查询对应的书名即可
    代码如下
    -- 检索L4收藏图书的书名;

    SELECT B.BNAME
    FROM B,lbs
    WHERE LBS.LNO = 'L4' and lbs.BNO = B.BNO;
    SELECT B.BNAME
    FROM B
    JOIN LBS ON B.BNO = LBS.BNO
    WHERE LBS.LNO = 'L4';

    查询结果如下 

    4查询书名和书数量只能在B表,所以我们先在LBS表中进行查找到对应SNO为’S3’对应的BNO对应在B表中查询
    代码如下

    -- 检索S3发行的图书书名及数量;

    select BNAME,QTY
    from lbs,b
    where lbs.BNO = b.BNO and lbs.SNO = 'S3';
    SELECT B.BNAME, LBS.QTY
    FROM B
    JOIN LBS ON B.BNO = LBS.BNO
    WHERE LBS.SNO = 'S3';

    查询结果如下 

    5查询收藏数据库的图书管馆名,我们需要查询L,B,LBS表,进行多表查询,首先在B表查询书名为'数据库设计',然后对应找到LBS表中对应BNO的LNO从而对应在L表中进行查询
    代码如下

    -- 检索收藏图书“数据库设计”的馆名。

    SELECT L.LName
    FROM L
    JOIN LBS ON L.LNO = LBS.LNO
    JOIN B ON LBS.BNO = B.BNO
    WHERE B.BNAME = '数据库设计';
    SELECT L.LName
    FROM L,B,LBS
    WHERE B.BNAME = '数据库设计' and L.LNO = LBS.LNO
    and LBS.BNO = B.BNO;

    查询结果如下 

    6查询没有主要使用not exists,即我们只要找到对应有的就可以,应为只要查询书店名为 '上海新华书店'的SNO,在LBS表中查询对应的LNO即可
    其中使用select 1,SELECT  1 在子查询中并不真正关心从LBSS表中检索什么数据,它只是检查是否存在满足某些条件的记录
    代码如下

    -- 检索没有购买上海新华书店出售的图书的图书馆号LNO。

    SELECT L.LNO
    FROM L
    WHERE NOT EXISTS (
        SELECT 1
        FROM LBS
        JOIN S ON LBS.SNO = S.SNO
        WHERE S.SNAME = '上海新华书店' AND LBS.LNO = L.LNO
    );
    SELECT L.LNO
    FROM L
    WHERE NOT EXISTS (
        SELECT 1
        FROM LBS,S
        WHERE S.SNAME = '上海新华书店' AND LBS.LNO = L.LNO and LBS.SNO = S.SNO
    );

查询结果如下 


总结

本次实验主要是数据库的查询实验,联系了SQL语句的查询技巧,从一开始单表查询,到多表查询,了解join和select 1 等新的知识,对数据库查询了解更多了。
推荐学习博客 https://xxetb.xetslk.com/s/4GgGz6

  • 34
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值