Python連接mysql數據庫


一、 連接數據庫

1、下載安裝pymyql庫

pip install pymysql

2、導入庫

import pymysql

3、連接數據庫,最好用try except捕獲異常

try:
    db = pymysql.connect(host="localhost", user="root", password="****", database="test")
    print('數據庫連接成功!')
except pymysql.Error as e:
    print('數據庫連接失敗'+str(e))

二、創建一張新表

1、聲明一個游標

    cur = db.cursor()

2、創建表之前先檢查是否存在,如果存在則刪除

    cur.execute('DROP TABLE IF EXISTS Student')

3、編輯sql語句

   sqlQuery = "CREATE TABLE Student(Name CHAR(20) NOT NULL ,Email CHAR(20),Age int )"
   cur.execute(sqlQuery)

三、向表中插入一條數據

1、編輯sql語句

    sqlQuery=" INSERT INTO Student (Name, Email, Age) VALUE (%s,%s,%s) "

2、編輯准備插入的值

    value=('Mike','123456@163.com',20)

3、執行sql語句

復制代碼
        try:
            cur.execute(sqlQuery,value)
            db.commit()
            print('數據插入成功!')
        except pymysql.Error as e:
            print("數據插入失敗:"+e )
            db.rollback()
復制代碼

四、查詢表中的數據

1、編輯sql語句

    sqlQuery = "SELECT * FROM Student"

2、使用fetchall()方法接收全部的返回結果行

復制代碼
        try:
            cur.execute(sqlQuery)
            results=cur.fetchall()
            for row in results:
                name=row[0]
                email=row[1]
                age=row[2]
                print('Name:%s,Email:%s,Age:%s'%(name,email,age))
        except pymysql.Error as e:
            print("數據查詢失敗:"+str(e))
復制代碼

五、更新表中的數據

1、編輯sql語句

    sqlQuery = "UPDATE Student SET Name= %s WHERE Name=%s"

2、編輯更新的信息

    value = ('John', 'updated name')

3、提交修改

復制代碼
        try:
            cur.execute(sqlQuery, value)
            db.commit()
            print('數據更新成功!')
        except pymysql.Error as e:
            print("數據更新失敗:"+str(e))
            # 發生錯誤時回滾
            db.rollback()
復制代碼

六、刪除表中的數據

1、編輯sql語句

    sqlQuery = "DELETE FROM Student where Name=%s"

2、編輯更新的信息

    value = ('John')

3、提交修改

復制代碼
        try:
            cur.execute(sqlQuery, value)
            db.commit()
            print('Date Deleted Successfully')
        except pymysql.Error as e:
            print("數據刪除失敗:"+str(e))
            # 發生錯誤時回滾
            db.rollback()
復制代碼

七、刪除一張表

1、編輯sql語句

    sqlQuery='DROP TABLE IF EXISTS Student'

2、提交修改

        cur.execute(sqlQuery)
        print('表刪除成功!')

 


完整demo:

復制代碼
import pymysql

# https://blog.csdn.net/qq_39598271/article/details/112610382
# Python3.8問題
try:
    db = pymysql.connect(host="localhost", user="root", password="*****", database="test")
    print('數據庫連接成功!')
    # 創建一張表
    cur = db.cursor()
    # cur.execute('DROP TABLE IF EXISTS Student')
    # sqlQuery = "CREATE TABLE Student(Name CHAR(20) NOT NULL ,Email CHAR(20),Age int )"
    # cur.execute(sqlQuery)

    # 向表中插入數據
    # cur = db.cursor()
    # sqlQuery = " INSERT INTO Student (Name, Email, Age) VALUE (%s,%s,%s) "
    # value = ('Mike', '123456@163.com', 20)
    # try:
    #     cur.execute(sqlQuery, value)
    #     db.commit()
    #     print('數據插入成功!')
    # except pymysql.Error as e:
    #     print("數據插入失敗:" + e)
    #     db.rollback()

    # 查詢表中數據
    # cur = db.cursor()
    # sqlQuery = "SELECT * FROM Student"
    # try:
    #     cur.execute(sqlQuery)
    #     results = cur.fetchall()
    #     for row in results:
    #         name = row[0]
    #         email = row[1]
    #         age = row[2]
    #         print('Name:%s,Email:%s,Age:%s' % (name, email, age))
    # except pymysql.Error as e:
    #     print("數據查詢失敗:" + str(e))

    # 更新表中數據
    # cur = db.cursor()
    # sqlQuery = "UPDATE Student SET Name= %s WHERE Name=%s"
    # value = ('John', 'updated name')
    # try:
    #     cur.execute(sqlQuery, value)
    #     db.commit()
    #     print('數據更新成功!')
    # except pymysql.Error as e:
    #     print("數據更新失敗:" + str(e))
    #     # 發生錯誤時回滾
    #     db.rollback()

    # 刪除表中數據
    # cur = db.cursor()
    # sqlQuery = "DELETE FROM Student where Name=%s"
    # value = ('John')
    # try:
    #     cur.execute(sqlQuery, value)
    #     db.commit()
    #     print('Date Deleted Successfully')
    # except pymysql.Error as e:
    #     print("數據刪除失敗:" + str(e))
    #     # 發生錯誤時回滾
    #     db.rollback()

    # 刪除一張表
    cur = db.cursor()
    sqlQuery = 'DROP TABLE IF EXISTS Student'
    cur.execute(sqlQuery)
    print('表刪除成功!')

except pymysql.Error as e:
    print('數據庫連接失敗'+str(e))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM