ホームページ >データベース >mysql チュートリアル >Python が mysql データベースに接続します
以前、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 によるデータベースへのアクセスに関連する主な操作です。転載の際は出典を明記してください