轻松学习Python数据库:入门指南 (python数据库入门)
Python数据库简介
Python是一种非常流行的编程语言,广泛用于各种任务和项目中。Python可以用来访问和管理各种类型的数据库,包括关系型数据库、文档数据库和图形数据库。
在Python中,有几种不同的数据库访问工具。这些工具包括Python标准库中的sqlite3模块,以及许多第三方模块,如MySQLdb,psycopg2,PyMongo和py2neo等。本文将介绍如何使用Python标准库中的sqlite3模块以及第三方模块PyMySQL来访问MySQL数据库。
Python SQLite入门指南
SQLite是一种轻量级的关系型数据库管理系统,它是一个自包含的数据库引擎。SQLite常常被用于移动应用和小型桌面应用中。在Python中,我们可以使用sqlite3模块访问SQLite数据库。
步骤1: 安装sqlite3
在Python标准库中,sqlite3是内置的。因此,不需要安装特定的软件包。然而,为了反复练习,更好安装SQLite本身,并通过在SQLite命令提示符下输入以下命令来验证其正确性:
$ sqlite3
步骤2: 连接到SQLite数据库
使用sqlite3连接到数据库时,首先需要创建一个数据库连接对象。在这个对象中,可以设置许多不同的连接参数。例如,可以指定连接的数据库文件名,用户名和密码,以及连接对管理数据库的方式。
要连接到SQLite数据库,使用以下Python代码:
import sqlite3
conn = sqlite3.connect(‘test.db’)
print(“Opened database successfully”)
这个代码片段定义了一个变量conn,其中存储了数据库的连接。我们将连接到test.db数据库,这个数据库可以是在同一目录中的任何SQLite数据库文件。
步骤3: 创建数据表
在SQLite中,可以使用CREATE TABLE语句来创建数据库表。每个表都包含多个列,每列都具有特定的数据类型。在Python中,可以使用sqlite3模块的execute方法执行CREATE TABLE语句。在本文的例子中,我们将创建一个名为company的数据表,其中有4列:ID、NAME、AGE和ADDRESS。
import sqlite3
conn = sqlite3.connect(‘test.db’)
print(“Opened database successfully”)
conn.execute(”’CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);”’)
conn.close()
我们在test.db上执行了CREATE TABLE语句,并在其中创建了一个新的名为COMPANY的数据表。注意,此语句应该是一条字符串,正如上面的代码片段所示。
步骤4: 插入数据记录
在SQLite数据库中,可以使用INSERT语句将数据插入到表中。可以使用sqlite3的execute方法执行SQL INSERT语句。下面是一个示例Python程序,用于将一些数据插入到上面定义的company数据表中:
import sqlite3
conn = sqlite3.connect(‘test.db’)
print(“Opened database successfully”)
conn.execute(“INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, ‘Paul’, 32, ‘California’, 20230.00 )”)
conn.execute(“INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (2, ‘Allen’, 25, ‘Texas’, 15000.00 )”)
conn.execute(“INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (3, ‘Teddy’, 23, ‘Norway’, 20230.00 )”)
conn.execute(“INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (4, ‘Mark’, 25, ‘Rich-Mond’, 65000.00 )”)
conn.commit()
print(“Records created successfully”)
conn.close()
在这个例子中,我们为一个名为COMPANY的数据表插入了4条记录。注意,我们使用backslash字符(’\’)在我们的Python脚本中的每个INSERT语句上分割它们,以避免因语句过长而引起SyntaxError。
步骤5: 查询数据记录
在SQLite数据库中,可以使用SELECT语句查询表中的数据。在Python代码中,可以使用sqlite3的execute方法执行查询。下面是一个示例Python程序,用于打印表公司中所有记录的详细信息:
import sqlite3
conn = sqlite3.connect(‘test.db’)
print(“Opened database successfully”)
cursor = conn.execute(“SELECT id, name, address, salary from COMPANY”)
for row in cursor:
print(“ID = “, row[0])
print(“NAME = “, row[1])
print(“ADDRESS = “, row[2])
print(“SALARY = “, row[3], “\n”)
print(“Operation done successfully”)
conn.close()
在这个例子中,我们查询了名为company的数据表,然后对结果集进行迭代,并打印了每个记录的ID、NAME、ADDRESS和SALARY。
步骤6: 更新记录
在SQLite数据库中,可以使用UPDATE语句更新表中的数据。在Python代码中,可以使用sqlite3的execute方法执行UPDATE语句。下面是一个示例Python程序,用于更新表公司中之一条记录的薪资:
import sqlite3
conn = sqlite3.connect(‘test.db’)
print(“Opened database successfully”)
conn.execute(“UPDATE COMPANY set SALARY = 25000.00 where ID = 1”)
conn.commit()
print(“Total number of rows updated :”, conn.total_changes)
cursor = conn.execute(“SELECT id, name, address, salary from COMPANY”)
for row in cursor:
print(“ID = “, row[0])
print(“NAME = “, row[1])
print(“ADDRESS = “, row[2])
print(“SALARY = “, row[3], “\n”)
print(“Operation done successfully”)
conn.close()
在这个例子中,我们使用UPDATE语句来更新薪资,然后使用SELECT语句查询新结果集并打印它。此后,我们关闭数据库连接。
步骤7: 删除记录
在SQLite数据库中,可以使用DELETE语句删除表中的数据记录。在Python代码中,可以使用sqlite3的execute方法执行DELETE语句。下面是一个示例Python程序,用于删除表公司中ID为2的记录:
import sqlite3
conn = sqlite3.connect(‘test.db’)
print(“Opened database successfully”)
conn.execute(“DELETE from COMPANY where ID = 2;”)
conn.commit()
print(“Total number of rows deleted :”, conn.total_changes)
cursor = conn.execute(“SELECT id, name, address, salary from COMPANY”)
for row in cursor:
print(“ID = “, row[0])
print(“NAME = “, row[1])
print(“ADDRESS = “, row[2])
print(“SALARY = “, row[3], “\n”)
print(“Operation done successfully”)
conn.close()
在这个例子中,我们使用DELETE语句删除表中的行,然后使用SELECT语句查询新结果集并打印它。此后,我们关闭数据库连接。
Python MySQL入门指南
MySQL是一种开源的关系型数据库管理系统,它被广泛用于各种大小的应用程序中。Python中有许多第三方工具,可供以各种方式访问MySQL数据库。在本节中,我们将介绍使用PyMySQL访问MySQL数据库的方法。
步骤1: 安装PyMySQL
要在Python代码中使用PyMySQL,需要首先安装PyMySQL库。可以通过运行下面的命令来安装PyMySQL:
pip install PyMySQL
步骤2: 连接MySQL数据库
在Python中,PyMySQL会使用连接到MySQL数据库。可以使用PyMySQL.connect方法创建一个新的数据库连接:
import pymysql
# Open database connection
db = pymysql.connect(“localhost”,”testuser”,”test123″,”TESTDB” )
# prepare a cursor object using cursor() method
cursor = db.cursor()
在本例中,我们连接到本地MySQL数据库,然后创建一个名为cursor的新对象。
步骤3: 创建数据表
可以使用CREATE TABLE语句在MySQL数据库中创建表。以下是一个示例Python程序,用于创建名为employee的数据表:
import pymysql
# Open database connection
db = pymysql.connect(“localhost”,”testuser”,”test123″,”TESTDB” )
# prepare a cursor object using cursor() method
cursor = db.cursor()
# Drop table if it already exist using execute() method.
cursor.execute(“DROP TABLE IF EXISTS EMPLOYEE”)
# Create table as per requirement
sql = “””CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )”””
cursor.execute(sql)
# disconnect from server
db.close()
在本例中,我们使用了CREATE TABLE语句并定义了一个新的名为employee的表。注意,此语句应该是一条字符串。
步骤4: 插入数据记录
可以使用INSERT语句将数据插入到MySQL数据库表中。以下是一个示例Python程序,用于将一些数据插入名为employee的数据表中:
import pymysql
# Open database connection
db = pymysql.connect(“localhost”,”testuser”,”test123″,”TESTDB” )
# prepare a cursor object using cursor() method
cursor = db.cursor()
# Prepare SQL query to INSERT a record into the database.
sql = “””INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES (‘Mac’, ‘Mohan’, 20, ‘M’, 2023)”””
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
db.commit()
except:
# Rollback in case there is any error
db.rollback()
# disconnect from server
db.close()
在本例中,我们使用INSERT语句插入了一条名为员工的记录。注意,我们在try块中运行execute方法,并使用commit方法将更改保存到数据库中。
步骤5: 查询数据记录
可以使用SELECT语句查询MySQL数据库表中的数据。以下是一个示例Python程序,用于查询名为employee的数据表中的所有记录:
import pymysql
# Open database connection
db = pymysql.connect(“localhost”,”testuser”,”test123″,”TESTDB” )
# prepare a cursor object using cursor() method
cursor = db.cursor()
# Prepare SQL query to SELECT records from the database.
sql = “SELECT * FROM EMPLOYEE \
WHERE INCOME > ‘%d'” % (1000)
try:
# Execute the SQL command
cursor.execute(sql)
# Fetch all the rows in a list of lists.
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# Now print fetched result
print (“fname = %s,lname = %s,age = %d,sex = %s,income = %d” % \
(fname, lname, age, sex, income ))
except:
print (“Error: unable to fetch data”)
# disconnect from server
db.close()
在本例中,我们使用SELECT语句查询名为employee的数据表。我们可以使用fetchall方法获取查询结果并迭代每个行,以打印查询结果。
步骤6: 更新记录
可以使用UPDATE语句更新MySQL数据库表中的数据。以下是一个示例Python程序,用于更新名为employee的数据表中的一条记录:
import pymysql
# Open database connection
db = pymysql.connect(“localhost”,”testuser”,”test123″,”TESTDB” )
# prepare a cursor object using cursor() method
cursor = db.cursor()
# Prepare SQL query to UPDATE required records
sql = “UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = ‘%c'” % (‘M’)
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
db.commit()
except:
# Rollback in case there is any error
db.rollback()
# disconnect from server
db.close()
在本例中,我们使用UPDATE语句更新名为employee的数据表中的一行,使AGE增加1。我们在try块中使用execute方法并在成功后使用commit方法,以将更改保存到数据库中。
步骤7: 删除记录
可以使用DELETE语句从MySQL数据库表中删除数据记录。以下是一个示例Python程序,用于删除名为employee的数据表中的一条记录:
import pymysql
# Open database connection
db = pymysql.connect(“localhost”,”testuser”,”test123″,”TESTDB” )
# prepare a cursor object using cursor() method
cursor = db.cursor()
# Prepare SQL query to DELETE required records
sql = “DELETE FROM EMPLOYEE WHERE AGE > ‘%d'” % (20)
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
db.commit()
except:
# Rollback in case there is any error
db.rollback()
# disconnect from server
db.close()
在本例中,我们使用DELETE语句从名为employee的数据表中删除一条记录。我们在try块中使用execute方法并在成功后使用commit方法,以将更改保存到数据库中。
本文介绍了如何在Python中使用sqlite3和PyMySQL访问SQLite和MySQL数据库。我们讨论了使用Python数据库API,如连接到数据库、创建数据表、插入数据记录、查询数据记录、更新记录和删除记录等重要任务。Python是一个非常强大的编程语言,它可以轻松地与各种类型的数据库进行交互。在学习本文中所述的Python数据库API时,您将了解如何使用Python编写强大的数据驱动应用程序。