Python提供了多个模块用于数据库操作,包括sqlite3、MySQLdb和psycopg2等。这些模块使得存储、检索和高效处理数据变得简单。只要具备Python语言基础和SQL语法知识,就能有效且高效地构建、修改和管理数据库。
使用Python创建数据库的步骤
步骤1
首先,安装与您选择的数据库管理系统相匹配的数据库适配器。例如,若使用SQLite,可安装sqlite3模块;对于MySQL,则安装MySQLdb模块;而对于PostgreSQL,则安装psycopg2。本教程将考虑SQLite、MongoDB及MySQLdb。在Python代码中使用SQLite时,需导入sqlite3模块:
import sqlite3
安装相应模块后,需创建一个数据库连接,这充当Python代码与数据库之间的桥梁,允许您发送命令并接收结果。例如,在SQLite中,可通过以下代码创建连接。
以名为school.db的数据库为例,连接方式如下所示:
conn = sqlite3.connect('school.db')
步骤2
在数据库中创建表。要创建表,需使用从连接获取的游标对象编写SQL语句。例如,创建一个名为”employees”的表,包含”id”、”username”、”salary”、”department”和”email”列,可使用以下代码:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
username TEXT,
email,
salary REAL,
department TEXT
)
''')
步骤3
通过SQL命令和游标对象向数据库插入、更新和检索数据。要向表中添加数据,可以使用”INSERT INTO”SQL语句,并通过`commit()`方法保存数据。例如,以下代码向”employees”表插入数据:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO employees (username, email, salary, department) VALUES ('Joseph', 'joseph@gmail,com' 70000, 'IT')")
conn.commit()
步骤4
从表中检索数据。要检索数据,可以使用”SELECT”SQL语句。例如,要从”users”表检索所有用户,可以使用以下代码:
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
print(row)
步骤5
通过执行CREATE VIEW语句创建视图,并使用游标对象的`execute()`方法执行CREATE VIEW语句。
# 执行CREATE VIEW语句
cursor.execute('''
CREATE VIEW employees_view AS
SELECT name, age, department, email, FROM employees;
''')
步骤6
关闭连接。完成数据库操作后,应关闭连接以释放资源。可通过调用连接对象的close()方法来关闭连接。例如:
conn.commit()
conn.close()
MySQLdb示例
要在MySQLdb中创建数据库,首先导入MYSQLdb模块,并通过`connect()`方法连接到数据库。接着创建游标,用于执行SQL命令。使用`execute()`方法创建表并插入数据。提交更改后,利用游标从表中选择数据,并使用`fetchall()`方法获取所有数据。最后,关闭游标和数据库连接。
import MySQLdb
连接数据库
conn = MySQLdb.connect(host="localhost", user="std", passwd="@12343!J", db="school.db")
创建游标执行SQL命令
cursor = conn.cursor()
创建表
cursor.execute("""
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
salary DECIMAL(10,2),
department VARCHAR(255)
)
""")
向表中插入数据
cursor.execute("""
INSERT INTO employees (name, salary, department)
VALUES
("Joseph", 70000, "IT"),
("Jane", 80000, "Marketing")
""")
提交数据库变更
conn.commit()
从表中选择数据
cursor.execute("SELECT * FROM employees")
获取所有数据
employees = cursor.fetchall()
打印数据
for employee in employees:
print(employee)
关闭游标和连接
cursor.close()
conn.close()
MongoDB示例
导入pymongo模块,使用`MongoClient()`类连接数据库。获取数据库和集合(相当于SQL中的表)的引用。使用`insert_many()`方法向集合插入数据。通过`find()`方法查询数据,并使用for循环获取数据。最后,使用`close()`方法关闭数据库连接。
from pymongo import MongoClient
连接数据库
client = MongoClient("mongodb://localhost:27017/")
获取数据库引用
db = client["school.db"]
获取集合引用
collection = db["employees"]
向集合插入数据
employee1 = { "name": "Joseph", "salary": 70000, "department": "IT" }
employee2 = { "name": "Jane", "salary": 80000, "department": "Marketing" }
collection.insert_many([employee1, employee2])
从集合查询数据
employees = collection.find()
打印数据
for employee in employees:
print(employee)
关闭连接
client.close()
结论
总之,Python提供了多个模块以交互不同类型的数据库,例如MySQL和MongoDB。MySQLdb模块用于与MySQL数据库交互,而pymongo模块则用于与MongoDB数据库交互。这两个模块使得开发者能轻松执行诸如创建表、插入数据、查询数据等常见数据库操作。凭借Python的简洁性和易用性,它已成为开发数据库驱动应用的热门选择。无论你是初学者还是经验丰富的开发者,使用这些模块都将使在Python中处理数据库变得轻而易举。
Source:
https://dzone.com/articles/an-overview-of-creating-databases-with-python-2