不管是機器學習、web開發或者爬蟲,數據庫都是繞不過去的。那么今天我們就來介紹Python如何Mysql數據庫進行連接以及數據的交換。主要分為以下幾個方面:
數據庫基本上是結構化數據的集合,通過數據庫可以用各種方式輕松地檢索,管理和訪問數據。最簡單的數據庫形式之一是文本數據庫。目前關系數據庫是最流行的數據庫系統,目前主流的關系數據庫主要由以下幾個:
MySQL
Oracle Database
SQL server
Sybase
Informix
IBM db2
NO SQL
其中MySQL是最容易使用的數據庫,也是我們這次所要介紹的。
什么是MySQLdb
MySQLdb是一個開源免費的關系數據庫管理系統,它使用結構化查詢語言。SQL(結構化查詢語言)是關系數據庫的標準語言,允許用戶對數據進行各種操作,如操作,創建,刪除等。簡而言之,SQL允許您對數據執行任何操作。
Python如何連接數據庫
Python連接數據庫的方法非常簡單,下圖表示Python與數據庫的基本數據交換原理。

在連接MySQL數據庫之前,請確保在計算機上安裝了MySQL應用程序。也可使用遠程數據庫,MySQL應用程序提供了一下數據工具:MySQL服務器、所有可用連接器、MySQL Workbench、MySQL通知程序、用于Excel和Microsoft Visual Studio的工具、MySQL示例數據庫、MySQL文檔。
安裝好應用程序之后,我們還需要安裝python中的Mysql函數庫mysql.connector,這個可以直接使用pip進行安裝。連接數據庫需要的基本參數是:
用戶名 -它只是您為MySQL服務器工作的用戶名,默認用戶名為root。
密碼 -密碼由用戶在安裝MySQL數據庫時提供。我在這里給密碼'password123'
主機名 -這基本上是運行MySQL的服務器名稱或IP地址,如果它是'localhost',那么你的IP地址是127.0.0.0
以下是Python連接數據庫的程序
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123")
print(mydb)
運行程序輸出為:
C:UsersHarshit_KantPycharmProjectstest1venvScriptspython.exe C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py
<mysql.connector.connection_cext.CMySQLConnection object at 0x000001606D7BD6A0>
這里'mydb'只是一個示例。從輸出中可以清楚地看到Python已連接到數據庫。
創建數據庫
經過上面一步,我們已經成功建立數據庫連接,現在您就可以創建自己的數據庫,它將充當python和MySQL服務器之間數據交流的橋梁。建立數據庫代碼如下:
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123")
mycursor=mydb.cursor()
mycursor.execute("create database harshdb")
程序說明:
同時,如果你想要查看服務器中已經建立的數據庫,可以使用以下代碼:
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123")
mycursor=mydb.cursor()
mycursor.execute("show databases")
for db in mycursor:
print(db)
輸出示例為:
('harshdb')
('information_schema')
('mysql')
('performance_schema')
('sakila')
('sys')
('world')
數據庫操作
數據庫的基本操作包括:創建、讀取、更新和刪除,下面我通過示例程序來為大家演示基本使用方法。
創建操作:用于在表中創建記錄的SQL語句,或者可以說它用于創建表。代碼如下:
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123",database=harshdb)
mycursor=mydb.cursor()
mycursor.execute("create table employee(name varchar(250),sal int(20))")
程序說明:
下面給出的屏幕截圖顯示了表'employee'并返回字段'name'和'sal'。

讀取寫入:用于從數據庫中獲取有用信息。代碼示例如下:
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123",database="harshdb")
mycursor=mydb.cursor()
sqlformula = "Insert into employee(name,sal) values(%s,%s)"//'values has placeholders
employees = [("harshit",200000),("rahul", 30000),("avinash", 40000),("amit", 50000),]//Created an array of emplpoyees
mycursor.executemany(sqlformula, employees)//Passing the data
mydb.commit()//SQL statement used for saving the changes
在上面的代碼中,我通過在Python中編寫SQL語句寫入一組員工數據。寫入之后數據庫的屏幕截圖顯示如下:

更新 :用于更新表中的記錄或更新表。代碼如下:
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123",database="harshdb")
mycursor=mydb.cursor()
sql = "Update employee SET sal = 70000 WHERE name = 'harshit'"
mycursor.execute(sql)
mydb.commit()
程序說明:我們在上面給出的代碼中更新了harshit的行“sal”。下面給出的數據庫截圖顯示更新結果。

刪除 :用于刪除表格。代碼示例如下:
import mysql.connector
mydb = mysql.connector.connect(host =“localhost”,user =“root”,passwd =“password123”,database =“harshdb”)
mycursor = mydb.cursor()
sql =“DELETE FROM employee WHERE name ='harshit'“
mycursor.execute(sql)
mydb.commit()
程序說明:在上面的代碼中,我刪除了一條'harshit'的重復記錄。
Python連接數據庫還有一個pymysql函數包,該包也十分簡單且方便的與數據庫進行交互,大家可以嘗試一下。