48
作者 | Python語音識別
來源 | 深度學習與python(ID:PythonDC)
不管是機器學習、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與數據庫的基本數據交換原理。
在連接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連接數據庫的程序
importmysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123")
print(mydb)
運行程序輸出為:
C:UsersHarshit_KantPycharmProjectstest1venvspython.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”的數據庫,該數據庫是自定義的,因為您可以為數據庫指定任何名稱。
同時,如果你想要查看服務器中已經建立的數據庫,可以使用以下代碼:
importmysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123")
mycursor=mydb.cursor
mycursor.execute("show databases")
fordb inmycursor:
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'。
讀取寫入:用于從數據庫中獲取有用信息。代碼示例如下:
importmysql.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函數包,該包也十分簡單且方便的與數據庫進行交互,大家可以嘗試一下。
參考
https://medium.com/edureka/python-database-connection-b4f9b301947c
(*本文僅代表作者觀點,轉載請聯系原作者)