【测试开发学习历程】MySQL增删改操作 + 备份与还原 + 索引、视图、存储过程

前言:

SQL内容的连载,到这里就是最后一期啦!

如果有小伙伴要其他内容的话,我会追加内容的。(前提是我有学过,或者能学会)

接下来,我们就要开始python内容的学习了 ~ ~ 

目录

1 MySQL增删改操作

1.1 数据添加操作

1.1.1 插入完整的行

1.1.2 插入多行

1.2 数据更新操作

1.3 数据删除操作

1.4 清空表操作

1.5 SQL语言的分类

1.5.1 DML

1.5.2 DDL

1.5.3 DCL

2 备份与还原

2.1 备份数据库与表

2.2 还原数据库与表

3 索引、视图、存储过程

3.1 索引

3.1.1 普通索引

3.1.2 唯一索引

3.2 视图

3.2.1 创建视图

3.3.2 删除视图

3.3 存储过程


1 MySQL增删改操作

1.1 数据添加操作

使用insert into语句来完成插入操作,插入操作可以采用下列方式:

  • 插入完整的行;
  • 插入行的一部分;
  • 插入多行;
  • 插入某些查询的结果。

1.1.1 插入完整的行

格式为:insert into 表名 (列名) values (各个列的值);

在插入行时,MySQL将用values列表中的相应值填入列表中的对应项。values的第一个值对应于第一个指定的列名。因为提供了列名,values必须以其指定的次序匹配指定的列名,不一定按照各个列出现在实际表中的次序,优点是:即使表的结构改变,此insert语句仍然能正确使用;

插入语句中可以省略列名,直接写成insert into 表名 values (各个列的值);但这种情况下必须确保所有列都插入数据。

1.1.2 插入多行

例中单条insert语句中有多组值,每组值用一对圆括号括起来,用逗号分隔。

insert可以插入由select查询出来的值,该方法由一条insert语句和一条select语句组成。

格式:insert into 表A (表A列1,表A列2) select 表B列1,表B列2 from 表B

1.2 数据更新操作

为了更新表中的数据,可使用update语句;

update语句可以更新表中特定的行,也可以更新表中所有的行;

格式:update 表名 set 列名=XXX where YYY

注意:update语句如果后面不跟where语句的话,将修改表中所有的行,使用的时候需要小心,以免产生错误的修改。

1.3 数据删除操作

1.4 清空表操作

从一个表中删除数据,使用delete语句,delete的使用方法有以下两种:

  • 从表中删除特定的行(通过where子句指定条件);
  • 从表中删除所有的行(不带where子句)

格式:delete from 表名 where XXX;

删除表中特定的行,通过使用where子句来指定删除哪一行,比如删除customers表中ID为1006的用户:delete from customers where cust_id=1006;

注意:数据库的删除操作属于高危操作,删除前最好备份相应的表,备份命令 create table products_bak select * from products;

1.5 SQL语言的分类

SQL语言可分为两类:DML(数据库操作语言)和DDL(数据库描述语言)

1.5.1 DML

  SELECT   - 从数据库表中获取数据

  UPDATE   - 更新数据库表中的数据

  DELETE FROM  - 从数据库表中删除数据

  INSERT INTO   - 向数据库表中插入数据

1.5.2 DDL

  CREATE DATABASE   - 创建新数据库

  ALTER DATABASE   - 修改数据库

  DROP DATABASE  - 删除数据库

  CREATE TABLE   - 创建新表

  ALTER TABLE   - 变更(改变)数据库表

  DROP TABLE   - 删除表

  CREATE INDEX   - 创建索引(搜索键)

  DROP INDEX   - 删除索引

1.5.3 DCL

  GRANT   - 授权

  REVOKE   - 取消授权

2 备份与还原

2.1 备份数据库与表

备份数据库

mysqldump -u root -p 数据库名 >database.sql

 备份表

mysqldump -u root -p 数据库名  表名 >table.sql

2.2 还原数据库与表

source进入mysql命令窗口

mysql -u用户名 -p密码;
create database newdb;#创建一个要导入的数据库
use newdb;
source data.sql;

3 索引、视图、存储过程

3.1 索引

索引:创建索引可以提高数据查询的速度,但会降低增删改数据的速度。

3.1.1 普通索引

这是最基本的索引,它没有任何限制。

#创建索引cust_index

CREATE INDEX cust_index on customers(cust_name);

3.1.2 唯一索引

索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

CREATE UNIQUE INDEX cust_name_index ON customers(cust_name);

查看customers表的索引

SHOW INDEX FROM customers;

删除索引cust_index

DROP INDEX cust_index ON customers;

数据库建立索引常用的规则如下:

  • 表的主键、外键必须有索引;
  • 数据量大的表应该有索引;
  • 经常与其他表进行联结的表,在联结字段上应该建立索引;
  • 经常出现在Where子句中的字段,应该建立索引;

3.2 视图

视图:视图是虚拟的表。使用视图可以重用SQL语句,简化复杂的SQL操作。

#查询购买了TNT2的客户的姓名、联系人

SELECT cust_name,cust_contact 
FROM orderitems 
INNER JOIN orders ON orderitems.order_num=orders.order_num 
INNER JOIN customers ON orders.cust_id=customers.cust_id AND prod_id='TNT2';

3.2.1 创建视图

CREATE VIEW productcustomers AS SELECT 
cust_name,cust_contact,prod_id 
FROM orderitems 
INNER JOIN orders ON orderitems.order_num=orders.order_num 
INNER JOIN customers ON orders.cust_id=customers.cust_id;

查询购买了TNT2的客户的姓名、联系人

SELECT cust_name,cust_contact FROM productcustomers WHERE prod_id='TNT2';

3.3.2 删除视图

DROP VIEW productcustomers;

3.3 存储过程

存储过程:一组为了完成特定功能的SQL 语句集,用户可以通过调用存储过程来实现相应的操作。好处是简化复杂的操作。

#创建存储过程productpricing,这个存储过程不带参数
CREATE PROCEDURE productpricing()
BEGIN
  SELECT AVG(prod_price) as priceaverage
  FROM products;
END;

#调用存储过程productpricing
CALL productpricing();
#创建一个带参数的存储过程,OUT表示参数是从存储过程中传出来的
CREATE PROCEDURE productprice(
	OUT pricemin DECIMAL(8,2),
	OUT pricemax DECIMAL(8,2),
	OUT priceavg DECIMAL(8,2)
)
BEGIN
	SELECT MIN(prod_price) INTO pricemin FROM products;
	SELECT MAX(prod_price) INTO pricemax FROM products;
	SELECT AVG(prod_price) INTO priceavg FROM products;
END;
	
#调用存储过程
CALL productprice(@pricemin,@pricemax,@priceavg);
SELECT @pricemin,@pricemax,@priceavg;
#调用存储过程
CALL productprice(@pricemin,@pricemax,@priceavg);
SELECT @pricemin,@pricemax,@priceavg;

#查看所有的存储过程
SHOW PROCEDURE STATUS;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/480205.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Airgorah:一款功能强大的WiFi安全审计工具

关于Airgorah Airgorah是一款功能强大的WiFi安全审计工具,该工具可以轻松发现和识别连接到无线接入点的客户端,并对特定的客户端执行身份验证攻击测试,捕捉WPA握手包,并尝试破解接入点的密码。在该工具的帮助下,广大研…

.NET Core 服务实现监控可观测性最佳实践

前言 本次实践主要是介绍 .Net Core 服务通过无侵入的方式接入观测云进行全面的可观测。 环境信息 系统环境:Kubernetes编程语言:.NET Core ≥ 2.1日志框架:Serilog探针类型:ddtrace 接入方案 准备工作 DataKit 部署 DataK…

平衡隐私与效率,Partisia Blockchain 解锁数字安全新时代

原文:https://cointelegraph.com/news/exploring-multiparty-computations-role-in-the-future-of-blockchain-privacy; https://medium.com/partisia-blockchain/unlocking-tomorrow-outlook-for-mpc-in-2024-and-beyond-cb170e3ec567 编译&#xff1…

Jupyter R绘图 汉字显示乱码的解决办法

1.Jupyte中,R绘图,汉字显示乱码 2.如何解决? (1)R中安装showtext 登录linux服务器 #R > install.packages(“showtext”) … 出错 (2)退出R,安装freetype-config #apt install libfreetype6-dev 出错 (3)进入R&…

么样才能用最便捷的方式为Mac提速呢?

Mac是现代人日常工作时必不可少的工具,尤其是在居家办公已经屡见不鲜的当下。视频会议、文档传送、视频剪辑等等。它在工作中扮演的角色越来越重要,所以也导致了它的流畅程度可以在很大程度上影响人们一整天的工作效率和心情。 但是影响Mac的运行和响应速…

excel文件可以转成word文件吗?汇帮PDF转换器帮你实现excel转word

将Excel文件转换为Word文档是一个相对简单的任务,但在执行过程中需要注意一些细节,以确保转换后的文档格式正确、内容清晰。下面将详细介绍用汇帮PDF转换器将Excel转Word的步骤和注意事项。 一、Excel文件准备 在进行转换之前,首先确保Excel…

新能源汽车BMS应用设计

新能源汽车BMS应用设计 电池管理系统(BMS) 概述 电池管理系统(BMS)为一套保护动力电池使用安全的控制系统,时刻监控电池的使用状态,通过必要措施缓解电池组的不一致性,为新能源车辆的使用安全…

ideaSSM 学员信息管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea 开发 SSM 学员信息管理系统是一套完善的信息管理系统,结合SSM框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库&#xff…

Qt 项目使用visual studio 进行开发调试

https://marketplace.visualstudio.com/items?itemNameTheQtCompany.QtVisualStudioTools2015 https://devblogs.microsoft.com/cppblog/bring-your-existing-qt-projects-to-visual-studio/ 正常Qt开发中,使用Qt Creator 进行windows下MSVC编译器的调试是一件挺麻…

MySQL面试题--MySQL内部技术架构

目录 1.Mysql内部支持缓存查询吗? 2.MySQL8为何废弃掉查询缓存? 3.替代方案是什么? 4.Mysql内部有哪些核心模块组成,作用是什么? 5.一条sql发送给mysql后,内部是如何执行的?(说…

ExoPlayer架构详解与源码分析(11)——DataSource

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)—…

Jetson AGX ORIN 配置 FGVC-PIM 神经网络

Jetson AGX ORIN 配置 FGVC-PIM 神经网络 文章目录 Jetson AGX ORIN 配置 FGVC-PIM 神经网络配置 ORIN 环境创建 FGVC-PIM 虚拟环境安装 PyTorch安装 torchvision安装其他依赖包 配置 ORIN 环境 首先先配置 ORIN 的环境,可以参考这个链接: Jetson AGX …

计算机组成原理 数据通路组成实验

一、实验目的 (1)将双端口通用寄存器堆和双端口存储器模块联机; (2)进一步熟悉计算机的数据通路; (3)掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法; (4)锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障…

Lamdba表达式

Lamdba表达式 Lambda是一个匿名函数,我们可以将Lambda表达式理解为一段可以传递的代码(将代码像数据一样 传递)。使用它可以写出简洁、灵活的代码。作为一种更紧凑的代码风格,使java语言表达能力得到提 升。 Lambda表达式在java语…

Spark-Scala语言实战(5)

在之前的文章中,我们学习了如何在scala中定义与使用集合和元组。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 Spark-Scala语言实战(…

Vscode与Cmake搭配配置opencv使用

vscode与Cmake基本使用 下载插件 CtrlShiftp打开VSCode的指令面板,然后输入cmake:q,VSCode会根据输入自动提示,然后选择CMake: Quick Start选择编译器根据提示输入项目名称选择可执行文件编译项目 方式一:执行命令cd build cmake…

数据仓库的数据处理架构Lambda和Kappa

1.数据仓库 数据仓库(Data Warehouse),简写DW。顾名思义,数据仓库是一个很大的数据存储集合,为企业分析性报告和决策支持而创建,是对多元业务数据的筛选与整合,具备一定的BI能力,主要用于企业的数据分析、数据挖掘、数据报表等方向,指导业务流程改进、监视时间、成本、…

vim编辑器和gcc/g++编辑器的使用讲解

vim编辑器 1 vim的基本概念 vim是Linux的编写代码的工具,是一种多模式的编辑器。 Linux中vim的常用的模式大概可以分为三种,分别是: 命令模式(command mode)、插入模式(Insert mode)和底行模式…

uniapp(vue3) H5页面连接打印机并打印

一、找到对应厂商打印机的驱动并在windows上面安装。查看是否安装完成可以在:控制面板->查看设备和打印机,找到对应打印机驱动是否安装完成 二、打印机USB连接电脑 三、运行代码调用浏览器打印,主要使用的是window.print()功能。下面使用…

定制 Elasticsearch 镜像

安装ik分词器 下载ik分词器 下载地址:https://github.com/infinilabs/analysis-ik/releases Dockerfile FROM docker.elastic.co/elasticsearch/elasticsearch:8.12.2 COPY ./elasticsearch-analysis-ik-8.12.2.zip /opt/ RUN bin/elasticsearch-plugin instal…
最新文章