1. 数据库概述及ODBC介绍
数据库是一组相关数据和处理这些数据的应用程序的集合,通常由与它们有关的人组成。无论是从事企业管理、市场营销、教育、医疗、工程等哪个领域的人员都应该掌握数据库的基本知识。
在数据库编程中,ODBC全称为“Open Database Connectivity”,中文翻译为“数据库连接开放性”,是数据库应用程序的接口。ODBC是为Windows提供的数据库连接标准接口,它使得数据库应用程序能够访问各种数据库。ODBC是一种访问数据源的标准协议,支持多种数据源(如:Access、FoxPro、DB2、Oracle等)和多种客户软件(如:VB、Word等),因此被广泛应用于各种系统。ODBC提供了一个程序,叫做“ODBC驱动程序”,用于连接DBMS和应用程序。
2. Python ODBC模块介绍
Python ODBC模块是Python数据库编程模块之一,用于实现Python程序与相关数据库之间的连接。Python ODBC模块是一个开放源代码的组件,直接使用Python ODBC模块可以与多种类型的数据库进行互联。
Python ODBC模块是基于ODBC标准接口,实现了Python程序与ODBC兼容的数据库连接,包括Access、Foxpro、DB2、Oracle、MS SQL Server等多种类型数据库系统。Python ODBC模块具有方便、易用的优点,并允许使用Python编写的程序与数据库之间进行交互。Python ODBC模块提供了丰富的API,能够很好地支持Python与数据库之间的通讯。
3. ODBC方式实现通讯录
3.1 数据库结构设计
在进行通讯录的数据库编程之前,需要先设计数据库结构。该通讯录的数据库结构包括两个表:联系人信息表和联系人详细信息表。
联系人信息表设计:
CREATE TABLE contacts_info(
id INT PRIMARY KEY IDENTITY(1,1),
name VARCHAR (20) NOT NULL,
phone_number VARCHAR (11) NOT NULL,
email VARCHAR (50),
company VARCHAR (50),
address VARCHAR (100)
);
联系人详细信息表设计:
CREATE TABLE contacts_detail(
id INT PRIMARY KEY,
birthday DATE,
group_name VARCHAR(50),
notes VARCHAR(100)
);
3.2 Python ODBC实现数据库连接
在Python ODBC中,使用pyodbc模块来访问数据库。使用pyodbc.py的connect() 方法来连接ODBC数据源。该方法接收连接ODBC数据源所需要的信息,例如:数据库名称、用户名和密码等等。
示例代码如下:
import pyodbc
conn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0};SERVER=localhost;DATABASE=AddressBook;UID=admin;PWD=123456')
cursor = conn.cursor()
以上代码实现了Python ODBC与SQL Server的连接,其中:
DRIVER:ODBC 驱动名称
SERVER:服务器名
DATABASE:数据库名称
UID:登录用户名
PWD:用户密码
3.3 Python ODBC实现数据的增、删、改、查
用Python ODBC实现对数据的增、删、改、查操作十分简单,只需在Python中实现SQL语句,即可对数据库进行相关操作。示例代码如下:
实现对联系人信息表中的数据添加操作
try:
cursor.execute("INSERT INTO contacts_info(name, phone_number, email, company, address) VALUES (?, ?, ?, ?, ?)", ('Jack', '13788888888', 'jack@test.com', 'XX Company', 'XX Street'))
conn.commit()
except Exception as e:
conn.rollback()
实现对联系人信息表中的数据删除操作
try:
cursor.execute("DELETE FROM contacts_info WHERE name= ?", ('Jack',))
conn.commit()
except Exception as e:
conn.rollback()
实现对联系人信息表中的数据修改操作
try:
cursor.execute("UPDATE contacts_info SET email=? WHERE name=?", ('new-email@test.com','Jack'))
conn.commit()
except Exception as e:
conn.rollback()
实现对联系人信息表中的数据查询操作
try:
cursor.execute("SELECT * FROM contacts_info WHERE phone_number=?", ('13788888888',))
result = cursor.fetchall()
for row in result:
print(row)
except Exception as e:
print(e)
4. 总结
Python ODBC模块提供了一种简单的方式来与ODBC兼容的数据库进行交互,使得Python程序员能够轻松访问和操作数据库。在本文中,我们介绍了Python ODBC的基本概念和使用方法,并以联系人数据库为例,详细演示了Python ODBC实现数据的增、删、改、查等操作。通过学习本文,您可以掌握Python ODBC的基本使用方法,以便在实际的开发中灵活应用。