ホームページ バックエンド開発 Python チュートリアル MySQL上でのPythonのデータ操作例を詳しく解説

MySQL上でのPythonのデータ操作例を詳しく解説

Apr 27, 2017 am 11:47 AM
mysql python 操作する

この記事では、Python3 で PyMySQL を使用してデータベースに接続し、簡単な追加、削除、変更、クエリを実装する方法を紹介します。非常に良い基準値を持っています。以下のエディターで見てみましょう

この記事では、PyMySQL を使用してデータベースに接続し、簡単な追加、削除、変更、クエリを実装するための Python3 を紹介します。

PyMySQLとは何ですか?

PyMySQL は Python 3.x で MySQL サーバーに接続するために使用されるライブラリであり、mysqldb は Python 2.x で使用されます。

PyMySQL のインストール

PyMySQL を使用する前に、PyMySQL がインストールされていることを確認する必要があります。

PyMySQL のダウンロード アドレス: https://github.com/PyMySQL/PyMySQL。

まだインストールされていない場合は、次のコマンドを使用して最新バージョンの PyMySQL をインストールできます:

$ pip install PyMySQL

システムが pip コマンドをサポートしていない場合は、次の方法を使用してインストールできます:

1. git コマンドを使用してインストール パッケージをダウンロードします (手動でダウンロードすることもできます):

$ git clone https://github.com/PyMySQL/PyMySQL
$ cd PyMySQL
$ python3 setup.py install
ログイン後にコピー

2. バージョン番号を指定する必要がある場合は、curl コマンドを使用してインストールできます。

$ # X.X 为PyMySQL 的版本号
$ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz
$ cd PyMySQL*
$ python3 setup.py install
ログイン後にコピー

注: 上記のモジュールをインストールするための root 権限があることを確認してください。

データベース接続

データベースに接続する前に、次のことを確認してください:

  • データベースTESTDBを作成しました

  • TESTDBデータベースにテーブルEMPLOYEEを作成しました

  • EMPLOYEEテーブルフィールドは FIRST_NAME 、LAST_NAME、AGE、SEX、INCOME です

  • データベース TESTDB への接続に使用されるユーザー名は「testuser」、パスワードは「test123」です。自分で設定することも、root ユーザー名とパスワードを直接使用することもできます。 Mysql データベース ユーザーを許可してください Grant コマンドを使用してください

  • PyMySQL モジュールがマシンにインストールされています

例:

次の例は Mysql TESTDB データベースにリンクしています:

#!/usr/bin/python3
__author__ = 'mayi'
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询 
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)

# 关闭数据库连接
db.close()
ログイン後にコピー

データベース テーブル

データベース接続が存在する場合は、execute() メソッドを使用して、次のようにテーブル EMPLOYEE を作成します。

#!/usr/bin/python3
__author__ = 'mayi'
import pymysql

# 开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 使用预处理语句创建表
sql = """CREATE TABLE EMPLOYEE (
 FIRST_NAME CHAR(20) NOT NULL,
 LAST_NAME CHAR(20),
 AGE INT, 
 SEX CHAR(1),
 INCOME FLOAT )"""
cursor.execute(sql)
# 关闭数据库连接
db.close()
ログイン後にコピー

データベース挿入操作

次の例では、実行を使用します。テーブル EMPLOYEE にレコードを挿入する SQL Insert ステートメントの例:

#!/usr/bin/python3
__author__ = 'mayi'

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
 LAST_NAME, AGE, SEX, INCOME)
 VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
 # 执行sql语句
 cursor.execute(sql)
 # 提交到数据库执行
 db.commit()
except:
 # 如果发生错误则回滚
 db.rollback()

# 关闭数据库连接
db.close()
ログイン後にコピー

上記の例は、次の形式で記述することもできます:

#!/usr/bin/python3
__author__ = 'mayi'

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 插入语句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
 LAST_NAME, AGE, SEX, INCOME) \
 VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
 ('Mac', 'Mohan', 20, 'M', 2000)
try:
 # 执行sql语句
 cursor.execute(sql)
 # 执行sql语句
 db.commit()
except:
 # 发生错误时回滚
 db.rollback()

# 关闭数据库连接
db.close()
ログイン後にコピー

データベース クエリ操作

Python クエリ Mysql は fetchone() メソッドを使用して取得します単一のデータを取得し、fetchall() メソッドを使用して複数のデータを取得します。

  • fetchone(): このメソッドは次のクエリ結果セットを取得します。結果セットはオブジェクトです

  • fetchall(): 返されたすべての結果行を受け取ります

  • rowcount: これは読み取り専用属性であり、execute() メソッドの実行後に影響を受ける行の数を返します

インスタンス :

給与フィールドが 1000 より大きい EMPLOYEE テーブル内のすべてのデータをクエリします:

#!/usr/bin/python3
__author__ = 'mayi'

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
 WHERE INCOME > '%d'" % (1000)
try:
 # 执行SQL语句
 cursor.execute(sql)
 # 获取所有记录列表
 results = cursor.fetchall()
 for row in results:
 fname = row[0]
 lname = row[1]
 age = row[2]
 sex = row[3]
 income = row[4]
 # 打印结果
 print ("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
 (fname, lname, age, sex, income ))
except:
 print ("Error: unable to fecth data")

# 关闭数据库连接
db.close()
ログイン後にコピー

データベース更新操作

更新操作は、データ テーブル内のデータを更新するために使用されます。 「M」の場合、AGE フィールドは 1 ずつ増分されます。

#!/usr/bin/python3
__author__ = 'mayi'

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
 WHERE SEX = '%c'" % ('M')
try:
 # 执行SQL语句
 cursor.execute(sql)
 # 提交到数据库执行
 db.commit()
except:
 # 发生错误时回滚
 db.rollback()

# 关闭数据库连接
db.close()
ログイン後にコピー

削除操作

次の例は、データ テーブル内のデータを削除するために使用されます。データ テーブル内の AGE が 20 を超えるすべてのデータを削除します。 従業員:

#!/usr/bin/python3
__author__ = 'mayi'

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
try:
 # 执行SQL语句
 cursor.execute(sql)
 # 提交修改
 db.commit()
except:
 # 发生错误时回滚
 db.rollback()

# 关闭连接
db.close()
ログイン後にコピー

トランザクションの実行

トランザクション メカニズムにより、データの一貫性が保証されます。

トランザクションには、原子性、一貫性、分離性、耐久性という 4 つの属性が必要です。これら 4 つのプロパティは、多くの場合、ACID プロパティと呼ばれます。

  • 原子性。トランザクションは、分割できない作業単位です。トランザクションに含まれるすべての操作が完了するか、まったく完了しません。

  • 一貫性。トランザクションでは、データベースをある整合性状態から別の整合性状態に変更する必要があります。一貫性と原子性は密接に関係しています。

  • 孤立。トランザクションの実行は、他のトランザクションによって干渉されることはできません。つまり、トランザクション内で使用される操作とデータは他の同時トランザクションから分離されており、同時に実行されるトランザクションは相互に干渉できません。

  • 耐久性。永続性とも呼ばれる継続性は、トランザクションがコミットされると、データベース内のデータに対する変更が永​​続的になることを意味します。後続の操作や障害が影響を与えることはありません。

# SQL删除记录语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
try:
 # 执行SQL语句
 cursor.execute(sql)
 # 向数据库提交
 db.commit()
except:
 # 发生错误时回滚
 db.rollback()
ログイン後にコピー

トランザクションをサポートするデータベースの場合、Python データベース プログラミングでは、カーソルが作成されると、非表示のデータベース トランザクションが自動的に開始されます。

commit() メソッドはカーソルに対するすべての更新操作を実行し、rollback() メソッドは現在のカーソルに対するすべての操作をロールバックします。各メソッドは新しいトランザクションを開始します。

エラー処理

例外 説明
警告 挿入されたデータが切り捨てられるなど、重大な警告がある場合にトリガーされます。 StandardError のサブクラスである必要があります。
Error 警告を除く他のすべてのエラー クラス。 StandardError のサブクラスである必要があります。
InterfaceError データベース インターフェイス モジュール自体でエラーが発生したときにトリガーされます (データベースのエラーではありません)。 Error のサブクラスである必要があります。
DatabaseError データベースに関連するエラーが発生したときにトリガーされます。 Error のサブクラスである必要があります。
DataError ゼロ除算エラー、データ範囲外など、データ処理中にエラーが発生したときにトリガーされます。 DatabaseError のサブクラスである必要があります。
OperationalError は、ユーザーによって制御されないが、データベースの操作中に発生するエラーを指します。たとえば、接続が予期せず切断される、データベース名が見つからない、トランザクション処理の失敗、メモリ割り当てエラーなどは、データベースを操作するときに発生するエラーです。 DatabaseError のサブクラスである必要があります。
IntegrityError 外部キーチェックの失敗などの整合性関連のエラー。 DatabaseError サブクラスである必要があります。
InternamError カーソルの失敗、トランザクションの同期の失敗など、データベースの内部エラー。 DatabaseError サブクラスである必要があります。
ProgrammingError データテーブル(テーブル)が見つからないか、すでに存在している、SQLステートメントの構文エラー、パラメータの数が間違っているなどのプログラミングエラー。 DatabaseError のサブクラスである必要があります。
NotSupportedError サポートされていないエラーは、データベースでサポートされていない関数または API の使用を指します。たとえば、接続オブジェクトで rollback() 関数が使用されていますが、データベースがトランザクションをサポートしていないか、トランザクションが閉じられているとします。 DatabaseError のサブクラスである必要があります。

以上がMySQL上でのPythonのデータ操作例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSCODE拡張機能は悪意がありますか? VSCODE拡張機能は悪意がありますか? Apr 15, 2025 pm 07:57 PM

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Windows 8でコードを実行できます Windows 8でコードを実行できます Apr 15, 2025 pm 07:24 PM

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

vscodeとは何ですか?vscodeとは何ですか? vscodeとは何ですか?vscodeとは何ですか? Apr 15, 2025 pm 06:45 PM

VSコードは、Microsoftが開発した無料のオープンソースクロスプラットフォームコードエディターと開発環境であるフルネームVisual Studioコードです。幅広いプログラミング言語をサポートし、構文の強調表示、コード自動完了、コードスニペット、および開発効率を向上させるスマートプロンプトを提供します。リッチな拡張エコシステムを通じて、ユーザーは、デバッガー、コードフォーマットツール、GIT統合など、特定のニーズや言語に拡張機能を追加できます。 VSコードには、コードのバグをすばやく見つけて解決するのに役立つ直感的なデバッガーも含まれています。

VSコードはPythonを実行できます VSコードはPythonを実行できます Apr 15, 2025 pm 08:21 PM

はい、VSコードはPythonコードを実行できます。 VSコードでPythonを効率的に実行するには、次の手順を完了します。Pythonインタープリターをインストールし、環境変数を構成します。 VSコードにPython拡張機能をインストールします。コマンドラインを介してVSコードの端末でPythonコードを実行します。 VSコードのデバッグ機能とコードフォーマットを使用して、開発効率を向上させます。優れたプログラミング習慣を採用し、パフォーマンス分析ツールを使用してコードパフォーマンスを最適化します。

vscodeの使用方法 vscodeの使用方法 Apr 15, 2025 pm 11:21 PM

Visual Studio Code(VSCODE)は、Microsoftが開発したクロスプラットフォーム、オープンソース、および無料のコードエディターです。軽量、スケーラビリティ、および幅広いプログラミング言語のサポートで知られています。 VSCODEをインストールするには、公式Webサイトにアクセスして、インストーラーをダウンロードして実行してください。 VSCODEを使用する場合、新しいプロジェクトを作成し、コードを編集し、コードをデバッグし、プロジェクトをナビゲートし、VSCODEを展開し、設定を管理できます。 VSCODEは、Windows、MacOS、Linuxで利用でき、複数のプログラミング言語をサポートし、マーケットプレイスを通じてさまざまな拡張機能を提供します。その利点には、軽量、スケーラビリティ、広範な言語サポート、豊富な機能とバージョンが含まれます

VSCodeとPycharmの違いは何ですか VSCodeとPycharmの違いは何ですか Apr 15, 2025 pm 11:54 PM

VSコードとPycharmの主な違いは次のとおりです。1。拡張性:VSコードは非常にスケーラブルでリッチなプラグインマーケットがあり、Pycharmはデフォルトでより広い機能を持っています。 2。価格:VSコードは無料でオープンソースであり、Pycharmはプロのバージョンに対して支払われます。 3。ユーザーインターフェイス:VSコードはモダンでフレンドリーで、Pycharmはより複雑です。 4。コードナビゲーション:VSコードは小規模プロジェクトに適しており、Pycharmは大規模なプロジェクトにより適しています。 5。デバッグ:VSコードは基本であり、Pycharmはより強力です。 6。コードリファクタリング:VSコードは基本であり、Pycharmはより豊富です。 7。コード

See all articles