Python快速入门 —— 第四节:数据库操作
第四节:数据库操作
目标:
掌握如何使用SQLite数据库进行简单的数据存储和查询操作,理解数据库的基本概念,并能够将数据持久化存储。
内容:
-
SQLite简介:
- SQLite是一种轻量级的嵌入式关系型数据库,不需要独立的服务器进程,适合小型应用和学习使用。
-
基本操作:
-
连接数据库:
import sqlite3 conn = sqlite3.connect('students.db') # 如果数据库不存在,将会自动创建 cursor = conn.cursor()
-
创建表:
cursor.execute(''' CREATE TABLE IF NOT EXISTS students ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER, major TEXT ) ''')
-
插入数据:
cursor.execute(''' INSERT INTO students (name, age, major) VALUES (?, ?, ?) ''', ('Alice', 21, 'Computer Science')) conn.commit() # 提交事务
-
查询数据:
cursor.execute('SELECT * FROM students') rows = cursor.fetchall() for row in rows: print(row)
-
更新数据:
cursor.execute(''' UPDATE students SET age = ? WHERE name = ? ''', (22, 'Alice')) conn.commit()
-
删除数据:
cursor.execute('DELETE FROM students WHERE name = ?', ('Alice',)) conn.commit()
-
关闭连接:
conn.close()
-
-
重新实现学生信息的增删改查:
- 增:添加新学生信息到数据库。
- 删:根据姓名或ID删除学生信息。
- 改:更新学生的年龄、专业等信息。
- 查:查询所有学生信息或特定学生信息。
-
示例代码:
import sqlite3 class StudentDB: def __init__(self): self.conn = sqlite3.connect('students.db') self.cursor = self.conn.cursor() self.cursor.execute(''' CREATE TABLE IF NOT EXISTS students ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER, major TEXT ) ''') def add_student(self, name, age, major): self.cursor.execute(''' INSERT INTO students (name, age, major) VALUES (?, ?, ?) ''', (name, age, major)) self.conn.commit() def delete_student(self, name): self.cursor.execute('DELETE FROM students WHERE name = ?', (name,)) self.conn.commit() def update_student(self, name, age=None, major=None): if age: self.cursor.execute('UPDATE students SET age = ? WHERE name = ?', (age, name)) if major: self.cursor.execute('UPDATE students SET major = ? WHERE name = ?', (major, name)) self.conn.commit() def get_student(self, name): self.cursor.execute('SELECT * FROM students WHERE name = ?', (name,)) return self.cursor.fetchone() def get_all_students(self): self.cursor.execute('SELECT * FROM students') return self.cursor.fetchall() def close(self): self.conn.close() # 使用示例 db = StudentDB() db.add_student('Bob', 22, 'Mathematics') print(db.get_student('Bob')) db.update_student('Bob', age=23) db.delete_student('Bob') db.close()
练习:
- 创建一个
StudentDB
类的实例,添加多个学生信息,然后查询并打印所有学生的信息。 - 更新某个学生的专业为“Data Science”,并验证更新结果。
- 删除一个学生信息,确保数据库中不再存在该记录。
原文地址:https://blog.csdn.net/huaanxiang/article/details/142298266
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!