Pythonのデータベース接続_pymysql_01

--------インストール

 pymysqlをインストールするPIP

 

------- mainメソッド

接続():
コミット():トランザクションはそれ以外の操作が無効である、自動コミットに設定されていない場合は、各操作の後にトランザクションをコミットする必要があり、コミット
操作エラーの前に、あなたは、トランザクションのロールバックを実行するために、この機能を使用することができます:ロールバック()

--------------簡単な例:データベースに接続します

1.データベースは、データを照会します

SELECT book_id、t_book FROM BOOK_NAME WHERE market_rule = 1

 

 

2. Connectデータベース

インポート  pymysqlの
 インポートタイプの

#の接続データベース 
接続= pymysql.connect(=ホスト" 192.168.6.41 "、ユーザー= " lrtsaudio "、パスワード= " 2&Ty3DW75i!(vgo.l3Odp1fgWgEG "、= 3306ポート、DB = " オーディオブック" #を使用カーソル()メソッドは、カーソルがオブジェクトを作成し 
、カーソル= connect.cursor()
SQLステートメントの実行にカーソルを使用してexecute()メソッド 
cursor.execute(" SELECT book_idを、WHERE market_rule = 1 t_book FROM BOOK_NAME " #1 (使用fetchAllの)すべての取得データ 
R1 = cursor.fetchall()
印刷(R1)
 を印刷(タイプ(R1))
密接カーソル
cursor.close()
接続クローズ 
(connect.closeを)

結果は次の通り)のタプルを返し:(ました

 

 

また、辞書によってパラメータを渡すことができます。効果は同じです

DBINFO = { " ホスト"" 192.168.6.41 " " ユーザー"" lrtsaudio " " パスワード"" !2&Ty3DW75i(vgo.l3Odp1fgWgEG " " DB "" オーディオブックは、" 
} 

SQL = " SELECT * FROM t_book market_rule = 1 " 
CONNECT1 = pymysql.connect(** DBINFO)
CURSOR1 = CONNECT1。カーソル() 
cursor1.execute(SQL)カーソル() 
R2 =cursor1.fetchall()
 プリント(R2)
cursor1.close()
connect1.close

 

 パラメータ代表-------(接続)手段

    ホスト =なし、           #1 に接続するホストアドレス 
    ユーザー=なし、           #のユーザのログイン用のデータベース 
    パスワード= 「」 、パスワード 
    データベース=なし、       #1 に接続するためのデータベース 
    ポート= 0、              #1 ポート、通常は3306 
    unix_socketは= Noneです、    ではなくTCP / IPよりもunix_socket使用するかどうかを選択 
    のcharset = '' 、文字エンコーディング 
    のsql_mode =なし、       デフォルトのsql_modeは使用しないように。 
    read_default_file =なし、デフォルトの設定ファイルから読み込む(my.iniファイルまたはmy.cnfファイル)でパラメータ取ら 
    CONV =なし、           #の変換辞書
    =なしuse_unicode、   Unicodeエンコーディングかどうか 
    client_flag = 0のは、       カスタムMySQLへのフラグを送る。constants.CLIENTポテンシャル値を検索中に。 
    cursorClass = < クラス ' pymysql.cursors.Cursor ' >、 カーソルの種類を選択し 
    init_command =なしに、   #の最初の文の中に、実行時に確立された接続 
    = 10、CONNECT_TIMEOUT #の接続時間、(デフォルト:10、分:. 1、最大:31536000) 
    SSL =なし、            #は、同様の議論の辞書は今()「S parameters.Forをmysql_ssl_setしますそして、暗号キーワード引数capathはサポートされないでいる。 
    read_default_group =なし、設定ファイルの中から読み取るためのグループ。 
    湿布=なし、       #はサポートしていません 
    named_pipeを=なし、     #はサポートしていません 
    NO_DELAY =なし、       #の  
    偽自動コミット=を、    自動的にトランザクションを提出するかどうかを 
    デシベル=なし、             同じデータベースを、互換性のためのMySQLdb 
    のpasswd =どれも、         パスワードとは、互換性のMySQLdbはないように 
    偽local_infile =、 ロードローカルファイルを許可するかどうか 
    16777216 =てmax_allowed_pa​​cket、 制限`ローカルデータINFILE`サイズ 
    defer_connect = Falseに、インクルードが明示的にContruction ONに接続しないでください-接続コールを待ちます。 
    auth_plugin_map = {}、     READ_TIMEOUT =なし、   #1  
    write_timeoutは= なし、
    bindするアドレス =なし    顧客が複数のネットワークインタフェースを有し、ホストへの接続を指定しません

 

 

------クエリデータ

輸入  pymysql 

DBINFO = { " ホスト"" 192.168.6.41 " " ユーザー"" lrtsaudio " " パスワード"" !2&Ty3DW75i(vgo.l3Odp1fgWgEG " " DB "" オーディオブック" 
} 

SQL1 = " book_idを選択、 BOOK_NAME t_book FROM WHERE market_rule = 1 " 
SQL2 = "* WHERE USER_ID = audiobook.w_activity_ticket_3 SELECT 234 739 503から" 
CONNECT1 = pymysql.connect(** DBINFO)
CURSOR1 = ()connect1.cursor 
cursor1.execute(SQL1)  次のように戻り値は、行の数に影響されません:" 
"" 
cursor1.execute = NUM(SQL1)
プリント(NUM)#結果:NUM = 8 
"" " 
r_all = cursor1.fetchall() すべてのクエリ結果の削除 
r_oneのcursor1.fetchone =() は、クエリ結果の最初の行から行をフェッチします。服用開始 
r_many = cursor1.fetchmany(サイズ= 2) クエリ結果から数行を削除
印刷(r_all)
 印刷(r_one)
 印刷(r_many)

cursor1.close() 
)(connect1.close

のコードfetchAllの結果をコメントアウトします。

言い換えれば:

各メソッドの最後の開始時に行わ同じクエリに対して同時に作用する場合、このようなfetchAllの()、fetchmany()、fetchone()が実行される方法であります

 

おすすめ

転載: www.cnblogs.com/youzaijiang/p/11344933.html