ORACLE与数据库原理作业 习题五(答案全)

首先声明:这个是我尽力自己做的,不能保证百分之百正确,毕竟老师没发答案给我对

一、选择题

  1. SQL 语言是( C )语言。
    A. 层次数据库 B. 网络数据库 C. 关系数据库 D. 非数据库

  2. 如果在 where 子句中有两个条件要同时满足,应该用哪个逻辑符来连接( C )。
    A. OR B. NOT C.AND D. NONE

  3. 用以下哪个子句来限制分组统计结果信息的显示( D)。
    A. FROM B. WEHRE C. SELECT D. HAVING

  4. SQL 语言中,删除一个表的命令是( B )。
    A. DELETE B. DROP C. CLEAR D. PURGE

  5. 只有满足联接条件的记录才包含在查询结果中, 这种联接为( C )。
    A. 左联接 B. 右联接 C. 内联接 D. 完全联接

  6. 如果要输出姓王的学生名单,在 where 子句中最好用( C)操作符。
    A. = B. IN C. LIKE D. BETWEEN

  7. 如果希望进行分组统计的查询输出,可以使用(
    A. SELECT B. GROUP BY C. HAVING

  8. 在标准 SQL 中,建立视图的命令是( C )。

B)子句。
D. ORDER BY

A. CREATE SCHEMA 命令
C. CREATE VIEW 命令
9. 关系数据库中,主键是( A )。
A. 为标识表中唯一的实体
C. 只允许以表中第一字段建立

B. CREATE TABLE 命令
D. CREATE INDEX 命令

B. 创建唯一的索引,允许空值
D. 允许有多个主键的

  1. 在 Transact-SQL 语法中,用来插入和更新数据的命令是( A )。

A. INSERT ,UPDATE
B. UPDATE ,INSERT
C. DELETE ,UPDATE
D. CREATE ,INSERT INTO

二. 填空题

  1. SQL 语言中,修改表结构的语句是_ALTER_TABLE________ 。
  2. 如果要使用 SELECT 语句返回指定条数的记录, 则应使用_DISTINICT_____关键字来限定输出字段。
  3. 进行分组查询时, 要对分组进行选择,可以用__HAVING_____子句对分组结果进行过滤。
  4. 用 SELECT 进行模糊查询时, 可以使用__字符_____匹配符, 但要在条件值中使用 _______ 或____%___通配符查询;并且模糊查询只能针对字段类型是___部分已知____的查询
  5. SQL 语言中行注释的符号为_//;块注释的符号为/**/_。
  6. 对数据进行统计时,求最大值的函数是MAX()_______。

三、默认在银行贷款数据库中编写 SQL 语句, 完成下面的查询与操作。

  1. 查询所有客户的客户代码、客户名称、经济性质和注册资金。
    select Cno,Cname,Cnatutn,Ccapital
    From Customer;

  2. 查询“N0101”银行的银行名称和电话。
    Select Bname,Btel
    From Bank
    Where Bno=’N0101’;

  3. 查询贷款金额在 500- 1000 万元的客户代码、银行代码、贷款日期和贷款金额。
    select Cno,Bno,Ldate,Lamount
    from Loan
    where Lamount between 500 and 1000;

  4. 查询在 2019 年 8 月 1 日后贷款, 且贷款期限是 10 年的客户代码。
    select Cno
    from Loan
    Where Ldate>’2019-8-1’and Lterm=10;

  5. 查询贷款期限为 5 年、 10 年或 15 年的贷款信息。
    select *
    from Loan
    Where Lterm IN(5,10,15);

  6. 查询经济性质为“私营”的所有客户的最高注册资金、最低注册资金和平均注册资金。
    select MAX(Ccapital) 最高注册资金,MIN(Ccapital) 最低注册资金,
    AVG(Ccapital) 平均注册资金
    from Customer
    WHERE Cnautre=’私营’;

  7. 查询每种经济性质的客户的经济性质、最高注册资金、最低注册资金和平均注册资金。
    select Ccapital,MAX(Ccapital) 最高注册资金,MIN(Ccapital) 最低注册资金,
    AVG(Ccapital) 平均注册资金
    from Customer
    GROUD BY Cnautre

  8. 统计每个客户的客户代码和贷款总次数,要求查询结果按贷款总次数升序排列。
    SELECT Cno 客户代码,Count(Cno) 贷款总次数
    FROM Loan
    CROUP BY Cno
    Oder By Count(Cno) ASC;

  9. 查询贷款次数大于 3 次的客户的平均贷款金额和贷款次数。
    SELECT AVG(Lamount),COUNT(Cno)
    FROM Loan
    GROUP BY Cno
    HAVING COUNT(Cno)>3;

  10. 统计每种经济性质贷款的客户的总数及其平均贷款金额,列出平均贷款金额最高的前三 名的经济性质、客户总数和平均贷款金额。
    SELECT TOP 3 Cnautre, AVG(Lamount),COUNT(Cno)
    FROM Loan
    GROUP BY Cnature
    ODER BY AVG(Lamount);

  11. 查询贷款期限为 5 年、 10 年或 15 年的客户名称、银行名称、贷款日期、贷款金额和贷款 年限。
    SELECT Cname,Bname,Ldate,Lterm
    FROM Loan
    WHERE Lterm IN(5,10,15);

  12. 查询经济性质为“国营”的客户在“历下区”的银行的贷款情况,列出客户名称、银行 名称以及贷款期限。
    SElECT Cname,Bname,Lterm
    FROM Customer C JOIN Loan T ON C.Cno=T.Cno JOIN Bank B ON B.Bno=L.Bno
    WHERE Cnautre=’国营’ AND Bloc=’历下区’;

  13. 查询与“J0101”银行在同一区的其他银行的名称。
    SELECT B2.Bname
    FROM Bank B1 JOIN Bank B2 On B1.Bloc=B2.Bloc
    WHERE B1.Bno=’J0101’AND B2.Bno!=’J0101’;

  14. 查询哪些银行没有贷过款,列出银行代码和银行名称。分别用多表连接和子查询两种形 式实现。
    SELECT B.Bno,Bname
    FROM Bank B LEFTJOIN Loan L ON B.Bno=L.Bno
    WHERE L.Ldate IS NULL;

SELECT Bno,Bname
FROM Bank
WHERE Bno NOT IN
(SELECT BNo FROM Loan );

  1. 查询贷过款的所有客户的名称、贷款银行名称、贷款日期、贷款金额,要求将查询结果 放在一张新的永久表New_Loan 中, 新表中的列名分别为客户名称、银行名称、贷款日期、 贷款金额。
    SELECT Cname客户名称,Bnam 银行名称,Ldate 贷款日期,Lamount 贷款金额
    INTO New_Loan
    FROM Customer C JOIN Loan L ON C.Cno=L.Cno JOIN Bank B ON L.Bno=B.Bno

  2. 查询经济性质为“国营”的客户在“历下区”的银行的贷款情况,列出客户代码、银行 代码以及贷款日期, 分别用多表连接和子查询两种形式实现。
    SElECT Cno,Bno,Ldate
    FROM Customer C JOIN Loan T ON C.Cno=T.Cno JOIN Bank B ON B.Bno=L.Bno
    WHERE Cnautre=’国营’ AND Bloc=’历下区”;

SElECT Cno,Bno,Ldate
FROM Loan
WHERE Cno IN(SELECT Cno FROM Customer WHERE Cnautre=’国营’) AND
Bloc IN(SELECT Bloc FROM Bank WHERE Bloc=’历下区’);

  1. 查询在“招行舜耕支行”贷过款的客户名称、,分别用多表连接和子查询两种形式实现。
    SElECT Cname
    FROM Customer C JOIN Loan T ON C.Cno=T.Cno JOIN Bank B ON B.Bno=L.Bno
    WHERE Bname=’ 招行舜耕支行’;
    SELECT Cname
    FROM Customer
    WHERE Cno IN( SELECT Cno From Loan WHERE Bno IN(SELECT Bno FROM Bank WHERE Bname=’ 招行舜耕支行’));

  2. 查询在“工行甸柳分理处”贷款金额最高的前三名(包含并列情况) 的客户代码、客户 名称和经济性质。分别用表连接和子查询两种形式实现。
    SElECT TOP 3 C.Cno,Cname,Cnautre
    FROM Customer C JOIN Loan T ON C.Cno=T.Cno JOIN Bank B ON B.Bno=L.Bno
    WHERE Bname=’工行甸柳分理处’
    CROUP BY Cno,Cname,Cnautre
    ODER BY SUM(Lamount) DESC ;
    SELECT Cno,Cname,Cnautre
    SELECT TOP 3 Cno,Cname,Cnautre
    FROM Customer
    WHERE Cno IN(SELECT Cno FROM Loan WHERE Bno IN(SELECT Bno FROM Bank WHERE Bname=’ 工行甸柳分理处’ ))

  3. 查询在“招行舜耕支行”贷过款且贷款金额高于此银行的平均贷款金额的客户代码、贷 款日期和贷款金额。
    SElECT Cno,Ldate,Lamount
    FROM Loan
    WHERE Bno IN(SELECT Bno FROM Bank WHERE Bname=’ 招行舜耕支行 ’)
    GROUP BY Cno,Ldate,Lamount
    HAVING Lamoun>AVG(Lamount);

  4. 在银行表中插入如下数据: 银行代码为“J0103”, 银行名称为“建行高新支行”, 位于“历 下区”,电话为空。
    INSERT INTO Bank(Bno,Bname,Bloc,Btel)
    VAlUES(‘J0103’,’建行高新支行’,’历下区’,NULL);

  5. 删除从贷款日期到当前日期超过 10 年的贷款记录。
    DELETE FROM Bank
    WHERE Ldate+getTime()>10;

  6. 将经济性质为“国营”的客户在“农行山东省分行”的贷款的所有贷款金额增加 5 万元, 分别用多表连接和子查询两种形式实现。
    UPDATE Loan
    SET Lamount=Lamount+50000
    FROM Loan T JOIN Bank B ON T.Bno=B.Bno JOIN Customer C ON C.Cno=L.Cno
    WHERE (Bname=’农行山东省分行’)AND (Cnautre=’国营’);
    UPDATE Loan SET Lamount=Lamount+10
    WHERE Cno IN(
    SELECT Cno
    FROM Customer WHERE Cnautre =’ 国营’)
    AND
    Bno IN(
    SELECT Bno
    FROM Bank
    WHERE Bname=’农行山东省分行’);


如果这篇文章对你帮助很大,麻烦帮忙,点下友情链接: 鱼儿项目网(直接点这里),进去之后切换几个页面,停留几十秒。感激不尽。本站采集全网自媒体,网赚类,电商营销课程。里面有一些免费项目大家也可以看看

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQL查询二 2 通过本实验使学生掌握多查询、子查询以及基本数据操作 二、实验内容 使用实验一建立的银行贷款数据库,完成以下查询。 1-4是多查询和子查询,5-11是数据操作 查询经济性质为“国营”的法人在上海的银行贷款的信息,列出法人代码、银行代码和贷款日期,分别用多连接和子查询两种方式实现。 查询在“建设银行上海分行”贷过款的法人名称,分别用多连接和子查询两种方式实现。 查询在“工商银行北京A支行”贷款金额前三名(包括并列的情况)的法人的法人代码、法人名称和经济性质,分别用多连接和子查询两种方式实现。 查询在“工商银行北京B支行”贷款、且贷款金额高于此银行的平均贷款金额的法人代码、贷款日期和贷款金额。 在银行中插入如下数据:银行代码号为:B321B,银行名称为:建设银行上海B分行,电话为空值。 在法人中插入如下数据:法人代码号为:E11,法人名称为:新法人,注册资金为:2350万元,经济性质使用默认值。 删除银行编号为“B321B”的银行信息。 删除2000年之前一次贷款金额最小的贷款记录。 删除从贷款日期到当前日期天数超过10年的贷款记录。 删除法人名称为“爱贝乐玩具有限公司”且贷款金额小于10万元的贷款记录,分别用子查询和多连接两种方式实现。 将经济性质为“私营”的法人在“工商银行上海支行”贷款的所有贷款金额加5万元,分别用子查询和多连接两种方式实现。 使用实验一建立的学生数据库,完成以下查询 12-15是多查询和子查询,16-20是数据操作 查询计算机系年龄大于总平均年龄的学生的姓名和年龄。 查询计算机系年龄大于计算机系平均年龄的学生的姓名和年龄。 查询计算机系考试成绩小于总平均分的学生的学号、姓名。 将考试成绩最低的并且不及格学生的最低修课成绩改为60。 将数据库基础考试成绩最低的且成绩为不及格学生的数据库考试成绩改为60。 删除计算机系“计算机网络”课程的部选课记录。 删除vb考试成绩最低的两个学生的vb考试记录。 对数据库考试成绩进行如下修改:如果成绩低于60分,则提高10%;如果成绩在60到80之间,则增加6%;如果成绩在80到95之间则提高4%,其他情况不提高。 对学分进行如下修改:如果是第1到第3学期开始的课程,则学分增加1分;如果是第4到第6学期开设的课程,学分增加2分,其他学期开始的课程学分增加3分。 以下查询必须用子查询完成: 查询男生年龄最大的学生的姓名和所在系。 查询选修了‘数据库基础’的学生的姓名、所在系。s 选修了第6学期开始的课程的学生的学号、姓名和所在系。 查询男生所修的课程的课程名。 查询年龄最小的学生所选的课程名。 三、实验报告 将实验结果反映在实验报告中,并对实验中遇到的问题及解决方案、进行整理、分析总结,提出实验结论或自己的看法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

m明月Java3

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

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

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

打赏作者

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

抵扣说明:

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

余额充值