成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python也能操作MySQL數據庫

開發 后端
我們在進行Python編程的時候,時常要將一些數據保存起來,其中最方便的莫過于保存在文本文件了。今天我們要學的就是數據庫中小編自認為最棒的Mysql數據庫了。

[[414683]]

大家好,我是Python進階者。

前言

我們在進行Python編程的時候,時常要將一些數據保存起來,其中最方便的莫過于保存在文本文件了。但是如果保存的文件太大,用文本文件就不太現實了,畢竟打開都是個問題,這個時候我們需要用到數據庫。提到數據庫,相信大部分人都不會陌生,今天我們要學的就是數據庫中小編自認為最棒的Mysql數據庫了。

一、下載導入模塊

為了讓Python與Mysql 交互,這里我們需要用到Pymsql模塊才行。

下載模塊:

  1. pip install pymysql 

導入模塊:

  1. import pymysql 

二、創建數據庫

打開數據庫連接軟件 SqlYong,如圖:

輸入命令:

  1. CREATE DATABASE IF NOT EXISTS people; 

這樣就創建了一個people 數據庫。

三、創建數據表,并寫入數據

  1. USE people; 
  2. CREATE TABLE IF NOT EXISTS student(id INT PRIMARY KEY AUTO_INCREMENT,NAME CHAR(10) UNIQUE,score INT NOT NULL,tim DATETIME)ENGINE=INNOBASE CHARSET utf8; 
  3. INSERT INTO student(NAME,score,tim)VALUES('fasd',60,'2020-06-01'
  4. SELECT * FROM student; 

通過上述操作便創建了一個數據表Student并向其中寫入了數據,結果如下:

我們可以一行代碼刪除這個插入的 數據:

  1. TRUNCATE student; 

四、MySQL與Python建立連接

將下圖中的參數依次填入初始化參數中,

  1. db=pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='people'

這樣就連接到了people數據庫,可以看下連接成功的打印信息:

可以看到我們打印了Mysql的版本和Host信息。

五、創建游標執行操作

1.創建游標

  1. cur=db.cursor 

2.編寫插入數據表達式

  1. sql="INSERT INTO student(NAME,score,tim)VALUES('任性的90后boy',100,now())" 

3.開啟游標事件

  1. cur.begin() 

4.執行數據庫語句,異常判斷

  1. try: 
  2.     cur.execute(sql) 執行數據庫語句 
  3. except Exception as e: 
  4.     print(e) 
  5.     db.rollback()   發生異常進行游標回滾操作 
  6. else
  7.     db.commit()   提交數據庫操作 
  8. finally: 
  9.     cur.close()  關閉游標 
  10.     db.close()  關閉數據庫 

5.執行插入操作

數據庫建立好后,我們可以對它們進行插入數據的操作。

  1. import time 
  2. db=pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='people'
  3. cur=db.cursor() 
  4. db.begin() 
  5. sql="INSERT INTO student(NAME,score,tim) VALUES ('%s',%d,'%s')" 
  6. data=('HW',90,tt) 
  7. try: 
  8.   cur.execute(sql%data) 
  9. except Exception as e: 
  10.   print(e) 
  11.   db.rollback() 
  12. else
  13.   db.commit() 
  14. finally: 
  15.   cur.close() 
  16.   db.close() 

這樣就可以將數據插入進去了。我們還可以自定義插入:

  1. import pymysql 
  2. import time 
  3. tt=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) 
  4. db=pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='people'
  5. cur=db.cursor() 
  6. db.begin() 
  7. s=input('string:'
  8. d=input('number:'
  9. sql="INSERT INTO student(NAME,score,tim)VALUES('%s','%s','%s')" 
  10. try: 
  11.   data=(s,d,tt) 
  12.   cur.execute(sql%data) 
  13. except Exception as e: 
  14.   print(e) 
  15.   db.rollback() 
  16. else
  17.   db.commit() 
  18. finally: 
  19.   cur.close() 
  20.   db.close() 

另外,我們也可以同時插入多條數據,只需先定義好所有的數據,然后在調用即可,這里需要用到插入多條數據的函數Executemany,在這里我插入十萬條數據,并測試插入時間,步驟如下:

  1. import pymysql 
  2. import time 
  3. start=time.time() 
  4. tt=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) 
  5. db=pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='people'
  6. cur=db.cursor() 
  7. db.begin() 
  8. sql="insert into student(NAME,score,tim)values(%s,%s,%s)" 
  9. def get(): 
  10.   ab=[] 
  11.   for y in range(1,100000): 
  12.     if y>=100: 
  13.       data=('user-'+str(y),str(str(float('%.f'%(y%100)))),tt) 
  14.     else
  15.       data=('user-'+str(y),str(y),tt) 
  16.     ab.append(data) 
  17.   return ab 
  18.  
  19. try: 
  20.   data=get() 
  21.   cur.executemany(sql,data) 
  22. except Exception as e: 
  23.   print(e) 
  24.   db.rollback() 
  25. else
  26.   db.commit() 
  27. finally: 
  28.   print('插入數據完畢'
  29.   cur.close() 
  30.   db.close() 
  31.   end=time.time() 
  32.   print('用時:',str(end-start)) 

6.執行更新操作

有些數據我們覺得它過時了,想更改,就要更新它的數據。

  1. import time 
  2. db=pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='people'
  3. cur=db.cursor() 
  4. db.begin() 
  5. sql="update student set name='zjj' where score=100 " 當分數是100分的時候將名字改為zjj 
  6. try: 
  7.   cur.execute(sql%data) 
  8. except Exception as e: 
  9.   print(e) 
  10.   db.rollback() 
  11. else
  12.   db.commit() 
  13. finally: 
  14.   cur.close() 
  15.   db.close() 

7.執行刪除操作

有時候一些數據如果對于我們來說沒有任何作用了的話了,我們就可以將它刪除了,不過這里是刪除數據表中的一條記錄。

  1. import pymysql 
  2. db=pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='people'
  3. cur=db.cursor() 
  4. db.begin() 
  5. sql="delete from student where name='fasd';" 當名字等于‘fasd’的時候刪除這個記錄 
  6. try: 
  7.   cur.execute(sql) 
  8. except Exception as e: 
  9.   print(e) 
  10.   db.rollback() 
  11. else
  12.   db.commit() 
  13. finally: 
  14.   cur.close() 
  15.   db.close() 

你也可以刪除表中所有的數據,只需將Sql語句改為:

  1. sql='TRUNCATE student;' 

當然你也可以刪除表,但是一般不建議這樣做,以免誤刪:

  1. DROP TABLE IF EXISTS  student; 

8.執行查詢操作

有時候我們需要對數據庫中的數據進行查詢,Python也能輕松幫我們搞定。

  1. import pymysql 
  2. import time 
  3. tt=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) 
  4. db=pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='people'
  5. cur=db.cursor() 
  6. db.begin() 
  7. sql="select * from student;" 
  8. try: 
  9.   cur.execute(sql) 
  10.   res=cur.fetchall() 查詢數據庫中的數據 
  11.   for y in res: 
  12.     print(y) 打印數據庫中標的所有數據,以元祖的形式 
  13. except Exception as e: 
  14.   print(e) 
  15.   db.rollback() 
  16. else
  17.   db.commit() 
  18. finally: 
  19.   cur.close() 
  20.   db.close() 

六、總結

在我們進行網絡爬蟲的時候,需要保存大量數據,這個時候數據庫就派上用場了,可以更方便而且更快捷保存數據。

 

責任編輯:姜華 來源: Python爬蟲與數據挖掘
相關推薦

2021-08-04 09:00:53

Python數據庫Python基礎

2015-03-13 15:30:26

編程數據庫創建表單

2019-05-31 08:23:00

Oracle數據庫云渡劫

2010-06-01 12:51:23

MySQL數據庫

2019-10-21 13:52:14

MySQL數據庫命令

2009-06-04 15:59:53

Netbeans操作MMySQL數據庫

2011-07-05 10:16:16

Qt 數據庫 SQLite

2021-06-03 09:30:30

Python操作注冊表regedit

2010-05-14 11:12:16

連接MySql

2010-05-28 14:51:47

MySQL數據庫

2022-09-01 23:29:22

MySQLPython數據庫

2024-05-08 08:37:44

2010-05-27 16:55:23

操作MySQL

2024-11-28 08:07:14

2010-03-04 13:47:13

Python操作Acc

2010-03-04 15:31:44

Python SQLI

2011-07-05 18:04:45

QT Mysql

2010-05-28 18:44:45

2018-02-26 20:00:00

編程語言JavaMySQL

2009-09-07 15:25:24

MySQL數據庫互操作Silverlight
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产亚洲成av人片在线观看桃 | 狠狠爱免费视频 | 拍真实国产伦偷精品 | 毛片免费观看 | 国产精品福利在线 | 日本高清不卡视频 | jdav视频在线观看免费 | 视频在线一区二区 | 91网站视频在线观看 | 久久精品国产亚洲一区二区 | 亚洲精品美女视频 | 日韩三级 | 中文字幕在线精品 | 盗摄精品av一区二区三区 | 国产精品高潮呻吟久久av黑人 | 日韩精品成人 | a在线视频 | 国内精品久久久久久影视8 最新黄色在线观看 | 日本一区二区视频 | 天天爽夜夜爽精品视频婷婷 | 中文字幕欧美在线观看 | 老司机深夜福利网站 | 日韩在线一区二区三区 | 日韩欧美操 | 亚洲在线免费观看 | 日韩精品在线免费 | 亚洲电影成人 | 天天综合永久入口 | 精品日韩一区二区 | 久久精品福利 | 91在线观看视频 | 久久久久中文字幕 | 91人人看 | 国产福利在线视频 | 91在线精品秘密一区二区 | 一区二区免费 | 亚洲色视频 | 黄色亚洲网站 | 在线观看免费av网 | 91精品国产综合久久婷婷香蕉 | 国产精品18久久久久久白浆动漫 |