Python中SQLite数据库的使用

我请教下,Python中SQLite数据库的使用
最新回答
浅夏凉眸

2026-05-19 03:25:52

Python中SQLite数据库的使用

SQLite是一种轻量级的嵌入式数据库,Python通过内置的sqlite3模块提供了对其的支持。以下是SQLite数据库在Python中的基本使用方法:

  1. 导入模块

    import sqlite3

    或者:

    from sqlite3 import dbapi2
  2. 创建与连接数据库

    connection = sqlite3.connect('filename.db')

    如果filename.db文件存在,则打开该数据库;如果不存在,则创建一个新的数据库文件。该方法返回一个数据库连接对象。

  3. 关闭连接

    connection.close()

    关闭连接,更新数据库文件。

  4. 创建数据表

    使用CREATE TABLE语句创建表。例如:

    conn.execute('''CREATE TABLE IF NOT EXISTS mytb (xm CHAR, cj REAL, kc TEXT)''')

    IF NOT EXISTS表示如果数据库中不存在mytb数据表,就创建该表;如果该数据表已经存在,则什么也不做。

    xm CHAR, cj REAL, kc TEXT表示该数据表有3个字段,xm(姓名)是字符串类型,cj(成绩)是浮点数类型,kc(课程)是文本字符串。

    SQLite3支持的数据类型有:NULL(值=空)、INTEGER(整数)、REAL(浮点数)、TEXT(字符串文本)、BLOB(二进制数据块)。

  5. 插入记录

    使用INSERT INTO语句插入记录。例如:

    cur.execute("INSERT INTO mytb VALUES ('宝玉', 85, '计算机')")

    提交事务:

    conn.commit()
  6. 查询记录

    使用SELECT语句查询记录。例如:

    cur.execute("SELECT * FROM mytb")lst = cur.fetchall()print(lst)

    查询sqlite_master表以获取数据库的元信息:

    cur.execute("SELECT name, sql FROM sqlite_master WHERE type='table'")print(cur.fetchall())
  7. 更新记录

    使用UPDATE语句更新记录。例如:

    cur.execute("UPDATE mytb SET cj = 90 WHERE xm = '宝玉'")conn.commit()
  8. 删除记录

    使用DELETE FROM语句删除记录。例如:

    cur.execute("DELETE FROM mytb WHERE cj > 90")conn.commit()

    删除整个数据表:

    cur.execute("DROP TABLE mytb")conn.commit()
  9. 例题练习

    第1关:创建和连接数据库文件

    import sqlite3conn = sqlite3.connect("mytest.db")conn.close()

    第2关:创建数据表

    import sqlite3conn = sqlite3.connect("mytest.db")sql_demo = "CREATE TABLE IF NOT EXISTS mytb(xm CHAR, cj REAL, kc TEXT)"conn.execute(sql_demo)conn.close()

    第3关:插入记录

    import sqlite3conn = sqlite3.connect("mytest.db")cur = conn.cursor()sql_create = "CREATE TABLE IF NOT EXISTS mytb(xm CHAR, cj REAL, kc TEXT)"sql_insert_by = "INSERT INTO mytb VALUES ('宝玉', 85, '计算机')"sql_insert_dy = "INSERT INTO mytb VALUES ('黛玉', 90, '计算机')"sql_insert_bc = "INSERT INTO mytb VALUES ('宝钗', 80, '数据库')"conn.execute(sql_create)cur.execute(sql_insert_by)cur.execute(sql_insert_dy)cur.execute(sql_insert_bc)conn.commit()cur.close()conn.close()

    第4关:查询记录

    import sqlite3conn = sqlite3.connect("myfile.db")cur = conn.cursor()sql_select = "SELECT * FROM mytb"cur.execute(sql_select)lst = cur.fetchall()print(f"共{len(lst)}条记录")print(lst)cur.execute("SELECT name, sql FROM sqlite_master")print(cur.fetchall())cur.close()conn.close()

    第5关:更新和删除记录

    import sqlite3conn = sqlite3.connect("my.db")cur = conn.cursor()cur.execute("UPDATE mytb SET cj = 0 WHERE xm = '宝玉'")cur.execute("DELETE FROM mytb WHERE cj > 90")cur.execute("DELETE FROM mytb")cur.execute("DROP TABLE mytb")conn.commit()cur.close()conn.close()

    第6关:图书数据库的综合操作

    import sqlite3conn = sqlite3.connect("mybook.db")cur = conn.cursor()cur.execute("CREATE TABLE IF NOT EXISTS mytb(isbn TEXT, 书名 TEXT, 价格 REAL)")cur.execute("INSERT INTO mytb VALUES ('9787302518358', '欧美戏剧选读', 88.00)")cur.execute("INSERT INTO mytb VALUES ('9787302454038', '组织理论与设计 第12版', 75.00)")cur.execute("INSERT INTO mytb VALUES ('9787302496878', '中国文化经典读本', 45.00)")conn.commit()cur.execute("SELECT * FROM mytb")lst = cur.fetchall()for x in lst: print(x)cur.close()conn.close()

通过以上步骤,您可以在Python中有效地使用SQLite数据库进行数据的创建、查询、更新和删除操作。