Python是一种优秀的编程语言,可以轻松和各种数据库进行交互,MySQL也不例外。本文将讲解如何使用Python调用本地的MySQL数据库,并介绍如何自己封装数据库操作库。
以下是本文的内容大纲:
1. MySQL数据库介绍
2. Python操作MySQL所需引入的库
3. 本地MySQL数据库的创建和连接
4. 在Python中创建表和增、删、改、查操作
5. 自己封装MySQL操作库
MySQL数据库介绍
MySQL是一个关系型数据库管理系统,是一个开源软件,由瑞典MySQL AB公司开发。最初是为WEB应用程序提供的,随着MySQL的持续发展,也逐渐成为支持大型企业级应用程序的数据库。
Python操作MySQL所需引入的库
在Python中,可以使用MySQLdb、PyMySQL等库来操作MySQL数据库。这里我们选择PyMySQL库,因为它使用纯Python语言编写,不需要任何额外的本地库,支持Python3.x版本。
我们需要使用pip进行安装,命令如下:
```
pip install PyMySQL
```
本地MySQL数据库的创建和连接
首先,我们需要安装MySQL数据库。可以从官网上下载安装包进行安装。此外,可以使用XAMPP等软件包来管理MySQL服务,也可以使用MySQL Workbench等图形界面工具来管理数据库。
接下来,我们需要使用Python连接MySQL数据库。在PyMySQL库中,可以使用connect()方法连接数据库。
```python
import pymysql
conn = pymysql.connect(
host='localhost', # 主机名
user='username', # 用户名
password='password', # 密码
database='test_db', # 数据库名称
charset='utf8' # 编码方式
)
```
可以看到,我们需要提供数据库连接所需要的参数,包括主机名、用户名、密码、数据库名称和编码方式等。连接成功后,我们可以使用cursor()方法创建一个游标对象。游标对象用于执行SQL语句,并从数据库中提取数据。
```python
cursor = conn.cursor()
```
在Python中创建表和增、删、改、查操作
在连接数据库成功之后,我们可以执行SQL语句。例如,我们可以创建一个名为student的表,其中包含id、name、age和sex字段。
```python
cursor.execute('''
CREATE TABLE student (
id int(10) NOT NULL AUTO_INCREMENT,
name varchar(20) NOT NULL,
age int(3) NOT NULL,
sex varchar(2),
PRIMARY KEY (id)
)
''')
conn.commit()
```
可以看到,在执行完SQL语句之后,我们需要使用commit()方法提交事务。执行SQL语句时,我们可以使用execute()方法,例如增加一条学生记录:
```python
sql = "INSERT INTO student (name, age, sex) \
VALUES ('小明', 20, '男')"
cursor.execute(sql)
conn.commit()
```
删除一条学生记录:
```python
sql = "DELETE FROM student WHERE id = %s" % (1)
cursor.execute(sql)
conn.commit()
```
修改一条学生记录:
```python
sql = "UPDATE student SET name = '%s' WHERE id = %s" % ('小刚', 2)
cursor.execute(sql)
conn.commit()
```
查询学生记录:
```python
sql = "SELECT * FROM student"
cursor.execute(sql)
results = cursor.fetchall()
for result in results:
print(result)
```
自己封装MySQL操作库
在上面的示例中,我们直接调用了PyMySQL库进行MySQL数据库操作。但是,在一个大型项目中,可能会涉及到多个数据库操作,如果每次都重复编写相同的代码,就会非常繁琐。因此,我们可以自己封装一个MySQL操作库。
我们可以先创建一个Database类,并在其中添加连接数据库、增、删、改、查数据的方法。
```python
class Database:
def __init__(self):
self.conn = pymysql.connect(
host='localhost', # 主机名
user='root', # 用户名
password='123456', # 密码
database='test_db', # 数据库名称
charset='utf8' # 编码方式
)
self.cursor = self.conn.cursor()
def query(self, query, params=None):
self.cursor.execute(query, params)
results = self.cursor.fetchall()
return results
def execute(self, query, params=None):
self.cursor.execute(query, params)
self.conn.commit()
return self.cursor.lastrowid
```
在上面的代码中,我们首先创建一个连接,然后在执行查询和执行SQL语句时,都使用了响应的方法。这些方法都返回相应的结果,例如查询操作会返回结果集。
使用封装好的操作库时,我们只需要先创建一个Database对象,然后调用相应的方法即可。
```python
db = Database()
db.execute('''
CREATE TABLE person (
id int(10) NOT NULL AUTO_INCREMENT,
name varchar(20) NOT NULL,
age int(3) NOT NULL,
PRIMARY KEY (id)
)
''')
db.execute("INSERT INTO person (name, age) VALUES ('小红', 18)")
result = db.query("SELECT * FROM person")
for r in result:
print(r)
```
总结
本文介绍了如何使用Python操作本地MySQL数据库,并展示了如何自己封装MySQL操作库。在实际开发中,我们可以根据自己的需求和团队的规范来进行选择和封装,提高代码的复用性和可读性。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
发表评论 取消回复