3.1创建数据库
create database medicine;

3.2.1创建医生信息doctor 表
CREATE TABLE doctor(
doctorno INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT‘医生编号’,name VARCHAR(50)NOT NULL COMMENT‘医生姓名’,
sex CHAR(2)COMMENT‘医生性别’,
age VARCHAR(3)COMMENT ’年龄’,phone VARCHAR (20)COMMENT‘电话号’);

3.2.2创建患者信息patient 表
CREATE TABLE patient(
patientno INTT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT’患者编号’,name VARCHAR (50)NOT NULL.COMMENT ’患者姓名’,
sex CHAR(2)COMMENT ’患者性别’,
age VARCHAR(3)COMMENT’年龄’,phone VARCHAR(20)COMMENT‘电话号’);

3.2.3创建药品信息drug表
CREATE TABLE drug(
drugno INT NOT_NULL PRIMARY KEY AUTO_INCREMENT COMMENT’药品编号’,name VARCHAR(50)NOT NULL COMMENT ’药品名称’,
price int NOT NULL COMMENT’价格’,
inventory INT NOT NULL COMMENT’存货数量’) ;

3.2.4创建诊断信息diagnosis表
CREATE TABLE diagnosis(
diagnosisno INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT’诊治编号’,doctorno INT COMMENT‘医生编号’
patientno INT COMMENT‘惠者编号,
situation CHAR(50) NOT NULL COMMENT ’诊断结果);

3.2.5创建处方信息prescription表
CREATE TABLE prescription(
pricription INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT’处方编号’,patientno INT COMMENT’患者编号’,
name VARCHAR(50)NOT NULL COMMENT’处方名’,time DATE NOT NULL COMMENT’开处方日期’
) ;

3.3.1在医生信息doctor表中插入语句
INSERT INTO doctor(doctorno, name,sex, age, phone)VALUES
(1,’赵钱’,’男’,’36’,’13134208640’),
(3,‘孙李,’女’,’26,’13134628530’),
(4,’周昊’,’男’,’46’,’13134616530’),
(5,’郑王’,’男’,‘56’,’13134598530’);

3.3.2在患者信息patient表中插入语句
INSERT INTO patient (patientno, name,sex, age, phone)VALUES
(1,’夏商’,’男’,’36’,313134258640’),
(3,’西周’,’女’,’26’,’13134624630’),
(4,’两晋’,’男’,’46’,‘13134614830’),
(5,’南北朝’,’男’,’56’,’13134758530’) ;

3.3.3在药品信息drug表中插入语句
INSERT INTO drug(drugno, name, price,inventory)VALUES
(01,’唐’,1235,1651651),
(02,’宋’,6523,6156216),
(03,’元’,5821,1265121),
(04,’明’,6987,1915138) ;

3.3.4在诊断信息diagnosis表中插入语句
INSERT INTO diagnosis(diagnosisno, doctorno, patientno,situation)VALUES
(001,1,1,’身体健康’),
(002,2,2,’身体健康’),
(003,3,3,’身体健康’),
(004,4,4,’身体健康’);

3.3.5在处方信息prescription表中插入语句
INSERT INTO prescription(pricription, patientno, name,time)VALUES
(001,1,’夏商’,’2021-01-21’),
(002,2,’西周’,’2021-11-21’),
(003,3,’两晋’,'2021-04-30’),
(004,4,’南北朝’,’2021-08-153) ;

3.3.6在医生信息doctor表中插入数据
insert into doctor values(6,’汉武’﹐'男’,‘36’,'13134208640’) ;
select * from doctor ;

3.4.1查询医生信息doctor表
select *from doctor ;

3.4.2查询查询患者信息patient表
select * from patient;

3.4.3查询药品信息drug表
select *from drug;

3.4.4查询诊断信息diagnosis表
select * from diagnosis;

3.4.5查询处方信息prescription表
select from prescription;

3.5.1修改诊断信息diagnosis表数据
update diagnosis
set situation= ‘胆结石’
where diagnosisno=1;

select * from diagnosis;

3.5.2修改处方信息prescription表数据
update prescription
set name=’秦皇’where pricription=1;

select * from prescription;

3.6.1删除处方信息prescription表中数据
delete from prescription
where name=南北朝;

select * from prescription;
3.6.2删除处方信息prescription表中所有数据
select * from prescription;

delete from prescription;

3.6.2删除drug表
drop table drug;

1.基于医院管理系统的具体功能为表添加适当的数据进行数据完成至少的3个简单查询;
Select * from medicine;
select * from doctor where name like ‘赵%’;
select * from doctor where age = 36;

2.基于医院管理系统的具体功能为表添加适当的数据进行数据的至少2个条件查询,其中包含对GROUP BY子句,ORDER BY子句和LIMIT子句的使用;
select * from doctor where age =‘36’ group by name;
select * from doctor where age =‘36’ order by phone;
select * from doctor limit 2;

3.基于医院管理系统的具体功能为表添加适当的数据进行数据的至少3个高级查询(子查询/内连接/外连接);
select * from doctor where age<(select age from doctor where name=‘赵钱’);$
select u.name,c.name from doctor u left join patient c on u.sex=c.sex;
select u.name,c.name from doctor u,patient c where u.sex=c.sex;

4.使用简单存储过程为核心表表添加十万条以上数据,为其他表添加适当数据,作为查询的基础数据。
DELIMITER C R E A T E P R O C E D U R E p a t i e n t ( ) B E G I N D E C L A R E i I N T ; S E T i = 0 ; W H I L E i < 100000 D O S E T i = i + 1 ; I N S E R T I N T O p a t i e n t ( i , ’ 清 ’ , ’ 男 ’ , ’ 100 ’ , ’ 19999999999 ’ ) ; E N D W H I L E ; E N D CREATE PROCEDURE patient() BEGIN DECLARE i INT; SET i=0; WHILE i <100000 DO SET i=i+1; INSERT INTO patient (i,’清’,’男’,’100’,’19999999999’); END WHILE; END CREATEPROCEDUREpatient()BEGINDECLAREiINT;SETi=0;WHILEi<100000DOSETi=i+1;INSERTINTOpatient(i,’清’,’男’,’100’,’19999999999’);ENDWHILE;END
5.了解索引的作用与分类,掌握索引的创建方法;基于医院管理系统建立适当的索引。
create index indexname on doctor(name);
show index from doctor\G;

6.理解数据完整性的概念及其分类,掌握各种数据完整性的实现方法;
一、实体完整性——表中记录唯一,包括唯一约束和主键约束
1、主键约束: 唯一识别每一条记录,不能重复,且不能为NULL值(具有唯一值的字段可设为主键字段)
注意:每张表只有一个主键,一般选择新增无业务含义的字段作为主键且选中字段勾选为自动增长
2、唯一约束:不能重复但可为NULL值
二:域完整性——指给定列输入的有效性,即保证指定列的数据具有正确的数据类型,格式和有效的数据范围
1.非空约束:勾选不能为NULL
2.默认值约束:大量重复字段可设默认值,如民族可设为汉族
三:参照完整性——定义一表主键与一表外键的引用规则来约束两表的联系,目的用关联表之间的制约机制互相参照,控制表间数据的一致性和完整性,实质不允许引用表中不存在的记录
从表——含有外键且参照其他表的表,也叫子表或参照表
主表——被其他表参照的表,也叫父表或被参照表
外键——参照别表主键的字段,被参照表称主表又叫父表,含有外键参照其他表的表称为子表也叫参照表。
注意:主表中的被参照列为主键或者唯一约束字段
7.设计SQL语句执行查询,来优化查询性能。
select ‘男’ from patient;
select * from patient where sex=‘男’;
select * from patient where age<20;
select * from patient where age>30;

1.基于医院管理系统业务逻辑创建,修改、删除视图;
创建视图
create view doctor_age_view as select * from doctor d where d.age>'30’ ;
select * from doctor_age_view;

修改视图
alter view doctor_age_view
as select d.name from doctor d where d.age>'20’;
select *from doctor age view;

删除视图
drop view doctor_age_view;

2.了解存储过程体中允许的SQL语句类型和参数的定义方法;
1)SHOW CREATE PROCEDURE 过程名;
2)SHOW PROCEDURE STATUS [LIKE 匹配模式];
3)CALL 数据库名.存储过程名称([实参列表]);
实参列表传递的参数需要与创建存储过程的形参相对应。
当形参被指定为IN时,则实参值可以为变量或是直接数据;
当形参被指定为OUT或INOUT时,调用存储过程传递的参数必须是一个变量,用于接收返回给调用者的数据。
4)ALTER PROCEDURE 存储过程名称 [特征]
特征指的是存储过程需要修改哪个部分。
ALTER PROCEDURE不能更改存储过程的参数或主体。
5)DECLARE 错误名称 CONDITION FOR [错误类型]
错误类型的可选值为mysql_error_code和SQLSTATE [VALUE] sqlstate_value。
前者是数值类型表示的错误代码,如1148。
后者是5个字符长度的错误代码,如SQLSTATE ‘42000’。
6)DECLARE 错误处理方式 HANDLER FOR 错误类型 [, 错误类型] …
程序语句段
MySQL支持的错误处理方式有两种,一个为CONTINUE(遇到错误不处理,继续执行),另一个为EXIT(遇到错误时马上退出)。
程序语句段表示遇到定义的错误时,需要执行的存储过程代码段。
3.基于医院管理系统业务逻辑定义存储过程并执行,其中应该包括游标的使用。
DELIMITERKaTeX parse error: Expected 'EOF', got '&' at position 289: …F cur_num >= 0 &̲& cur_num<= 400…

4.基于医院管理系统业务逻辑创建和使用触发器;
create TRIGGER sh_ patient
AFTER update on patientfor
each row
UPDATE doctor
SET doctor.phone=new.Phone where doctor.phone=old.Phone;
5. 基 于 医 院 管 理 系 统 业 务 逻 辑 定 义 函 数 , 并 使 用 视 图 和 调 用 函 数 。 D E L I M I T E R 5.基于医院管理系统业务逻辑定义函数,并使用视图和调用函数。 DELIMITER 5.基于医院管理系统业务逻辑定义函数,并使用视图和调用函数。DELIMITER
CREATEFUNCTION PEOPLE (name varchar (20))RETURNS DATE
DETERMINISTICBEGIN
DECLARE age VERCAHR (3);
SELECT doctorno into age from doctor where name='赵钱’;
return age;
END
$$

6.为医院管理系统数据库创建不同用户并分配不同权限。
CREATE USER ’’ HCT’@’%’identified by '123456’;
$$
grant select on medicine.* to HCT;

7.完成数据库的备份与恢复。
用户备份
mysqldump -u username -ppassword --all-databases > bak.sql

将备份的数据导入到刚新建的 testDB 数据库中
[root@192 home]# mysql -u username -ppassword testDB < /home/bak.sql

mysql三次实验,所有代码相关推荐

  1. php运算符实验报告,第二章,第三章实验报告(示例代码)

    C程序设计实验报告(第二次) 姓名:熊毅 实验地点:家 实验时间:2020.03.10 实验项目:字符与ASCII码:运算符与表达式的应用:顺序结构应用程序:数学函数:鸡兔同笼:确定坐标 一.实验目的 ...

  2. matlab 数字信号波形图,数字信号处理第三次实验代码及波形图

    数字信号处理第三次实验 一.实验目的: 1.掌握离散时间系统的DFT 的MATLAB 实现: 2.熟悉DTFT 和DFT 之间的关系. 3.了解信号不同变形的DFT 与原信号DFT 之间的关系 二.实 ...

  3. 我的网络安全第三次实验汇报

    网络安全第三次实验汇报 一.SQL 注入(SQL Injection) 演示 SQL 注入 简单了解WEB项目 SQL 注入的原理(3个SQL语句) 从代码看 SQL 注入原理 何为预处理语句? 为什 ...

  4. MySQL 三个排序方法 row_number()、rank()、dense_rank()

    Mysql三个常用的排序方法 前言 准备工作 实验过程 ==row_number()== ==rank()== ==dense_rank()== 结论 前言 在数据库查询中,我们经常要进行排序,排名, ...

  5. bs架构 mysql_基于BS架构OA办公系统的设计(PHP,MySQL)(三人组)(含录像)

    基于BS架构OA办公系统的设计(,MySQL)(三人组)(含录像)(毕业论文13000字,程序代码,MySQL数据库,答辩PPT) 系统模块划分 企业部门管理系统(以管理员部分为核心)从功能上划分为5 ...

  6. 计算机网络实验类型有哪些,北航研究生计算机网络实验_实验三 网络层实验

    实验三  网络层实验 将执行命令的结果填入下表: 2.6.1中步骤2中的执行结果 2.6.1中步骤4中的执行结果 2.6.2中步骤11中的执行结果 2.分析2.6.1步骤3中截获的报文,统计" ...

  7. c语言程序设计编程解读,C语言程序设计第三次实验报告解读

    <C语言程序设计第三次实验报告解读>由会员分享,可在线阅读,更多相关<C语言程序设计第三次实验报告解读(15页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计实验报告专业 ...

  8. Linux进程通信的四种方式——共享内存、信号量、无名管道、消息队列|实验、代码、分析、总结

    Linux进程通信的四种方式--共享内存.信号量.无名管道.消息队列|实验.代码.分析.总结 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须 ...

  9. mysql的代码需要保存吗_php向Mysql数据库保存数据的代码

    php向Mysql数据库保存数据的代码 PHP如何向MySQL数据库中写入数据你知道吗?你对PHP向MySQL数据库中写入数据了解吗?下面是小编为大家带来的php向Mysql数据库保存数据的`代码,欢 ...

最新文章

  1. linux 后台进程
  2. php打印四行三列表格,php打印数组_php数组实例之表格状打印
  3. Java笔记-为客户端及服务端创建公私钥的密钥库
  4. 有序链表转换二叉搜索树
  5. java将map输出到d盘_java后台的“/”相对路径不是代表webroot吗,为什么在这里代表了d盘,测试的文件都传到了d盘呀?...
  6. JS点击图片位置后增加点位
  7. lisp 天正标高_天正AutoCAD技巧看你知多少
  8. Apache Iceberg Research
  9. Vue3中使用生命周期函数
  10. 将python代码转换为flowchart代码
  11. 计算机毕业设计Java国漫论坛网站(源码+系统+mysql数据库+Lw文档)
  12. 4、隐私计算--可信计算
  13. onunload,onbeforeunload,load事件
  14. JVM8(4)java虚拟机内部结构
  15. Discuz!NT 代码阅读笔记(8)--DNT的几个分页存储过程解析
  16. 腾讯视频真实下载地址获取教程(一段代码即可搞定)
  17. pyhton爬取爱豆(李易峰)微博评论
  18. 用HTML给对象送玫瑰花
  19. c语言+连加2的指令,c语言计算1+2+……+n的累加求和 用while和for俩种方法?
  20. Mac 安装 mkdocs 的环境搭建

热门文章

  1. 从用友BIP 3,我看清了社会级商业创新的本质
  2. 【通知】新浪微博搜索
  3. 漏洞复现|(CVE-2019-3396)Confluence文件读取远程命令执行
  4. 计算机B的IP地址是,一个B类IP地址172.16.1.0,划分八个子网,计算分配各子网有效地址和最大计算机数...
  5. word文件转md文件
  6. 如何找回office秘钥
  7. 【LaTex】宏包pageno的使用方法,命令\pageno的用法
  8. 字体图标 icon font
  9. 为什么不能合到一起?
  10. 李明--linux视频---CH1--LINUX简介