搜索

不懂Python ORM操作MySQL和SQLite?别怕,跟我学吧!

发表于 2025-11-04 00:28:24 来源:全栈开发

数据库基础概念

数据库是不懂e别一种用于存储和管理数据的软件系统,它可以存储和管理结构化数据、怕跟半结构化数据和非结构化数据等。不懂e别数据库中的怕跟数据通常以表格的形式组织,每个表格包含多个列和多个行。不懂e别表格中的怕跟列定义了数据的类型和属性,行表示实际的不懂e别数据记录。

SQL(Structured Query Language)是怕跟一种用于访问和管理数据库的标准语言,它支持数据的不懂e别查询、插入、怕跟更新和删除等操作。不懂e别SQL语言可以分为数据定义语言(DDL)、怕跟数据操作语言(DML)、不懂e别数据控制语言(DCL)和数据查询语言(DQL)等。怕跟

在Python中,不懂e别我们可以使用各种库和框架来操作和管理数据库,例如使用MySQL、SQLite等关系型数据库,使用MongoDB等非关系型数据库,使用SQLAlchemy等ORM框架。

MySQL

MySQL是一种流行的关系型数据库管理系统,它支持多种操作系统和编程语言,亿华云计算并且具有高性能、可靠性和扩展性等优点。

在Python中,我们可以使用mysql-connector-python或pymysql等库来连接和操作MySQL数据库。

安装MySQL

在使用MySQL之前,我们需要先安装和配置MySQL。

在Linux系统中,可以使用以下命令来安装MySQL:

复制sudo apt-get install mysql-server1.

在Windows系统中,可以从MySQL官网下载安装程序进行安装。

安装完成后,我们需要创建一个MySQL用户,并为该用户授权访问数据库。可以使用以下命令来创建用户和授权:

复制CREATE USER username@localhost IDENTIFIED BY password; GRANT ALL PRIVILEGES ON *.* TO username@localhost;1.2.

在上面的命令中,username和password分别表示要创建的MySQL用户的用户名和密码。

连接MySQL

在Python中,可以使用mysql-connector-python或pymysql等库来连接MySQL数据库。

以下是一个使用mysql-connector-python连接MySQL数据库的示例:

复制import mysql.connector mydb = mysql.connector.connect( host="localhost", user="username", password="password" ) print(mydb)1.2.3.4.5.6.7.8.9.

在上面的示例中,我们创建了一个名为mydb的MySQL连接,并打印了该连接对象。

创建数据库和表格

在MySQL中,可以使用CREATE DATABASE语句来创建数据库,使用CREATE TABLE语句来创建表格。

以下是一个使用mysql-connector-python创建数据库和表格的示例:

复制import mysql.connector mydb = mysql.connector.connect( host="localhost", user="username", password="password" ) mycursor = mydb.cursor() mycursor.execute("CREATE DATABASE mydatabase") mycursor.execute("USE mydatabase") mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.

在上面的示例中,服务器租用我们首先创建了一个名为mydatabase的数据库,然后使用USE语句选择该数据库。接着,我们创建了一个名为customers的表格,其中包含三个列:id、name和address。

插入数据

在MySQL中,可以使用INSERT INTO语句向表格中插入数据。

以下是一个使用mysql-connector-python向表格中插入数据的示例:

复制import mysql.connector mydb = mysql.connector.connect( host="localhost", user="username", password="password", database="mydatabase" ) mycursor = mydb.cursor() sql = "INSERT INTO customers (name, address) VALUES (%s, %s)" val = ("John", "Highway 21") mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, "record inserted.")1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.

在上面的示例中,我们向customers表格中插入了一条记录,其中包含name和address两个列的值。

查询数据

在MySQL中,可以使用SELECT语句查询表格中的数据。

以下是一个使用mysql-connector-python查询数据的示例:

复制import mysql.connector mydb = mysql.connector.connect( host="localhost", user="username", password="password", database="mydatabase" ) mycursor = mydb.cursor() mycursor.execute("SELECT * FROM customers") myresult = mycursor.fetchall() for x in myresult: print(x)1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.

在上面的示例中,我们使用SELECT语句查询customers表格中的所有数据,并使用fetchall方法获取查询结果。最后,我们使用for循环遍历查询结果并打印。

更新数据

在MySQL中,可以使用UPDATE语句更新表格中的数据。

以下是b2b供应网一个使用mysql-connector-python更新数据的示例:

复制import mysql.connector mydb = mysql.connector.connect( host="localhost", user="username", password="password", database="mydatabase" ) mycursor = mydb.cursor() sql = "UPDATE customers SET address = Canyon 123 WHERE name = John" mycursor.execute(sql) mydb.commit() print(mycursor.rowcount, "record(s) affected")1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.

在上面的示例中,我们使用UPDATE语句将customers表格中name为John的记录的address列更新为Canyon 123。

删除数据

在MySQL中,可以使用DELETE语句删除表格中的数据。

以下是一个使用mysql-connector-python删除数据的示例:

复制import mysql.connector mydb = mysql.connector.connect( host="localhost", user="username", password="password", database="mydatabase" ) mycursor = mydb.cursor() sql = "DELETE FROM customers WHERE name = John" mycursor.execute(sql) mydb.commit() print(mycursor.rowcount, "record(s) deleted")1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.

在上面的示例中,我们使用DELETE语句删除customers表格中name为John的记录。

SQLite

SQLite是一种轻量级的关系型数据库管理系统,它不需要独立的服务器进程或系统,数据存储在本地文件中,适合于嵌入式设备和小型应用程序等场景。

在Python中,我们可以使用sqlite3库来连接和操作SQLite数据库。

连接SQLite

以下是一个使用sqlite3连接SQLite数据库的示例:

复制import sqlite3 conn = sqlite3.connect(example.db)1.2.3.

在上面的示例中,我们创建了一个名为example.db的SQLite连接。

创建表格

在SQLite中,可以使用CREATE TABLE语句创建表格。

以下是一个使用sqlite3创建表格的示例:

复制import sqlite3 conn = sqlite3.connect(example.db) c = conn.cursor() c.execute(CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real))1.2.3.4.5.6.7.8.

在上面的示例中,我们创建了一个名为stocks的表格,其中包含五个列:date、trans、symbol、qty和price。

插入数据

在SQLite中,可以使用INSERT INTO语句向表格中插入数据。

以下是一个使用sqlite3向表格中插入数据的示例:

复制import sqlite3 conn = sqlite3.connect(example.db) c = conn.cursor() c.execute("INSERT INTO stocks VALUES (2006-01-05,BUY,RHAT,100,35.14)") conn.commit()1.2.3.4.5.6.7.8.9.

在上面的示例中,我们向stocks表格中插入了一条记录,其中包含五个列的值。

查询数据

在SQLite中,可以使用SELECT语句查询表格中的数据。

以下是一个使用sqlite3查询数据的示例:

复制import sqlite3 conn = sqlite3.connect(example.db) c = conn.cursor() for row in c.execute(SELECT * FROM stocks ORDER BY price): print(row)1.2.3.4.5.6.7.8.

在上面的示例中,我们使用SELECT语句查询stocks表格中的所有数据,并按price列进行排序。最后,我们使用for循环遍历查询结果并打印。

更新数据

在SQLite中,可以使用UPDATE语句更新表格中的数据。

以下是一个使用sqlite3更新数据的示例:

复制import sqlite3 conn = sqlite3.connect(example.db) c = conn.cursor() c.execute("UPDATE stocks SET qty = 200 WHERE symbol = RHAT") conn.commit() print("Number of rows updated: ", conn.total_changes)1.2.3.4.5.6.7.8.9.10.11.

在上面的示例中,我们使用UPDATE语句将stocks表格中symbol为RHAT的记录的qty列更新为200。

删除数据

在SQLite中,可以使用DELETE语句删除表格中的数据。

以下是一个使用sqlite3删除数据的示例:

复制import sqlite3 conn = sqlite3.connect(example.db) c = conn.cursor() c.execute("DELETE FROM stocks WHERE symbol = RHAT") conn.commit() print("Number of rows deleted: ", conn.total_changes)1.2.3.4.5.6.7.8.9.10.11.

在上面的示例中,我们使用DELETE语句删除stocks表格中symbol为RHAT的记录。

ORM框架

ORM(Object-Relational Mapping)框架是一种将对象模型和关系模型进行映射的技术,它可以将数据库中的表格映射为Python中的类,将表格中的列映射为类的属性,从而使得我们可以使用面向对象的方式来操作数据库。

在Python中,SQLAlchemy是一个流行的ORM框架,它支持多种关系型数据库,包括MySQL、SQLite、PostgreSQL等。

安装SQLAlchemy

在使用SQLAlchemy之前,我们需要先安装SQLAlchemy。

可以使用以下命令来安装SQLAlchemy:

复制pip install sqlalchemy1.

连接数据库

在SQLAlchemy中,可以使用create_engine函数创建一个数据库连接对象。

以下是一个使用SQLAlchemy连接MySQL数据库的示例:

复制from sqlalchemy import create_engine engine = create_engine("mysql+mysqlconnector://username:password@localhost/mydatabase")1.2.3.

在上面的示例中,我们创建了一个名为engine的MySQL连接对象。

以下是一个使用SQLAlchemy连接SQLite数据库的示例:

复制from sqlalchemy import create_engine engine = create_engine("sqlite:///example.db")1.2.3.

在上面的示例中,我们创建了一个名为engine的SQLite连接对象。

定义数据模型

在SQLAlchemy中,可以使用declarative_base函数定义一个基本的数据模型类,从而建立数据库中表格和Python中类的映射关系。

以下是一个使用SQLAlchemy定义数据模型的示例:

复制from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String Base = declarative_base() class Customer(Base): __tablename__ = customers id = Column(Integer, primary_key=True) name = Column(String(255)) address = Column(String(255))1.2.3.4.5.6.7.8.9.10.11.

在上面的示例中,我们定义了一个名为Customer的数据模型类,表示数据库中的customers表格。该类继承自Base类,其中包含三个属性:id、name和address。

创建表格

在SQLAlchemy中,可以使用Base类的metadata属性和create_all方法来创建表格。

以下是一个使用SQLAlchemy创建表格的示例:

复制from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create_engine("mysql+mysqlconnector://username:password@localhost/mydatabase") Session = sessionmaker(bind=engine) from models import Base, Customer Base.metadata.create_all(engine)1.2.3.4.5.6.7.8.9.

在上面的示例中,我们使用Base.metadata属性和create_all方法创建了数据库中的表格。其中,engine对象表示了连接到数据库的引擎,Base类表示了数据模型类的基类,Customer类表示了要创建的数据模型类。

插入数据

在SQLAlchemy中,可以使用Session类和add方法向表格中插入数据。

以下是一个使用SQLAlchemy向表格中插入数据的示例:

复制from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create_engine("mysql+mysqlconnector://username:password@localhost/mydatabase") Session = sessionmaker(bind=engine) from models import Customer session = Session() customer1 = Customer(name=John, address=Highway 21) customer2 = Customer(name=Bob, address=Main Street) session.add(customer1) session.add(customer2) session.commit() session.close()1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.

在上面的示例中,我们使用Session类创建了一个名为session的会话对象,然后创建了两个名为customer1和customer2的Customer对象,并使用add方法将它们添加到会话对象中。最后,我们使用commit方法提交会话,并关闭会话对象。

查询数据

在SQLAlchemy中,可以使用Session类和query方法查询表格中的数据。

以下是一个使用SQLAlchemy查询数据的示例:

复制from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create_engine("mysql+mysqlconnector://username:password@localhost/mydatabase") Session = sessionmaker(bind=engine) from models import Customer session = Session() customers = session.query(Customer).all() for customer in customers: print(customer.name, customer.address) session.close()1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.

在上面的示例中,我们使用Session类创建了一个名为session的会话对象,然后使用query方法查询了customers表格中的所有数据,并使用all方法获取查询结果。最后,我们使用for循环遍历查询结果并打印。注意,在使用SQLAlchemy查询数据时,我们并没有直接使用SQL语句,而是使用了Python的面向对象方式。

更新数据

在SQLAlchemy中,可以使用Session类和commit方法更新表格中的数据。

以下是一个使用SQLAlchemy更新数据的示例:

复制from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create_engine("mysql+mysqlconnector://username:password@localhost/mydatabase") Session = sessionmaker(bind=engine) from models import Customer session = Session() customer = session.query(Customer).filter_by(name=John).first() customer.address = Highway 22 session.commit() session.close()1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.

在上面的示例中,我们使用Session类创建了一个名为session的会话对象,然后使用query方法查询了customers表格中name为John的数据,并使用first方法获取查询结果的第一个元素。接着,我们将该元素的address属性更新为Highway 22,最后使用commit方法提交更新,并关闭会话对象。

删除数据

在SQLAlchemy中,可以使用Session类和commit方法删除表格中的数据。

以下是一个使用SQLAlchemy删除数据的示例:

复制from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create_engine("mysql+mysqlconnector://username:password@localhost/mydatabase") Session = sessionmaker(bind=engine) from models import Customer session = Session() customer = session.query(Customer).filter_by(name=John).first() session.delete(customer) session.commit() session.close()1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.

在上面的示例中,我们使用Session类创建了一个名为session的会话对象,然后使用query方法查询了customers表格中name为John的数据,并使用first方法获取查询结果的第一个元素。接着,我们使用delete方法删除该元素,并使用commit方法提交删除,并关闭会话对象。

总之,SQLAlchemy是一个强大的ORM框架,它提供了丰富的功能,可以大大简化Python和关系型数据库之间的交互。

随机为您推荐
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by 不懂Python ORM操作MySQL和SQLite?别怕,跟我学吧!,全栈开发  滇ICP备2023006006号-32sitemap

回顶部