## 寄寄寄摆摆摆
#1. 创建数据库,名称为 MyBank
CREATE DATABASE MYBank;
#2. 创建数据表 customer (客户)、deposite(存款)、bank(银行),表结构如下:
CREATE TABLE customer(c_id CHAR(6) PRIMARY KEY COMMENT '客户标识',name VARCHAR(30) NOT NULL COMMENT '客户姓名',location VARCHAR(30) NOT NULL COMMENT '工作地点',salary DOUBLE(8,2) NOT NULL COMMENT '工资'
)COMMENT '客户表' ;
CREATE TABLE bank(b_id CHAR(5) PRIMARY KEY COMMENT '银行标识',bank_name CHAR(30) NOT NULL COMMENT '银行名称'
)COMMENT '存款表' ;
CREATE TABLE deposite(d_id int(6) PRIMARY KEY AUTO_INCREMENT COMMENT '客户标识',c_id CHAR(6) COMMENT '客户标识',b_id CHAR(5)  COMMENT '客户标识',dep_date DATE  NOT NULL COMMENT '存入日期',dep_type INT(30) NOT NULL COMMENT '存款期限',amount DOUBLE(8,2) NOT NULL COMMENT '存款金额',CONSTRAINT wj_deposite FOREIGN KEY (c_id) REFERENCES customer(c_id),CONSTRAINT wj_deposite2 FOREIGN KEY (b_id) REFERENCES bank(b_id)
)COMMENT '银行' ;
#3 .要求利用SQL语句录入所有数据。(10分)急急急摆摆摆
INSERT INTO `mybank`.`customer` (`c_id`, `name`, `location`, `salary`) VALUES ('101001', '孙杨', '广州', 1234);
INSERT INTO `mybank`.`customer` (`c_id`, `name`, `location`, `salary`) VALUES ('101002', '过海', '日本', 3526);
INSERT INTO `mybank`.`customer` (`c_id`, `name`, `location`, `salary`) VALUES ('101003', '老八', '撤硕', 6892);
INSERT INTO `mybank`.`customer` (`c_id`, `name`, `location`, `salary`) VALUES ('101004', '顶针', '理塘', 3492);
INSERT INTO `mybank`.`bank` (`b_id`, `bank_name`) VALUES ('B0001', '工商银行');
INSERT INTO `mybank`.`bank` (`b_id`, `bank_name`) VALUES ('B0002', '建设银行');
INSERT INTO `mybank`.`bank` (`b_id`, `bank_name`) VALUES ('B0003', '中国银行');
INSERT INTO `mybank`.`bank` (`b_id`, `bank_name`) VALUES ('B0004', '农业银行');
INSERT INTO `mybank`.`deposite` (`c_id`, `b_id`, `dep_date`, `dep_type`, `amount`) VALUES ('101001', 'B0001', '2015-03-06', 3, 42526);#4 .更新 customer 表的 salary 属性,将 salary 低于 5000 的客户的 salary 变为原来的 2 倍.(5分)
UPDATE customer SET salary = salary*2 WHERE salary<5000 ;
SELECT salary*2 FROM customer WHERE salary<5000 ;
#5 . 查询“孙杨”在中国银行的存款信息。(5分)
SELECT DISTINCT * FROM bank b JOIN deposite d on b.b_id=d.b_id  JOIN  customer  c ON  c.c_id = (SELECT c_id FROM customer WHERE name = '孙杨' ) WHERE b.b_id = 'B0003';
#6 . 查询金额前 3 名的存款信息。(5分)
SELECT amount FROM deposite  ORDER BY amount DESC LIMIT 3;
#7. 查询存款金额超过 50000 且存款期限为 3 年的存款信息。(5分)
SELECT amount FROM deposite WHERE amount > 50000 AND dep_type <3;
#8 . 查询农业银行小于2年所有账户的信息,并要求按照时间的升序排列。(5分)
SELECT * FROM customer c JOIN deposite d ON c.c_id = d.c_id WHERE dep_date IN (SELECT dep_date FROM deposite ORDER  BY dep_date DESC ) AND dep_date >2;
#9 . 对 deposite 、customer 、bank 进行查询,查询条件为 location 在广州、苏州、济南的客户,存款在 300000 至 500000 之间的存款记录, 显示客户姓名 name、银行名称 bank_name、存款金额 amount. (5分)SELECT * FROM deposite d JOIN customer c ON d.c_id = c.c_id JOIN bank b ON b.b_id = d.b_id WHERE  d.amount BETWEEN 300000 AND 500000 AND  location IN( '广州' , '日本' ,'撤硕' , '理塘' ); #10. 查询存款日期在 2004 年之后的农业银行的存款信息,并按降序排列。(5分)SELECT *  FROM deposite d JOIN bank b ON b.b_id=d.b_id WHERE bank_name = '农业银行' AND dep_date > '2004-1-1';#11. 查询包含“郭”姓氏的所有账户信息。(5分)
SELECT * FROM deposite d JOIN customer c ON c.c_id=d.c_id WHERE c.`name`IN (SELECT `name` FROM customer WHERE name LIKE '老%');
#12 . 在 deposite 中插入一条记录, 客户标识 c_id 为你的学号,银行标识 b_id 为 B0003,存款日期 dep_date 为当前系统日期,存款期限 type 为 3,存款金额 amount 为 50000。(5分)
INSERT INTO deposite VALUES('114514','114514','B0003','2004-11-4','3','50000') ;
INSERT INTO customer VALUES ('114514','嗨嗨嗨','chain','5566');
#13对 deposite 表进行统计,按银行统计存款总数,显示为 b_id,total. (5分)
SELECT b_id,SUM(amount) total FROM  deposite  GROUP BY b_id;
#14查询“郭惠”最近一次存款的信息,要求显示客户姓名、账户存款时间、存款年限、账户余额。(5分)
SELECT *  FROM deposite d INNER JOIN customer c ON c.c_id=d.c_id WHERE dep_date = ( SELECT MAX(dep_date) FROM deposite e WHERE e.c_id = (SELECT c_id FROM customer WHERE `name` = '顶针'));
#15如果孙杨有超过在相同银行进行存款2次以上的客户,就查询出孙杨的所有存款信息。(5分)。(5分)
我不会 长大后再来学习
SELECT * FROM deposite d INNER JOIN customer c ON c.c_id = d.c_id INNER JOIN bank b ON b.b_id =d.b_id WHERE d.c_id   = (SELECT c_id FROM customer WHERE `name`='孙杨' ) GROUP BY b.b_id;
#16.查询同时在建设银行或者农业银行有存款记录的用户,显示他们的所有存款信息。(5分)(5分)
SELECT * FROM deposite d INNER JOIN bank b on b.b_id=d.b_id WHERE  b.bank_name = '农业银行' OR b.bank_name = '建设银行';
SELECT * FROM deposite a1 INNER JOIN deposite b1 ON a1.c_id = b1.c_id INNER JOIN bank b ON a1.b_id = b.b_id INNER JOIN bank b2 ON b2.b_id=b1.b_id WHERE b.bank_name = '农业银行' AND b2.bank_name = '建设银行';
#17.查询没有在中国银行存款的用户信息,要求显示姓名以及工资。(5分)
SELECT *  FROM deposite d INNER JOIN bank b ON b.b_id = d.b_id INNER JOIN customer c ON c.c_id = d.c_id WHERE b.b_id not in (SELECT b_id FROM bank WHERE  bank_name = '中国银行')
#18.查询工资最少的客户在所有银行的存款余额总数. (5分)
SELECT SUM(amount) FROM deposite  WHERE c_id = (SELECT c_id FROM customer WHERE salary = (SELECT MIN(salary) FROM customer));
#19.查询所有“南京”客户存款的所在银行的名称以及总金额数。(5分)
SELECT b.bank_name,SUM(amount) FROM deposite d INNER JOIN bank b ON b.b_id = d.b_id WHERE c_id = (SELECT c_id FROM customer WHERE location = '撤硕') GROUP BY bank_name;
#20.查询所有银行的最近一次存款的客户姓名、工资。(10分)
SELECT b.bank_name,c.salary,c.`name` FROM deposite d INNER JOIN bank b ON d.b_id = b.b_id INNER JOIN customer c ON c.c_id = d.c_id WHERE (SELECT MAX(dep_date) FROM deposite) GROUP BY bank_name;

MYSQL 高级查询练习题 银行系统相关推荐

  1. mysql高级查询练习题_MySQL高级查询习题

    MySQL高级查询习题 提示: emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno所属部门编号) dept ...

  2. MySQL高级查询语句——超详细,一篇就够了

    MySQL高级查询语句 一.MySQL进阶查询 1.1.按关键字排序--order by 1.2.对结果进行分组--group by 1.2.1.单个分组 1.2.2.分组结合order by使用 1 ...

  3. 高级查询(二)+php中文网,MySQL高级查询方法之记录查询

    欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 此文章主要向大家描述的是MySQL高级查询方法之记录查询的实际操作步骤,以及对其实际操作过程中要用到的代码的详细描述,以下 ...

  4. Mysql高级查询语句练习

    Mysql高级查询语句练习 DROP TABLE IF EXISTS `tblcourse`; CREATE TABLE `tblcourse` ( `CourseId` varchar(3) NOT ...

  5. MySQL高级查询习题

    MySQL高级查询习题 提示: emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno所属部门编号) dept ...

  6. Mysql高级查询~~关于优秀、及格、不及格

    近日去某家公司面试开发岗位,遇到该Sql题目,特地分享出来给大家,希望对你们有帮助 Mysql高级查询 ~~ >=80表示优秀,>=60且<80表示几个,<60表示不及格 有一 ...

  7. MySQL高级 —— 查询性能优化

    引言 承接<MySQL高级 -- 高性能索引>,本篇博客将围绕<高性能MySQL(第三版)>第六章内容进行总结和概括. 与索引的部分一样,SQL优化也是广大程序员深入MySQL ...

  8. mysql高级查询之多条件的过滤查询

    一.什么是高级查询: ① 多条件的过滤查询 简单说,即拼接sql语句,在sql查询语句之后使用: where 条件1 and/or 条件2 and/or 条件3 - ② 分页查询 二.多条件过滤查询: ...

  9. MySQL高级查询语句

    高级查询: 一:多表连接 1.select Info.Code,Info.Name,Nation.Name from Info,Nation where Info.Nation = Nation.Co ...

最新文章

  1. python加号换行,Python字符串拼接六种方法介绍
  2. Microsoft StreamInsight 构建物联网
  3. php检测表大小,查询mysql数据库、表的大小
  4. 关于微信内置浏览器,打开图片上传功能,调用的问题
  5. linux7简单应用,centos7下openTSDB简单应用
  6. git分布式版本管理系统和github平台
  7. 深度置信网络学习总结
  8. ADC参数中的SNR、SNDR与SFDR的区别是什么
  9. 线性混合效应模型Linear Mixed-Effects Models的部分折叠Gibbs采样
  10. CH340G的调试过程
  11. java中强制退出jvm的代码
  12. 文本数据下的用户画像
  13. 抖音短视频内容该如何创作
  14. 重庆OA办公系统目前推出PC端、移动终端(安卓、IOS、平板)- 上弦科技
  15. 6-23 sdust-Java-可实现多种排序的Book类 (20 分)
  16. 4大领域、33篇课题成果,2021阿里研究生态报告集来了
  17. C#使用EmguCV库(图像读取、显示、保存)(二)
  18. docker修改系统时间总结
  19. 哪部电影是技术人员最应该看的?
  20. TextView(文本框)

热门文章

  1. python asyncio协程异步爬虫
  2. Excel的宽度怎么算的?
  3. 如何关闭searchIndexer.exe进程
  4. 听课感悟——计算机网络
  5. django orm插入一条_Django听课笔记 | 入门 | 02 - RowryCho
  6. scanf的返回值被忽略
  7. GPT分区(diskpart)
  8. #地理人,计量地理学,Excel制作洛伦兹曲线
  9. vue3兄弟组件通信-mitt
  10. 十二生肖/星座中英文对照表