Python中mysqlclient的使用,實現mysql數據庫的增刪改查,如何創建表並判斷表已經存在,如何對自增長類型插入數據

0、Python使用mysqlclient包創建數據表和增刪改查

首先安裝  pip install mysqlclient,pymysql性能比較低,一般都使用mysqlclient,它們的操作都差不多,數據庫連接方式也類似

#導入包 
import MySQLdb
#數據庫連接:
def SaveDb(self,con):
    conn = MySQLdb.connect(
        host='localhost',
        port=3306,
        user='root',
        password='',
        db='bilibili',
        charset='utf8'
    )
#創建數據庫表
    cur = conn.cursor()
    cur.execute('create table if not exists content(id int primary key not null auto_increment,name varchar(256),times decimal(10,1),danmu decimal(10,1),likes decimal(10,1))')
#數據表刪除操作,刪除所有的數據
    cur.execute('Delete from content where 1=1')#
#數據表插入操作
    for co in con:        
        sql = 'insert into content values(null,"%s","%s","%s","%s")'%(co[0],co[1],co[2],co[3])
    cur.execute(sql)
#數據表查詢操作
cur.execute('select name,times from content ORDER BY CAST(times as SIGNED) DESC')
times = cur.fetchmany(5)#取回五條數據
for i in times:
      print(i)
#數據表更新操作
cur.execute("update content set times='1024' where name = 'Tom'")
#數據庫關閉
cur.close()
conn.commit()#插入操作必須要提交,否則的話不能被插入到數據庫中
conn.close()

1、創建數據表,如果數據表已經存在就不用在在創建的判斷

使用if not exists語句判斷,if not exists 的作用就是判斷要創建的數據表是否已經存在,若不存在則創建,否則跳過該語句。

create table if not exists people(name text,age int(2),gender char(1));

該語句可以使用在pymysql和mysqlclient兩個包裏面,都可以實現判斷

cursor.execute("create table if not exists movie(name text, star text, quote text, info text)")

2、數據表中的主鍵設置爲自增長,怎麼插入數據

(1)這個時候數據庫中的主鍵設置爲自增長,創建表的語句如下,auto_increment設置自增長,自增長的id會自己增加

cur.execute('create table if not exists content(id int primary key not null
auto_increment,name varchar(256),times decimal(10,1)')

(2)怎麼向自增長列插入數據

1、指定數值,但是這個數值要比數據庫中的當前序號要大,否則就插不進去

例如,數據庫中的id最大值爲11,我們插入數據的時候,id值要大於11,這樣才能插入

這裏選擇12
sql = 'insert into content values(12,"%s","%s","%s","%s")'%(co[0],co[1],co[2],co[3])
cur.execute(sql)

2、在插入語句中指定id爲null或者0,這樣mysql數據庫會自動處理

這裏爲null
sql = 'insert into content values(null,"%s","%s","%s","%s")'%(co[0],co[1],co[2],co[3])
cur.execute(sql)

3、手動指定需要插入的列,這些列中不包含id自增長,忽略ID列

sql = 'insert into content (name,title,times,numers)values(null,"%s","%s","%s","%s")'
%(co[0],co[1],co[2],co[3])
cur.execute(sql)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章