ホームページ >データベース >mysql チュートリアル >MySql と ORM フレームワーク: データベース操作をより効率的に実装する方法
インターネット技術の急速な発展に伴い、データベース アプリケーションはますます普及しており、最も広く使用されているのは MySql です。 MySql は、安定性、安全性、使いやすさ、高性能のリレーショナル データベースとして、さまざまなシナリオに適用されます。電子商取引、金融、電力、農業などのさまざまな分野で、MySql の役割はますます重要になっています。
しかし、実際の開発プロセスでは、複雑なデータ操作を実行する必要があることがよくあります。現時点では、単純な MySql クエリ ステートメントではニーズを満たせない可能性があります。現時点では、より高度なテクノロジを使用して、データを操作します。このとき、ORMフレームワークが登場しました。
ORM フレームワーク、つまりオブジェクト リレーショナル マッピング フレームワークは、リレーショナル データベースのテーブルをオブジェクト指向プログラミングのクラスに対応付ける技術です。 ORM フレームワークは、さまざまなデータベース操作をより効率的に実行するのに役立ち、Java、Python などのさまざまなプログラミング言語で使用できます。以下では、MySql と ORM フレームワークを使用してデータベース操作をより効率的に実装する方法を紹介します。
1. MySql を使用してデータを追加、削除、変更、確認する
まず、MySql を使用してデータを追加、削除、変更、確認する方法を見てみましょう。 MySql は、データベース上でさまざまな操作を実行するために簡単に使用できる、非常に単純な SQL ステートメントを提供します。たとえば、次は単純な学生情報テーブルです。
CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(30), age INT );
次の SQL ステートメントを使用して、テーブルにデータを挿入できます。
INSERT INTO student(name, age) VALUES('Tom', 18);
次の SQL ステートメントを使用して、次のことを実行します。クエリ操作:
SELECT * FROM student WHERE name = 'Tom';
更新操作には次の SQL ステートメントを使用します:
UPDATE student SET age=19 WHERE name='Tom';
削除操作には次の SQL ステートメントを使用します:
DELETE FROM student WHERE name='Tom';
データ操作に MySql を使用するのは簡単です。しかし、より複雑なものを実装する必要がある場合は、高度なテクニックを使用する必要があります。
2. ORM フレームワークを使用してデータの追加、削除、変更、クエリを実行する
ORM フレームワークを使用すると、データベース操作をより効率的に実行できます。次に、Python の ORM フレームワークである SQLAlchemy を使用して、データベース操作を実行する方法を示します。
最初に SQLAlchemy をインストールする必要があります。次のコマンドを使用してインストールします:
pip install sqlalchemy
データベースに接続するときは、次のコードを使用する必要があります:
from sqlalchemy import create_engine engine = create_engine('mysql+pymysql://user:password@host:port/database_name?charset=utf8')
ここで user は MySqL データベースのユーザー名、password はパスワード、host はホスト名、port はポート番号、database_name は接続するデータベースの名前、charset はエンコード方式で、ここでは utf8 を使用します。 。
ORM モデルとテーブル間のマッピング関係を定義する必要があります。たとえば、学生情報テーブルのテーブル モデルを定義します。コードは次のとおりです。
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String Base = declarative_base() class Student(Base): __tablename__ = 'student' id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(30)) age = Column(Integer)
SQLAlchemy が提供する declarative_base() 基本クラスを使用してテーブル モデル クラスを定義し、次に定義します。 Student クラス名とタイプのテーブルのフィールド。ここでは、対応するテーブル名である __tablename__ を指定する必要があることに注意してください。
セッションを作成するときは、最初にセッション ファクトリを作成し、次にセッション ファクトリを使用してセッションを作成する必要があります。以下に示すように:
from sqlalchemy.orm import sessionmaker Session = sessionmaker(bind=engine) session = Session()
このうち、sessionmaker(bind=engine) は、create_engine によって返されたエンジンを使用して sessionmaker をバインドすることを意味します。次に、セッションを使用してデータベースにアクセスし、操作を行うことができます。
次に、追加、削除、変更、およびクエリ操作をそれぞれ実行する方法を説明します。
(1) データの追加
次のコードを使用してデータを追加します。
student = Student(name='Tom', age=18) session.add(student) session.commit()
この例では、Student オブジェクトを作成してセッションに追加し、それを使用する方法を示します。 session.commit() メソッドを使用してデータベースにデータを送信します。 session.commit() メソッドが呼び出されない場合、データはデータベースに送信されません。
(2) データのクエリ
次のコードを使用してデータをクエリします。
results = session.query(Student).filter(Student.name=='Tom').all() for result in results: print(result.id, result.name, result.age)
この例では、セッションを使用してテーブルをクエリする方法を示します。ここで、query(Student) は、クエリ(Student) を意味します。 Student テーブルを操作するには、filter(Student.name=='Tom') は名前フィールドが Tom に等しいデータをフィルターで除外することを意味し、all() はすべてのデータをクエリすることを意味します。
(3) データの変更
次のコードを使用してデータを変更します。
update_student = session.query(Student).filter(Student.name=='Tom').first() update_student.age = 19 session.commit()
この例では、条件を満たす最初のデータを変更し、データの経過時間 値は 19 で、変更されたデータをコミットするために session.commit() メソッドが使用されます。
(4) データの削除
次のコードを使用してデータを削除します。
delete_student = session.query(Student).filter(Student.name=='Tom').first() session.delete(delete_student) session.commit()
この例では、条件を満たす最初のデータを削除し、セッションを使用する方法を示します。 .commit() メソッドを使用して、削除されたデータを送信します。
この時点で、Python と SQLAlchemy を使用してデータベースをより効率的に管理できるようになります。
概要:
一般的に使用されるリレーショナル データベースとして、MySql はシンプルで直感的に使用できますが、複雑な操作にはより高度なテクノロジの使用が必要になる場合があります。 ORM フレームワークは、複雑なデータベース操作をより効率的に実行するのに役立ち、Python と SQLAlchemy を使用すると、日常業務でのデータベースのニーズに適切に対処できます。この記事が、MySql と ORM フレームワークの使用法をよりよく習得するのに役立つことを願っています。
以上がMySql と ORM フレームワーク: データベース操作をより効率的に実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。