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

Python 本身不直接“创建数据库”,而是通过数据库驱动(如 sqlite3、pymysql、psycopg2 等)连接并操作数据库系统。最简单、无需额外安装服务的方式是使用 Python 自带的 SQLite —— 它把整个数据库存为一个文件,调用时自动创建。
用 sqlite3 创建数据库文件(最常用)
SQLite 是轻量级嵌入式数据库,适合本地开发、小项目或学习。只要导入 sqlite3 模块,调用 connect(),指定一个尚不存在的文件路径,就会自动创建该数据库文件。
- 代码示例:
import sqlite3连接(若 test.db 不存在,则自动创建)
conn = sqlite3.connect('test.db')
可选:创建一张表,验证数据库已就绪
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)。
专为中小型企业定制的网络办公软件,富有竞争力的十大特性: 1、独创 web服务器、数据库和应用程序全部自动傻瓜安装,建立企业信息中枢 只需3分钟。 2、客户机无需安装专用软件,使用浏览器即可实现全球办公。 3、集成Internet邮件管理组件,提供web方式的远程邮件服务。 4、集成语音会议组件,节省长途话费开支。 5、集成手机短信组件,重要信息可直接发送到员工手机。 6、集成网络硬
- MySQL 示例(需先
pip install pymysql):
import pymysql先连到 MySQL 服务器(不指定具体库)
conn = pymysql.connect( host='localhost', user='root', password='your_password', charset='utf8mb4' )
cursor = conn.cursor() cursor.execute("CREATE DATABASE IF NOT EXISTS myapp_db") conn.close()
- PostgreSQL 示例(需先
pip install psycopg2-binary):
import psycopg2conn = 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 sessionmakerBase = declarative_base()
class User(Base): tablename = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) age = Column(Integer)
创建引擎(test.db 不存在则自动创建)
engine = create_engine('sqlite:///test.db', echo=True)
创建所有表(对应 Base 的子类)
Base.metadata.create_all(engine)
这会生成 test.db 并建好 users 表,结构清晰,适合中大型项目。
基本上就这些。SQLite 适合起步,MySQL/PG 适合生产,SQLAlchemy 适合想写得更稳更可维护的人。选哪个,看你的场景和需求。










