この記事では主に Python を使用して MySQL に接続するいくつかの方法を紹介します。実際の状況に応じて適切な接続方法を選択してください。
近年多くの NoSQL データベースが普及していますが、MySQL と同様です。リレーショナル データベースは、依然としてインターネット上で主流のデータベースの 1 つです。データ分析、Web クローリング、Web 開発、機械学習のいずれを行う場合でも、Python を学ぶ人は必ずデータベースを学ぶ必要があります。この記事では、Python で MySQL を操作するためのいくつかの方法を紹介します。実際の開発プロセスでは、実際の状況に応じて合理的に選択できます。
1. MySQL-python
MySQL-python (MySQLdb とも呼ばれます) は、Python が MySQL に接続するための最も一般的なドライバーでもあり、残念ながら、Python2 のみをサポートしています。 x. さらに、C ベースで開発されたライブラリであるため、インストール時に多くの前提条件があります。Windows プラットフォームにインストールするのは非常に不親切で、失敗することがよくあります。現在使用することは基本的にお勧めできません。派生バージョン。
# 前置条件 sudo apt-get install python-dev libmysqlclient-dev # Ubuntu sudo yum install python-devel mysql-devel # Red Hat / CentOS # 安装 pip install MySQL-python
Windows は、exe ファイルをダウンロードすることで直接インストールできます。公式アカウントに「win」と返信してダウンロード リンクを取得します
#!/usr/bin/python import MySQLdb db = MySQLdb.connect( host="localhost", # 主机名 user="john", # 用户名 passwd="megajonhy", # 密码 db="jonhydb") # 数据库名称 # 查询前,必须先获取游标 cur = db.cursor() # 执行的都是原生SQL语句 cur.execute("SELECT * FROM YOUR_TABLE_NAME") for row in cur.fetchall(): print(row[0]) db.close()
2。 MySQL-python の破壊、その後登場しました。そのフォーク バージョンの mysqlclient は MySQLdb と完全に互換性があり、Python3.x をサポートしています。データベースを操作するためにネイティブ SQL を使用したい場合は、このドライバーをお勧めします。インストール方法は MySQLdb と同じです。Windows では、対応するバージョンの whl パッケージのダウンロードとインストールを https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient で見つけることができます。
# Windows安装 pip install some-package.whl # linux 前置条件 sudo apt-get install python3-dev # debian / Ubuntu sudo yum install python3-devel # Red Hat / CentOS brew install mysql-connector-c # macOS (Homebrew) pip install mysqlclient3. PyMySQL 最大の特徴は、インストール方法がそれほど面倒ではないことです。 MySQL-python
pip install PyMySQL
# 为了兼容mysqldb,只需要加入
pymysql.install_as_MySQLdb()
import pymysql conn = pymysql.connect(host='127.0.0.1', user='root', passwd="xxx", db='mysql') cur = conn.cursor() cur.execute("SELECT Host,User FROM user") for r in cur: print(r) cur.close() conn.close()4、peewee ネイティブSQLを記述するプロセスは非常に面倒で、コードが繰り返されます。オブジェクト指向の考え方がなくなり、多くのパッケージ ラッパーが誕生しました。ORM は Python オブジェクトとデータベースのリレーショナル テーブルの間のマッピング関係です。ORM を使用すると、SQL ステートメントを記述する必要がなくなります。コードの記述速度が向上し、sqlite、mysql、postgresql などのさまざまなデータベース システムと互換性があります。その代償として、パフォーマンスが多少低下する可能性があります。 Django に付属の ORM に精通している場合、peeweee の学習コストはほぼゼロです。これは、Python で最も人気のある ORM フレームワークです。
例
import peewee from peewee import * db = MySQLDatabase('jonhydb', user='john', passwd='megajonhy') class Book(peewee.Model): author = peewee.CharField() title = peewee.TextField() class Meta: database = db Book.create_table() book = Book(author="me", title='Peewee is cool') book.save() for book in Book.filter(author="me"): print(book.title)
pip install peewee
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Address, Base, Person
class Address(Base):
__tablename__ = 'address'
id = Column(Integer, primary_key=True)
street_name = Column(String(250))
engine = create_engine('sqlite:///sqlalchemy_example.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
# Insert a Person in the person table
new_person = Person(name='new person')
session.add(new_person)
session.commit()
impalaに接続するPythonの例の詳細な説明
以上がPython_python を使用して MySQL に接続するいくつかの方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。