知名网站建设定制【数据库】数据库课程设计一一疫苗接种数据库


文章目录:


前言:知名网站建设定制此设计为小组合作项目,知名网站建设定制博主任组长,知名网站建设定制首先仍为感谢小组成员贡献,知名网站建设定制已征得各组员同意后创知名网站建设定制作发布此文。
知名网站建设定制博主参与负责:知名网站建设定制协调安排组员合作,记录过程,文档整理,编码《知名网站建设定制知名网站建设定制知名网站建设定制疫苗接种数据库》主体函数,知名网站建设定制运行调试各部分代码,知名网站建设定制加入主函数,e-r图设计,知名网站建设定制编写课程设计报告文档。(知名网站建设定制这也是博主第一次真正知名网站建设定制地贯穿整体参与设计,知名网站建设定制虽然我整的挺拉的……)

一、知名网站建设定制数据库题目

《疫苗接种数据库》

二、知名网站建设定制关键代码展示

1、疫苗接种数据库.py(主函数)

import Select   #知名网站建设定制导入查找功能包import Add      #知名网站建设定制导入添加功能包import Delete   #知名网站建设定制导入删除功能包import Update   #知名网站建设定制导入修改功能包if __name__ == '__main__':    Background()#知名网站建设定制打印背景信息    Team()      #打印小组成员信息    us=input("请输入用户名:")    pd=input("请输入密码:")    db=input("请输入数据库名称:")#数据库名字        Add.link(us,pd,db)    Select.link(us,pd,db)    Update.link(us,pd,db)    Delete.link(us,pd,db)    flag=True   #作为跳出数据库的标志    while(flag):        MainMenm()        choice=int(input("请输入要执行操作:"))        if choice==0:            print("您已选择退出,感谢您的操作体验")            break        elif choice==1:#----------------------添加----------------------------            Add.add()            print('''您已操作完毕,即将为您打印MainMenu,请按任意字符以继续''')            input()        elif choice==2:#----------------------删除----------------------------            Delete.delete()            print('''您已操作完毕,即将为您打印MainMenu,请按任意字符以继续''')            input()        elif choice==3:#----------------------查找----------------------------            Select.chose()            print('''您已操作完毕,即将为您打印MainMenu,请按任意字符以继续''')            input()        elif choice==4:#----------------------修改----------------------------            Update.update()            print('''您已操作完毕,即将为您打印MainMenu,请按任意字符以继续''')            input()        else:            print("操作选项输入错误,请重新输入")    Add.closelink()    Select.closelink()    Update.closelink()    Delete.closelink()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

2、Update.py(更新)

def update():    UpdateMenu()    a=int(input("请输入选择项目:"))    while a!=1 and a!=2 and a!=3 and a!=4 and a!=0:        a=int(input("您输入有误,请重新输入:"))    if a==0:        return    if a==1:          #更新接种人员表        UpdateMenu1()        b = int(input("请输入选择项目:"))        while b!=0 and b!=1 and b!=2 and b!=3:            b = int(input("您输入有误,请重新输入:"))        if b == 0:  # 1.1            return        shenfenzheng = input("请输入身份证号:")        if b == 1:  # 1.2            jiexing = input("请输入修改后的姓名:")            c.execute("UPDATE 接种人员 set  姓名='%s' WHERE 身份证号='%s';" % (jiexing, shenfenzheng))  # 修改接种人员表的接种人姓名            c.execute("UPDATE 接种信息 SET 姓名='%s' WHERE 身份证号='%s';" % (jiexing, shenfenzheng))  # 修改接种信息表的接种人姓名            conn.commit()        elif b == 2:  # 1.3            pphone = input("请输入修改后的接种人联系电话:")            c.execute("UPDATE 接种人员 SET 接种人联系电话='%s' WHERE 身份证号='%s';" % (pphone, shenfenzheng))  # 修改接种人员表的电话号码            conn.commit()        elif b == 3:  # 1.4            zhuzhi = input("请输入修改后的家庭住址:")            c.execute("UPDATE 接种人员 SET 家庭住址='%s' WHERE 身份证号='%s';" % (zhuzhi, shenfenzheng))  # 修改接种人员表的家庭住址            conn.commit()    if a==2:    #2.0        UpdateMenu2()        d = int(input("请输入选择项目:"))        while d!=0 and d!=1 and d!=2 and d!=3:            d = int(input("您输入有误,请重新输入:"))        if d == 0:  # 2.1            return        jiebian = input("请输入接种编号:")        if d == 1:  # 2.2            yimiaobianhao = input("请输入修改后的疫苗编号:")            c.execute("UPDATE 接种信息 SET 疫苗编号='%s' WHERE 接种编号='%s';" % (yimiaobianhao, jiebian))  # 修改疫苗编号            conn.commit()        elif d == 2:  # 2.3            jici = input("请输入修改后的剂次:")            c.execute("UPDATE 接种信息 SET 剂次='%s' WHERE 接种编号='%s';" % (jici, jiebian))  # 修改疫苗剂次            conn.commit()        elif d == 3:  # 2.4            yipin = input("请输入修改后的疫苗品种:")            c.execute("UPDATE 接种信息 SET 疫苗品种='%s' WHERE 接种编号='%s';" % (yipin, jiebian))  # 修改疫苗品种            conn.commit()    if a==3:   #3.0        UpdateMenu3()        e = int(input("请输入选择项目:"))        while e!=0 and e!=1:            e = int(input("您输入有误,请重新输入:"))        if e == 0:  # 3.1            return        changbian = input("请输入厂家编号:")        if e == 1:  # 3.2            xingming2 = input("请输入修改后的疫苗厂家(名字):")            c.execute("UPDATE 生产企业 SET 厂家名称='%s' WHERE 厂家编号='%s';" % (xingming2, changbian))  # 修改厂家名字            c.execute("UPDATE 疫苗 SET 疫苗厂家='%s' WHERE 厂家编号='%s';" % (xingming2, changbian))            conn.commit()    if a==4:  #4.0        UpdateMenu4()        f = int(input("请输入选择项目:"))        while f!=0 and f!=1:            f = int(input("您输入有误,请重新输入:"))        if f == 0:  # 4.1            return        yibian = input("请输入疫苗编号:")        if f == 1:  # 4.2            changbian2 = input("请输入修改后的厂家编号:")            c.execute("UPDATE 疫苗 SET 厂家编号='%s' WHERE 疫苗编号='%s';" % (changbian2, yibian))  # 修改厂家编号            c.execute("UPDATE 疫苗, 生产企业 SET 疫苗.疫苗厂家 = 生产企业.厂家名称 WHERE 疫苗.厂家编号 = '%s' and 生产企业.厂家编号 = '%s';"%(changbian2, changbian2))  # 修改厂家编号            conn.commit()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79

3、Add.py(添加)

def add():    AddMenu1()    no = eval(input("请输入选择项目:"))    if no==0:        return    tableDic = {1: "接种人员", 2: "接种信息", 3: "疫苗", 4: "生产企业"}    while no not in tableDic:        no = eval(input("您输入有误,请重新输入:"))    table = tableDic[no]    Col = getCol(table)    data = []    NumFlag = 0    for i in Col:        if i[0]=='生日':            DataFlag=1            a=input("请输入" + i[0] + ",例如2002-02-02:")            while(DataFlag):                if(isVaildDate(a)==0):                    a = input("您输入日期不合法,请重新输入,例如2020-02-02:")                elif(isVaildDate(a)==1):                    break        else:            a = input("请输入" + i[0] + ":")        if NumFlag==0:            flag = 1            while(flag ==1):#判断主关键字是否重复                sql = '''select  %s FROM %s''' % (i[0],table)                c.execute(sql)                result = c.fetchall()                for j in result:                    for z in j:                        if a == z:                            flag = 0                if flag ==1:                    break                elif flag == 0:                    a = input("您输入与表中信息重复,请重新输入:")                    flag=1            NumFlag=NumFlag+1        if i[1][1] == "v" or i[1][1] == "c":    #varchar ;char            a = str(a)        data.append(a)    data = tuple(data)    sql = '''    insert into %s values %s;    ''' % (table, data)    # print(sql)    c.execute(sql)    conn.commit()    print("已成功插入……")    return 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

4、Delete.py(删除)

def delete():    DeleteMenu()    cin = int(input("请输入选择项目:"))    while cin != 0 and cin != 1 and cin != 2 and cin != 3 and cin != 4:        cin = int(input("您输入有误,请重新输入:"))    if cin ==0:        return    elif cin ==1:        DeleteMenu1()        id1 = int(input("请输入选择项目:"))        while id1!=0 and id1!=1 and id1!=2:            id1 = int(input("您输入有误,请重新输入:"))        if id1 == 0:            return        elif id1 == 1:            ID = input("请输入接种人员身份证:")            sql = "DELETE FROM 接种人员 WHERE 身份证号='%s'" % (ID)            c.execute(sql)            conn.commit()        elif id1==2:            Phone = input("请输入接种人联系电话:")            sql = "DELETE FROM 接种人员 WHERE 接种人联系电话='%s'" % (Phone)            c.execute(sql)            conn.commit()    elif cin == 2:        DeleteMenu2()        id2 = int(input("请输入选择项目:"))        while id2 != 0 and id2 != 1 and id2 != 2:            id2 = int(input("您输入有误,请重新输入:"))        if id2 == 0:            return        elif id2 == 1:            IID = input("请输入接种编号")            sql = "DELETE FROM  接种信息 WHERE 接种编号='%s'" % (IID)            c.execute(sql)            conn.commit()        elif id2==2:            VID = input("请输入疫苗编号")            sql = "DELETE FROM  接种信息 WHERE 疫苗编号='%s'" % (VID)            c.execute(sql)            conn.commit()    elif cin == 3:        DeleteMenu3()        id3 = int(input("请输入选择项目:"))        while id3 != 0 and id3 != 1:            id3 = int(input("您输入有误,请重新输入:"))        if id3 == 0:            return        else:            x = input("请输入厂家编号:")            sql1 = "DELETE FROM 生产企业 WHERE 厂家编号='%s'"%(x)            sql2 = "DELETE FROM 疫苗 WHERE 厂家编号='%s'" %(x)            c.execute(sql1)            c.execute(sql2)            conn.commit()    else:        DeleteMenu4()        id4 = int(input("请输入选择项目:"))        while id4 != 0 and id4 != 1:            id4 = int(input("您输入有误,请重新输入:"))        if id4 == 0:            return        else:            y = input("请输入疫苗编号:")            sql1 = "DELETE FROM 疫苗 WHERE 疫苗编号='%s'" % (y)            sql2 = "DELETE FROM 接种信息 WHERE 疫苗编号='%s'" % (y)            c.execute(sql1)            c.execute(sql2)            conn.commit()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73

5、Select.py(查找)

def chose():    SelectMenu1()    cin=int(input("请输入选择项目:"))    while True:        if cin in range(0,5):            break        else:            cin=int(input("您输入有误,请重新输入:"))    if cin==0:        return    if cin==1:                    #------------------查找接种人员相关信息-----------------------        SelectMenu2()        cin1=int(input("请输入选择项目:"))        while True:            if cin1 in range(0, 5):                break            else:                SelectMenu2()                cin1 = int(input("您输入有误,请重新输入:"))        if cin1==0:            return        for i in range(1,5):            if  cin1!=i:                continue            else:                cin2=input('请输入搜索数据:')                if i==1:                    return select_human(num=cin2)                elif i==2:                    return select_human(name=cin2)                elif i==3:                    cin2=int(cin2)                    return select_human(AR=cin2)                else:                    cin2 = int(cin2)                    return select_human(Dose=cin2)    elif cin==2:                    #------------------查找接种信息相关信息-----------------------        SelectMenu3()        cin1=int(input("请输入选择项目:"))        while True:            if cin1 not in range(0,4):                cin1=int(input("您输入有误,请重新输入:"))            else:                break        if cin1==0:            return        for i in range(1,4):            if cin1!=i:                continue            else:                cin2=input("请输入搜索数据:")                if i==1:                    return select_inoculate(num=cin2)                elif i==2:                    return select_inoculate(humanid=cin2)                elif i==3:                    return select_inoculate(vid=cin2)    elif cin==3:                    #------------------查找生产企业相关信息-----------------------        SelectMenu4()        cin1 = int(input("请输入选择项目:"))        while True:            if cin1 in range(0, 4):                break            else:                cin1 = int(input("请输入选择项目:"))        if cin1==0:            return        for i in range(1,4):            if cin1 !=i:                continue            else:                cin2=input("请输入搜索数据:")                if i==1:                    return select_factory(fid=cin2)                elif i==2:                    return select_factory(faddress=cin2)                else:                    return select_factory(vintype=cin2)    elif cin==4:                    #------------------查找疫苗信息-----------------------        Add.selectV()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85

三、需求分析

1、设计背景:

自2019年至今,新冠肺炎肆虐,其具有大流行特征,对我们的日常生活带来了严重的影响。幸运的是,新冠疫苗很快被研究出来。如今,疫苗需要接种三次,本小组以此为出发点构思,目标设计“疫苗接种数据库”,存储相关人员接种第1/2/3剂疫苗的相关信息以基于增、删、改、查基本功能下的适当延伸拓展。更便利疫情管控工作,共筑安全社会。

2、设计目的:

自上世纪90年代国家开展免疫计划以来,越来越多的疫苗被纳入国家免费计划中,主要目的在于提高居民免疫力,防止居民感染传染病。疫苗接种工作量、接种信息量巨大,若通过传统的人工管理方式来记录相关信息,会出现出错率高、查询困难、更新迟缓等相关操作不便的情况,且会耗费大量的人力、物力与财力。因此我们结合所学编程与数据库课程,以此出发,设计疫苗接种数据库,更有效、便捷的协助疫苗接种的工作开展。

3、数据库相关信息

共四张表。《接种人员》、《生产厂家》、《疫苗》、《接种信息》四张表。
(1)、《接种人员》表的数据项:身份证号,姓名,生日,性别,接种人联系电话,家庭住址,不良反应。
(2)、《生产企业表》表的数据项:厂家编号,疫苗厂家,厂家地址,厂家联系电话。
(3)、《疫苗》表的数据项:疫苗编号,疫苗品种,疫苗厂家,厂家编号,生产日期,过期时间。
(4)、《接种信息》表的数据项:接种编号,疫苗编号,剂次,疫苗品种,姓名,身份证号,接种时间,接种单位。

4、三次主要的阶段

(1)、确定选题:成果有《疫苗接种数据库课程设计》、《疫苗接种课程设计-数据表》、《疫苗接种课程设计-收集资料》。
(2)、需求分析:成果有《数据项清单》、《数据结构清单》、《局部数据清单》、《文档清单》、E-R图以及确定编程实现数据库所选语言为:Python+MySql。
(3)、编码分工:明确了各小组成员的编码分工。

四、概念结构设计

五、逻辑结构设计

六、物理结构设计

七、数据库实施

1、数据库设计语言选择

Python,MySQL。
Python连接数据库教程:

2、创建数据库以及导入数据

四张表的csv文件直接导入

八、数据库备份(直接在建立的数据库运行如下代码,表会直接导入)

-- MySQL dump 10.13  Distrib 8.0.24, for Win64 (x86_64)---- Host: localhost    Database: 疫苗接种数据库-- -------------------------------------------------------- Server version	8.0.24 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!50503 SET NAMES utf8mb4 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;/*!40103 SET TIME_ZONE='+00:00' */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; ---- Table structure for table `接种人员`-- DROP TABLE IF EXISTS `接种人员`;/*!40101 SET @saved_cs_client     = @@character_set_client */;/*!50503 SET character_set_client = utf8mb4 */;CREATE TABLE `接种人员` (  `身份证号` char(18) NOT NULL,  `姓名` varchar(20) DEFAULT NULL,  `生日` date DEFAULT NULL,  `性别` char(2) DEFAULT NULL,  `接种人联系电话` varchar(11) DEFAULT NULL,  `家庭住址` varchar(80) DEFAULT NULL,  `不良反应` tinyint DEFAULT NULL,  PRIMARY KEY (`身份证号`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;/*!40101 SET character_set_client = @saved_cs_client */; ---- Dumping data for table `接种人员`-- LOCK TABLES `接种人员` WRITE;/*!40000 ALTER TABLE `接种人员` DISABLE KEYS */;INSERT INTO `接种人员` VALUES ('100001','张亮','2000-02-01','男','1234567','幸福路一号',0),('100002','王五','2000-02-25','女','1234568','花园路二号',0),('100003','干将','2002-03-04','女','1234569','开心路四号',1),('100004','源氏','1960-05-03','男','1234570','快乐路三号',0),('100005','亚瑟','1962-01-01','男','1234571','开心路六号',0),('100006','王泽泽','1949-10-01','女','1234572','快乐路五号',0),('100007','李坤坤','1980-10-02','男','1234573','开心路七号',0),('100008','冯明明','1990-02-01','女','1234574','幸福路十一号',1),('100009','熊晨晨','1991-03-05','男','1234575','快乐路二十五号',0),('100010','干成成','2001-02-03','女','1234576','开心路三号',0);/*!40000 ALTER TABLE `接种人员` ENABLE KEYS */;UNLOCK TABLES; ---- Table structure for table `接种信息`-- DROP TABLE IF EXISTS `接种信息`;/*!40101 SET @saved_cs_client     = @@character_set_client */;/*!50503 SET character_set_client = utf8mb4 */;CREATE TABLE `接种信息` (  `接种编号` char(20) NOT NULL,  `疫苗编号` varchar(10) DEFAULT NULL,  `剂次` int DEFAULT NULL,  `疫苗品种` varchar(40) DEFAULT NULL,  `姓名` varchar(20) DEFAULT NULL,  `身份证号` char(18) DEFAULT NULL,  `接种时间` datetime DEFAULT NULL,  `接种单位` varchar(40) DEFAULT NULL,  PRIMARY KEY (`接种编号`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;/*!40101 SET character_set_client = @saved_cs_client */; ---- Dumping data for table `接种信息`-- LOCK TABLES `接种信息` WRITE;/*!40000 ALTER TABLE `接种信息` DISABLE KEYS */;INSERT INTO `接种信息` VALUES ('400001','200001',1,'HZAU','王泽泽','100006','2021-01-01 00:00:00','华农校医院'),('400002','200002',1,'HZAU','李坤坤','100007','2021-01-05 00:00:00','华农校医院'),('400003','200003',1,'HZAU','冯明明','100008','2021-03-07 00:00:00','华农校医院'),('400004','200004',1,'Tsinghua','熊晨晨','100009','2021-07-20 00:00:00','华农校医院'),('400005','200005',1,'Tsinghua','干成成','100010','2021-05-21 00:00:00','华农校医院'),('400006','200006',2,'Tsinghua','王泽泽','100006','2021-02-01 00:00:00','华农校医院'),('400007','200007',2,'Tsinghua','李坤坤','100007','2021-02-07 00:00:00','华农校医院'),('400008','200008',2,'WHU','熊晨晨','100009','2021-08-20 00:00:00','华农校医院'),('400009','200009',3,'WHU','李坤坤','100007','2021-03-14 00:00:00','华农校医院'),('400010','200010',3,'WHU','王泽泽','100006','2021-03-01 00:00:00','华农校医院');/*!40000 ALTER TABLE `接种信息` ENABLE KEYS */;UNLOCK TABLES; ---- Table structure for table `生产企业`-- DROP TABLE IF EXISTS `生产企业`;/*!40101 SET @saved_cs_client     = @@character_set_client */;/*!50503 SET character_set_client = utf8mb4 */;CREATE TABLE `生产企业` (  `厂家编号` varchar(10) NOT NULL,  `厂家名称` varchar(40) DEFAULT NULL,  `厂家地址` varchar(80) DEFAULT NULL,  `厂家联系电话` varchar(11) DEFAULT NULL,  PRIMARY KEY (`厂家编号`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;/*!40101 SET character_set_client = @saved_cs_client */; ---- Dumping data for table `生产企业`-- LOCK TABLES `生产企业` WRITE;/*!40000 ALTER TABLE `生产企业` DISABLE KEYS */;INSERT INTO `生产企业` VALUES ('300001','一教有限公司','华农荟园','987654321'),('300002','二教有限公司','华农桃园','987654322'),('300003','三教有限公司','华农桃园','987654323');/*!40000 ALTER TABLE `生产企业` ENABLE KEYS */;UNLOCK TABLES; ---- Table structure for table `疫苗`-- DROP TABLE IF EXISTS `疫苗`;/*!40101 SET @saved_cs_client     = @@character_set_client */;/*!50503 SET character_set_client = utf8mb4 */;CREATE TABLE `疫苗` (  `疫苗编号` varchar(10) NOT NULL,  `疫苗品种` varchar(40) DEFAULT NULL,  `疫苗厂家` varchar(40) DEFAULT NULL,  `厂家编号` varchar(10) DEFAULT NULL,  `生产日期` date DEFAULT NULL,  `过期时间` date DEFAULT NULL,  PRIMARY KEY (`疫苗编号`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;/*!40101 SET character_set_client = @saved_cs_client */; ---- Dumping data for table `疫苗`-- LOCK TABLES `疫苗` WRITE;/*!40000 ALTER TABLE `疫苗` DISABLE KEYS */;INSERT INTO `疫苗` VALUES ('200001','HZAU','三教有限公司','300003','2020-01-01','2023-01-01'),('200002','HZAU','一教有限公司','300001','2020-02-02','2023-02-02'),('200003','HZAU','二教有限公司','300002','2020-03-05','2023-03-06'),('200004','Tsinghua','一教有限公司','300001','2020-04-06','2023-04-07'),('200005','Tsinghua','二教有限公司','300002','2020-05-08','2023-05-09'),('200006','Tsinghua','一教有限公司','300001','2020-06-09','2023-06-10'),('200007','Tsinghua','二教有限公司','300002','2020-07-11','2023-07-12'),('200008','WHU','三教有限公司','300003','2020-08-12','2023-08-13'),('200009','WHU','二教有限公司','300002','2020-09-13','2023-09-14'),('200010','WHU','一教有限公司','300001','2020-10-15','2023-10-16');/*!40000 ALTER TABLE `疫苗` ENABLE KEYS */;UNLOCK TABLES;/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2021-12-07 17:19:08
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140

九、运行示例

1、四张表导入结果

(1)、《接种人员》

(2)、《接种信息》

(3)、《生产企业》

(4)、《疫苗》

2、使用实例

(1)、打开五个Python文件:

(2)、运行“疫苗接种数据库.py”文件


注:此数据库为自己新建,账户密码为个人搭环境时所设

(3)运行实例之“增”

含对主关键字“身份证号”重复的判断和“生日”日期的格式合理判断。
结果:可见新加的“大大怪”信息已成功插入。

(4)运行实例之“删”


结果:编号为400001的记录被成功删掉

(5)运行实例之“查”

(5)运行实例之“改”



结果:疫苗编号为20001的厂家编号和厂家名称都已随之改变。

十、总结

  • 此次疫苗数据库课程设计,我们通过小组讨论与合作,实现了预期的对于四张表的增、删、查、改的具体功能以及适当延伸。
  • 我们经过了不止十次的线上线下讨论,其中的三次重要阶段为确定选题、需求分析、编码分工。我们分别实现了确定所选题目;明确表的个数,表中数据个数,表间联系,E-R图设计等;编码实现,运行与完善。由于对各表的功能操作较多,含32个SQL语句功能,经过我们上百次的试运行与调试,发现bug与修复优化后,经历了六个版本的更迭,我们终于有了较为完善的最终版本。
  • 在此次疫苗数据库课程设计中,我们再次复习了课堂上所学习的理论知识,在实验课程外再次实际操作,对数据库有了更深入的理解,同时亲身贯穿数据库的设计,让我们对课本第七章《数据库设计》章节有了亲身操作的体会以及明确数据库该如何设计,数据库设计的基本步骤,数据库设计可能会出现的问题等。
  • 另外,此次数据库课程设计是以小组讨论形式展开。在讨论中,我们彼此交流看法,发现了许多不同与自己所想新的逻辑与看法,在交流讨论中,我们得到了更为客观,更贴合实际的结论与决策。此次课程设计,更进一步锻炼了我们的小组合作解决问题的能力。
  • 其次,最初我们课程设计的立意就是在此次设计中,我们能够更直观、真切的理解数据库,将在课堂、课本所学理论知识应用于实践,以及更熟练对于增、删、查、改等SQL语句的编码,整个数据库设计较为基础。相对与此,我们的结合实际与上层拓展延伸还需完善,在我们已实现此次基础的课程设计前提下,其他高层应用以及结合实际的功能设计与实现都会容易许多。
  • 最后,在此次疫苗数据库课程设置中,我们对数据库有了更为清晰的认识,尤其是需求分析阶段对于“数据”与“数据的处理”。我们通过编程实现了预期的基本功能及适当延伸,再次提高了编码能力。另外,此次疫苗数据库课程设计是以小组合作形式展开,在小组讨论中,我们求同存异,在讨论交流中选出更为客观、实际的结论与决策,再进一步的锻炼了我们的合作解决问题的能力。我们体会到了发现问题,解决问题的乐趣,在之后的计算机科学与技术之路上,我们会更加认真积极,“ 码 ”出属于自己的一片天地。

十一、结束语(补充与完善,建议观看)

页面补充一、

此课程设计仅在终端中运行,以在每次输出结果后调用ChangePrintColor()来改变分块颜色使结果更好呈现,无高档的前端后端页面,有学过HTML、CSS、JavaScript及前后端知识可结合设计使用。

内容补充二、

设计体系中“实体完整性”、“参照完整性”还需完善,即改变一个信息与之对应的信息也会改变(此代码中是写了两个SQL语句)。

内容补充三、

此课程设计立意为:更深入的理解“数据库该如何设计,数据库设计的基本步骤,数据库设计可能会出现的问题,SQL语句的掌握练习”,为基础的底层设计学习,未结合生活实际。(32个SQL语句功能多有冗余)
在此提出可结合生活实际的功能:
(1)、查询已接种n次疫苗的人员名单。
(2)、查询第n次仍未接种的人员名单等。

使用补充四、

此博文与>Python连接数据库教程:结合使用更佳。

感谢您的浏览支持,一起加油!

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发