如上图所示,关于sql语句相关写法请去看我写的另外一篇博客
http://blog.youkuaiyun.com/qy20115549/article/details/52819503:
首先,我们要分析题,分析其逻辑结构。根据我的分析,我认为其中存在4个表格。一张是关于医院信息的表格。一张是关于医院门诊部的表格。一张是门诊部对应医生的表格。最后,一张便是病人信息的表格。
第(1)问为建表语句:
CREATE TABLE IF NOT EXISTS `hospital` (
`hospital_id` int(50) NOT NULL DEFAULT '' COMMENT '医院编号id',
`hospital_name` varchar(255) DEFAULT NULL COMMENT '医院名称',
PRIMARY KEY (`hospital_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `outpatient` (
`outp_id` int(50) NOT NULL DEFAULT '' COMMENT '门诊部编号id',
`outp_name` varchar(255) DEFAULT NULL COMMENT '门诊部名称',
`hospital_id` int(50) DEFAULT NULL COMMENT '门诊部所属的医院的编号',
PRIMARY KEY (`outp_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `doctor` (
`doctor_id` int(50) NOT NULL DEFAULT '' COMMENT '医生编号id',
`doctor_name` varchar(255) DEFAULT NULL COMMENT '医生名称',
`outp_id` int(50) NOT NULL DEFAULT '' COMMENT '医生所属门诊部编号id',
PRIMARY KEY (`doctor_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `patient` (
`patient_id` int(50) NOT NULL DEFAULT '' COMMENT '病人编号id',
`patient_name` varchar(255) DEFAULT NULL COMMENT '病人姓名',
`doctor_id` varchar(255) DEFAULT NULL COMMENT '就诊医生姓名',
PRIMARY KEY (`patient_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
第(2)问:
select outp_id,count(*) from doctor group by outp_id;
第(3)问:
select a.* from doctor a,patient b where b.doctor_id=a.doctor_id and b.patient_id='小明';