MySQL 多表查询和更新练习
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 多表查询和更新练习相关推荐
- mysql多表查询插入更新_Mysql多表查询,多表插入和多表更新
/*************************************by garcon1986************************************************* ...
- Mysql 单表查询where初识
Mysql 单表查询where初识 准备数据 -- 创建测试库 -- drop database if exists student_db; create database student_db ch ...
- java mysql 多表查询_解析Mysql多表查询的实现
查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看. Mysql多表查询: CREATE TABLE IF NOT EXISTS co ...
- mysql多表查询详解_MySQL多表查询详解上
时光在不经意间,总是过得出奇的快.小暑已过,进入中暑,太阳更加热烈的绽放着ta的光芒,...在外面被太阳照顾的人们啊,你们都是勤劳与可爱的人啊.在房子里已各种姿势看我这篇这章的你,既然点了进来,那就由 ...
- mysql教程多表查询_解析Mysql多表查询的实现
查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看. Mysql多表查询: CREATE TABLE IF NOT EXISTS co ...
- 零基础带你学习MySQL—多表查询笛卡尔集(二十)
零基础带你学习MySQL-多表查询笛卡尔集(二十) 一.多表查询 多表查询:就是指基于两个和两个以上的表的查询,在实际应用中,单个表并不能满足你的需求,我们经常需要在很多个表之间查询数据 二.笛卡尔集 ...
- mysql将一个表的字段更新到另一个表中
mysql将一个表的字段更新到另一个表中 今天遇到了这个问题 百度了一下,给出的解决方案如下 UPDATE T_CONDETAILED SET latesprice=t_temp.amount FRO ...
- mysql 大表查询慢_mysql大表查询慢怎么优化?
mysql大表查询慢的优化方法:1.合理建立索引,通常查询利用到索引比不用索引更快:2.对关键字段建立水平分区,比如时间字段,若查询条件往往通过时间范围来进行查询,能提升不少性能:3.建立粗粒度数据表 ...
- mysql锁表查询和解锁操作
mysql锁表查询和解锁操作 1.在做数据库操作时,有时会因为自己的粗心或者程序设计上的缺陷导致锁表,在mysql中查看锁表和解锁的步骤如下: //1.查看当前数据库锁表的情况SELECT * FRO ...
最新文章
- 读微型计算机原理与接口技术 段的理解
- Linux 下判断Server 内存是否不足
- 神策数据赋能物流服务行业数字化转型
- [云炬创业管理笔记]第九章为创业成败而准备测试2
- 导入jar包到Maven本地仓库(maven install jar)
- 6.0 《数据库系统概论》之关系数据库的规范化理论(数据依赖对表的影响[插入-删除-修改-冗余]、1NF-2NF-3NF-BCNF-4NF、函数依赖与多值依赖)
- 人工机器:作为归纳系统的深度学习
- 可变悬挂调节软硬_【5040地推合作品牌】荷兰高性能减震器及悬挂系统品牌—KONI...
- php遍历文件夹及其子文件夹并计算所占的磁盘空间
- 网站访客系统php,PHP实现网站访客来访显示访客IP浏览器操作系统
- Linux-环境变量的设置和查看
- 网页另存显示不全_word另存为选项没有PDF格式怎么办?别忘了还有这招!
- JVisualVM监控
- 用matlab的毕业设计,毕业设计课题: 用 MATLAB.ppt
- c语言里的pow函数(好理解,易懂)
- 计算机3大总线名词解释,计算机名词解释-- 总线.doc
- 台式计算机国标码,在计算机中,国标码是属于什么码?
- gsensor方向调试【转】
- Web APIs --JavaScript学习笔记(总)(包括DOM、BOM)
- Java练手项目1:基于RFID的图书仓储管理系统(可做毕设)