本章要点:数据库基础Python数据库访问模块使用sqlite3模块连接和操作SQLite数据库使用SQLiteStudio查看和维护SQLite数据库第11章数据库访问基础
11.1数据库基础数据库存储数据的仓库,即存储在计算机系统中结构化的、可共享的相关数据的集合数据库管理系统(DatabaseManagementSystem,DBMS)用于管理数据的计算机软件定义数据、操作数据以及维护数据目前流行的数据库管理系统产品适合于企业用户的网络版DBMS:如Oracle、MicrosoftSQLServer、IBMDB2等适合于个人用户的桌面DBMS:如MicrosoftAccess等数据库系统(DatabaseSystem,DBS)计算机硬件、操作系统、DBMS、开发工具、应用系统、数据库管理员(DatabaseAdministrator,DBA)、用户
数据库模型现实世界的数据可以抽象为概念模型(ConceptualModel),也称为信息模型。信息模型可以转换为数据库模型概念模型最常用的是实体-联系(Entity-Relationship)方法。实体-联系方法把世界看作是由实体(Entity)和联系(Relationship)构成的实体是指现实世界中具有一定特征或属性并与其它实体有联系的对象,在关系模型中实体通常是以表的形式来表现。表的一行描述实体的一个实例,表的每一列描述实体的一个特征或属性联系是指实体之间的对应关系,通过联系就可以使用一个实体的信息来查找另一个实体的信息。联系可以分为以下三种
E-R图E-R图也称实体-联系图(EntityRelationshipDiagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。E-R图通常包含以下四个部分。(1)矩形框:表示实体,在框中记入实体名。(2)菱形框:表示联系,在框中记入联系名。(3)椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一条下画线。(4)连线:实体与属性之间、实体与联系之间、联系与属性之间用直线相连,并在直线上标注联系的类型
常用的数据库模型层次模型(HierarchicalModel)01网状模型(NetworkModel)02关系模型(RelationalModel)03面向对象的数据模型(ObjectOrientedModel)04
关系数据库关系模型世界由实体(Entity)和联系(Relationship)构成三种联系数据库中的表行(Row)列(Column)主关键字(PrimaryKey)用于唯一确定一条记录
11.2Python数据库访问模块通用数据库访问模块:ODBCJDBC专用数据库访问模块:表17-1SQLite数据库和sqlite3模块SQLite是一款开源的轻型的数据库SQLite支持的数据类型包括:NULL、INTEGER、REAL、TEXT和BLOB,分别对应Python的数据类型:None、int、float、str和bytessqlite3模块提供访问和操作数据库sqlite的各种功能
11.3使用sqlite3模块连接和操作SQLite数据库1.导入相应的数据库模块2.建立数据库连接,返回Connection对象3.创建游标对象cur4.使用Cursor对象的execute执行SQL命令返回结果5.获取游标的查询结果集6.数据库的提交和回滚7.关闭Cursor对象和Connection对象
创建数据库和表【例11.1】创建数据库和表。创建数据库sales,并在其中创建表region,表中包含两个列:id和name,其中id为主码(primarykey)importsqlite3#创建SQLite数据库:c:\Pythonb\ch11\sales.dbcon=sqlite3.connect(rc:\Pythonb\ch11\sales.db)#创建表regions,包含两个列,id(主码)和namecon.execute(createtableregion(idprimarykey,name))
数据库表的插入、更新和删除操作【例11.2】数据库表记录的插入、更新和删除操作示例importsqlite3regions=[(021,上海),(022,天津),(023,重庆),(024,沈阳)]#打开SQLite数据库:c:\Pythonpa\ch17\sales.dbcon=sqlite3.connect(rc:\Pythonpa\ch17\sales.db)#使用不同的方法分别插入一行数据con.execute(insertintoregion(id,name)val