python怎么创建数据库

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

Python 本身不直接“创建数据库”,而是通过数据库驱动(如 sqlite3pymysqlpsycopg2 等)连接并操作数据库系统。最简单、无需额外安装服务的方式是使用 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 文件——这就是你的数据库。不需要启动任何服务,开箱即用。

连接 MySQL 或 PostgreSQL(需先装服务和驱动)

这类数据库需要你已安装并运行 MySQL 或 PostgreSQL 服务,再用 Python 驱动连接。它们不“创建文件”,而是向数据库服务器发送指令,由服务器在内部创建数据库(schema)。

  • 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 psycopg2

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

Base = 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 适合想写得更稳更可维护的人。选哪个,看你的场景和需求。