📜  外键 sqlite3 python - SQL (1)

📅  最后修改于: 2023-12-03 15:37:51.061000             🧑  作者: Mango

外键 sqlite3 python - SQL

介绍

外键(Foreign Key)是一种用来连接两个表的关系型数据库的组成部分。这种关系是通过在一个表的字段中引用另一个表中的字段来实现的。在 SQLite3 中,外键可以用来防止数据的不一致性,同时还可以提高数据的访问效率。

Python 的标准库 sqlite3 提供了一个轻量级的 SQL 数据库引擎。在 Python 中,可以使用 sqlite3 模块来创建、修改和查询 SQLite 数据库。使用 sqlite3 可以轻松地在 Python 应用程序中添加外键约束。

实现

以下是在 Python 中使用 sqlite3 添加和使用外键约束的步骤:

创建表格和外键约束
import sqlite3

# 连接到 SQLite 数据库
conn = sqlite3.connect('example.db')

# 创建用户表格
conn.execute('''CREATE TABLE users
             (id INTEGER PRIMARY KEY,
             name TEXT NOT NULL,
             age INT NOT NULL,
             UNIQUE(name))''')

# 创建订单表格
conn.execute('''CREATE TABLE orders
             (id INTEGER PRIMARY KEY,
             user_id INT NOT NULL,
             amount REAL NOT NULL,
             FOREIGN KEY (user_id) REFERENCES users(id))''')

# 保存更改
conn.commit()

# 关闭连接
conn.close()
插入数据
# 连接到 SQLite 数据库
conn = sqlite3.connect('example.db')

# 插入用户数据
conn.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 25))
conn.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Bob', 30))

# 插入订单数据
conn.execute("INSERT INTO orders (user_id, amount) VALUES (?, ?)", (1, 100.0))
conn.execute("INSERT INTO orders (user_id, amount) VALUES (?, ?)", (2, 200.0))

# 保存更改
conn.commit()

# 关闭连接
conn.close()
查询数据
# 连接到 SQLite 数据库
conn = sqlite3.connect('example.db')

# 查询用户数据
users = conn.execute("SELECT * FROM users").fetchall()
print(users)

# 查询订单数据
orders = conn.execute("SELECT o.id, u.name, o.amount FROM orders o INNER JOIN users u ON u.id = o.user_id").fetchall()
print(orders)

# 关闭连接
conn.close()
结论

使用 sqlite3 和外键约束,可以在 Python 应用程序中执行 SQL 查询和数据操作,同时保持数据一致性。外键约束可以在两个或多个表之间建立关系,并防止破坏这些关系的数据的插入、更新或删除。

参考文献
  1. SQLite3 官方网站: https://www.sqlite.org/index.html
  2. Python SQLite3 模块文档: https://docs.python.org/3/library/sqlite3.html