【SQL】使用及安装、pymysql连接和操作 MySQL 数据库的 Python 模块
一、数据库介绍
二、MySQL的安装
三、MySQL的入门使用
四、SQL基础与DDL定义数据库的结构和对象,包括库、表、索引等
五、SQL - DML操作和处理数据库中的数据
六、SQL - DQL从数据库中检索数据
七、Python & MySQL
一、数据库介绍
1、数据库的作用
数据库如何存储数据
2、常见的数据库软件
数据库管理系统(数据库软件)
数据库和SQL的关系
数据库是用来存储数据的,在这个过程中,会涉及到:
- 数据的新增
- 数据的删除
- 数据的修改
- 数据的查询
- 数据库、数据表的管理
- 等等
而SQL语言,就是一种对数据库、数据进行操作、管理、查询的工具。
使用数据库软件去获得库->表->数据,这种数据组织、存储的能力并借助SQL语言,完成对数据的增删改查等操作
总结
- 数据库是什么?有什么作用呢?
数据库就是指数据存储的库,作用就是组织数据并存储数据。 - 数据库如何组织数据呢?
按照:库 -> 表 -> 数据 三个层级进行组织 - 数据库软件是什么?
数据库软件就是提供库->表->数据,这种数据组织形式的工具软件,也称之为数据库管理系统
常见的数据库软件有:Oracle、MySQL、SQL Server、PostgreSQL、SQLite等。 - 数据库和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 的概述:
-
定义: SQL 是一种用于处理和管理关系数据库的语言。它提供了一种结构化的方法来定义、操作和查询数据库中的数据。
-
关系数据库管理系统(RDBMS): SQL 主要用于与关系数据库进行交互,而关系数据库则是通过表格形式存储数据的数据库。常见的 RDBMS 包括 MySQL、PostgreSQL、Oracle Database、Microsoft SQL Server 等。
-
基本操作: SQL 支持以下基本操作:
- 查询(Query): 用于从数据库中检索数据,例如使用
SELECT
语句。 - 插入(Insert): 用于向数据库表中添加新的数据行,例如使用
INSERT INTO
语句。 - 更新(Update): 用于修改数据库表中的数据,例如使用
UPDATE
语句。 - 删除(Delete): 用于从数据库表中删除数据行,例如使用
DELETE FROM
语句。
- 查询(Query): 用于从数据库中检索数据,例如使用
-
数据定义语言(DDL): SQL 包括一组用于定义数据库结构的语句,这些语句属于数据定义语言。常见的 DDL 操作包括:
- 创建表(CREATE TABLE): 用于定义新表的结构。
- 修改表(ALTER TABLE): 用于修改表的结构。
- 删除表(DROP TABLE): 用于删除表。
-
数据操作语言(DML): SQL 还包括一组用于操作表中数据的语句,这些语句属于数据操作语言。常见的 DML 操作包括:
- 插入数据(INSERT INTO): 用于向表中插入新的数据。
- 更新数据(UPDATE): 用于修改表中的数据。
- 删除数据(DELETE FROM): 用于从表中删除数据。
-
数据查询语言(DQL): SQL 的主要功能之一是查询数据库中的数据。查询语言包括
SELECT
语句,它用于从一个或多个表中检索数据。
SELECT column1, column2 FROM table WHERE condition;
-
约束: SQL 支持约束,用于定义在表中允许存储的数据的规则。常见的约束包括主键、外键、唯一性约束、检查约束等。
-
事务控制: SQL 提供了事务控制机制,确保数据库操作的一致性和可靠性。事务通常由
BEGIN TRANSACTION
、COMMIT
和ROLLBACK
语句来控制。
SQL 是数据库领域的标准语言,其简洁而强大的语法使得用户可以轻松地执行各种数据库操作。
DDL概述
DDL(Data Definition Language)是 SQL 中的一种语言类型,主要用于定义数据库的结构和对象,包括库、表、索引等。DDL 操作主要涉及对数据库的创建、修改和删除。以下是 DDL 的主要操作:
- 创建数据库(CREATE DATABASE):
- 用于创建新的数据库。语法如下:
CREATE DATABASE database_name;
- 删除数据库(DROP DATABASE):
- 用于删除现有的数据库。语法如下:
DROP DATABASE database_name;
- 创建表(CREATE TABLE):
- 用于定义新表的结构。在
CREATE TABLE
语句中,需要指定表的列名、数据类型和约束等信息。语法如下:
- 用于定义新表的结构。在
CREATE TABLE table_name (
column1 datatype1,
column2 datatype2,
...
CONSTRAINT constraint_name PRIMARY KEY (one_or_more_columns)
);
- 修改表结构(ALTER TABLE):
- 用于修改现有表的结构。可以执行的操作包括添加列、删除列、修改列数据类型、添加约束等。语法如下:
ALTER TABLE table_name
ADD column_name datatype;
ALTER TABLE table_name
DROP COLUMN column_name;
- 删除表(DROP TABLE):
- 用于删除现有的表。语法如下:
DROP TABLE table_name;
- 约束(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。让我们更详细地了解每个类别:
-
数据定义语言(DDL - Data Definition Language):
- DDL 主要用于定义数据库结构和对象,包括库、表、索引等。常见的 DDL 操作包括:
- 创建数据库(CREATE DATABASE): 用于创建新的数据库。
- 删除数据库(DROP DATABASE): 用于删除现有的数据库。
- 创建表(CREATE TABLE): 用于定义新的表结构。
- 修改表结构(ALTER TABLE): 用于修改现有表的结构。
- 删除表(DROP TABLE): 用于删除现有的表。
- 等等。
- DDL 主要用于定义数据库结构和对象,包括库、表、索引等。常见的 DDL 操作包括:
-
数据操纵语言(DML - Data Manipulation Language):
- DML 用于操作和处理数据库中的数据。主要的 DML 操作包括:
- 插入数据(INSERT INTO): 用于将新数据插入到表中。
- 更新数据(UPDATE): 用于修改表中的现有数据。
- 删除数据(DELETE FROM): 用于从表中删除数据。
- 查询数据(SELECT): 用于从表中检索数据。
- 等等。
- DML 用于操作和处理数据库中的数据。主要的 DML 操作包括:
-
数据控制语言(DCL - Data Control Language):
- DCL 用于控制数据库访问权限和安全性。主要的 DCL 操作包括:
- 授予权限(GRANT): 用于赋予用户或角色特定的权限。
- 撤销权限(REVOKE): 用于从用户或角色中收回权限。
- 创建用户(CREATE USER): 用于创建新的数据库用户。
- 修改用户密码(ALTER USER): 用于更改用户的密码。
- 等等。
- DCL 用于控制数据库访问权限和安全性。主要的 DCL 操作包括:
-
数据查询语言(DQL - Data Query Language):
- DQL 用于检索和查询数据库中的数据。主要的 DQL 操作是
SELECT
语句,用于满足特定条件的数据检索和计算。
- DQL 用于检索和查询数据库中的数据。主要的 DQL 操作是
SELECT column1, column2 FROM table WHERE condition;
这四类 SQL 语言一起构成了对关系型数据库进行全面操作和管理的基础。在实际应用中,通常需要综合使用这些语言来满足数据库的各种需求。
3、SQL的语法特征
在学习DDL、DQL等之前,我们先来了解SQL的语法特征。
- SQL语言,大小写不敏感
- SQL可以单行或多行书写,最后以;号结束
- SQL支持注释:
- 单行注释: – 注释内容(–后面一定要有一个空格)
- 单行注释:# 注释内容(# 后面可以不加空格,推荐加上)
- 多行注释:/* 注释内容 */
基础的DDL语法
DDL - 库管理
DDL - 表管理
总结
- SQL语言是什么?有什么作用?
SQL:结构化查询语言,用于操作数据库,通用于绝大多数的数据库软件 - SQL的特征
- 大小写不敏感
- 需以;号结尾
- 支持单行、多行注释
- SQL语言的分类
- DDL数据定义
- DML数据操作
- DCL数据控制
- DQL数据查询
- DDL中数据库管理的语法
- DDL中数据表管理的语法
五、SQL - DML操作和处理数据库中的数据
DML概述
DML(Data Manipulation Language)是 SQL 中的一种语言类型,主要用于操作和处理数据库中的数据。DML 提供了一组操作,使用户能够插入、更新、删除和查询数据库中的数据。以下是 DML 的主要操作:
- 插入数据(INSERT INTO):
- 用于将新的数据插入到数据库表中。语法如下:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
- 更新数据(UPDATE):
- 用于修改表中现有数据的值。语法如下:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
- 删除数据(DELETE FROM):
- 用于从表中删除符合特定条件的数据行。语法如下:
DELETE FROM table_name
WHERE condition;
- 查询数据(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 的主要操作:
- SELECT 语句:
- 用于从一个或多个表中检索数据。语法如下:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
SELECT
语句可以指定要检索的列(字段),也可以使用通配符*
表示检索所有列。FROM
子句指定要检索数据的表,而WHERE
子句用于过滤检索的数据。
- 聚合函数:
- DQL 还包括一组聚合函数,用于对检索到的数据执行计算。常见的聚合函数包括
COUNT
(计数)、SUM
(求和)、AVG
(平均值)、MAX
(最大值)、MIN
(最小值)等。
- DQL 还包括一组聚合函数,用于对检索到的数据执行计算。常见的聚合函数包括
SELECT COUNT(column1), AVG(column2), MAX(column3)
FROM table_name
WHERE condition;
- 排序(ORDER BY):
- 使用
ORDER BY
子句对检索到的数据进行排序。可以按照一个或多个列进行升序(ASC)或降序(DESC)排序。
- 使用
SELECT column1, column2
FROM table_name
ORDER BY column1 ASC, column2 DESC;
- 分组(GROUP BY):
- 使用
GROUP BY
子句将检索到的数据按照指定的列进行分组。通常与聚合函数一起使用。
- 使用
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;
- 连接(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 数据库的基本步骤:
-
安装
pymysql
模块:
在使用pymysql
之前,首先需要安装该模块。可以使用以下命令进行安装:pip install pymysql
-
连接到 MySQL 数据库:
使用pymysql
中的connect
函数建立与 MySQL 数据库的连接。需要提供数据库的主机地址、用户名、密码、数据库名称等信息。import pymysql # 连接数据库 connection = pymysql.connect( host='localhost', user='your_username', password='your_password', database='your_database' )
-
创建游标对象:
游标是用于执行 SQL 语句并获取结果的对象。可以使用cursor
方法创建游标对象。# 创建游标 cursor = connection.cursor()
-
执行 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()
-
关闭游标和数据库连接:
执行完数据库操作后,需要关闭游标和数据库连接,释放资源。# 关闭游标 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()
总结
- Python中使用什么第三方库来操作MySQL?如何安装?
使用第三方库为:pymysql
安装:pip install pymysql - 如何获取链接对象?
- from pymysql import Connection 导包
- Connection(主机,端口,账户,密码)即可得到链接对象
- 链接对象.close() 关闭和MySQL数据库的连接
- 如何执行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()
总结
- 什么是commit提交?
pymysql库在执行对数据库有修改操作的行为时,是需要通过链接对象的commit成员方法来进行确认的。
只有确认的修改,才能生效。 - 如何自动提交呢?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!