Python宝典第16章:Python与数据库

PythonWin中的odbc模块提供了对ODBC的支持。

PythonWin中的dbi模块定义了各种数据类型。


ODBC连接Access:

使用odbc模块首先使用odbc方法连接到数据库,创建一个connection对象,然后使用connection对象的cursor方法创建一个游标,使用游标对象的execute方法执行sql语句。

odbc模块仅提供了对数据的简单操作。

完成操作后,应调用cursor的close方法关闭游标,然后调用connection对象的close方法关闭数据连接。

如果使用了SQL查询语句,可以使用cursor的fetchall, fetchmany或者fetchone来获取返回值。

# -*- coding:utf-8 -*-
# file: pyDB.py
#
import odbc #import odbc module
con=odbc.odbc('podbc') #connection to db
cursor=con.cursor() #create a cursor
cursor.execute('select python_ID, python_name from people where python_ID=1')
r=cursor.fetchall()
print(r)
cursor.execute('insert into people (python_name, python_age, python_sex) values(\'Jee\',21,\'female\')')
cursor.execute('delete from people where python_ID=3')
con.commit() #如果使用支持事务的存储引擎,那么每次操作后,commit是必须的,否则不会真正写入数据库,对应rollback可以进行相应的回滚,但是commit后是无法再rollback的。commit() 可以在执行很多sql指令后再一次调用,这样可以适当提升性能。
cursor.close()
con.close()

DAO连接Access

对于简单的数据应用情况,可以使用Data Access Objects代替ODBC连接数据库

Python中,使用DAO需要使用PythonWin提供的win32com对象,通过它来使用windows的com组件

dbEngine=win32com.client.Dispatch('DAO.DBEngine.35')

dbEngine的OpenDatabase方法打开数据库,返回数据连接;使用OpenRecordset打开表,返回Recordset对象,使用Recordset对数据库进行操作。Recordset对象由Field对象组成,Filed对象表示一列。Fileds表示了所有field对象的集合。

# -*- coding:utf-8 -*-
# file: pyDB.py
#
import win32com.client
dbEnginer=win32com.client.Dispatch('DAO.DBEngine.36')
daoDB=dbEnginer.OpenDatabase('python.mdb')
daoRS=daoDB.OpenRecordset('people')
daoRS.MoveLast()
print(daoRS.RecordCount)
print(daoRS.Fields('python_name').Value)
print(daoRS.Fields('python_age').Value)
print(daoRS.Fields('python_sex').Value)
daoRS.AddNew()
daoRS.Fields('python_name').Value='Kate'
daoRS.Fields('python_age').Value='22'
daoRS.Fields('python_sex').Value='Female'
daoRS.Update()
daoRS.Close()
daoDB.Close()

ADO连接Access

ActiveX Date Objects

# -*- coding:utf-8 -*-
# file: pyDB.py
#
import win32com.client
adoCon=win32com.client.Dispatch('ADODB.Connection')
adoCon.Open('podbc')
adoRS=win32com.client.Dispatch('ADODB.Recordset')
adoRS.Open('['+'people'+']',adoCon,1,3)
adoRS.MoveFirst()
for i in range(adoRS.RecordCount):
    print(adoRS.Fields('python_name').Value)
    print(adoRS.Fields('python_age').Value)
    print(adoRS.Fields('python_sex').Value)
    adoRS.MoveNext()
adoRS.AddNew()
adoRS.Fields('python_name').Value='Kate'
adoRS.Fields('python_age').Value='22'
adoRS.Fields('python_sex').Value='Female'
adoRS.Update()
adoRS.Close()
adoCon.Close()

使用MySQL数据库

# -*- coding:utf-8 -*-
# file: pyDB.py
#
import MySQLdb
db=MySQLdb.connect(host='localhost', user='root', passwd='lydd22208', db='python')
cur=db.cursor()
cur.execute('insert into people (name, age, sex) values (\'Jee\',21,\'F\')')
r=cur.execute('delete from people where age=20')
db.commit()
r=cur.execute('select * from people')
r=cur.fetchall()
print(r)
cur.close()
db.close()


嵌入式数据库SQLite

# -*- coding:utf-8 -*-
# file: pyDB.py
#
import sqlite3
con=sqlite3.connect('C:\\Users\\HP\\Desktop\\sqlite-shell-win32-x86-3080600\\python') #此处不加路径,会报table找不到错误,其实是数据没找到
cur=con.cursor()
cur.execute('insert into people (name, age, sex) values (\'Jee\',21,\'F\')')
r=cur.execute('delete from people where age=20')
con.commit()
cur.execute('select * from people')
s=cur.fetchall()
print(s)
cur.close()
con.close()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python中创建数据库需要使用数据库管理系统(DBMS)和相应的Python数据库API。常用的DBMS有MySQL、PostgreSQL、SQLite等。在Python中,我们可以使用MySQLdb、psycopg2、sqlite3等模块来连接和操作这些数据库。 具体创建数据库的步骤如下: 1. 导入相应的数据库API模块。 2. 连接数据库,获取数据库连接对象。 3. 创建游标对象,用于执行SQL语句。 4. 执行SQL语句,创建数据库。 5. 关闭游标和数据库连接。 例如,在Python中使用MySQLdb模块创建一个名为test的数据库的代码如下: ``` import MySQLdb # 连接数据库 conn = MySQLdb.connect(host='localhost', user='root', passwd='123456') # 创建游标对象 cursor = conn.cursor() # 执行SQL语句,创建数据库 cursor.execute('CREATE DATABASE test') # 关闭游标和数据库连接 cursor.close() conn.close() ``` 需要注意的是,在执行SQL语句时,需要使用游标对象的execute()方法。另外,创建数据库时需要有足够的权限,否则会报错。 ### 回答2: Python是一种高级编程语言,它被广泛用于编写各种类型的应用程序。在Python编程语言中,我们也可以使用数据库来存储和管理数据。在本篇文章中,我们将学习如何使用Python编程语言来创建一个数据库。 在Python编程中,我们可以使用各种第三方模块来连接和管理数据库,例如MySQLdb、psycopg2等等。这些模块提供了与MySQL、PostgreSQL等数据库软件交互所需的API。但是在本篇文章中,我们将使用Python标准库中的sqlite3模块来创建和管理SQLite数据库。 SQLite数据库是一种轻量级的关系型数据库管理系统,它适用于一些小型的应用程序,例如桌面应用程序或移动应用程序。使用SQLite数据库也非常容易,因为它适用于大多数操作系统和编程语言。 在Python编程中,我们可以通过以下几个步骤来创建一个SQLite数据库: 1. 导入sqlite3模块 首先,我们需要使用Python的import语句来导入sqlite3模块,并创建一个与数据库的连接: ```python import sqlite3 conn = sqlite3.connect('example.db') ``` 在以上代码中,我们创建了一个连接到名为“example.db”的SQLite数据库的连接。如果该数据库文件不存在,则该语句将会创建一个新的数据库文件。 2. 创建游标 在SQLite数据库中,我们需要创建一个游标对象来执行SQL语句。我们可以使用连接对象的cursor()方法来创建一个游标: ```python c = conn.cursor() ``` 现在我们可以使用该游标执行SQL语句了。 3. 执行创建表的SQL语句 我们可以使用游标对象的execute()方法来执行任意的SQL语句。下面是一个用于创建一个名为“users”的表格的SQL语句的示例: ```python c.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''') ``` 以上SQL语句将创建一个名为“users”的表格,该表格将包括一个名为“id”的整数类型主键,一个名为“name”的文本类型列和一个名为“age”的整数类型列。 4. 提交更改 我们可以使用连接对象的commit()方法来应用对数据库的更改: ```python conn.commit() ``` 5. 关闭数据库连接 最后,我们应该关闭与数据库的连接对象,以确保所有缓冲数据都已经写入文件: ```python conn.close() ``` 现在,我们已经完成了创建一个SQLite数据库的所有步骤。在其中,我们使用了Python标准库中的sqlite3模块来创建连接和执行SQL语句。如果您想要深入了解SQLite数据库的API,那么我们建议您参考sqlite3模块的官方文档。 ### 回答3: 在Python数据库编程中,创建数据库是基础中的基础。数据库是一种用于组织、存储和管理数据的技术。在许多应用程序中,数据库是必不可少的,例如网站、电子商务平台和企业解决方案等。Python有着丰富的数据库接口和驱动程序,可以支持多种类型的数据库,例如MySQL、SQLite、PostgreSQL等。 要进行数据库编程,首先需要在Python中安装所需的数据库模块。例如,如果要使用MySQL数据库,则需要安装Python的mysql-connector库。在安装好要使用的库之后,我们可以使用Python连接到数据库,并创建新的数据库。 在Python中,创建一个新的数据库非常简单。这里我们以MySQL数据库为例,步骤如下: 1. 导入MySQL库 ``` import mysql.connector ``` 2. 连接到MySQL数据库 ``` mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword" ) ``` 这里的`host`参数是数据库所在的主机名或IP地址,`yourusername`和`yourpassword`分别是连接数据库所用的用户名和密码。如果连接成功,`mydb`对象将包含一个对数据库的连接。 3. 创建一个新的数据库 在MySQL中,可以使用`CREATE DATABASE`命令创建一个新的数据库。我们可以使用`mycursor`对象来执行任何SQL语句。例如,创建一个名为`mydatabase`的新数据库,可以使用以下代码: ``` mycursor = mydb.cursor() mycursor.execute("CREATE DATABASE mydatabase") ``` 这将创建一个名为`mydatabase`的新数据库。 当创建数据库时,需要注意一些细节。例如,确保数据库的名称唯一。另外,不要在代码中硬编码数据库连接凭据,而是应该将它们存储在安全的位置或使用环境变量。最后,应该避免使用模糊或不当的数据库命名,以免造成混淆和错误。 在了解了创建数据库的基本方法之后,可以进一步学习如何使用Python数据库交互。这将包括查询、插入、更新和删除数据等操作,这些操作都是执行数据库应用程序的关键组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值