1. 程式人生 > >【操作mysql】-- Python基礎

【操作mysql】-- Python基礎

這次些的文章是對於python3.x,連線資料庫的庫使用的是pymysql

在教程開始的時候需要先了解下mysql:

      MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關係型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體。
      MySQL是一種關係資料庫管理系統,關係資料庫將資料儲存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
      MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標準化語言。MySQL 軟體採用了雙授權政策,分為社群版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。

 

  python 是如何練級的mysql,對於這點我想大家在學習其他的程式語言的時候也清楚,mysql廠商給出了一套API,java有Java的jdbc,當然python也有python自己的,咱們就使用python3.x專用的pymysql。因為我已經安裝好了pymysql現在也沒有辦法給大家截圖,這裡我就找了一個網上的網友些的一篇關於安裝pymsql的文章:點選傳送

 

在此之前,還需要了解mysql語句,俗話說:磨刀不誤砍柴工,所以這裡在操作資料庫之前,現看一下是如何建立的mysql資料庫,如何新增的表,如何插入資料的,如果mysql不懂得如何安裝點

這裡進行傳送到教程。mysql語句教程點選這裡跳轉。

這裡我就把這次教程學習的增刪查該者幾個的語句給大家寫出來:

  建立資料庫:create database 資料庫名;

  建立表:create table 表名(欄位名 欄位型別);

    插入資料:insert into 表名(欄位名) values (插入的資料);

  刪除資料:delete from 表名 where 條件;。 注:這裡加上條件就是刪除的和條件匹配的記錄,不加條件就是刪除所有

  查詢:select 欄位名 from 表名; 注:這裡可以用*代替欄位名,這樣會顯示資料庫裡面的所有內容

好了關於資料庫的知識先了解這些,那麼先建立一個數據,因為我電腦上沒有安裝資料庫管理軟體,這裡咱們就使用命令列來操作資料庫,大家可以自己下載一個自己用的熟練的資料庫操作軟體,這樣更方便操作。

首先登陸資料庫:使用的命令是(mysql -u 使用者名稱 -p) 我使用的root進行登陸的

建立資料庫:(create database student;) 這個命令上面介紹sql語句的時候已經說了大家可以去看下:

執行完了命令顯示 Query ok,1 row affected就說明建立成功

然後需要開啟資料庫:use 資料庫名;    這樣開啟資料庫才可以對資料進行操作

建立表(create table stu(name varchar(5),age varchar(2),gender varchar(5));)

插入資料:(insert into stu(name,age,gender) values ("張三","12","男");)

這樣就成功的插入了一條資料,接下來我們檢視有沒有插入:(select * from stu;)

看,這裡已經顯示了我插入的資料了。

 

基本的操作資料庫我們會了, 那麼如何使用python來操作資料庫呢?接下來,看我操作。嘿嘿嘿嘿(賤賤的微笑)。

這裡我沒有說如何安裝pymysql哈,上面我給出了網上網友寫的一片關於安裝pymysql的教程,很仔細大家可以看看:

 1 # -*- coding:UTF-8 -*-
 2 
 3 # Author:Carr
 4 # Project_Name:Study
 5 # @Time:2018/11/10 下午4:30
 6 # IDE:PyCharm
 7 
 8 #匯入操作資料庫的API
 9 import pymysql
10 
11 '''
12 自定義函式
13 _host      mysql資料庫的地址
14 _username  資料庫使用者名稱
15 _pwd       資料庫密碼
16 _db        資料庫名
17 _charset   資料庫字符集
18 _port      連線資料庫埠
19 '''
20 def connectDatabase(_host,_username,_pwd,_db,_charset,_port = 3306):
21     #pymysql連線資料的方法,需要的引數mysql資料庫的地址、資料庫使用者名稱、資料庫密碼、資料庫名、資料庫字符集、連線資料庫埠
22     conn = pymysql.connect(host = _host,user = _username,password = _pwd,db = _db,port = _port,charset = _charset)
23     #返回連線資料庫返回值
24     return conn
25 
26 conn = connectDatabase('localhost','root','admin123','student','utf8')
27 
28 conn.close()
連線資料程式碼

操作資料庫,使用python插入資料:

1 #這裡拿到資料庫的遊標,因為下面對資料庫操作都需要這個遊標
2 cursor = conn.cursor()
3 
4 #編寫一個插入資料的sql語句
5 sql = 'insert into stu(name,age,gender) values ("尼古拉斯","22","男");'
6 #執行sql語句,因為我的資料庫裡使用的utf8的編碼集,所以這裡需要編碼到utf8,這是方式插入資料出現未知的錯誤
7 cursor.execute(sql.encode('utf8'))
8 #提交操作,如果這裡沒有提交,是不會寫入到資料庫的
9 conn.commit()
資料庫插入資料

執行程式後,這裡沒有出現紅色的錯誤文字就說明執行成功,接下里看下資料庫是否有了新的資料:(select * from stu;)

看這裡出現了我剛剛插入的資料,

 

這裡重要說下是關於python對於資料庫查詢的方法,因為查詢這一塊相對於其他的插入刪除來說有點難度,但是你跟著我的教程走還是挺好理解的:

在此之前我參考了下其他網友寫的文章,也進行了幾種查詢方式的比較,對於大資料量下咱們使用遊標fetchmany方法,因為這種方式在大資料量下查詢耗時比較短,那咱們就說下如何使用fetchmany遊標查詢資料庫:

先貼程式碼:

 1 # -*- coding:UTF-8 -*-
 2 
 3 # Author:Carr
 4 # Project_Name:Study
 5 # @Time:2018/11/10 下午4:30
 6 # IDE:PyCharm
 7 
 8 #匯入操作資料庫的API
 9 import pymysql
10 
11 '''
12 自定義函式
13 _host      mysql資料庫的地址
14 _username  資料庫使用者名稱
15 _pwd       資料庫密碼
16 _db        資料庫名
17 _charset   資料庫字符集
18 _port      連線資料庫埠
19 '''
20 def connectDatabase(_host,_username,_pwd,_db,_charset,_port = 3306):
21     #pymysql連線資料的方法,需要的引數mysql資料庫的地址、資料庫使用者名稱、資料庫密碼、資料庫名、資料庫字符集、連線資料庫埠
22     conn = pymysql.connect(host = _host,user = _username,password = _pwd,db = _db,port = _port,charset = _charset)
23     #返回連線資料庫返回值
24     return conn
25 
26 conn = connectDatabase('localhost','root','admin123','student','utf8')
27 #這裡拿到資料庫的遊標,因為下面對資料庫操作都需要這個遊標
28 cursor = conn.cursor()
29 
30 #編寫一個查詢資料的sql語句
31 sql = 'select * from stu;'
32 yus = []
33 #執行sql
34 cursor.execute(sql)
35 #死迴圈查詢資料,當沒有獲取到資料的時候跳出迴圈
36 while True:
37     data = cursor.fetchmany(1)
38     #列印獲取到的資料
39     print(data)
40     yus.append(data)
41     if not data:
42         break
43 
44 #提交操作,如果這裡沒有提交,是不會寫入到資料庫的
45 conn.commit()
46 
47 #每次進行一次開啟的操作,都需要關閉
48 cursor.close()
49 conn.close()
查詢程式碼

這種查詢方式是使用者指定的,每次查詢多少條資料,這裡我使用的是每次查詢一條資料,死迴圈查詢,當查詢不到資料時跳出迴圈,

這樣就查詢出來了: 沒有辦法截圖全部 只能擷取部分圖片

 

大家看完教程後,自己在電腦上練習一下,還是很快就能學會的。

如果部落格有錯誤請大家在下面評論出來,

不懂的地方是在下方評論哦!!!