软装设计公司网站/常州seo建站
文章目录
- 1.1 MySQL 概览:版本、特性和生态系统
- 1.1.1 基础知识
- 1.1.2 重点案例:使用 Python 实现 MySQL 数据的 CRUD 操作
- 1.1.3 拓展案例 1:使用 Python 实现 MySQL 数据备份**
- 1.1.4 拓展案例 2:使用 Python 分析 MySQL 数据
- 1.2 安装和配置 MySQL
- 1.2.1 基础知识
- 1.2.2 重点案例:使用 Homebrew 安装 MySQL 并进行初步配置
- 1.2.3 拓展案例 1:配置 MySQL 以优化 Mac OS 上的性能
- 1.2.4 拓展案例 2:使用 Python 连接到配置好的 MySQL 实例并创建一个数据库
- 1.3 基础命令和操作
- 1.3.1 基础知识
- 1.3.2 重点案例:使用 Python 创建数据库和表,并插入数据
- 1.3.3 拓展案例 1:使用 Python 执行数据查询操作
- 1.3.4 拓展案例 2:更新和删除数据
1.1 MySQL 概览:版本、特性和生态系统
在这一节中,我们将深入探索 MySQL,这个在全球广泛使用的关系型数据库管理系统。无论你是初学者还是经验丰富的开发者,了解 MySQL 的基础知识都是至关重要的。
1.1.1 基础知识
-
版本:MySQL 的版本历史可以追溯到 1995 年,经历了从 3.x 到 8.0 的演变。每个主要版本的发布都带来了性能改进、新特性和安全性增强。当前,MySQL 8.0 是最新的稳定版本,它引入了诸如窗口函数、公共表表达式(CTE)、角色管理、JSON 支持扩展等先进特性。
-
特性:
- 存储引擎:MySQL 支持多种存储引擎,包括 InnoDB(支持事务处理,提供高可靠性)、MyISAM(适用于读取密集型应用)、Memory(数据存储在 RAM 中,提供快速访问)等。
- 复制:MySQL 提供主从复制功能,支持数据的实时备份和读写分离,提高了数据库的可用性和扩展性。
- 分区:通过将表中的数据分布到不同的分区来提高性能,特别是在处理大量数据时。
- 安全性:包括网络层加密、SHA-256 密码认证、角色基的权限控制等。
-
生态系统:MySQL 被广泛应用于各种在线应用、数据仓库、e-commerce 解决方案等场景。它与许多编程语言和框架(如 PHP、Java、Python、Ruby)紧密集成,支持跨平台运行(Linux、Windows、MacOS)。
1.1.2 重点案例:使用 Python 实现 MySQL 数据的 CRUD 操作
-
假设我们正在开发一个博客系统,需要存储用户信息和博文内容。我们会使用 Python 的
mysql-connector-python
包来执行基本的 CRUD(创建、读取、更新、删除)操作。步骤:
-
安装
mysql-connector-python
包。pip install mysql-connector-python
-
连接到 MySQL 数据库。
import mysql.connectorconn = mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword",database="blogdb" ) cursor = conn.cursor()
-
创建表格。
cursor.execute("CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))") cursor.execute("CREATE TABLE posts (id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), content TEXT, user_id INT, FOREIGN KEY(user_id) REFERENCES users(id))")
-
插入数据。
query = "INSERT INTO users (name, email) VALUES (%s, %s)" values = ("John Doe", "john@example.com") cursor.execute(query, values) conn.commit()
-
查询数据。
cursor.execute("SELECT * FROM users") for (name, email) in cursor:print(f"Name: {name}, Email: {email}")
-
1.1.3 拓展案例 1:使用 Python 实现 MySQL 数据备份**
对于生产环境中的数据库,定期备份是一项重要的维护任务。我们可以使用 Python 脚本来自动化这个过程。
步骤:
-
使用
subprocess
模块调用mysqldump
工具。import subprocesssubprocess.run(["mysqldump", "-u", "username", "-p", "database_name", ">","backup.sql"])
-
可以将此脚本设置为定期执行,实现自动化备份。
1.1.4 拓展案例 2:使用 Python 分析 MySQL 数据
在这个案例中,我们将使用 Python 的 pandas
库从 MySQL 数据库中读取数据,并进行简单的数据分析。
步骤:
-
安装
pandas
和sqlalchemy
。pip install pandas sqlalchemy
-
读取数据并分析。
from sqlalchemy import create_engine import pandas as pdengine = create_engine('mysql+mysqlconnector://username:password@localhost/blogdb') df = pd.read_sql_table('posts', con=engine) print(df.describe())
通过以上案例,我们不仅了解了 MySQL 的基础知识,还通过实际应用案例深入探讨了如何使用 Python 与 MySQL 交互,涵盖了数据操作、备份和分析等常用场景,为读者提供了实用性强、贴近实际生产的学习资源。
1.2 安装和配置 MySQL
安装和配置 MySQL 是每个数据库管理员和开发者的基本技能。在 Mac OS 上,这个过程可以通过多种方式完成,包括使用 Homebrew、下载官方的 MySQL 安装包,或者通过 Docker。这一节将引导你通过这些步骤,确保你的 MySQL 服务器运行顺畅并准备好执行任务。
1.2.1 基础知识
- 使用 Homebrew 安装:Homebrew 是 Mac OS 上最受欢迎的包管理器之一,它可以让安装 MySQL 变得非常简单。
- 配置文件:MySQL 的配置文件通常位于
/etc/my.cnf
或者/usr/local/etc/my.cnf
,通过编辑这个文件,你可以调整 MySQL 服务器的设置,例如内存使用、端口号和默认的存储引擎。 - 启动和停止 MySQL 服务:安装完成后,你需要知道如何启动和停止 MySQL 服务,以及如何设置为开机自启动。
- 安全配置:运行
mysql_secure_installation
脚本来增强 MySQL 安装的安全性是一个好习惯,这包括设置 root 密码、删除匿名用户、禁用远程 root 登录等。
1.2.2 重点案例:使用 Homebrew 安装 MySQL 并进行初步配置
假设你是一个开发者,正在 Mac OS 上配置本地开发环境。使用 Homebrew 安装 MySQL 是一个快速开始的好方法。
步骤:
-
打开终端,安装 Homebrew(如果尚未安装)。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
-
使用 Homebrew 安装 MySQL。
brew install mysql
-
启动 MySQL 服务。
brew services start mysql
-
运行安全安装脚本。
mysql_secure_installation
-
连接到 MySQL。
mysql -u root -p
1.2.3 拓展案例 1:配置 MySQL 以优化 Mac OS 上的性能
开发者和数据库管理员经常需要调整 MySQL 配置,以优化本地环境中的性能。
步骤:
-
找到 MySQL 的配置文件
my.cnf
。如果不存在,请创建一个。nano /usr/local/etc/my.cnf
-
添加或修改以下配置,以优化性能(根据你的机器配置调整数值)。
[mysqld] max_connections = 50 innodb_flush_log_at_trx_commit = 1 innodb_log_file_size = 128M query_cache_size = 0 query_cache_type = 0
-
重启 MySQL 服务以应用更改。
brew services restart mysql
1.2.4 拓展案例 2:使用 Python 连接到配置好的 MySQL 实例并创建一个数据库
一旦 MySQL 安装并配置好,下一步就是开始使用它了。这个案例将展示如何使用 Python 连接到 MySQL 并创建一个新的数据库。
步骤:
-
确保安装了
mysql-connector-python
。pip install mysql-connector-python
-
使用 Python 脚本连接到 MySQL 并创建数据库。
import mysql.connectorconn = mysql.connector.connect(host="localhost",user="root",password="yourpassword" )cursor = conn.cursor() cursor.execute("CREATE DATABASE mydatabase")
通过这些案例,你不仅学会了如何在 Mac OS 上安装和配置 MySQL,还学会了如何通过 Python 脚本与 MySQL 互动,从而为各种开发和生产任务打下坚实的基础。
1.3 基础命令和操作
掌握 MySQL 的基础命令和操作是进行有效数据库管理和开发的关键。这一节将涵盖如何使用这些基础命令来创建和管理数据库、表、以及执行数据的 CRUD(创建、读取、更新、删除)操作。
1.3.1 基础知识
- 创建数据库:
CREATE DATABASE database_name;
- 选择数据库:
USE database_name;
- 创建表:
CREATE TABLE table_name (column1 datatype, column2 datatype, ...);
- 插入数据:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
- 查询数据:
SELECT * FROM table_name;
或更具体的查询SELECT column1, column2 FROM table_name WHERE condition;
- 更新数据:
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
- 删除数据:
DELETE FROM table_name WHERE condition;
- 删除表:
DROP TABLE table_name;
- 删除数据库:
DROP DATABASE database_name;
1.3.2 重点案例:使用 Python 创建数据库和表,并插入数据
假设你需要为一个小型电商平台创建一个数据库,其中包含用户信息和订单信息。
步骤:
-
连接到 MySQL。
import mysql.connectorconn = mysql.connector.connect(host="localhost",user="root",password="yourpassword" ) cursor = conn.cursor()
-
创建数据库
ecommerce
。cursor.execute("CREATE DATABASE ecommerce") cursor.execute("USE ecommerce")
-
创建
users
和orders
表。cursor.execute(""" CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),email VARCHAR(255) UNIQUE ) """)cursor.execute(""" CREATE TABLE orders (id INT AUTO_INCREMENT PRIMARY KEY,product_name VARCHAR(255),amount INT,user_id INT,FOREIGN KEY(user_id) REFERENCES users(id) ) """)
-
插入数据到
users
表。query = "INSERT INTO users (name, email) VALUES (%s, %s)" values = [("Alice", "alice@example.com"), ("Bob", "bob@example.com")] cursor.executemany(query, values) conn.commit()
1.3.3 拓展案例 1:使用 Python 执行数据查询操作
在电商平台数据库中查询特定用户的所有订单。
步骤:
-
查询
Alice
的用户 ID。cursor.execute("SELECT id FROM users WHERE name = 'Alice'") user_id = cursor.fetchone()[0]
-
查询基于用户 ID 的订单。
cursor.execute(f"SELECT * FROM orders WHERE user_id = {user_id}") for (id, product_name, amount, user_id) in cursor:print(f"Order ID: {id}, Product: {product_name}, Amount: {amount}")
1.3.4 拓展案例 2:更新和删除数据
修改特定订单的数量,然后删除一个用户。
步骤:
-
更新订单数量。
cursor.execute("UPDATE orders SET amount = 3 WHERE id = 1") conn.commit()
-
删除用户
Bob
。cursor.execute("DELETE FROM users WHERE name = 'Bob'") conn.commit()
通过以上案例,你不仅学会了如何使用 Python 连接 MySQL 执行基本的数据库操作,还掌握了如何在实际项目中应用这些操作来管理数据。这些技能在数据库管理和数据操作中非常重要,可以为开发各种应用程序和服务提供坚实的基础。
相关文章:

《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
文章目录 1.1 MySQL 概览:版本、特性和生态系统1.1.1 基础知识1.1.2 重点案例:使用 Python 实现 MySQL 数据的 CRUD 操作1.1.3 拓展案例 1:使用 Python 实现 MySQL 数据备份**1.1.4 拓展案例 2:使用 Python 分析 MySQL 数据 1.2 安…...

Linux 软件管理(YUM RPM)
1 YUM yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次…...

【Makefile语法 05】动静态库编译链接
目录 一、多文件项目源代码 二、静态库编译链接 三、动态库编译链接 一、多文件项目源代码 // include/add.hpp#pragma once int add(int a, int b); // include/sub.hpp#pragma once int sub(int a, int b); // src/add.cpp#include "add.hpp"int add(int a, …...

JS - 处理元素滚动
业务功能中时常有元素滚动的功能,现在就总结一下一些常用的事件。 一、定位滚动元素 做一切滚动操作之前都应该先定位到滚动元素,再做其他操作,如滚动顶部,获取滚动距离、禁止滚动等。 把以下代码复制粘贴到浏览器 Console 面板…...

JavaScript滚动事件
🧑🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ✨ 前言 滚动是网页交互不可或缺的一部分。监听页面和元素的滚动事件,可以帮助…...

4.0 Zookeeper Java 客户端搭建
本教程使用的 IDE 为 IntelliJ IDEA,创建一个 maven 工程,命名为 zookeeper-demo,并且引入如下依赖,可以自行在maven中央仓库选择合适的版本,介绍原生 API 和 Curator 两种方式。 IntelliJ IDEA 相关介绍:…...

C#既然数组长度不可改变,那么如何动态调整集合类型数组大小,以便添加或删除元素?
目录 1.使用动态数组(ArrayList): 2.使用 jagged array(不规则数组): 3.使用 List : 4.使用数组复制: 在C#中,数组的长度是固定的,一旦声明和初始化&…...

3.1 Verilog 连续赋值
关键词:assign, 全加器 连续赋值语句是 Verilog 数据流建模的基本语句,用于对 wire 型变量进行赋值。: 格式如下 assign LHS_target RHS_expression ; LHS(left hand side) 指赋值操作…...

【http】2、http request header Origin 属性、跨域 CORS、同源、nginx 反向代理、预检请求
文章目录 一、Origin 含义二、跨源资源共享:**Cross-Origin Resource Sharing** CORS2.1 跨域的定义2.2 功能概述2.3 场景示例2.3.1 简单请求2.3.2 Preflighted requests:预检请求 2.4 header2.4.1 http request header2.4.1.1 Origin2.4.1.2 Access-Con…...

LangChain pdf的读取以及向量数据库的使用
以下使用了3399.pdf, Rockchip RK3399 TRM Part1 import ChatGLM from langchain.chains import LLMChain from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate from langchain.chains import Simp…...

VUE学习——事件修饰符
阻止默认事件 <template><a click"onClickHandle" href"https://www.baidu.com">baidu</a><a click.prevent"onClickHandle" href"https://www.baidu.com">baidu</a> </template> <script>…...

开放平台技术架构设计与实现的实战总结
开放平台是企业向外部开发者提供API接口和服务的平台,促进生态系统的建设和业务拓展。本文将介绍开放平台技术架构的设计原则和实现方法,帮助读者了解如何构建一个稳健、安全且易于扩展的开放平台。 1. 什么是开放平台? - 解释了开放平台…...

飞桨自然语言处理框架 paddlenlp的 trainer
飞桨(PaddlePaddle)的NLP库PaddleNLP中的Trainer类是一个用于训练和评估模型的简单但功能完整的循环。它被优化用于与PaddleNLP一起使用。Trainer类简化了训练过程,提供了自动的批处理、模型保存、日志记录等特性。 以下是Trainer类的主要参数…...

SQL世界之命令语句Ⅲ
目录 一、SQL JOIN 1.JOIN 和 Key 2.使用 JOIN 3.不同的 SQL JOIN 二、SQL INNER JOIN 关键字 1.SQL INNER JOIN 关键字 2.INNER JOIN 关键字语法 3.内连接(INNER JOIN)实例 三、SQL LEFT JOIN 关键字 1.SQL LEFT JOIN 关键字 2.LEFT JOIN 关…...

Snoop Version 2 Packet Capture File Format
RFC1761 - Snoop Version 2 Packet Capture File Format, FEBRUARY 1995 本备忘录的状态 本备忘录为互联网社区提供帮助信息。 本备忘录不作为任何类型的互联网标准。 本备忘录的分发不受限制。 Status of this Memo This memo provides information for the Internet communit…...

扩展说明: 指令微调 Llama 2
这篇博客是一篇来自 Meta AI,关于指令微调 Llama 2 的扩展说明。旨在聚焦构建指令数据集,有了它,我们则可以使用自己的指令来微调 Llama 2 基础模型。 目标是构建一个能够基于输入内容来生成指令的模型。这么做背后的逻辑是,模型如…...

VUE 全局设置防重复点击
请求后端防止重复点击,用户点击加入遮罩层,请求完毕关闭遮罩层 我们利用请求拦截器,在用户点击的时候,弹出遮罩层 本文采用i18n国际化 element plus UI,提取你想要的,这里不做简化 完整代码如下…...

备战蓝桥杯---动态规划(基础1)
先看几道比较简单的题: 直接f[i][j]f[i-1][j]f[i][j-1]即可(注意有马的地方赋值为0) 下面是递推循环方式实现的AC代码: #include<bits/stdc.h> using namespace std; #define int long long int a[30][30]; int n,m,x,y; …...

CVE-2018-19518 漏洞复现
CVE-2018-19518 漏洞介绍 IMAP协议(因特网消息访问协议)它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。它运行在TCP/IP协议之上,使用的端口是143。在php中调用的是imap_open函数。 PHP 的…...

Python爬虫实战:抓取猫眼电影排行榜top100#4
爬虫专栏系列:http://t.csdnimg.cn/Oiun0 抓取猫眼电影排行 本节中,我们利用 requests 库和正则表达式来抓取猫眼电影 TOP100 的相关内容。requests 比 urllib 使用更加方便,而且目前我们还没有系统学习 HTML 解析库,所以这里就…...

Fiddler抓包工具之fiddler界面工具栏介绍
Fiddler界面工具栏介绍 (1)WinConfig:windows 使用了一种叫做“AppContainer”的隔离技术,使得一些流量无法正常捕获,在 fiddler中点击 WinConfig 按钮可以解除这个诅咒,这个与菜单栏 Tools→Win8 Loopback…...

LabVIEW工业监控系统
LabVIEW工业监控系统 介绍了一个基于LabVIEW软件开发的工业监控系统。系统通过虚拟测控技术和先进的数据处理能力,实现对工业过程的高效监控,提升系统的自动化和智能化水平,从而满足现代工业对高效率、高稳定性和低成本的需求。 随着工业自…...

Linux 文件连接:符号链接与硬链接
Linux 文件连接:符号链接与硬链接 介绍 在 Linux 系统中,文件连接是一个强大的概念,它允许我们在文件系统中创建引用,从而使得文件和目录之间产生联系。在本文中,我们将深入探讨两种主要类型的文件连接:符…...

数据分类分级
一段时间没写文章了,最近做政府数据治理方面的项目,数据治理一个重要的内容是数据安全,会涉及数据的分类分级,是数据治理的基础。 随着“十四五”规划推行,数据要素概念与意识全面铺开,国家、政府机构、企业…...

第三十天| 51. N皇后
Leetcode 51. N皇后 题目链接:51 N皇后 题干:按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整…...

pythn-scipy 查漏补缺
1. 2. 3. 4. 5. 6. 7. 8. 9. 偏度 skewness,峰度 kurtosis...

【JavaScript 漫游】【013】Date 对象知识点摘录
文章简介 本文为【JavaScript 漫游】专栏的第 013 篇文章,记录了 JS 语言中 Date 对象的重要知识点。 普通函数的用法构造函数的用法日期的运算静态方法,包括:Date.now()、Date.parse() 和 Date.UTC()实例方法,包括:…...

vue.config.js和webpack.config.js区别
webpack.config.js和vue.config.js的区别 webpack.config.js是webpack的配置文件,所有使用webpack作为打包工具的项目都可以使用,vue的项目可以使用,react的项目也可以使用。 vue.config.js是vue项目的配置文件,专用于vue项目。…...

H12-821_73
73.某台路由器Router LSA如图所示,下列说法中错误的是? A.本路由器的Router ID为10.0.12.1 B.本路由器为DR C.本路由器已建立邻接关系 D.本路由器支持外部路由引入 答案:B 注释: LSA中的链路信息Link ID,Data…...

postman执行批量测试
1.背景 有许多的人常常需要使用第三方系统进行重复的数据查询,本文介绍使用PostMan的方式对数据进行批量的查询,减少重复的劳动。 2.工具下载 3.初入门 一、如图示进行点击,创建collection 二、输入对应的名称 三、创建Request并进行查…...