SQLite 创建表(CREATE TABLE)
在 SQLite 中,使用
CREATE TABLE语句创建数据库表。表是存储数据的基本结构,每个表由列(字段)组成,每列有特定的数据类型。
1. 语法
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
...
);
table_name:表名。column1, column2, ...:列的名称。datatype:列的数据类型(如INTEGER,TEXT,REAL,BLOB)。constraints:列的约束条件(如PRIMARY KEY,NOT NULL,UNIQUE,DEFAULT)。
2. 创建简单表
示例:创建用户表
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
email TEXT UNIQUE
);
解释:
id INTEGER PRIMARY KEY AUTOINCREMENT:自动递增的主键。name TEXT NOT NULL:不能为空的文本字段。age INTEGER:整数类型字段。email TEXT UNIQUE:唯一的电子邮件字段。
3. 创建带外键的表
SQLite 支持外键,但必须启用:
PRAGMA foreign_keys = ON;
示例:创建订单表(引用 users 表)
CREATE TABLE orders (
order_id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
amount REAL NOT NULL,
order_date TEXT DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
user_id作为外键,关联users表的id。ON DELETE CASCADE:如果users表中的某个用户被删除,其订单也会被自动删除。
4. 检查表是否已存在
SQLite 不允许创建同名表,可以使用 IF NOT EXISTS 避免错误:
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
);
5. 查看数据库中的表
.tables
或者查看 sqlite_master:
SELECT name FROM sqlite_master WHERE type='table';
6. 删除表
如果要删除表:
DROP TABLE IF EXISTS users;
7. 在 Python 中创建表
import sqlite3
# 连接数据库
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
email TEXT UNIQUE
);
''')
# 提交更改
conn.commit()
# 关闭连接
conn.close()
总结
- 使用
CREATE TABLE创建表。 PRIMARY KEY AUTOINCREMENT生成唯一 ID。FOREIGN KEY创建表间关联,需PRAGMA foreign_keys = ON;。IF NOT EXISTS避免重复创建表。- 可以用
sqlite_master查询已有表。
更多详细内容请关注其他相关文章。