大 创 实 验 室

更多内容请联系我(wǒ)们(men)

教你如何优雅地用Python连(lián)接(jiē)MySQL数据库

发表时间(jiān):2019-07-16 16:51作者(zhě):中科四平来源:教你如(rú)何优雅地用Python连(lián)接MySQL数据库网址:http://www.liaoyang.bynr.xinxiang.zz.pingliang.ww38.viennacitytours.com

不管是机器学习、web开(kāi)发或(huò)者爬虫,数据库都是绕不过(guò)去(qù)的。那么今天(tiān)我们就来介绍Python如(rú)何Mysql数(shù)据库进行(háng)连接(jiē)以及数据的(de)交换。主要分为以下几个方面:

  • 什(shí)么是数(shù)据库?

  • 什么是MySQLdb?

  • Python如何连接数(shù)据(jù)库?

  • 创建(jiàn)数(shù)据库数据库操(cāo)作-CRUD

数据库基本(běn)上(shàng)是结构(gòu)化数据的集合,通过数据(jù)库(kù)可以用各种(zhǒng)方式轻松地检索,管理和访问(wèn)数据。最简单的数据库形式之(zhī)一是文(wén)本数据库。目前关系数据库是最流(liú)行的数(shù)据库(kù)系统,目前主流的(de)关系数据库主要由(yóu)以下几个:

  • MySQL

  • Oracle Database

  • SQL server

  • Sybase

  • Informix

  • IBM db2

  • NO SQL

其中MySQL是最容易使用(yòng)的数(shù)据库,也是我们这次所要介绍的。

什么(me)是MySQLdb

MySQLdb是一个开源免(miǎn)费的关系数据(jù)库管(guǎn)理系统,它使用结构化查询语(yǔ)言。SQL(结(jié)构(gòu)化查询语言)是关系数据库的(de)标准语言,允许用户对数据进行(háng)各种操作,如操作,创建,删除等。简而言之,SQL允许您对数据执行任(rèn)何操(cāo)作。

Python如何连接数据库

Python连接数(shù)据库的方法非(fēi)常(cháng)简单,下图表示Python与数据库(kù)的基本数据交(jiāo)换原(yuán)理(lǐ)。

P1.jpg

在连接MySQL数据库之(zhī)前,请确保在计(jì)算机上(shàng)安装了MySQL应用程序。也可(kě)使用远程数据库,MySQL应用程序(xù)提供了一下数据工具:MySQL服务器、所有可用连接器、MySQL Workbench、MySQL通(tōng)知程序、用于Excel和Microsoft Visual Studio的工具、MySQL示例数据库、MySQL文档。

安装好应用程序(xù)之后,我们还(hái)需要安装python中的Mysql函数库mysql.connector,这个可以直(zhí)接使用(yòng)pip进行安(ān)装。连接数据库需要的基本参(cān)数是:

  • 用户名 -它只是(shì)您为MySQL服(fú)务(wù)器工作的用户(hù)名,默认用户名为root。

  • 密码 -密码由用(yòng)户在安装MySQL数据库时提供。我(wǒ)在这里给密码'password123'

  • 主机名 -这基本上是运行MySQL的(de)服务器名称或IP地(dì)址,如(rú)果它是'localhost',那么你的IP地址是127.0.0.0

以下是Python连接(jiē)数据库的程序

import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123")
print(mydb)

运行程序输出(chū)为(wéi):

C:UsersHarshit_KantPycharmProjectstest1venvScriptspython.exe C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py
<mysql.connector.connection_cext.CMySQLConnection object at 0x000001606D7BD6A0>

这里'mydb'只是一个示例(lì)。从输出中可以清楚地看(kàn)到Python已连接到(dào)数(shù)据(jù)库。

创建数据库

经过(guò)上面一(yī)步,我们已经成功建立数据库连(lián)接,现在您就可以创(chuàng)建自(zì)己(jǐ)的数据库,它将充(chōng)当python和MySQL服务(wù)器之(zhī)间数据交流的桥梁。建立数据(jù)库代(dài)码如下:

import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123")
mycursor=mydb.cursor()
mycursor.execute("create database harshdb")

程序说明:

  • 在上面的(de)程序中使用了游标,它基本上(shàng)是一个用于与整个MySQL服务(wù)器通信(xìn)的对象,通过它我可以创建自己的数据库。

  • 您(nín)可以(yǐ)从(cóng)输出中看到创建了(le)名(míng)为“harshdb”的数据库,该数据库(kù)是自定义的,因(yīn)为(wéi)您可以(yǐ)为(wéi)数(shù)据库指定(dìng)任(rèn)何(hé)名称。

同时,如(rú)果你想要查看服务器中(zhōng)已经建立(lì)的数据库,可以使用以下代码:

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'

数(shù)据库操(cāo)作

数据库的基本操作包(bāo)括:创建、读取、更新和删(shān)除,下面我通(tōng)过(guò)示例程序来为大家演示基本使用方法。

创建操(cāo)作:用于在表中创建记录的SQL语句,或者可以说它用于创(chuàng)建表。代码如(rú)下:

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))")

程序说明:

  • 在上面(miàn)给出的程(chéng)序中,我创建了一个表'employee'。

  • 表(biǎo)员工有两个字段'name'和'sal'。

  • 这里,User id是“root”,Password是“password123”,用(yòng)于访问harshdb。

下(xià)面给出的屏幕截图(tú)显(xiǎn)示了表'employee'并返回字段'name'和'sal'。

P2.jpg

读取(qǔ)写入:用于从数据库(kù)中(zhōng)获取有用信息。代码示例如下:

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

在上(shàng)面的(de)代码中,我通过在(zài)Python中编写SQL语句写(xiě)入一组员工数据。写(xiě)入之(zhī)后数据库的屏(píng)幕截(jié)图显示如下:

P3.jpg

更(gèng)新 :用(yòng)于更新表(biǎo)中的(de)记录(lù)或更(gèng)新表。代码如下:

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()

程序说(shuō)明:我们在上面(miàn)给出的代码中更新了harshit的行“sal”。下(xià)面给出的数据库截图显示更新结果。

P4.jpg

删(shān)除 :用于删除表格。代码示例如下:

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()

程序说明:在上面的(de)代码中,我删(shān)除了一(yī)条'harshit'的重复(fù)记录(lù)。

Python连接数据库(kù)还有(yǒu)一个(gè)pymysql函数(shù)包,该(gāi)包(bāo)也十分简单(dān)且方便的与数(shù)据库进行(háng)交互,大家可(kě)以尝试一下。


山东省济南市(shì)历下区(qū)舜华路750号大学科(kē)技园北(běi)区(qū)3号楼
服务热线:13256445996                                  www.liaoyang.bynr.xinxiang.zz.pingliang.ww38.viennacitytours.com

欧宝网页版登录入口-欧宝(中国

欧宝网页版登录入口-欧宝(中国