• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發其它知識 → Python通過psycopg2操作PostgreSQL

    Python通過psycopg2操作PostgreSQL

    相關軟件相關文章發表評論 來源:Cynhard85時間:2017/10/29 10:25:13字體大?。?em class="fontsize">A-A+

    作者:Cynhard85點擊:1次評論:0次標簽: psycopg2 python PostgreSQL

    psycopg22.7.3.2 官方最新版
    • 類型:運動健身大?。?i>3.5M語言:中文 評分:5.0
    • 標簽:
    立即下載

    psycopg2是Python編程語言的PostgreSQL數據庫的適配器。postgreSQL屬于關系型數據庫,支持Python通過DB-API,本文假設已經安裝和配置好了PostgreSQL,要使用psycopg2的模塊,首先必須創建一個Connection對象,它表示數據庫然后再可以選擇創建游標對象,這將幫助執行的所有SQL語句。

    本例中用的操作系統為:

    Debian GNU/Linux 8.2 (jessie)12

    Python版本為:

    Python 2.7.912

    psycopg2的安裝

    Debian下執行以下命令安裝 psycopg2:

    apt-get install python-psycopg21

    安裝好后,就可以寫Python腳本來訪問PostgreSQL了。

    導入psycopg2

    想要使用psycopg2,必須用import語句導入該包:

    import psycopg21

    connection類

    connection類表示數據庫連接對象。由psycopg2.connect()方法創建。

    創建connection對象

    psycopg2.connect()函數創建一個新的數據庫會話(Session)并且返回一個連接對象。該函數的參數為:

    dbname – 數據庫名字

    user – 數據庫角色名稱

    password – 數據庫角色密碼

    host – 數據庫地址

    port – 端口

    connection的主要方法

    connection提供了常用的數據庫操作:

    commit():提交任何未提交的事務(transaction)到數據庫。

    rollback():回滾。

    close():關閉數據庫。如果關閉數據庫時仍有未提交的事務,則執行回滾操作。

    cursor類

    創建cursor對象

    psycopg2提供了一個cursor類,用來在數據庫Session里執行PostgreSQL命令。cursor對象由connection.cursor()方法創建:

    cur = conn.cursor()1

    cursor的主要方法

    execute(query, vars=None):執行SQL語句。

    fetchall():獲取所有查詢結果,返回值為tuple列表。

    有了cursor對象,就可以操作數據庫了。

    建立數據庫連接

    conn = psycopg2.connect(dbname="mydb", user="postgres",
           password="1234", host="127.0.0.1", port="5432")12

    創建表

    cur.execute(        'CREATE TABLE Employee ('
           'name    varchar(80),'
           'address varchar(80),'
           'age     int,'
           'date    date'
           ')'
       )12345678

    插入數據

    cur.execute("INSERT INTO Employee "
           "VALUES('Gopher', 'China Beijing', 100, '2017-05-27')")12

    查詢數據

    cur.execute("SELECT * FROM Employee")
    rows = cur.fetchall()for row in rows:
       print('name=' + str(row[0]) + ' address=' + str(row[1]) +
           ' age=' + str(row[2]) + ' date=' + str(row[3]))12345

    更新數據

    cur.execute("UPDATE Employee SET age=12 WHERE name='Gopher'")1

    刪除數據

    cur.execute("DELETE FROM Employee WHERE name='Gopher'")1

    完整示例

    #coding=utf-8import psycopg2# 連接數據庫conn = psycopg2.connect(dbname="mydb", user="postgres",
           password="1234", host="127.0.0.1", port="5432")# 創建cursor以訪問數據庫cur = conn.cursor()# 創建表cur.execute(        'CREATE TABLE Employee ('
           'name    varchar(80),'
           'address varchar(80),'
           'age     int,'
           'date    date'
           ')'
       )# 插入數據cur.execute("INSERT INTO Employee "
           "VALUES('Gopher', 'China Beijing', 100, '2017-05-27')")# 查詢數據cur.execute("SELECT * FROM Employee")
    rows = cur.fetchall()for row in rows:
       print('name=' + str(row[0]) + ' address=' + str(row[1]) +
           ' age=' + str(row[2]) + ' date=' + str(row[3]))# 更新數據cur.execute("UPDATE Employee SET age=12 WHERE name='Gopher'")# 刪除數據cur.execute("DELETE FROM Employee WHERE name='Gopher'")# 提交事務conn.commit()# 關閉連接conn.close()

    Python psycopg2 模塊APIs

    以下是psycopg2的重要的的模塊例程可以滿足Python程序與PostgreSQL數據庫的工作。如果尋找一個更復雜的應用程序,那么可以看看Python psycopg2的模塊的官方文檔。

    S.N.
    API & 描述
    1
    psycopg2.connect(database="testdb", user="postgres", password="cohondob", host="127.0.0.1", port="5432") 

    這個API打開一個連接到PostgreSQL數據庫。如果成功打開數據庫時,它返回一個連接對象。
    2
    connection.cursor()

    該程序創建一個光標將用于整個數據庫使用Python編程。
    3
    cursor.execute(sql [, optional parameters])

    此例程執行SQL語句??杀粎祷腟QL語句(即占位符,而不是SQL文字)。 psycopg2的模塊支持占位符用%s標志
    例如:cursor.execute("insert into people values (%s, %s)", (who, age))


    4
    curosr.executemany(sql, seq_of_parameters)

    該程序執行SQL命令對所有參數序列或序列中的sql映射。
    5
    curosr.callproc(procname[, parameters])

    這個程序執行的存儲數據庫程序給定的名稱。該程序預計為每一個參數,參數的順序必須包含一個條目。


    6
    cursor.rowcount

    這個只讀屬性,它返回數據庫中的行的總數已修改,插入或刪除最后 execute*().


    7
    connection.commit()

    此方法提交當前事務。如果不調用這個方法,無論做了什么修改,自從上次調用commit()是不可見的,從其他的數據庫連接。


    8
    connection.rollback()

    此方法會回滾任何更改數據庫自上次調用commit()方法。


    9
    connection.close()

    此方法關閉數據庫連接。請注意,這并不自動調用commit()。如果你只是關閉數據庫連接而不調用commit()方法首先,那么所有更改將會丟失!
    10
    cursor.fetchone()

    這種方法提取的查詢結果集的下一行,返回一個序列,或者無當沒有更多的數據是可用的。


    11
    cursor.fetchmany([size=cursor.arraysize])

    這個例程中取出下一個組的查詢結果的行數,返回一個列表。當沒有找到記錄,返回空列表。該方法試圖獲取盡可能多的行所顯示的大小參數。


    12
    cursor.fetchall()

    這個例程獲取所有查詢結果(剩余)行,返回一個列表??招袝r則返回空列表。

    連接到數據庫

    Python代碼顯示了如何連接到一個現有的數據庫。如果數據庫不存在,那么它就會被創建,最終將返回一個數據庫對象。

     

    #!/usr/bin/pythonimport psycopg2 conn = psycopg2.connect(database="testdb", user="postgres", password="pass123", host="127.0.0.1", port="5432")print "Opened database successfully"

     

    在這里,也可以提供數據庫testdb的名稱,如果數據庫成功打開,那么它會給下面的消息:

    Open database successfully

      相關評論

      閱讀本文后您有什么感想? 已有人給出評價!

      • 8 喜歡喜歡
      • 3 頂
      • 1 難過難過
      • 5 囧
      • 3 圍觀圍觀
      • 2 無聊無聊

      熱門評論

      最新評論

      發表評論 查看所有評論(0)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)

      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>