MySQL数据库学习(小白一文掌握Mysql)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL数据库学习(小白一文掌握Mysql)

Python 是一种高级编程语言,它可以轻松地与各种数据库进行交互,其中包括 MySQL 数据库。MySQL 是一种开源的关系型数据库管理系统,被广泛应用于各种应用程序和网站的后端。在本文中,我将介绍如何使用 Python 操作 MySQL 数据库,并提供一些代码示例。


安装 MySQL Connector

在开始使用 Python 操作 MySQL 数据库之前,我们需要安装一个 Python MySQL Connector。有很多 Python MySQL Connector 可供选择,其中包括 MySQLdb、PyMySQL 和 mysql-connector-python。在本文中,我将使用 mysql-connector-python。你可以使用以下命令来安装 mysql-connector-python:

pip install mysql-connector-python


连接到 MySQL 数据库

在使用 Python 操作 MySQL 数据库之前,我们需要建立一个连接。在连接到 MySQL 数据库时,我们需要提供以下信息:


  • 主机名或 IP 地址
  • 用户名
  • 密码
  • 数据库名称


我们可以使用以下代码来连接到 MySQL 数据库:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

print(mydb)


在上面的代码中,我们使用 mysql.connector 模块来连接到 MySQL 数据库。我们提供了主机名、用户名、密码和数据库名称作为参数。如果连接成功,将打印出连接对象的详细信息。


创建数据库和表

在连接到MySQL 数据库之后,我们可以通过 Python 来创建数据库和表。下面是一些常用的 SQL 命令:


  • 创建数据库:CREATE DATABASE databasename
  • 创建表:CREATE TABLE tablename (column1 datatype, column2 datatype, column3 datatype, ... )


我们可以使用以下代码来创建一个名为 customers 的表:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")


在上面的代码中,我们首先连接到 MySQL 数据库,然后创建一个名为 customers 的表。这个表包含两个列:nameaddress,它们的数据类型分别为 VARCHAR(255)


插入数据

在创建表之后,我们可以使用 Python 向表中插入数据。下面是一些常用的 SQL 命令:


  • 插入数据:INSERT INTO tablename (column1, column2, column3, ...) VALUES (value1, value2, value3, ...)


我们可以使用以下代码向 customers 表中插入一条记录:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")

在上面的代码中,我们首先连接到 MySQL 数据库,然后向 customers 表中插入一条记录。我们使用了占位符 %s 来代替实际的值,然后在执行 SQL 语句之前将值传递给 execute() 方法。


最后,我们调用 commit() 方法来保存更改,然后打印出插入的记录数。


查询数据

在插入数据之后,我们可以使用 Python 查询表中的数据。下面是一些常用的 SQL 命令:


  • 查询数据:SELECT column1, column2, column3, ... FROM tablename
  • 条件查询:SELECT column1, column2, column3, ... FROM tablename WHERE condition


我们可以使用以下代码查询 customers 表中的所有记录:


import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

在上面的代码中,我们首先连接到 MySQL 数据库,然后执行 SELECT * FROM customers 命令查询 customers 表中的所有记录。我们使用 fetchall() 方法获取所有查询结果,然后使用循环打印出每条记录。


更新数据

在查询数据之后,我们可以使用 Python 更新表中的数据。下面是一些常用的 SQL 命令:

  • 更新数据:UPDATE tablename SET column1 = value1, column2 = value2, ... WHERE condition


我们可以使用以下代码将 address 列的值从 Highway 21 更新为 Park Lane

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "UPDATE customers SET address = %s WHERE address = %s"
val = ("Park Lane 38", "Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record(s) affected")


在上面的代码中,我们首先连接到 MySQL 数据库,然后使用 UPDATE 命令将 address 列的值从 Highway 21 更新为 Park Lane 38。我们使用占位符 %s 来代替实际的值,然后在执行 SQL 语句之前将值传递给 execute() 方法。


最后,我们调用 commit() 方法来保存更改,然后打印出受影响的记录数。


删除数据

在更新数据之后,我们可以使用 Python 删除表中的数据。下面是一些常用的 SQL 命令:


  • 删除数据:DELETE FROM tablename WHERE condition


我们可以使用以下代码删除 address 列的值为 Park Lane 38 的记录:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "DELETE FROM customers WHERE address = %s"
adr = ("Park Lane 38", )
mycursor.execute(sql, adr)

mydb.commit()

print(mycursor.rowcount, "record(s) deleted")


在上面的代码中,我们首先连接到 MySQL 数据库,然后使用 DELETE FROM 命令删除 address 列的值为 Park Lane 38 的记录。我们使用占位符 %s 来代替实际的值,然后在执行 SQL 语句之前将值传递给 execute() 方法。


最后,我们调用 commit() 方法来保存更改,然后打印出删除的记录数。


完整示例

下面是一个完整的 Python 示例,展示了如何连接到 MySQL 数据库、创建表、插入数据、查询数据、更新数据和删除数据:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

# 创建表
mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")

# 插入数据
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")

# 查询数据
mycursor.execute("SELECT * FROM customers")

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

# 更新数据
sql = "UPDATE customers SET address = %s WHERE address = %s"
val = ("Park Lane 38", "Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record(s) affected")

# 删除数据
sql = "DELETE FROM customers WHERE address = %s"
adr = ("Park Lane 38", )
mycursor.execute(sql, adr)

mydb.commit()

print(mycursor.rowcount, "record(s) deleted")


在上面的代码中,我们首先连接到 MySQL 数据库,然后创建一个名为 customers 的表。接下来,我们向 customers 表中插入一条记录,并使用 SELECT 命令查询所有记录。然后,我们使用 UPDATE 命令将 address 列的值从 Highway 21 更新为 Park Lane 38,并使用 DELETE 命令删除 address 列的值为 Park Lane 38 的记录。最后,我们调用 commit() 方法来保存更改,并打印出插入、更新和删除的记录数。


这就是使用 Python 操作 MySQL 数据库的基本方法。使用 Python 和 MySQL,你可以轻松地创建、操作和管理数据库。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
24 2
|
5天前
|
SQL 关系型数据库 MySQL
MySQL环境搭建——“MySQL数据库”
MySQL环境搭建——“MySQL数据库”
|
5天前
|
SQL NoSQL 关系型数据库
初识MySQL数据库——“MySQL数据库”
初识MySQL数据库——“MySQL数据库”
|
7天前
|
关系型数据库 MySQL 数据库
数据库基础(mysql)
数据库基础(mysql)
|
7天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
32 3
|
8天前
|
存储 关系型数据库 MySQL
【后端面经】【数据库与MySQL】为什么MySQL用B+树而不用B树?-02
【4月更文挑战第11天】数据库索引使用规则:`AND`用`OR`不用,正用反不用,范围中断。索引带来空间和内存代价,包括额外磁盘空间、内存占用和数据修改时的维护成本。面试中可能涉及B+树、聚簇索引、覆盖索引等知识点。MySQL采用B+树,因其利于范围查询和内存效率。数据库不使用索引可能因`!=`、`LIKE`、字段区分度低、特殊表达式或全表扫描更快。索引与NULL值处理在不同数据库中有差异,MySQL允许NULL在索引中的使用。
12 3
|
10天前
|
关系型数据库 MySQL 数据库连接
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
33 11
|
15天前
|
关系型数据库 MySQL 数据库
卸载云服务器上的 MySQL 数据库
卸载云服务器上的 MySQL 数据库
31 0
|
15天前
|
存储 关系型数据库 MySQL
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
44 0
|
19天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
101 0