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)