一、数据库介绍
二、MySQL的安装
三、MySQL的入门使用
四、SQL基础与DDL定义数据库的结构和对象,包括库、表、索引等
五、SQL - DML操作和处理数据库中的数据
六、SQL - DQL从数据库中检索数据
七、Python & MySQL
数据库是用来存储数据的,在这个过程中,会涉及到:
而SQL语言,就是一种对数据库、数据进行操作、管理、查询的工具。
使用数据库软件去获得库->表->数据,这种数据组织、存储的能力并借助SQL语言,完成对数据的增删改查等操作
在Windows系统中安装MySQL数据库
MySQL官网
下载地址:https://dev.mysql.com/downloads/windows/installer/
针对不同的用户,MySQL分为两种不同的版本:
免费:
MySQL Community Server
社区版本,免费,但是Mysql不提供官方技术支持。
MySQL Cluster
集群版,开源免费,可将几个MySQL Server封装成一个Server。
收费:
MySQL Enterprise Edition
商业版,该版本是收费版本,可以试用30天,官方提供技术支持
MySQL Cluster CGE
高级集群版,需付费。
选择离线安装
基本上是NEXT和Finsh
也是基本上是NEXT和Finsh
执行Execute
点击Finsh
C:\Program Files\MySQL\MySQL Server 8.0
开始安装配置的文件在上面的路径
然后复制目录bin下的路径
C:\Program Files\MySQL\MySQL Server 8.0\bin
最后点击此电脑右键属性
进入高级系统设置
里面的环境变量
在系统变量里面的Path双击
新建把开始目录下的bin文件路径复制进来最后全部确认
WIN+R
输入cmd进入命令提示符
mysql -uroot -p
或者
使用图形化工具操作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的图形化工具非常多,课程使用跨平台、开源、免费的图形化工具:DBeaver
下载地址:https://dbeaver.io/download
我们选择免费的社区版(DBeaver Community)
选择适用自己电脑系统的安装包下载即可。
打开DBeaver软件
连接MySQL
输入密码测试连接
下载依赖的驱动文件
完成连接
SQL(Structured Query Language)是一种用于管理和操作关系型数据库管理系统(RDBMS)的标准化查询语言。SQL 是一种声明式语言,用户只需要描述他们想要做什么,而不需要详细说明如何实现。以下是 SQL 的概述:
定义: SQL 是一种用于处理和管理关系数据库的语言。它提供了一种结构化的方法来定义、操作和查询数据库中的数据。
关系数据库管理系统(RDBMS): SQL 主要用于与关系数据库进行交互,而关系数据库则是通过表格形式存储数据的数据库。常见的 RDBMS 包括 MySQL、PostgreSQL、Oracle Database、Microsoft SQL Server 等。
基本操作: SQL 支持以下基本操作:
SELECT
语句。INSERT INTO
语句。UPDATE
语句。DELETE FROM
语句。数据定义语言(DDL): SQL 包括一组用于定义数据库结构的语句,这些语句属于数据定义语言。常见的 DDL 操作包括:
数据操作语言(DML): SQL 还包括一组用于操作表中数据的语句,这些语句属于数据操作语言。常见的 DML 操作包括:
数据查询语言(DQL): SQL 的主要功能之一是查询数据库中的数据。查询语言包括 SELECT
语句,它用于从一个或多个表中检索数据。
SELECT column1, column2 FROM table WHERE condition;
约束: SQL 支持约束,用于定义在表中允许存储的数据的规则。常见的约束包括主键、外键、唯一性约束、检查约束等。
事务控制: SQL 提供了事务控制机制,确保数据库操作的一致性和可靠性。事务通常由 BEGIN TRANSACTION
、COMMIT
和 ROLLBACK
语句来控制。
SQL 是数据库领域的标准语言,其简洁而强大的语法使得用户可以轻松地执行各种数据库操作。
DDL(Data Definition Language)是 SQL 中的一种语言类型,主要用于定义数据库的结构和对象,包括库、表、索引等。DDL 操作主要涉及对数据库的创建、修改和删除。以下是 DDL 的主要操作:
CREATE DATABASE database_name;
DROP DATABASE database_name;
CREATE TABLE
语句中,需要指定表的列名、数据类型和约束等信息。语法如下:CREATE TABLE table_name (
column1 datatype1,
column2 datatype2,
...
CONSTRAINT constraint_name PRIMARY KEY (one_or_more_columns)
);
ALTER TABLE table_name
ADD column_name datatype;
ALTER TABLE table_name
DROP COLUMN column_name;
DROP TABLE table_name;
CREATE TABLE students (
student_id INT PRIMARY KEY,
student_name VARCHAR(50) NOT NULL,
age INT CHECK (age >= 18),
UNIQUE (student_name)
);
DDL 操作是在数据库设计和维护阶段使用的关键操作。通过定义数据库的结构,DDL 允许用户创建和管理数据库中的各种对象,确保数据的一致性和有效性。
由于数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账户管理、权限管理等等。
所以,操作数据库的SQL语言,也基于功能,可以划分为4类:
SQL语言的确根据其功能可以划分为四个主要的类别:DDL、DML、DCL、DQL。让我们更详细地了解每个类别:
数据定义语言(DDL - Data Definition Language):
数据操纵语言(DML - Data Manipulation Language):
数据控制语言(DCL - Data Control Language):
数据查询语言(DQL - Data Query Language):
SELECT
语句,用于满足特定条件的数据检索和计算。SELECT column1, column2 FROM table WHERE condition;
这四类 SQL 语言一起构成了对关系型数据库进行全面操作和管理的基础。在实际应用中,通常需要综合使用这些语言来满足数据库的各种需求。
在学习DDL、DQL等之前,我们先来了解SQL的语法特征。
DML(Data Manipulation Language)是 SQL 中的一种语言类型,主要用于操作和处理数据库中的数据。DML 提供了一组操作,使用户能够插入、更新、删除和查询数据库中的数据。以下是 DML 的主要操作:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
DELETE FROM table_name
WHERE condition;
SELECT
语句主要用于数据查询,但也可包含其他 DML 操作,例如计算列、排序和过滤数据。语法如下:SELECT column1, column2, ...
FROM table_name
WHERE condition;
DML 操作是用户与数据库交互的重要手段,它们使用户能够有效地处理和管理数据库中的数据。通过结合使用插入、更新、删除和查询操作,可以满足各种数据处理需求。在执行 DML 操作时,通常会结合使用事务来确保操作的一致性和完整性。
注意事项
字符串的值,出现在SQL语句中,必须要用单引号包围起来
DQL(Data Query Language)是 SQL 中的一种语言类型,主要用于从数据库中检索数据。DQL 的核心操作是使用 SELECT
语句,该语句允许用户指定要检索的列、表以及任何过滤条件。以下是 DQL 的主要操作:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
SELECT
语句可以指定要检索的列(字段),也可以使用通配符 *
表示检索所有列。FROM
子句指定要检索数据的表,而 WHERE
子句用于过滤检索的数据。COUNT
(计数)、SUM
(求和)、AVG
(平均值)、MAX
(最大值)、MIN
(最小值)等。SELECT COUNT(column1), AVG(column2), MAX(column3)
FROM table_name
WHERE condition;
ORDER BY
子句对检索到的数据进行排序。可以按照一个或多个列进行升序(ASC)或降序(DESC)排序。SELECT column1, column2
FROM table_name
ORDER BY column1 ASC, column2 DESC;
GROUP BY
子句将检索到的数据按照指定的列进行分组。通常与聚合函数一起使用。SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;
JOIN
操作将多个表中的数据关联起来。JOIN
子句允许根据共同的列将两个或多个表的数据合并。SELECT orders.order_id, customers.customer_name
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id;
DQL 提供了强大的查询和计算功能,使用户能够灵活地检索和分析数据库中的数据。通过组合使用不同的子句和函数,可以满足各种复杂的查询需求。
DQL:SELECT
语句进行基础的数据查询
DQL:GROUP BY
进行分组聚合查询
DQL:对查询结果进行排序分页
Python执行SQL语句操作MySQL数据库软件
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 数据库的操作需求。
"""
演示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()
.execute()
执行SQL语句.fetchall()
得到全部的查询结果封装入元组内Python执行SQL语句插入数据到MySQL
"""
演示使用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()