ホームページ >データベース >mysql チュートリアル >Python が mysql データベースに接続します

Python が mysql データベースに接続します

高洛峰
高洛峰オリジナル
2016-11-23 11:44:191250ブラウズ

以前、Javaをmysqlデータベースに接続する方法を体系的に学びましたが、Pythonを行う際にデータベースを使用する必要があるので、データベースの知識を再整理し、PythonのMysqlDBモジュールの機能と機能に慣れました。要約しましょう:

まず、対応するモジュールをダウンロードしてインストールします。インストール後は、インターネット上にあるサイトをクリックしてください。 Python インストール ディレクトリの Lib フォルダー -packages フォルダーの下の MySQLdb フォルダーにはモジュールの定義が含まれています。準備が完了したら、ソースコードに MySQLdb をインポートする必要があります

データベース接続

モジュールを導入した後、データベースに接続する必要があります。サンプルコードは次のとおりです:

db = MySQLdb。 connect("localhost"," root","123456","myciti" )

これら 3 つの主要なパラメータの意味は一目瞭然です。1 つ目はサーバーのアドレス、2 つ目はユーザー名、 3 番目は dbms パスワード、4 番目はデータベースにアクセスするためのものです。実際、connect 関数のパラメータはこれら以外にもありますが、デフォルト値があり、ほとんどの場合変更する必要がないため、省略されています。 。以下は次のリストです:

host,连接的数据库服务器主机名,默认为本地主机(localhost)。
user,连接数据库的用户名,默认为当前用户。
passwd,连接密码,没有默认值。
db,连接的数据库名,没有默认值。
conv,将文字映射到Python类型的字典。默认为MySQLdb.converters.conversions
cursorclass,cursor()使用的种类,默认值为MySQLdb.cursors.Cursor。
compress,启用协议压缩功能。
named_pipe,在windows中,与一个命名管道相连接。
init_command,一旦连接建立,就为数据库服务器指定一条语句来运行。
read_default_file,使用指定的MySQL配置文件。
read_default_group,读取的默认组。
unix_socket,在unix中,连接使用的套接字,默认使用TCP。
port,指定数据库服务器的连接端口,默认是3306

ソース コードでポート番号が使用されていないことに気づくかもしれません。これは、MySQLdb の接続関数のこのパラメーターのデフォルト値が 3306 であるためです。mysql のインストール時にデータベース ポートを変更した場合は、番号が使用されます。の場合は、このパラメータの変更された値をソース コードに追加する必要があります。

SQL ステートメントを実行します

接続後、SQL ステートメントが実行されます。 ソース コードは次のとおりです。

import MySQLdb


db = MySQLdb.connect("localhost","root","123456") ,"myciti " )
cursor = db.cursor()
sql = """記事の値に挿入 (0,"woainimahah","http://www.aa.com","2012-9-8 ","wo" ,"qq","skjfasklfj","2019","up")"""
try:
cursor.execute(sql)
db.commit()
以外:
db.rollback()
db.close

ここで注意する必要があるのは、送信しない場合はデータベースが変更されないことです。

SQL ステートメントを他のものに変更すると、他の静的ステートメントを実装できるようになります。 「ID > 3の記事から削除」などの操作

選択して印刷

データベースに接続する最も重要な目的はデータベース内の情報を読み取ることなので、データベース内のデータを取得する方法?有効な情報をどうやって引き出すか?次のコードを参照してください:

次のプログラムは、データベース内の記事テーブルのすべての行の 2 番目の列のデータを出力できます:

import MySQLdb


db = MySQLdb.connect("localhost","root", "123456" ,"myciti" )
cursor = db.cursor()
cursor.execute("記事から * を選択")
data =cursor.fetchone()
while data!=None:
データを印刷します[1]
data =cursor .fetchone()
db.close

次のコードも使用できます:

import MySQLdb


db = MySQLdb.connect("localhost","root","123456","myciti" )
cursor = db .cursor()
cursor.execute("記事から * を選択")
datas =cursor.fetchall()
datas 内のデータの場合:
print data[1]
printcursor.rowcount,"合計行数"
db.close

上記の関数の違いはコードから見ることができます:

fetchone はデータベーステーブルからレコードの行を取り出し、2 番目の呼び出しは次の行を取り出し、下に進み続けます

fetchall はデータベーステーブルを取り出します

rowcount のすべての行のデータはデータベーステーブル内の行数を読み取ります

Java のプレースホルダーと同様、これらのプレースホルダーは Python でも動的選択を実装するために必要です。次のコードを参照してください:

import MySQLdb


a = "down"
b = 4
db = MySQLdb.connect("localhost","root","123456","myciti" )
cursor = db.cursor ( )
cursor.execute("トレンド = '%s' および ID datas =cursor.fetchall()
データ内のデータの場合:
print data[1]
printcursor.rowcount,"rows in tatal"
db.close

ここのプレースホルダーと Java の ? プレースホルダーには 1 つの違いがあります。 C のプレースホルダー 出力形式は同じです。次の %

に注意してください。返されるデータもリストであり、[] 演算子を使用して特定の列のデータにアクセスできます。

静的挿入と動的挿入

静的挿入については上ですでに説明しましたので、次に動的挿入について説明しましょう

動的挿入もプレースホルダーを使用して実装されます

MySQLdbをインポート


title = "wangxinmeiwo"
url = "henxiangni "
db = MySQLdb.connect("localhost","root","123456","myciti" )
cursor = db.cursor()
sql = """記事の値に挿入 (0,"%s","%s","2012-9-8","wo","qq","skjfasklfj","2019","up" )" ""
try:
cursor.execute(sql%(title,url))
db.commit()
以外:
db.rollback()
db.close

ここでプレースホルダーとそのプレースホルダーを確認できます。上記 使い方は同じです

更新操作

プレースホルダーの使い方は上記と同じです

import MySQLdb


title = "haoxiangni"
id=11
db = MySQLdb.connect("localhost ","root","123456","myciti" )
cursor = db.cursor()
sql = """更新記事セット title = "%s" where id = "%d" """
試してください:
cursor.execute(sql%(title,id))
db.commit()
以外:
db.rollback()
db.close

上記は、Python によるデータベースへのアクセスに関連する主な操作です。転載の際は出典を明記してください


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