MySQL存储过程和函数


概述

存储过程和函数都是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程和函数的区别在于函数必须有返回值,而存储过程没有。

MySQL 的存储过程(Stored Procedure)和函数(Stored Function)是数据库中用于封装重复 SQL 逻辑的两种对象,它们可以提升代码复用性、减少网络开销并增强安全性。以下是两者的核心特性、区别及使用示例:

一、核心概念

  • 存储过程:一组预编译的 SQL 语句集合,可包含逻辑控制(如 IFLO...

Read more

Python连接MySQL


PyMySQL 模块

PyMySQL是在 Python3.x 版本中用于连接 MySQL 服务器的一个第三方库,安装使用步骤如下:

pip install pymysql
!pip install pymysql
Looking in indexes: https://repo.huaweicloud.com/repository/pypi/simple
/usr/share/python-wheels/urllib3-1.25.8-py2.py3-none-any.whl/urllib3/connectionpool.py:999: InsecureRequestWarni...

Read more

Anaconda与PyCharm安装配置


Anaconda与Pycharm是Python开发的最常用的IDE环境,下面我们一起了解一下它们的安装与配置。

演示视频

Anaconda下载、安装与环境配置

1.官网下载地址: https://www.anaconda.com/products/individual

2.选择操作系统

3.安装Anaconda A.双击下载好的.exe文件(Anaconda3-2021.05-Windows-x86_64.exe);

B.选择Next进入下一本,同意用户协议;

C.选择I Agree后,让所有用户使用选择All Users;

D.设置安装路径

E.设置环境变量

F....

Read more

XtraBackup备份与恢复


XtraBackup

Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。

  • 数据量非常的大的时间用它;
  • 全量备份和恢复数据库,速度很快;
  • 增量备份和恢复,主从时从服务器可以当做备份;
  • 热备(主库开机时备份数据);
  • 冷备(关闭mysql服务进行备份)。

xtrabackup是percona开源的mysql物理备份工具。

XtraBackup支持MySQL 5.1至8.0版本的备份和恢复。具体来说,不同版本的XtraBackup对MySQL版本的支持情况如下:

  • Xtr...

Read more

MySQL视图


视图概述

视图(View)是一种虚拟存在的表。 视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图就是一条SELECT语句执行后返回的结果集。 所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。

视图相对于普通的表的优势:

  • 简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。
  • 安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。
  • 数据独立:一旦视图的结构确定了,可以屏蔽表结...

Read more

MySQL索引


索引概述

MySQL官方对索引的定义为:

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。

索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

如下面的示意图所示 :

一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。索引是数据库中用来提高性能的最常用的工具。

索引的结构

索引是在MySQL的存储引擎层中实现的,而不是在服务器层实现的。 所以每种存储...

Read more

MySQL中的用户权限


为什么要管理MySQL权限?

MySQL权限管理就像给数据库加了一把“电子锁”,控制谁能访问数据、能做什么操作。如果权限设置不当,可能导致数据泄露、误操作甚至被黑客攻击。比如,让一个普通员工拥有删除整个数据库的权限,就像把金库钥匙随便交给路人,风险极大。

用户和权限管理

设置密码安全级别

# root 根用户 (超级管理员)
# 用户信息表:mysql.user
FLUSH PRIVILEGES;-- 刷新权限

INSTALL PLUGIN validate_password SONAME 'validate_password.so';-- 安装并激活密码规则插件
...

Read more

MySQL基础(二)


SQL简介

SQL ( Structured Query Language,结构化查询语言)是使用关系模型的数据库应用语言,与数据直接打交道,由IBM上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手制定SQL标准,先后有SQL-86,SQL-89 , SQL-92 , SQL-99 等标准。 SQL 有两个重要的标准,分别是SQL92和SQL99,它们分别代表了92年和99年颁布的SQL标准,我们今天使用的SQL语言依然遵循这些标准。不同的数据库生产厂商都支持SQL语句,但都有特有内容。

SQL分类(四类)

DDL (数据定义语言) (Data Definit...

Read more

MySQL基础(一)


数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

一、数据库管理系统

1.1、数据存储方式

计算...

Read more

NumPy基础(二)


import numpy as np
import matplotlib.pyplot as plt 

将一个数组拆分成几个较小的数组

使用hsplit,您可以通过指定要返回的形状相同的数组的数量,或指定应在其后进行除法的列,沿其水平轴拆分数组

rg = np.random.default_rng(1)
a = np.floor(10 * rg.random((2,12)))
a
array([[5., 9., 1., 9., 3., 4., 8., 4., 5., 0., 7., 5.],
       [3., 7., 3., 4., 1., 4., 2., 2., 7....

Read more