1) 先创建数据库和设置数据库:

CREATE DATABASE HOSPITAL;

USE hospital;

2) 创建三个数据表:tb_department, tb_doctor, tb_patient

tb_department

tb_doctor

tb_patient

3) 向三个数据表中添加数据:

tb_department

INSERT INTO tb_department VALUES ('0001','口腔科'),('0002','五官科'),('0003','外科'),
('0004','内科'),('0005','妇科'),('0006','儿科'),('0007','放射科'),
('0008','化验科'),('0009','皮肤科'),('0010','骨科');

tb_doctor

INSERT INTO tb_doctor VALUES ('0001','医01','0001','主治医生'),('0002','医02','0002','主治医生'),('0003','医03','0003','主治医生'),('0004','医04','0004','主治医生'),('0005','医05','0005','主治医生'),('0006','医06','0006','主治医生'),('0007','医07','0007','主治医生'), ('0008','医08','0008','主治医生'),('0009','医09','0009','主治医生'),('0010','医10','0010','主治医生') ,('0011','医11','0001','主治医生'),('0012','医12','0002','主治医生'),('0013','医13','0003','主治医生'),('0014','医14','0004','主治医生'),('0015','医15','0005','主治医生'),('0016','医16','0006','主治医生'),('0017','医17','0007','主治医生'),
('0018','医18','0008','主治医生'),('0019','医19','0009','主治医生'),('0020','医20','0010','主治医生');

tb_patient

INSERT INTO tb_patient (id, name, doctor_id) VALUES ('1001','病01','0001'),('1002','病02','0002'),('1003','病03','0003'),('1004','病04','0004'),('1005','病05','0005'),('1006','病06','0006'),('1007','病07','0007'),('1008','病08','0008'),('1009','病09','0009'),('1010','病10','0010'),('1011','病11','0011'),('1012','病12','0012'),('1013','病13','0013'),('1014','病14','0014'),('1015','病15','0015'),('1016','病16','0016'),('1017','病17','0017'),('1018','病18','0018'),('1019','病19','0019'),('1020','病20','0020'),('1021','病21','0001'),('1022','病22','0002');

4) 查询练习

a) 科室名称数据在tb_department表中,医生名字在tb_doctor表中,查询医生名字以及所在科室:

SELECT d.name, dept.dept_name FROM tb_doctor d, tb_department dept WHERE d.dept_id = dept.dept_id;

b) 查看每个科室中医生数目以及有哪些医生:

SELECT dept.dept_name,GROUP_CONCAT(d.name),COUNT(d.name)  AS doctors FROM tb_doctor d, tb_department dept WHERE d.dept_id = dept.dept_id GROUP BY dept.dept_name;

c) 查询每个医生负责哪些病人以及病人数目:

SELECT  d.name,COUNT(p.name) AS Patients,GROUP_CONCAT(p.name) FROM tb_patient p , tb_doctor d WHERE d.id = p.doctor_id GROUP BY d.name;

d) 查询病人姓名,负责医生,及其所在科室:

SELECT p.name, d.name ,dept.dept_name FROM tb_doctor d, tb_department dept, tb_patient p
WHERE d.dept_id = dept.dept_id and p.doctor_id = d.id;

e) 查询每个科室有多少病人,及其哪些病人:

SELECT dept.dept_name,COUNT(p.name),GROUP_CONCAT(p.name) FROM 
tb_doctor d, tb_department dept, tb_patient p  WHERE d.dept_id = dept.dept_id and 
p.doctor_id = d.id GROUP BY dept.dept_name;

f) 用tb_department中的dept字段数据更新tb_patient中的dept字段数据:

UPDATE tb_patient p , tb_doctor d ,tb_department dept SET p.dept = dept.dept_name
WHERE p.doctor_id = d.id AND d.dept_id = dept.dept_id;

SELECT * FROM tb_patient;

MySQL 多表查询和更新练习相关推荐

  1. mysql多表查询插入更新_Mysql多表查询,多表插入和多表更新

    /*************************************by garcon1986************************************************* ...

  2. Mysql 单表查询where初识

    Mysql 单表查询where初识 准备数据 -- 创建测试库 -- drop database if exists student_db; create database student_db ch ...

  3. java mysql 多表查询_解析Mysql多表查询的实现

    查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看. Mysql多表查询: CREATE TABLE IF NOT EXISTS co ...

  4. mysql多表查询详解_MySQL多表查询详解上

    时光在不经意间,总是过得出奇的快.小暑已过,进入中暑,太阳更加热烈的绽放着ta的光芒,...在外面被太阳照顾的人们啊,你们都是勤劳与可爱的人啊.在房子里已各种姿势看我这篇这章的你,既然点了进来,那就由 ...

  5. mysql教程多表查询_解析Mysql多表查询的实现

    查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看. Mysql多表查询: CREATE TABLE IF NOT EXISTS co ...

  6. 零基础带你学习MySQL—多表查询笛卡尔集(二十)

    零基础带你学习MySQL-多表查询笛卡尔集(二十) 一.多表查询 多表查询:就是指基于两个和两个以上的表的查询,在实际应用中,单个表并不能满足你的需求,我们经常需要在很多个表之间查询数据 二.笛卡尔集 ...

  7. mysql将一个表的字段更新到另一个表中

    mysql将一个表的字段更新到另一个表中 今天遇到了这个问题 百度了一下,给出的解决方案如下 UPDATE T_CONDETAILED SET latesprice=t_temp.amount FRO ...

  8. mysql 大表查询慢_mysql大表查询慢怎么优化?

    mysql大表查询慢的优化方法:1.合理建立索引,通常查询利用到索引比不用索引更快:2.对关键字段建立水平分区,比如时间字段,若查询条件往往通过时间范围来进行查询,能提升不少性能:3.建立粗粒度数据表 ...

  9. mysql锁表查询和解锁操作

    mysql锁表查询和解锁操作 1.在做数据库操作时,有时会因为自己的粗心或者程序设计上的缺陷导致锁表,在mysql中查看锁表和解锁的步骤如下: //1.查看当前数据库锁表的情况SELECT * FRO ...

最新文章

  1. 读微型计算机原理与接口技术 段的理解
  2. Linux 下判断Server 内存是否不足
  3. 神策数据赋能物流服务行业数字化转型
  4. [云炬创业管理笔记]第九章为创业成败而准备测试2
  5. 导入jar包到Maven本地仓库(maven install jar)
  6. 6.0 《数据库系统概论》之关系数据库的规范化理论(数据依赖对表的影响[插入-删除-修改-冗余]、1NF-2NF-3NF-BCNF-4NF、函数依赖与多值依赖)
  7. 人工机器:作为归纳系统的深度学习
  8. 可变悬挂调节软硬_【5040地推合作品牌】荷兰高性能减震器及悬挂系统品牌—KONI...
  9. php遍历文件夹及其子文件夹并计算所占的磁盘空间
  10. 网站访客系统php,PHP实现网站访客来访显示访客IP浏览器操作系统
  11. Linux-环境变量的设置和查看
  12. 网页另存显示不全_word另存为选项没有PDF格式怎么办?别忘了还有这招!
  13. JVisualVM监控
  14. 用matlab的毕业设计,毕业设计课题: 用 MATLAB.ppt
  15. c语言里的pow函数(好理解,易懂)
  16. 计算机3大总线名词解释,计算机名词解释-- 总线.doc
  17. 台式计算机国标码,在计算机中,国标码是属于什么码?
  18. gsensor方向调试【转】
  19. Web APIs --JavaScript学习笔记(总)(包括DOM、BOM)
  20. Java练手项目1:基于RFID的图书仓储管理系统(可做毕设)

热门文章

  1. 闭环伺服步进电机(磁编码器)全套方案 步进电机 闭环控制器 42步进电机
  2. 9种在wpf/winForm等客户端集成Web网页方案详解,全网最全,快收藏!!
  3. 【tvm】——tvm编译与安装
  4. SSR 应用与原 CSR 应用变更同步问题实践
  5. 浮生萧条[不错的校园故事]
  6. 2382 一半的一半(高精度大数,java)
  7. react国际化中英文切换
  8. prometheus监控ssl证书过期(使用插件blackbox_exporter)
  9. 十步杀一人、Activity前世今生
  10. 卷积神经网络的研究现状,卷积神经网络最新进展