av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

教你用Python玩轉MySQL

大家好,我是辰哥。

主要從事網(wǎng)頁設計、PC網(wǎng)站建設(電腦版網(wǎng)站建設)、wap網(wǎng)站建設(手機版網(wǎng)站建設)、響應式網(wǎng)站開發(fā)、程序開發(fā)、微網(wǎng)站、小程序制作等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設行業(yè)積累了豐富的成都網(wǎng)站建設、網(wǎng)站制作、網(wǎng)絡營銷經(jīng)驗,集策劃、開發(fā)、設計、營銷、管理等多方位專業(yè)化運作于一體,具備承接不同規(guī)模與類型的建設項目的能力。

爬蟲采集下來的數(shù)據(jù)除了存儲在文本文件、excel之外,還可以存儲在數(shù)據(jù)集,如:Mysql,redis,mongodb等,今天辰哥就來教大家如何使用Python連接Mysql,并結合爬蟲為大家講解。

前提:這里默認大家已經(jīng)安裝好mysql。

01Mysql簡介

mysql是關系型數(shù)據(jù)庫,支持大型的數(shù)據(jù)庫,可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。通過爬蟲采集的數(shù)據(jù)集存儲到mysql后,可以借助mysql的關聯(lián)查詢將相關的數(shù)據(jù)一步取出。具體的作用這里就不贅述了,下面開始進入實際操作。

1.安裝pymysql

通過下面這個命令進行安裝

 
 
 
 
  1. pip install pymysql

pymysql庫:Python3鏈接mysql

備注:

ps:MYSQLdb只適用于python2.x

python3不支持MYSQLdb,取而代之的是pymysql

運行會報:ImportError:No module named 'MYSQLdb'

2.python連接mysql

 
 
 
 
  1. import pymysql as pmq
  2. #connect(ip.user,password,dbname)
  3. con = pmq.connect('localhost','root','123456','python_chenge')
  4. #操作游標
  5. cur = con.cursor()

localhost是本機ip,這里用localhost表示是當前本機,否則將localhost改為對應的數(shù)據(jù)庫ip。

root是數(shù)據(jù)庫用戶名,123456是數(shù)據(jù)庫密碼,python_chenge是數(shù)據(jù)庫名。

圖上的數(shù)據(jù)庫python_chenge已經(jīng)建立好(建好之后,才能用上面代碼去連接),建好之后,當前是沒有表的,現(xiàn)在開始用Python進行建表,插入、查詢,修改,刪除等操作(結合爬蟲去講解)

02建表

在存儲之前,先通過python創(chuàng)建表,字段有四個(一個主鍵+電影名稱,鏈接,評分)

 
 
 
 
  1. # 創(chuàng)建 movie 表
  2. movie_sql= '''
  3.         create table movie(
  4.             id int AUTO_INCREMENT  primary key not null,
  5.             title varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci  not null,
  6.             url varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci  not null,
  7.             rate float  not null
  8.         )
  9. '''
  10. # 執(zhí)行sql語句
  11. cur.execute(movie_sql)
  12. # 提交到數(shù)據(jù)庫執(zhí)行
  13. con.commit()

創(chuàng)建表movie,字段分別為(id ,title ,url ,rate ),CHARACTER SET utf8 COLLATE utf8_general_ci是字符串編碼設置為utf8格式

id是主鍵primary key,int類型,AUTO_INCREMENT自增,非空not null

title,url 是字符串類型varchar(100),同樣非空

評分rate 是帶小數(shù)的數(shù)字,所以是float,同樣非空

03插入數(shù)據(jù)

爬蟲已經(jīng)采集到數(shù)據(jù),python已經(jīng)建好表,接著可以將采集的數(shù)據(jù)插入到數(shù)據(jù)庫,這里介紹兩種方式

 
 
 
 
  1. ### 插入數(shù)據(jù)
  2. def insert(title,url,rate):
  3.     # 插入數(shù)據(jù)一
  4.     #cur.execute("INSERT INTO movie(title,url,rate) VALUES('"+str(title)+"','"+str(url)+"',"+str(rate)+")")
  5.     # 插入數(shù)據(jù)二
  6.     sql = "INSERT INTO movie(title,url,rate) VALUES('"+str(title)+"','"+str(url)+"',"+str(rate)+")"
  7.     cur.execute(sql)
  8.     # 提交到數(shù)據(jù)庫執(zhí)行
  9.     con.commit()    

id是自增的,所以不需要在傳值進去。

定義好插入數(shù)據(jù)庫方法后,開始往數(shù)據(jù)庫進行存儲

 
 
 
 
  1. for i in json_data['subjects']:
  2.     insert(i['title'],i['url'],i['rate'])

04查詢

1.查詢所有

查詢表中所有數(shù)據(jù)

 
 
 
 
  1. # 查詢
  2. cur.execute('select * from movie')
  3. results = cur.fetchall()
  4. for row in results:
  5.     Id = row[0]
  6.     title = row[1]
  7.     print("id=%s,title=%s" % (Id, title))

2.查詢指定的數(shù)據(jù)

比如查詢標題為:唐人街3這一條數(shù)據(jù)的所有字段

 
 
 
 
  1. #查詢單條
  2. cur.execute('select * from movie where title="唐人街探案3"')
  3. results = cur.fetchall()
  4. for row in results:
  5.     Id = row[0]
  6.     title = row[1]
  7.     url = row[2]
  8.     rate = row[3]
  9.     print("id=%s,title=%s,url=%s,rate=%s" % (Id, title,url,rate))

05更新修改

更新數(shù)據(jù),還是以上面:唐人街3為例,id為7,將唐人街3評分從5.5改為6

 
 
 
 
  1. ### 更新
  2. def update():
  3.     sql = "update movie set rate='6' where Id = {0}".format(7)
  4.     cur.execute(sql)
  5.     con.commit()

同時看一下數(shù)據(jù)庫

06刪除

同樣還是以唐人街為例,其id為7,刪除的話咱們可以更新id去刪除

 
 
 
 
  1. def delete(Id):
  2.     sql = "delete from movie where Id = {0}".format(Id)
  3.     cur.execute(sql)
  4.     con.commit()

刪除之后,就沒有第7條數(shù)據(jù)了,說明刪除成功

07小結

今天的技術講解文章就到此結束,主要是將了如何通過python去連接mysql,并進行建表,插入數(shù)據(jù),查詢,更新修改和刪除。

本文轉載自微信公眾號「Python研究者」,可以通過以下二維碼關注。轉載本文請聯(lián)系Python研究者公眾號。


文章題目:教你用Python玩轉MySQL
文章鏈接:http://uogjgqi.cn/article/cdipgjo.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流