0Pricing
Python Academy · 课时

连接数据库并创建表

打开数据库并定义模式

连接数据库并创建表 是 CoddyKit 上的免费 Python Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

什么是 sqlite3?

Python 的标准库自带 sqlite3模块。它让您可以使用SQLite,这是一种轻量级、基于文件的 SQL 数据库,无需单独的服务器。

  • 无需安装
  • 整个数据库存储在一个文件中
  • 非常适合原型、测试和小型应用
import sqlite3
print(sqlite3.version)

连接数据库

使用 sqlite3.connect()打开数据库。如果文件不存在,SQLite 会创建它。

传入 ':memory:'会创建一个临时的内存数据库,连接关闭后它就会消失。

import sqlite3
conn = sqlite3.connect(':memory:')
print('Connected:', conn)
conn.close()

Cursor 对象

要运行 SQL,您需要一个游标。调用 conn.cursor()获取游标,然后使用 cursor.execute()发送 SQL 语句。

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
print('Cursor ready:', cur)
conn.close()

创建表

使用 CREATE TABLE定义架构。每一列都需要名称和类型,例如 INTEGER、TEXT或 REAL。

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER, name TEXT, age INTEGER)')
print('Table created')
conn.close()

主键

主键可以唯一标识每一行。声明为 INTEGER PRIMARY KEY 后,SQLite 会自动为您递增该值。

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT)')
print('books table ready')
conn.close()

IF NOT EXISTS

运行两次 CREATE TABLE 会引发错误。添加 IF NOT EXISTS,即可安全地重复运行该语句。

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
sql = 'CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, body TEXT)'
cur.execute(sql)
cur.execute(sql)
print('No error on second run')
conn.close()

列约束

约束会在数据库层面强制执行数据规则。

  • NOT NULL 要求必须提供值
  • UNIQUE 禁止重复值
  • DEFAULT 提供备用值
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE accounts (id INTEGER PRIMARY KEY, email TEXT NOT NULL UNIQUE, active INTEGER DEFAULT 1)')
print('accounts table with constraints')
conn.close()

查看模式

SQLite 将模式信息存储在 sqlite_master 中。查询它即可列出您的表。

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())
conn.close()

保存到文件

要持久化数据,请将文件名传递给 connect()。程序结束后,数据库仍会保留。

您必须调用 conn.commit() 才能将更改写入磁盘。

import sqlite3
conn = sqlite3.connect('app.db')
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS items (id INTEGER PRIMARY KEY, name TEXT)')
conn.commit()
print('Saved to app.db')
conn.close()

删除表

使用 DROP TABLE 删除表。使用 IF EXISTS,可避免表已不存在时引发错误。

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE temp (id INTEGER)')
cur.execute('DROP TABLE IF EXISTS temp')
print('Dropped temp table')
conn.close()

始终关闭连接

打开的连接会占用文件句柄。完成操作后,请始终使用 conn.close() 关闭连接,或者使用 with 代码块自动清理。

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE t (id INTEGER)')
conn.close()
print('Connection closed cleanly')

快速检查

测试您对创建表的理解。

回顾

您已经学习了 sqlite3 的基础知识。

  • connect() 打开(或创建)数据库文件
  • cursor() 为您提供用于运行 SQL 的对象
  • CREATE TABLE 使用类型和约束定义模式
  • commit() 持久化更改,close() 释放连接

接下来,您将插入并读取行。

常见问题解答

「连接数据库并创建表」课时是免费的吗?

是的 — 「连接数据库并创建表」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「连接数据库并创建表」这节课中我会学到什么?

打开数据库并定义模式 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「连接数据库并创建表」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 连接数据库并创建表
  2. 插入、查询、更新、删除
  3. 参数化查询
  4. 事务与上下文管理器
← 返回 Python Academy