版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python爬虫、数据清洗和数据可视化大数据分析大数据与人工智能技术丛书了解数据库的定义了解数据库的组成了解MySql的安装与使用掌握使用Python操作MySql数据库本章学习目标第四章数据库连接与查询掌握不同数据库的分类4.1数据库概述数据库技术是计算机领域中的重要技术之一,它将各种数据按一定的规律存放,以便于用户的查询和处理。什么是数据库?例如,把学校的学生、课程、上课教师以及学生成绩等数据有序的组织并存放在计算机中,就可以构成一个数据库。学生可以登录学校教务系统网站查询成绩,教师也可以登录该网站查询上课情况。因此,数据库是由一些批彼此关联的数据集合构成,并以一定的组织形式存放在计算机中。何为“数据库”?数据库管理系统(DatabaseManagementSystem,简称DBMS)是一种操作和管理数据库的软件,它是数据库的核心,主要用于创建、使用和维护数据库。在DBMS中普通用户可以登录和查询数据库,管理员可以建立和修改数据库等。数据库管理系统数据库DATABASE数据库管理系统功能010203数据定义DBMS提供了各种数据定义语言,用户可定义数据库中的各种数据对象。数据操纵DBMS提供了大量的数据操纵语言,用户可对数库中的数据表进行各种操作,例如数据表的创建、删除、插入、修改以及查询。数据管理与安全保护在DBMS中数据库的建立、运行和维护由数据库管理系统统一管理,以保证数据的完整性。此外,为了确保数据库的安全,只有被赋予权限的用户才可以访问数据库的相关数据。图4-1显示了数据库、数据库应用系统与数据库管理系统的关系。数据库应用系统1数据库应用系统n使用数据管理数据存储数据数据库管理系统(DBMS)数据库…目前在市场上较流行的DBMS有:SQLServer、Oracle、MySql、Sybase、Access等,本章主要介绍MySql的安装与使用。数据库系统的结构数据库系统在总体结构上一般都体现为三级模式,分别是:模式、外模式和内模式。模式模式又叫做概念模式或是逻辑模式,它是数据库中全体数据的逻辑结构和特征的描述。外模式外模式又叫做子模式或用户模式,它是一个或几个特定用户所使用的数据集合(外部模型),是用户与数据库系统的接口,是模式的逻辑子集。内模式内模式又叫做存储模式,它是数据在数据库系统中的内部表示,同时也是数据库最低一级的逻辑描述。如图显示了数据库系统的模式结构。层次模型网状模型关系模型数据模型模型是现实世界里某些特征的模拟和抽象,模型一般可分为实物模型与抽象模型。DBMS根据数据模型对数据进行存储和管理,常用的数据模型主要包括有:层次模型、网状模型和关系模型。若用图来表示层次模型,它可以显示为一棵倒立的树。在该模型中有且仅有一个结点无父结点,这个结点称为根节点;其他节点有且仅有一个父节点。网状模型结构比层次模型复杂,它可以看成是一个网络。在网状模型中,允许一个以上的结点无父结点;一个结点可以有多于一个以上的父结点。关系模型以二维表的形式来表示实体和实体之间的联系。关系模型主要包括有:数据结构:一张二维表格;数据操作:数据表的定义、查询、维护等;数据约束条件:表中列的取值范围的限制。数据模型组成在数据库中数据约束条件通常是一组完整性规则的集合,通过给定完整性规则使数据库中的数据受到一定程度的制约,如人的性别只能选择“男”或“女”;学生期末考试成绩最高不超过100分;人的年龄最大不超过150岁等。数据模型主要由三部分组成:数据结构、数据操作及数据约束条件。数据结构数据操作。数据结构是数据库中所研究的数据对象类型的集合,这些对象主要包含两类,一类是与数据类型、内容等有关的对象;另一类是与数据之间的联系有关的对象。数据操作是指对数据库中各种对象的实例所进行的操作的集合,通常包含两类,一类是数据库的各种查询操作;另一类是数据库的各种更新与修改操作。数据约束条件。关系数据库设计概念模型:概念模型是现实世界到数据世界的一个过渡层次,它是数据库设计人员进行设局库设计的有力武器,也是数据库设计人员与用户交流的语言。因此,概念模型具有简单、易懂的特点。(1)实体。实体是客观存在并相互区别的事物与事物之间的联系,如一个学生,一本图书等都是实体。(2)实体集。实体集是指同类实体的集合,如全体学生就是一个实体集。(3)属性。属性是指实体所具有的某一特性,如学生的学号、姓名、性别、年龄、籍贯等都是学生实体的属性。(4)联系。联系是指实体与实体之间以及实体与组成它的各个属性间的关系。关系数据库设计步骤:关系数据库的设计常包含以下六个步骤:需求分析、概念结构设计、逻辑结构设计、物理结构设计、编码测试和运行维护。概念模型的相关概念实体实体是客观存在并相互区别的事物与事物之间的联系,如一个学生,一本图书等都是实体。实体集实体集是指同类实体的集合,如全体学生就是一个实体集。属性属性是指实体所具有的某一特性,如学生的学号、姓名、性别、年龄、籍贯等都是学生实体的属性。联系联系是指实体与实体之间以及实体与组成它的各个属性间的关系。1.一对一联系。2.一对多联系。3.多对多联系。实体间联系的三种情况4.2MySql数据库MySql是一个小型的关系数据库管理系统,由于该软件体积小、运行速度快、操作方便等优点,目前被广泛的应用于Web上的中小企业网站的后台数据库中。MySql简介MySql的下载在本地计算机上安装好MySql后,在Windows命令行中输入:netstartmysql即可启动该程序。要进入MySql可执行程序目录,可输入命令:mysql-uroot即可进入MySql中的命令行模式想要退出该命令行模式,只需在提示符“mysql”后输入命令:quit即可退出,如图所示。MySql数据库的基本操作主要有以下几种:1、创建数据库:createdatabase数据库名2、查看数据库:showdatabases3、选择指定数据库:use数据库名4、删除数据库:dropdatabase数据库名MySql数据库的基本操作主要分为操作MySql数据库和操作MySql数据表。MySql数据库的基本操作MySql数据库的基本操作想要查看
MySql数据库,只需输入命令:showdatabases;系统会自动列出已经创建好的所有数据库名称。用户可以自行在MySql中创建数据库,只需输入命令:createdatabase即可,其中语句database表示要创建的数据库的名称,用户可自行命名。例如输入命令:createdatabasestu,表示创建了一个数据库,该数据库的名称为stu。在创建好了数据库后,可使用语句showdatabases查看结果在创建好了stu数据库后,就可以在其中创建数据表。首先输入命令:usestu,该命令的作用是使stu成为系统默认的数据库查看数据库创建数据库切换当前数据库MySql数据表的基本操作MySql数据表的基本操作主要有以下几种:创建数据表:createtable数据表名查看数据表:showtables查看数据表结构:describe数据表名往数据表中添加记录:insertinto数据表名values修改数据表中记录:update数据表名在MySql数据库中创建数据表可以使用命令createtable来完成,其中语句table后要紧跟创建的数据表的名称。例如在数据库stu中要创建学生信息表user,命令如下:createtableuser(idchar(6)notnullprimarykey,namechar(6)notnull,scoretinyint(1)null);MySql数据表的基本操作查看数据表信息在MySql数据库中想要查看已经创建好了的数据表,可以使用命令showtables来实现。例如要查看stu数据表,输入命令:showtables查看数据表结构图4-16只显示了数据表user的名称,没有显示该数据表的具体信息,如果想查看该数据表的结构信息,可使用命令:describeuser来进一步了解user表的字段及数据类型往表中增加记录在MySql数据库中创建好了数据表后,就可以往数据表中添加记录,通常使用insert命令来完成这一操作。例如,想要往数据表user中添加记录,可以使用如下语句:insertintouservalues('05010010','john',99);该语句往user数据表中插入了一条记录,其中id=05010010,name=john,score=99MySql数据表的基本操作在MySql数据库中要想修改数据表中的记录,可使用命令update来完成这一操作。如要将数据表user中的score的值减少10,可以输入以下命令:updateusersetscore=score-10;在MySql数据库中如果要删除已经创建好的数据库,可以使用命令:dropdatabase。如要删除已创建的stu数据库,可输入以下命令:dropdatabasestu;运行该命令后即可删除stu数据库。修改表中的记录删除数据库4.3使用Python操作MySql数据库在Python中访问MySql数据库和用C++访问数据库方法基本相同,主要有以下步骤:通过pymysql库的方法,与MySql数据库建立连接。编写SQL语句。通过连接的返回的数据库对象,调用相应方法执行SQL语句。读取数据库返回的数据(即缓存区中的数据)。对相应的返回数据进行操作。关闭数据库对象,关闭数据库。在Python3中可以使用pymysql库来实现这一功能。pymysql库是一个纯Python库,可以直接安装使用,安装时可在Windows命令行中输入以下命令:pipinstallpymysql在MySql中建立数据库和数据表Python连接MySql数据库想要使用Python操作MySql数据库,首先要在MySql中建立数据库和数据表。本节使用上一节在MySql中建立的stu数据库和user数据表,如已经删除可重新建立。user数据表中的数据如图所示1.建立连接。想要使用Python连接MySql,可在命令importpymysql后输入以下命令:db=pymysql.connect(host="",user="",passwd="",db="",charset="")在该命令中db代表数据库,pymysql.connect表示使用pymysql库来连接MySql数据库,pymysql.connect参数含义及connect支持的方法见表。值得注意的是:有时候也可以把connect写成connection。参数名称含义hostMySql服务器名user数据库使用者passwd用户登录密码db操作的数据库名charset连接字符集方法名称含义cursor()创建并返回游标commit()提交当前事物rollback()回滚当前事物close()关闭建立Python与MySql的连接并获取表中数据建立Python与MySql的连接并获取表中数据在本例中输入命令如下:db=pymysql.connect("localhost","root","","stu")该命令表示建立Python与MySql的连接。其中语句"localhost"表示要连接的MySql服务器的名称,MySql服务器一般默认为localhost;语句"root"表示要连接的MySql的用户名,一般默认为root;语句""表示要连接的MySql的用户密码,如果在安装MySql时设置了密码,则在该处要填写正确,否则无法建立连接,此处密码为空;语句"stu"表示要连接的在MySql中已经创建好的的数据库的名称,此处要连接的数据库是stu。建立Python与MySql的连接并获取表中数据2.获取游标输入命令:cursor=db.cursor()以获取操作游标。游标是一个存储在MySqL服务器上的数据库查询,它不是一条select语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据滚动或者浏览器中的数据。游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或作出更改。值得注意的是:MySqL游标只能用于存储过程和函数。3.查询记录输入命令:cursor.execute("select*fromuser")以保存查询结果记录集。4.返回结果输入命令:data=cursor.fetchall()以接收全部的返回结果行。5.打印数据输入命令:print(data)以打印结果。建立Python与MySql的连接并获取表中数据此例使用Python成功连接了MySql数据库,并输出了在stu数据库中的user数据表的数据值。使用Python操作MySql数据库流程如图所示。Python连接MySql并往数据表中添加记录该例使用Python往user数据表中插入新的记录,使用sql命令如下:sql="insertinto数据表名()values()"其中语句insertinto表示往数据表中插入记录,数据表名()表示要插入记录的表名称及表字段,values()表示要插入的数据值。该例在user数据表中插入一条新纪录,对应的数据值分别是:id:050101name:lesliescore:810102Python连接MySql并往数据表中添加记录如要往user数据表中同时插入多条记录,可使用命令如下:executemany()该例同时插入了两条记录,分别是:("050102","tom","67")("050103","lucy","86")如果想要依次显示在user数据表中插入的每一条数据,可使用方法fetchone()来实现,运行如图所示。同时插入多条记录依次显示插入的每一条记录此外,也可以用其他语句来表示:data=cursor.fetchone()print(data)Python连接MySql并修改数据表中记录使用Python在user数据表中修改记录,使用sql命令如下:sql="update数据表名()set(修改条件)"其中语句update表示在数据表中修改记录,数据表名()表示要插入记录的表名称及表字段,set(修改条件)表示要修改的数据值。Py
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GBT 4706.76-2024 家用和类似用途电器的安全 第76部分:灭虫器的特殊要求标准立项发展报告
- 27版53高中同步新教材必修上册人教语文第二单元单元写作任务
- 2026年辅警招聘笔试100题及答案
- 2026中国短肽营养制剂临床需求与产业化发展前景报告
- 2026莫桑比克石油开采行业市场供需格局及投资机会规划分析报告
- 口腔预防技术考试题目及答案
- 2026中国医疗影像AI辅助诊断系统审批路径与医院采购标准研究
- 2026半导体光刻胶材料技术突破与进口替代战略分析报告
- 2026中国显示屏行业产能过剩风险预警与供给侧改革建议报告
- 人才培养知识试题及答案高中生版本
- 2026年教师资格中学教育心理学考试题目及答案3
- 2026赫章鑫晨建工(集团)有限公司招聘20名工作人员笔试备考试题及答案详解
- GB/T 47826-2026航空航天系列阻燃磷酸酯液压油技术规范
- 新能源汽车保养维修手册
- (2026版)《中华人民共和国国家发展规划法》解读
- 肿瘤与营养CSCO指南
- JJF 2376-2026 智能网联汽车自动泊车性能 计量测试规范
- 驾校安全职责考核制度
- GB/T 47005-2026增材制造激光定向能量沉积钛合金制件技术规范
- 《聚氨酯基透水路面技术规程》DBJ41-T150-2015
- 2025年洛阳市公安机关招聘辅警人员笔试真题
评论
0/150
提交评论