Python連載筆記(六)——————Python與MySQL數據庫的交互

一、pymysql模塊的導入

用來演示Python 和 MysSQL數據庫的交互

操作之前需要導入模塊:
    第一種:import pymysql
        電腦的cmd命令:
        pip install -i https://pypi.douban.com/simple/ pymysql
    第二種:import mysqldb
        這是Python2的操作,已經廢棄了

下載完成之後,File———setting————Project +自己文件名——第一個裏面有MySQL則沒問題

二、pymysql的使用流程

    1.建立數據庫連接 conn
    2.創建遊標對象 cur = conn.cursor()
    3.通過創建的遊標 cur 執行sql語句,cur.exectute("SQL語句")
    4.提交:conn.commit()
    5.關閉遊標:cur.close()
    6.斷開連接:conn.close()
"""
    1.創建於數據庫連接的對象:調用connect()
        conn = pymysql.connect(參數列表)
        
        參數列表:
            1)host:主機地址
            2)port:端口號 默認是 3306
            3)db:數據庫名稱
            4)user:用戶名
            5)charset:編碼方式,推薦使用utf8
    2.連接對象常用方法:
        1)close():關閉連接
        2)commut():提交到數據庫執行
        3)rollback():回滾
            數據被修改之後,程序出異常了,rollback可以將數據恢復到被修改之前(必須是在commit之前)
        4)cursor():用來創建遊標對象,用於執行SQL語句
    3.遊標對象
        cur = conn.cursor()
        cur.execute(SQL語句)
    4.常用方法
        1.execute(SQL命令,[SQL語句補位元素])
            類似於:print("我叫%s,今年%d歲"%("小米",18)
                cur.execute("insert into stu(name) values(%s)",["張三"])
        2.fetchone()
            獲取結果集的第一條記錄
            返回的值是一個元組,取值和列表一樣,通過下標取值
                比如:t = (1,"張無忌")  ————>取出姓名:t[1]
        3.fetchmany(n)
            獲取n條記錄
        4.fetchall()
            獲取所有記錄
    
    小知識1:
        try:
            語句1
        except Exception as e:
            語句2
            
        異常捕獲:
            如果程序正常執行,則執行語句1
            如果程序出現異常,爲了保證程序不崩潰,咋們對異常進行捕獲
            Exception:
                所有異常都能捕獲
            as e:
                是取別名
        
    小知識2:
        數據庫遠程連接,電腦cmd:ipconfig
        
        在內網中,host默認的是本機        
        

"""

三、代碼案例

import pymysql
#1.建立數據庫連接
conn = pymysql.connect(host = "localhost",
                       user = "root",
                       passwd = "123456",
                       port = 3306,
                       db = "python",
                       charset = "utf8")

#2.創建遊標對象
cur = conn.cursor()

#測試SQL語句補位
name1 = input("請輸入姓名:")
cur.execute("insert into stu(name) values(%s)",[name1])

#3.通過創建遊標 cur 執行 sql語句
#**************************************************************************
#添加語句
sql_insert = "insert into stu VALUE (3,'張無忌','1701');"
cur.execute(sql_insert)
#**************************************************************************
#刪除語句
sql_delect = "delete from stu where id = 2";
cur.execute(sql_delect)
#**************************************************************************
#這是查詢語句
sql_select = "select * from student where ID = %s;"
cur.execute(sql_select,["88"])
L = cur.fetchall()   # L的數據類型爲元組類型
if L == ():
    print("hahahahah")
print(L[0])
print(L[0][1])
print(L)
print(len(L))
#**************************************************************************
#這是創建表語句
sql_select = "create table tea(" \
            "name varchar(50) primary key," \
            "pwd varchar(50)" \
            ")CHARACTER set utf8;"
cur.execute(sql_select)
#**************************************************************************
sql_insert = "insert into tea VALUE ('zddds','123');"
cur.execute(sql_insert)
sql_insert = "insert into student VALUE ('zs','12ddd3','123');"
cur.execute(sql_insert)
#**************************************************************************
#4.提交到數據庫進行持久化保存
conn.commit()

#5.關閉遊標
cur.close()

#6斷開連接
conn.close()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章