【SQL】使用及安装、pymysql连接和操作 MySQL 数据库的 Python 模块

2023-12-25 10:03:23

一、数据库介绍
二、MySQL的安装
三、MySQL的入门使用
四、SQL基础与DDL定义数据库的结构和对象,包括库、表、索引等
五、SQL - DML操作和处理数据库中的数据
六、SQL - DQL从数据库中检索数据
七、Python & MySQL

MySQL的安装、DBeaver图形化工具

一、数据库介绍

1、数据库的作用

在这里插入图片描述

数据库如何存储数据

在这里插入图片描述

2、常见的数据库软件

数据库管理系统(数据库软件)

在这里插入图片描述

数据库和SQL的关系

数据库是用来存储数据的,在这个过程中,会涉及到:

  • 数据的新增
  • 数据的删除
  • 数据的修改
  • 数据的查询
  • 数据库、数据表的管理
  • 等等

而SQL语言,就是一种对数据库、数据进行操作、管理、查询的工具。

使用数据库软件去获得库->表->数据,这种数据组织、存储的能力并借助SQL语言,完成对数据的增删改查等操作

总结

  1. 数据库是什么?有什么作用呢?
    数据库就是指数据存储的库,作用就是组织数据并存储数据。
  2. 数据库如何组织数据呢?
    按照:库 -> 表 -> 数据 三个层级进行组织
  3. 数据库软件是什么?
    数据库软件就是提供库->表->数据,这种数据组织形式的工具软件,也称之为数据库管理系统
    常见的数据库软件有:Oracle、MySQL、SQL Server、PostgreSQL、SQLite等。
  4. 数据库和SQL的关系是?
    数据库(软件)提供数据组织存储的能力
    SQL语句则是操作数据、数据库的工具语言

二、MySQL的安装

在Windows系统中安装MySQL数据库
MySQL官网
下载地址:https://dev.mysql.com/downloads/windows/installer/

MySQL的版本

针对不同的用户,MySQL分为两种不同的版本:
免费:
MySQL Community Server
社区版本,免费,但是Mysql不提供官方技术支持。
MySQL Cluster
集群版,开源免费,可将几个MySQL Server封装成一个Server。
收费:
MySQL Enterprise Edition
商业版,该版本是收费版本,可以试用30天,官方提供技术支持
MySQL Cluster CGE
高级集群版,需付费。

1、下载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择离线安装
在这里插入图片描述

2、安装

基本上是NEXT和Finsh
在这里插入图片描述
在这里插入图片描述

3、配置用户

也是基本上是NEXT和Finsh
在这里插入图片描述
执行Execute
在这里插入图片描述
点击Finsh
在这里插入图片描述

4、环境配置

C:\Program Files\MySQL\MySQL Server 8.0

开始安装配置的文件在上面的路径

然后复制目录bin下的路径

C:\Program Files\MySQL\MySQL Server 8.0\bin

在这里插入图片描述
最后点击此电脑右键属性
在这里插入图片描述
进入高级系统设置
在这里插入图片描述
里面的环境变量
在这里插入图片描述
在系统变量里面的Path双击
在这里插入图片描述
新建把开始目录下的bin文件路径复制进来最后全部确认
在这里插入图片描述

5、安装完成验证

WIN+R输入cmd进入命令提示符

mysql -uroot -p

在这里插入图片描述
或者
在这里插入图片描述
在这里插入图片描述

三、MySQL的入门使用

使用图形化工具操作MySQL数据库软件

在命令提示符内使用MySQL

MySQL安装好后,就可以简单的尝试使用它。

打开:命令提示符程序,输入:mysql -uroot -p,然后回车后输入密码,即可进入命令行环境

mysql -uroot -p

在MySQL的命令行环境下,可以通过:

  • show databases; 查看有哪些数据库
  • use 数据库名; 使用某个数据库
  • show tables; 查看数据库内有哪些表
  • exit 退出MySQL的命令行环境
    等基础命令。

这些命令就是后面我们要学习的SQL语言哦
在这里插入图片描述

注意:

  • information_schema
  • mysql
  • performance_schema
    这三个库是MySQL自带的库不要去修改它否则可能导致MySQL软件出问题
    在这里插入图片描述

使用图形化工具操作MySQL

使用命令提示符进行MySQL的操作,不是太方便,一般开发者都会使用第三方的图形化工具进行使用。
可用于MySQL的图形化工具非常多,课程使用跨平台、开源、免费的图形化工具:DBeaver

下载地址:https://dbeaver.io/download
我们选择免费的社区版(DBeaver Community)
选择适用自己电脑系统的安装包下载即可。
在这里插入图片描述

DBeaver安装

在这里插入图片描述

DBeaver连接MySQL

打开DBeaver软件
在这里插入图片描述
连接MySQL
在这里插入图片描述
输入密码测试连接
在这里插入图片描述
下载依赖的驱动文件
在这里插入图片描述
完成连接
在这里插入图片描述
在这里插入图片描述

四、SQL基础与DDL定义数据库的结构和对象,包括库、表、索引等

1、SQL的概述

SQL(Structured Query Language)是一种用于管理和操作关系型数据库管理系统(RDBMS)的标准化查询语言。SQL 是一种声明式语言,用户只需要描述他们想要做什么,而不需要详细说明如何实现。以下是 SQL 的概述:

  1. 定义: SQL 是一种用于处理和管理关系数据库的语言。它提供了一种结构化的方法来定义、操作和查询数据库中的数据。

  2. 关系数据库管理系统(RDBMS): SQL 主要用于与关系数据库进行交互,而关系数据库则是通过表格形式存储数据的数据库。常见的 RDBMS 包括 MySQL、PostgreSQL、Oracle Database、Microsoft SQL Server 等。

  3. 基本操作: SQL 支持以下基本操作:

    • 查询(Query): 用于从数据库中检索数据,例如使用 SELECT 语句。
    • 插入(Insert): 用于向数据库表中添加新的数据行,例如使用 INSERT INTO 语句。
    • 更新(Update): 用于修改数据库表中的数据,例如使用 UPDATE 语句。
    • 删除(Delete): 用于从数据库表中删除数据行,例如使用 DELETE FROM 语句。
  4. 数据定义语言(DDL): SQL 包括一组用于定义数据库结构的语句,这些语句属于数据定义语言。常见的 DDL 操作包括:

    • 创建表(CREATE TABLE): 用于定义新表的结构。
    • 修改表(ALTER TABLE): 用于修改表的结构。
    • 删除表(DROP TABLE): 用于删除表。
  5. 数据操作语言(DML): SQL 还包括一组用于操作表中数据的语句,这些语句属于数据操作语言。常见的 DML 操作包括:

    • 插入数据(INSERT INTO): 用于向表中插入新的数据。
    • 更新数据(UPDATE): 用于修改表中的数据。
    • 删除数据(DELETE FROM): 用于从表中删除数据。
  6. 数据查询语言(DQL): SQL 的主要功能之一是查询数据库中的数据。查询语言包括 SELECT 语句,它用于从一个或多个表中检索数据。

SELECT column1, column2 FROM table WHERE condition;
  1. 约束: SQL 支持约束,用于定义在表中允许存储的数据的规则。常见的约束包括主键、外键、唯一性约束、检查约束等。

  2. 事务控制: SQL 提供了事务控制机制,确保数据库操作的一致性和可靠性。事务通常由 BEGIN TRANSACTIONCOMMITROLLBACK 语句来控制。

SQL 是数据库领域的标准语言,其简洁而强大的语法使得用户可以轻松地执行各种数据库操作。

DDL概述

DDL(Data Definition Language)是 SQL 中的一种语言类型,主要用于定义数据库的结构和对象,包括库、表、索引等。DDL 操作主要涉及对数据库的创建、修改和删除。以下是 DDL 的主要操作:

  1. 创建数据库(CREATE DATABASE):
    • 用于创建新的数据库。语法如下:
CREATE DATABASE database_name;
  1. 删除数据库(DROP DATABASE):
    • 用于删除现有的数据库。语法如下:
DROP DATABASE database_name;
  1. 创建表(CREATE TABLE):
    • 用于定义新表的结构。在 CREATE TABLE 语句中,需要指定表的列名、数据类型和约束等信息。语法如下:
CREATE TABLE table_name (
    column1 datatype1,
    column2 datatype2,
    ...
    CONSTRAINT constraint_name PRIMARY KEY (one_or_more_columns)
);
  1. 修改表结构(ALTER TABLE):
    • 用于修改现有表的结构。可以执行的操作包括添加列、删除列、修改列数据类型、添加约束等。语法如下:
ALTER TABLE table_name
ADD column_name datatype;

ALTER TABLE table_name
DROP COLUMN column_name;
  1. 删除表(DROP TABLE):
    • 用于删除现有的表。语法如下:
DROP TABLE table_name;
  1. 约束(Constraints):
    • 约束用于定义表中列的规则,以确保数据的完整性和一致性。常见的约束包括主键约束、唯一性约束、外键约束、检查约束等。
CREATE TABLE students (
    student_id INT PRIMARY KEY,
    student_name VARCHAR(50) NOT NULL,
    age INT CHECK (age >= 18),
    UNIQUE (student_name)
);

DDL 操作是在数据库设计和维护阶段使用的关键操作。通过定义数据库的结构,DDL 允许用户创建和管理数据库中的各种对象,确保数据的一致性和有效性。

2、SQL语言的分类

由于数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账户管理、权限管理等等。
所以,操作数据库的SQL语言,也基于功能,可以划分为4类:

  • 数据定义:DDL(Data Definition Language)
    • 库的创建删除、表的创建删除等
  • 数据操纵:DML(Data Manipulation Language)
    • 新增数据、删除数据、修改数据等
  • 数据控制:DCL(Data Control Language)
    • 新增用户、删除用户、密码修改、权限管理等
  • 数据查询:DQL(Data Query Language)
    • 基于需求查询和计算数据

SQL语言的确根据其功能可以划分为四个主要的类别:DDL、DML、DCL、DQL。让我们更详细地了解每个类别:

  1. 数据定义语言(DDL - Data Definition Language):

    • DDL 主要用于定义数据库结构和对象,包括库、表、索引等。常见的 DDL 操作包括:
      • 创建数据库(CREATE DATABASE): 用于创建新的数据库。
      • 删除数据库(DROP DATABASE): 用于删除现有的数据库。
      • 创建表(CREATE TABLE): 用于定义新的表结构。
      • 修改表结构(ALTER TABLE): 用于修改现有表的结构。
      • 删除表(DROP TABLE): 用于删除现有的表。
      • 等等。
  2. 数据操纵语言(DML - Data Manipulation Language):

    • DML 用于操作和处理数据库中的数据。主要的 DML 操作包括:
      • 插入数据(INSERT INTO): 用于将新数据插入到表中。
      • 更新数据(UPDATE): 用于修改表中的现有数据。
      • 删除数据(DELETE FROM): 用于从表中删除数据。
      • 查询数据(SELECT): 用于从表中检索数据。
      • 等等。
  3. 数据控制语言(DCL - Data Control Language):

    • DCL 用于控制数据库访问权限和安全性。主要的 DCL 操作包括:
      • 授予权限(GRANT): 用于赋予用户或角色特定的权限。
      • 撤销权限(REVOKE): 用于从用户或角色中收回权限。
      • 创建用户(CREATE USER): 用于创建新的数据库用户。
      • 修改用户密码(ALTER USER): 用于更改用户的密码。
      • 等等。
  4. 数据查询语言(DQL - Data Query Language):

    • DQL 用于检索和查询数据库中的数据。主要的 DQL 操作是 SELECT 语句,用于满足特定条件的数据检索和计算。
SELECT column1, column2 FROM table WHERE condition;

这四类 SQL 语言一起构成了对关系型数据库进行全面操作和管理的基础。在实际应用中,通常需要综合使用这些语言来满足数据库的各种需求。

3、SQL的语法特征

在学习DDL、DQL等之前,我们先来了解SQL的语法特征。

  • SQL语言,大小写不敏感
  • SQL可以单行或多行书写,最后以;号结束
  • SQL支持注释:
    • 单行注释: – 注释内容(–后面一定要有一个空格)
    • 单行注释:# 注释内容(# 后面可以不加空格,推荐加上)
    • 多行注释:/* 注释内容 */

基础的DDL语法

DDL - 库管理

在这里插入图片描述

DDL - 表管理

在这里插入图片描述

总结

  1. SQL语言是什么?有什么作用?
    SQL:结构化查询语言,用于操作数据库,通用于绝大多数的数据库软件
  2. SQL的特征
    • 大小写不敏感
    • 需以;号结尾
    • 支持单行、多行注释
  3. SQL语言的分类
    • DDL数据定义
    • DML数据操作
    • DCL数据控制
    • DQL数据查询
  4. DDL中数据库管理的语法
    在这里插入图片描述
  5. DDL中数据表管理的语法
    在这里插入图片描述

五、SQL - DML操作和处理数据库中的数据

DML概述

DML(Data Manipulation Language)是 SQL 中的一种语言类型,主要用于操作和处理数据库中的数据。DML 提供了一组操作,使用户能够插入、更新、删除和查询数据库中的数据。以下是 DML 的主要操作:

  1. 插入数据(INSERT INTO):
    • 用于将新的数据插入到数据库表中。语法如下:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  1. 更新数据(UPDATE):
    • 用于修改表中现有数据的值。语法如下:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
  1. 删除数据(DELETE FROM):
    • 用于从表中删除符合特定条件的数据行。语法如下:
DELETE FROM table_name
WHERE condition;
  1. 查询数据(SELECT):
    • 用于从表中检索数据。虽然 SELECT 语句主要用于数据查询,但也可包含其他 DML 操作,例如计算列、排序和过滤数据。语法如下:
SELECT column1, column2, ...
FROM table_name
WHERE condition;

DML 操作是用户与数据库交互的重要手段,它们使用户能够有效地处理和管理数据库中的数据。通过结合使用插入、更新、删除和查询操作,可以满足各种数据处理需求。在执行 DML 操作时,通常会结合使用事务来确保操作的一致性和完整性。

1、DML:INSERT数据插入

在这里插入图片描述

2、DML:DELETE数据删除

在这里插入图片描述

3、DML:UPDATE数据更新

在这里插入图片描述

注意事项
字符串的值,出现在SQL语句中,必须要用单引号包围起来

六、SQL - DQL从数据库中检索数据

DQL概述

DQL(Data Query Language)是 SQL 中的一种语言类型,主要用于从数据库中检索数据。DQL 的核心操作是使用 SELECT 语句,该语句允许用户指定要检索的列、表以及任何过滤条件。以下是 DQL 的主要操作:

  1. SELECT 语句:
    • 用于从一个或多个表中检索数据。语法如下:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
  • SELECT 语句可以指定要检索的列(字段),也可以使用通配符 * 表示检索所有列。FROM 子句指定要检索数据的表,而 WHERE 子句用于过滤检索的数据。
  1. 聚合函数:
    • DQL 还包括一组聚合函数,用于对检索到的数据执行计算。常见的聚合函数包括 COUNT(计数)、SUM(求和)、AVG(平均值)、MAX(最大值)、MIN(最小值)等。
SELECT COUNT(column1), AVG(column2), MAX(column3)
FROM table_name
WHERE condition;
  1. 排序(ORDER BY):
    • 使用 ORDER BY 子句对检索到的数据进行排序。可以按照一个或多个列进行升序(ASC)或降序(DESC)排序。
SELECT column1, column2
FROM table_name
ORDER BY column1 ASC, column2 DESC;
  1. 分组(GROUP BY):
    • 使用 GROUP BY 子句将检索到的数据按照指定的列进行分组。通常与聚合函数一起使用。
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;
  1. 连接(JOIN):
    • 使用 JOIN 操作将多个表中的数据关联起来。JOIN 子句允许根据共同的列将两个或多个表的数据合并。
SELECT orders.order_id, customers.customer_name
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id;

DQL 提供了强大的查询和计算功能,使用户能够灵活地检索和分析数据库中的数据。通过组合使用不同的子句和函数,可以满足各种复杂的查询需求。

1、基础查询

DQL:SELECT语句进行基础的数据查询
在这里插入图片描述

基础数据查询 - 过滤

在这里插入图片描述

总结

在这里插入图片描述

2、分组聚合

DQL:GROUP BY 进行分组聚合查询
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

3、排序分页

DQL:对查询结果进行排序分页

结果排序

在这里插入图片描述

结果分页限制

在这里插入图片描述

总结

在这里插入图片描述

七、Python & MySQL

1、基础使用

Python执行SQL语句操作MySQL数据库软件

pymysql 连接和操作 MySQL 数据库的 Python 模块

pymysql 是一个用于连接和操作 MySQL 数据库的 Python 模块。它是 Python 语言中与 MySQL 交互最为常用的模块之一,提供了对 MySQL 数据库进行增、删、改、查等操作的功能。

以下是使用 pymysql 连接和操作 MySQL 数据库的基本步骤:

  1. 安装 pymysql 模块:
    在使用 pymysql 之前,首先需要安装该模块。可以使用以下命令进行安装:

    pip install pymysql
    
  2. 连接到 MySQL 数据库:
    使用 pymysql 中的 connect 函数建立与 MySQL 数据库的连接。需要提供数据库的主机地址、用户名、密码、数据库名称等信息。

    import pymysql
    
    # 连接数据库
    connection = pymysql.connect(
        host='localhost',
        user='your_username',
        password='your_password',
        database='your_database'
    )
    
  3. 创建游标对象:
    游标是用于执行 SQL 语句并获取结果的对象。可以使用 cursor 方法创建游标对象。

    # 创建游标
    cursor = connection.cursor()
    
  4. 执行 SQL 语句:
    使用游标对象执行 SQL 语句,例如查询数据、插入数据、更新数据等。

    # 查询数据
    cursor.execute('SELECT * FROM your_table')
    result = cursor.fetchall()
    print(result)
    
    # 插入数据
    cursor.execute('INSERT INTO your_table (column1, column2) VALUES (%s, %s)', ('value1', 'value2'))
    connection.commit()
    
  5. 关闭游标和数据库连接:
    执行完数据库操作后,需要关闭游标和数据库连接,释放资源。

    # 关闭游标
    cursor.close()
    
    # 关闭数据库连接
    connection.close()
    

以上是简单的示例,实际应用中可能需要处理异常、使用参数化查询、事务管理等更复杂的操作。pymysql 提供了丰富的功能,可以满足不同场景下对 MySQL 数据库的操作需求。

创建到MySQL的数据库链接

在这里插入图片描述

执行SQL语句

在这里插入图片描述
在这里插入图片描述

代码

"""
演示Python pymysql库的基础操作
"""
from pymysql import Connection

# 构建到MySQL数据库的链接
conn = Connection(
    host="localhost",   # 主机名(IP)
    port=3306,          # 端口
    user="root",        # 账户
    password="123456",  # 密码
    autocommit=True     # 设置自动提交
)

# print(conn.get_server_info())
# 执行非查询性质SQL
cursor = conn.cursor()      # 获取到游标对象
# 选择数据库
conn.select_db("world")
# 执行sql
cursor.execute("insert into student values(10001, '周杰轮', 31, '男')")
# 关闭链接
conn.close()

总结

  1. Python中使用什么第三方库来操作MySQL?如何安装?
    使用第三方库为:pymysql
    安装:pip install pymysql
  2. 如何获取链接对象?
    • from pymysql import Connection 导包
    • Connection(主机,端口,账户,密码)即可得到链接对象
    • 链接对象.close() 关闭和MySQL数据库的连接
  3. 如何执行SQL查询
    通过连接对象调用cursor()方法,得到游标对象
    • 游标对象.execute()执行SQL语句
    • 游标对象.fetchall()得到全部的查询结果封装入元组内

2、数据插入

Python执行SQL语句插入数据到MySQL

commit提交

在这里插入图片描述

自动commit

在这里插入图片描述

代码

"""
演示使用pymysql库进行数据插入的操作
"""
from pymysql import Connection

# 构建到MySQL数据库的链接
conn = Connection(
    host="localhost",   # 主机名(IP)
    port=3306,          # 端口
    user="root",        # 账户
    password="123456",  # 密码
    autocommit=True     # 自动提交(确认)
)

# print(conn.get_server_info())
# 执行非查询性质SQL
cursor = conn.cursor()      # 获取到游标对象
# 选择数据库
conn.select_db("world")
# 执行sql
cursor.execute("insert into student values(10002, '林俊节', 31, '男')")
# # 通过commit确认
# conn.commit()
# 关闭链接
conn.close()

总结

  1. 什么是commit提交?
    pymysql库在执行对数据库有修改操作的行为时,是需要通过链接对象的commit成员方法来进行确认的。
    只有确认的修改,才能生效。
  2. 如何自动提交呢?
    在这里插入图片描述

文章来源:https://blog.csdn.net/m0_62140641/article/details/135110364
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。