DataBase Experiment HW03

1.1

使用DELETE语句删除数据时,会有一个返回值,含义是 A
A、
被删除的记录数目

B、
删除是否成功执行

C、
删除影响的表个数

D、
以上答案都不对

1.2

查找条件为:姓名不是NULL的记录 C

A、
WHERE NAME ! NULL

B、
WHERE NAME NOT NULL

C、
WHERE NAME IS NOT NULL

D、
WHERE NAME!=NULL

2.1

以下SQL命令中属于数据操作语言(DML)的命令有 ADF

A、
INSERT

B、
CREATE

C、
DROP

D、
UPDATE

E、
ALTER

F、
DELETE

2.2

在SQL语法规范中,having子句的使用下面描述正确的是 AC

A、
having子句即可包含聚合函数作用的字段也可以包括普通的标量字段

B、
使用having的同时不能使用where子句

C、
having子句一般与group by子句同时使用,用于对分组进行筛选

D、
在having子句中出现、但没有被聚集的那些属性,无须出现在group by子句中

3.1

通过“___<表名>”语句,可以查看表的结构(请写关键词全称并大写)

DESCRIBE; DESC

3.2

使用"___<数据库名>"语句,可以指定一个已有数据库作为当前工作数据库(请写关键词全称并大写)

USE

4.1

请编写SQL语句,从branch表中找出地址位于上海市的支行机构名称。(输出:支行名称)

SELECT NAME FROM branch WHERE CITY='上海市'

4.2

请编写SQL语句计算account表中所有人的平均余额。(输出:平均余额)

select AVG(AVAIL_BALANCE) as average_salary from account ;

4.3

请编写SQL语句从account表中找出余额最多的账户信息。(输出:账户编号、可用余额、开户日期和最后活跃日期)

select ACCOUNT_ID, AVAIL_BALANCE, OPEN_DATE, LAST_ACTIVITY_DATE from account
where AVAIL_BALANCE in (select max(AVAIL_BALANCE) from account);

4.4

请使用SQL语句将individual表中CUST_ID为1的人安排到employee表中。(说明:
姓名:使用select语句从individual表中获取
员工编号:20
入职日期:2022-9-26
离职日期:无
职位名称:出纳员
分支机构编号:1
部门编号:2
上级领导编号:4)

insert into employee(EMP_ID, END_DATE, FIRST_NAME, LAST_NAME, 
START_DATE, TITLE,ASSIGNED_BRANCH_ID, DEPT_ID, SUPERIOR_EMP_ID)
select null, null, individual.FIRST_NAME, individual.LAST_NAME, 
'2022-9-26', '出纳员', 1, 2, 4 from individual where CUST_ID = 1;

4.5

查询所有地址为南京市的客户的开户信息。(输出:account表的所有属性)

select * from account where CUST_ID 
in (select CUST_ID  from customer where city = '南京市');


select * from account where CUST_ID 
in(select*from customer where address like '%南京市%');

4.6

查询所有支行机构地址及客户的地址。(输出:地址)

SELECT c.ADDRESS from customer c 
UNION
SELECT b.ADDRESS FROM branch b

4.7

在交易时间’2011-01-01’ 和 '2015-01-01’之间查询各个支行机构的总交易金额大于700000元的所有支行机构ID和总金额。(输出:支行机构ID、总金额)

select execution_branch_id ,sum(amount) from acc_transaction
where TXN_DATE between '2011-01-01' and '2015-01-01'
group by execution_branch_id having sum(amount) > 700000;

4.8

查询所有不在“上海市总行”工作的员工,他们在现金存入(CD)业务中所处理的总金额。(输出:总金额)

SELECT sum(AMOUNT) FROM acc_transaction WHERE TELLER_EMP_ID in
( SELECT e.EMP_ID FROM employee e WHERE e.ASSIGNED_BRANCH_ID  in  
(SELECT BRANCH_ID from branch WHERE name != '上海市总行') ) and TXN_TYPE_CD ='CD'
1.子查询版本
select sum(amount) 
from acc_transaction
where TXN_TYPE_CD = 'CD'
and 
teller_emp_id
in
(
select emp_id from employee
    where assigned_branch_id 
    not in
    (
select branch_id from branch
        where name = '上海市总行'
    )
);



2. exists等价搜索
select sum(amount) 
from acc_transaction
where TXN_TYPE_CD = 'CD'
and 
exists
(
select emp_id from employee
    where emp_id = teller_emp_id
    and not exists
    (
select branch_id from branch
        where name = '上海市总行'
        and branch_id = assigned_branch_id
    )
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值