大 創 實 驗 室

更多內容請聯系我們

教你如何優雅地用Python連接MySQL數據庫

發表時間:2019-07-16 16:51作者:中科四平來源:教你如何優雅地用Python連接MySQL數據庫網址:http://www.taozhuangwang.net

不管是機器學習、web開發或者爬蟲,數據庫都是繞不過去的。那么今天我們就來介紹Python如何Mysql數據庫進行連接以及數據的交換。主要分為以下幾個方面:

  • 什么是數據庫?

  • 什么是MySQLdb?

  • Python如何連接數據庫?

  • 創建數據庫數據庫操作-CRUD

數據庫基本上是結構化數據的集合,通過數據庫可以用各種方式輕松地檢索,管理和訪問數據。最簡單的數據庫形式之一是文本數據庫。目前關系數據庫是最流行的數據庫系統,目前主流的關系數據庫主要由以下幾個:

  • MySQL

  • Oracle Database

  • SQL server

  • Sybase

  • Informix

  • IBM db2

  • NO SQL

其中MySQL是最容易使用的數據庫,也是我們這次所要介紹的。

什么是MySQLdb

MySQLdb是一個開源免費的關系數據庫管理系統,它使用結構化查詢語言。SQL(結構化查詢語言)是關系數據庫的標準語言,允許用戶對數據進行各種操作,如操作,創建,刪除等。簡而言之,SQL允許您對數據執行任何操作。

Python如何連接數據庫

Python連接數據庫的方法非常簡單,下圖表示Python與數據庫的基本數據交換原理。

P1.jpg

在連接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")

程序說明:

  • 在上面的程序中使用了游標,它基本上是一個用于與整個MySQL服務器通信的對象,通過它我可以創建自己的數據庫。

  • 您可以從輸出中看到創建了名為“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'。

  • 這里,User id是“root”,Password是“password123”,用于訪問harshdb。

下面給出的屏幕截圖顯示了表'employee'并返回字段'name'和'sal'。

P2.jpg

讀取寫入:用于從數據庫中獲取有用信息。代碼示例如下:

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語句寫入一組員工數據。寫入之后數據庫的屏幕截圖顯示如下:

P3.jpg

更新 :用于更新表中的記錄或更新表。代碼如下:

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”。下面給出的數據庫截圖顯示更新結果。

P4.jpg

刪除 :用于刪除表格。代碼示例如下:

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函數包,該包也十分簡單且方便的與數據庫進行交互,大家可以嘗試一下。


山東省濟南市歷下區舜華路750號大學科技園北區3號樓
服務熱線:13256445996                                  www.taozhuangwang.net