欢迎访问宙启技术站
智能推送

使用Python创建所有相关的数据库实体

发布时间:2023-12-11 09:52:55

在Python中,可以使用各种库和框架来创建和操作数据库实体。下面是一些常用的库和框架以及它们的使用例子。

1. SQLite3:

SQLite3是内置的数据库模块,可用于创建和管理SQLite数据库实体。以下是一个使用SQLite3创建表的例子:

import sqlite3

# 创建一个数据库连接
conn = sqlite3.connect('test.db')

# 创建一个游标对象
cursor = conn.cursor()

# 创建一个表
cursor.execute('''CREATE TABLE students
                  (id INT PRIMARY KEY NOT NULL,
                  name TEXT NOT NULL,
                  age INT NOT NULL);''')

# 插入数据
cursor.execute("INSERT INTO students (id, name, age) VALUES (1, 'John', 20)")
cursor.execute("INSERT INTO students (id, name, age) VALUES (2, 'Emily', 19)")

# 提交更改并关闭连接
conn.commit()
conn.close()

2. MySQL Connector:

MySQL Connector是用于连接和操作MySQL数据库的库。以下是一个使用MySQL Connector创建表的例子:

import mysql.connector

# 创建一个数据库连接
conn = mysql.connector.connect(user='root', password='password',
                               host='localhost', database='test')

# 创建一个游标对象
cursor = conn.cursor()

# 创建一个表
cursor.execute('''CREATE TABLE students
                  (id INT PRIMARY KEY NOT NULL,
                  name VARCHAR(255) NOT NULL,
                  age INT NOT NULL);''')

# 插入数据
cursor.execute("INSERT INTO students (id, name, age) VALUES (1, 'John', 20)")
cursor.execute("INSERT INTO students (id, name, age) VALUES (2, 'Emily', 19)")

# 提交更改并关闭连接
conn.commit()
conn.close()

3. SQLAlchemy:

SQLAlchemy是一个ORM(Object Relational Mapping)库,可用于与多种数据库交互。以下是一个使用SQLAlchemy创建和操作表的例子:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# 创建一个引擎
engine = create_engine('sqlite:///test.db', echo=True)

# 创建一个基类
Base = declarative_base()

# 定义一个实体类
class Student(Base):
    __tablename__ = 'students'

    id = Column(Integer, primary_key=True)
    name = Column(String(255), nullable=False)
    age = Column(Integer, nullable=False)

# 创建表
Base.metadata.create_all(engine)

# 创建一个会话
Session = sessionmaker(bind=engine)
session = Session()

# 插入数据
student1 = Student(id=1, name='John', age=20)
student2 = Student(id=2, name='Emily', age=19)
session.add_all([student1, student2])
session.commit()

# 查询数据
students = session.query(Student).all()
for student in students:
    print(student.name)

# 关闭会话
session.close()

除了以上提到的库,还有很多其他的库和框架可用于创建和操作数据库实体,如PonyORM、Peewee等。选择哪个库取决于你的需求和个人偏好。无论选择哪个库,它们都使数据库操作更加方便和直观,并提供了与数据库实体交互的高级功能。