Python不直接创建数据库,而是通过驱动操作数据库系统;SQLite用connect()自动创建文件型数据库,MySQL/PostgreSQL需先运行服务再发指令建库,SQLAlchemy则通过ORM方式统一管理建库建表。

Python 本身不直接“创建数据库”,而是通过数据库驱动(如 sqlite3、pymysql、psycopg2 等)连接并操作数据库系统。最简单、无需额外安装服务的方式是使用 Python 自带的 SQLite —— 它把整个数据库存为一个文件,调用时自动创建。
用 sqlite3 创建数据库文件(最常用)
SQLite 是轻量级嵌入式数据库,适合本地开发、小项目或学习。只要导入 sqlite3 模块,调用 connect(),指定一个尚不存在的文件路径,就会自动创建该数据库文件。
- 代码示例:
import sqlite3
<h1>连接(若 test.db 不存在,则自动创建)</h1><p>conn = sqlite3.connect('test.db')</p><h1>可选:创建一张表,验证数据库已就绪</h1><p>cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
conn.commit()
conn.close()
执行后,当前目录下会出现 test.db 文件——这就是你的数据库。不需要启动任何服务,开箱即用。
立即学习“Python免费学习笔记(深入)”;
连接 MySQL 或 PostgreSQL(需先装服务和驱动)
这类数据库需要你已安装并运行 MySQL 或 PostgreSQL 服务,再用 Python 驱动连接。它们不“创建文件”,而是向数据库服务器发送指令,由服务器在内部创建数据库(schema)。
- MySQL 示例(需先
pip install pymysql):
import pymysql
<h1>先连到 MySQL 服务器(不指定具体库)</h1><p>conn = pymysql.connect(
host='localhost',
user='root',
password='your_password',
charset='utf8mb4'
)</p><p>cursor = conn.cursor()
cursor.execute("CREATE DATABASE IF NOT EXISTS myapp_db")
conn.close()
- PostgreSQL 示例(需先
pip install psycopg2-binary):
import psycopg2
<p>conn = psycopg2.connect(
host='localhost',
user='postgres',
password='your_password',
database='postgres' # 必须连到默认库(如 postgres)才能建新库
)
conn.autocommit = True # 建库语句不能在事务中,需开启自动提交
cursor = conn.cursor()
cursor.execute("CREATE DATABASE myapp_db")
conn.close()
用 SQLAlchemy(ORM 方式,更规范)
如果你希望用面向对象方式管理数据库,推荐 SQLAlchemy。它支持多种数据库,建库逻辑类似上面,但更侧重“模型定义 + 表创建”。
- SQLite(自动建库+建表):
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
<p>Base = declarative_base()</p><p>class User(Base):
<strong>tablename</strong> = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(50))
age = Column(Integer)</p><h1>创建引擎(test.db 不存在则自动创建)</h1><p>engine = create_engine('sqlite:///test.db', echo=True)</p><h1>创建所有表(对应 Base 的子类)</h1><p>Base.metadata.create_all(engine)
这会生成 test.db 并建好 users 表,结构清晰,适合中大型项目。
基本上就这些。SQLite 适合起步,MySQL/PG 适合生产,SQLAlchemy 适合想写得更稳更可维护的人。选哪个,看你的场景和需求。











