从零开始学python | 数据库连接:知道如何与数据库连接

举报
Yuchuan 发表于 2021/04/15 23:08:06 2021/04/15
【摘要】 这使我们到了关于“ Python数据库连接”的文章的结尾。我希望您对与数据库,MYSQL db和python中的数据库操作有关的所有概念都清楚。确保

即使您考虑使用Python之类的强大编程语言,数据库对于存储和处理数据也至关重要。有没有想过,这整套大数据在哪里存储或从中获取?在有关“ Python数据库连接”的本文中,我将进行讨论,并详细介绍以下方面。

让我们开始吧 :)

什么是数据库?

数据库基本上是结构化数据的集合,其存储方式可以很容易地以各种方式进行检索,管理和访问。文本数据库是最简单的数据库形式之一。关系数据库是最流行的数据库系统,包括以下内容:

  • MySQL
  • Oracle Database
  • SQL server
  • Sybase
  • Informix
  • IBM db2
  • NO SQL

在所有这些数据库中,MySQL是最容易使用的数据库之一。让我详细介绍一下。

什么是MySQLdb?

MySQLdb是使用结构化查询语言的开源免费关系数据库管理系统。现在,这里最重要的问题之一是“什么是SQL?”

SQL(结构化查询语言)是关系数据库的标准语言,允许用户对数据进行各种操作,如操纵,创建,删除等。简而言之,SQL允许您对数据进行任何操作。

让我们继续前进,深入研究Python数据库连接,在其中您将学习如何与数据库连接。

Python如何连接到数据库? 

将Python与数据库连接非常简单。请参考下图,该图说明了与数据库的Python连接,其中如何将连接请求发送到MySQL连接器Python,如何从数据库接受连接请求并使用结果数据执行游标。

Python数据库连接-Edureka

连接到MySQL数据库之前,请确保您已在计算机上安装MySQL安装程序。它提供了一套全面的工具,可帮助安装具有以下组件的MySQL:

  • MySQL server
  • All available connectors
  • MySQL Workbench
  • MySQL Notifier
  • Tools for Excel and Microsoft Visual Studio
  • MySQL Sample Databases
  • MySQL Documentation

要下载MySQL安装程序,请观看以下视频,其中介绍了在安装MySQL时需要遵循的各个步骤。

在继续之前,您应确保计算机上已安装MySQL数据库。请参考以下命令在命令提示符和pycharm中安装MySQL:

使用点数:

命令:

pip安装mysql-connector

使用Pycharm 

命令:

import mysql.connector

输出:

C:UsersHarshit_KantPycharmProjectstest1venvScriptspython.exe

C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py

流程结束,退出代码为0

在本文中继续使用Python数据库连接,让我们看到连接到数据库所需的参数:

  • 用户名-这只是您为使用MySQL服务器提供的用户名,默认用户名是root。
  • 密码-  安装MySQL数据库后,由用户提供密码。我在这里输入密码为“ password123”
  • 主机名-这基本上是运行MySQL的服务器名或IP地址,如果它是“ localhost”,则您的IP地址为127.0.0.0

我将从编码的角度向您展示如何将python与MySQL数据库连接。

例子:

import mysql.connector
 
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123") // I have used 'host','username','password'
 
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>

流程结束,退出代码为0

说明:这里的“ 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")

输出:

C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py

Process finished with exit code 0

解释:

  • 在上面的程序中,我使用了游标,它基本上是一个对象,用于与您的整个MySQL服务器进行通信,通过它我可以创建自己的数据库。
  • 您可以从输出中看到创建了名为“ harshdb”的自定义数据库,因为您可以给数据库指定任何名称。

如果要查看MySQL服务器中的数据库,可以在pycharm中实现以下代码:

例子 :

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)

输出:

C:UsersHarshit_KantPycharmProjectstest1venvScriptspython.exe C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py
('harshdb',)
('information_schema',)
('mysql',)
('performance_schema',)
( 'sakila',)
('sys',)
('world',)

流程结束,退出代码为0

解释:

  • 通过实现上述代码,我尝试显示了MySQL服务器中现有的所有数据库。


现在,您已经创建了数据库,让我们通过执行少量操作来深入了解Python数据库连接的最重要方面之一。让我们详细了解这一点。

数据库操作[CRUD]:

程序员可以使用数据库和SQL进行许多操作,以便对数据库编程和MySQL有所了解

我已经在下面演示了CRUD操作

  • 创建–这是一条SQL语句,用于在表中创建记录,或者可以说它用于创建表。
  • 读取-用于从数据库中获取有用的信息。
  • 更新- 此特定的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))")

输出:

C:UsersHarshit_KantPycharmProjectstest1venvScriptspython.exe C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py

流程结束,退出代码为0

解释:

  • 在上述程序中,我创建了一个表'employee'。
  • 表employee有两个字段“名称”和“ sal”。
  • 在此,用于访问harddb的用户标识为“ root”,密码为“ password123”。

下面给出的屏幕快照显示了表'employee'并返回字段'name'和'sal'。

创建Operation-Edureka

为了查看我创建的表,请参考以下python代码

import mysql.connector
 
mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123",database="harshdb")
mycursor=mydb.cursor()
mycursor.execute("show tables")
 
for tb in mycursor:
    print(tb)

输出:

C:UsersHarshit_KantPycharmProjectstest1venvScriptspython.exe C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py
('employee',)

流程结束,退出代码为0

    下面给出的屏幕快照显示了我创建的表“ employee”。

    截屏:

    显示表-Edureka

    现在您已经了解了如何创建表,让我们看一下用户如何从表中获取值。

    读取操作:

    此特定操作发生在各个阶段。为了做到这一点,第一步是填充表格。

    代码:

    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

    输出:

    C:UsersHarshit_KantPycharmProjectstest1venvScriptspython.exe

    C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py

    流程结束,退出代码为0

    在上面的代码中,我通过用Python编写SQL语句使用一组雇员来填充数据。下面的数据库屏幕快照将显示更改

    阅读Operation-Edureka

    在这里,“ harshit”在创建数组时在记录中使用了两次。

    阶段2:在此阶段中,我们将使用“选择” SQL语句进行实际的读取操作。

    • fetchall() –此特定函数从上次执行的语句中获取所有数据。
    • fetchone()- 此特定语句从最后执行的语句中获取一个数据。

    代码:

    import mysql.connector
     
    mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123",database="harshdb")
    mycursor=mydb.cursor()
     
    mycursor.execute("select * from employee")
     
    myresult = mycursor.fetchall()
     
    for row in myresult:
        print(row)

    输出:

    ('harshit',200000)
    ('harshit',200000)
    ('rahul',30000)
    ('avinash',40000)
    ('amit',50000)

    流程结束,退出代码为0

    说明:在上面的代码中,我们使用了函数“ fetchall()”。它从最后执行的语句中获取所有数据。

    下面给出的是数据库的屏幕截图。

    fetchall函数-Edureka

    代码:

    import mysql.connector
     
    mydb=mysql.connector.connect(host="localhost",user="root",passwd="password123",database="harshdb")
    mycursor=mydb.cursor()
     
    mycursor.execute("select name from employee")//selecting the field i want data to be fetched from
     
    myresult = mycursor.fetchone()
     
    for row in myresult:
        print(row)

    输出:

    C:UsersHarshit_KantPycharmProjectstest1venvScriptspython.exe C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py
    harshit

    流程结束,退出代码为0

    说明:在上面的代码中,我使用了函数“ fetchone()”,该函数基本上从最后执行的语句中提取单个数据。

    这就是“读取操作”的全部内容,让我们深入了解“更新”操作。

    更新操作:

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

    输出:

    C:UsersHarshit_KantPycharmProjectstest1venvScriptspython.exe

    C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py

    流程结束,退出代码为0

    说明:我们已经更新了上面给出的记录中“ salit”记录的“ sal”行。下面给出的截图将为您提供清晰的图片。

    截屏:

    更新操作-Edureka

    如您所见,记录“ harshit”的行“ sal”已更新为70000。

    这都是关于更新操作的,继续“ Python数据库连接”文章,我们将看到最后一个操作是“删除”。

    删除操作:

    顾名思义,Delete操作用于从表中删除记录。让我们从编码的角度来理解它。

    代码:

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

    输出:

    C:UsersHarshit_KantPycharmProjectstest1venvScriptspython.exe

    C:/Users/Harshit_Kant/PycharmProjects/test1/venv/python-db-conn.py

    流程结束,退出代码为0

    说明:在上面的代码中,我删除了一条记录“ harshit”,因为它被重复了两次。

    下面给出的屏幕截图将为您提供更好的图片。

    删除Operation-Edureka

    从屏幕截图中可以清楚地看到,记录“ harshit”已被删除。好了,您可以从删除操作本身进行另一组操作,例如删除薪水。我只提到了两个字段,所以记录上可以执行的操作受到限制,但是您可以在同一表“ employee”或您创建的任何其他表下创建更多字段。

    这使我们到了关于“ Python数据库连接”的文章的结尾。我希望您对与数据库,MYSQL db和python中的数据库操作有关的所有概念都清楚。确保尽可能多地练习并恢复经验。

    【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
    • 收藏
    • 关注作者

    评论(0

    0/1000
    抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。