【MySQL进阶之路丨第十四篇】一文带你精通MySQL重复数据及SQL注入

引言

在这里插入图片描述

在上一篇中我们介绍了MySQL ALTER命令及序列使用;在开发中,对MySQL重复数据的处理是十分重要的。这一篇我们使用命令行方式来帮助读者掌握MySQL中重复数据的操作。

上一篇链接:【MySQL进阶之路丨第十三篇】一文带你精通MySQL之ALTER命令及序列使用


MySQL重复数据

MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在并进行处理,有时候我们也需要删除这些重复的数据。

防止重复数据的出现

1.使用主键或唯一约束:在创建表时,为某个列或多个列设置主键或唯一约束。这样,在插入数据时,如果存在重复的值,将会引发错误,从而阻止插入。

2.使用INSERT IGNORE语句:使用INSERT IGNORE语句插入数据时,如果有重复的值出现,在插入时会被忽略,不会引发错误,从而避免重复数据的插入。

过滤重复数据

我们可以使用DISTINCT关键字来查询表中的唯一记录。例如,SELECT DISTINCT * FROM 表名; 将会返回表中的唯一记录,去除了重复数据。

假设我们有一个名为"1—tbl"的表,包含id(主键),title等列。

在这里插入图片描述

过滤语句如下:

SELECT DISTINCT title,author FROM 1—tbl;

结果如下所示:

在这里插入图片描述

删除重复数据

我们可以先创建一个新表,将旧表中的重复数据删除后复制给新表,再将新表命名为旧表名称。

模板如下:

CREATE TABLE 新表 SELECT1,2 FROM 旧表  GROUP BY (1,2);
DROP TABLE 旧表;
ALTER TABLE 新表 RENAME TO 旧表名;

假设我们有一个名为"1—tbl"的表,包含id(主键),title等列。

在这里插入图片描述

现在我们想要删除author列中的重复值,只保留一条记录,语句如下:

CREATE TABLE qiu SELECT author From 1—tbl  GROUP BY (author);
DROP TABLE 1—tbl;
ALTER TABLE qiu RENAME TO 1—tbl;

结果如下所示:

在这里插入图片描述

统计重复数据

使用GROUP BY子句与聚合函数(如COUNT)可以对表中的重复数据进行统计。例如,SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名 HAVING COUNT(*) > 1; 可以获取重复出现的数据和出现次数。

假设我们有一个名为"1—tbl"的表,包含id(主键),title等列。

在这里插入图片描述

现在我们想要统计author列中重复出现的数据以及其出现次数。

SELECT author, COUNT(*) AS count FROM 1—tbl GROUP BY author HAVING COUNT(*) > 1;

结果如下:

在这里插入图片描述

MySQL中SQL注入

SQL注入是一种常见的安全漏洞,它发生在应用程序将用户提供的数据直接拼接到SQL查询中,导致攻击者可以执行恶意的SQL语句。

例如,后端SQL查询语句如下:

SELECT * FROM USERS WHERE ID='输入';

当攻击者输入:

1' or 1=1#

后端语句变为:

SELECT * FROM USERS WHERE ID='1' or 1=1#';

而在MySQL中,#后的内容均会被省略

故语句等价于

SELECT * FROM USERS WHERE ID='1' or 1=1

由于1=1恒成立,且条件用or连接,这导致后端返回所有user表的内容。

要防范此类攻击,需要对用户输入的数据进行转义,如# – / or ’ 等等。

读者可通过以下专栏从攻击者的视角学习MySQL的数据安全防护:
1、【Sqli-Labs靶场攻防实战】
2、【sq注入攻击专栏】

总结

以上为 【MySQL进阶之路丨第十四篇】,带领读者掌握 MySQL 重复数据及SQL注入,通过具体实操实现对MySQL数据库的深度理解。

MySQL系列将持续更新,欢迎订阅收藏。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Http代理与socks5代理有何区别?如何选择?(二)

上篇文章我们基本分别了解了http代理与socks5代理的定义与优缺点,接下来我们继续来了解http代理与socks5代理之间的比较与区别。 一、两者的比较 1、功能比较 HTTP代理专门用于Web流量,并在处理HTTP和HTTPS协议方面非常高效。它们可以修改正在传输的数据…

网络层协议【IP协议】

全文目录 基本概念IP协议IPv4 协议头格式:分片发送方进行分片:识别IP分片:组装IP分片: 网段划分DHCP技术IP分类 私有IP和共有IP1. 私有IP地址(Private IP Address):2. 公网IP地址(Pu…

408操作系统笔记

一操作系统概述 1.操作系统的概念 操作系统:是控制和管理整个计算机系统 的硬件和软件资源 ,合理地组织,调度计算机的工作和资源的分配,为用户和其他软件提供方便接口和环境的程序集合,是计算机系统中最基本的系统软…

UE5 日记(人物连招:蒙太奇动画通知(含视频链接))

教程https://www.youtube.com/watch?vsWpENaVGj2M&listPLiSlOaRBfgkcPAhYpGps16PT_9f28amXi&index10&ppiAQB 相关蓝图 连招逻辑 动画通知类 逻辑分析 1.用户输入 已搭载战斗系统模块,可以收到输入指令 2.连击 第一次攻击: 第一次攻击,…

windows使用FindWindow函数查找窗口句柄

理解什么是句柄? 对于“句柄”,之前一直停留在一知半解的认识层面,也说不清具体概念,只知道它是一个标识符,用来标记对象或者说某个东西的。只知其名不知其意。目前学习windows编程,对“句柄”做一个完整的…

2.Docker的安装

1.认识Docker的基本架构 下面这张图是docker官网上的,介绍了整个Docker的基础架构,我们根据这张图来学习一下docker的涉及到的一些相关概念。 1.1 Docker的架构组成 Docker架构是由Client(客户端)、Docker Host(服务端)、Registry(远程仓库)组成。 …

图扑 HT for Web 手机端运维管理系统

随着信息技术的快速发展,网络技术的应用涉及到人们生活的方方面面。其中,手机运维管理系统可提供数字化、智能化的方式,帮助企业和组织管理监控企业的 IT 环境,提高运维效率、降低维护成本、增强安全性、提升服务质量,…

我在Vscode学OpenCV 初步接触

OpenCV是一个开源的计算机视觉库,可以处理图像和视频数据。它包含了超过2500个优化过的算法,用于对图像和视频进行处理,包括目标识别、面部识别、运动跟踪、立体视觉等。OpenCV支持多种编程语言,包括C、Python、Java等&#xff0c…

利用两个栈s1,s2模拟一个队列时,如何用栈的运算来实现该队列的运算?写出模拟队列插入和删除的函数。一个栈s1用于插入元素,另一个栈s2用于删除元素

利用两个栈s1,s2模拟一个队列时,如何用栈的运算来实现该队列的运算?写出模拟队列插入和删除的函数。一个栈s1用于插入元素,另一个栈s2用于删除元素。 前置知识点(栈定义,及出栈入栈函数) #def…

【小白专用】Mysql的安装配置教程(详细)

首先简单概述分为几个步骤: 一、下载Mysql 二、安装Mysql 三、验证Mysql安装是否成功 四、 配置环境变量 五、验证配置环境变量是否成功 一、下载Mysql 要在Windows或Mac上安装MySQL,首先从MySQL官方网站下载最新的MySQL Community Server版本&…

降低毕业论文写作压力的终极指南

亲爱的同学们,时光荏苒,转眼间你们即将踏入毕业生的行列。毕业论文作为本科和研究生阶段的重要任务,不仅是对所学知识的综合运用,更是一次对自己学术能力和专业素养的全面考验。然而,论文写作常常伴随着压力和焦虑&…

如何确认目标期刊被SCI或EI收录?

原创内容,仅供参考,欢迎大家批评指正! 目录 通过Web of Science查询SCI期刊1. 登录Web of Science2. 查找目标期刊3. 查看期刊信息 通过Scopus查询EI期刊1. 登录Scopus2. 查找目标期刊3. 查看期刊信息 参考 通过Web of Science查询SCI期刊 1…

Django实战项目-学习任务系统-兑换物品管理

接着上期代码框架,开发第5个功能,兑换物品管理,再增加一个学习兑换物品表,主要用来维护兑换物品,所需积分,物品状态等信息,还有一个积分流水表,完成任务奖励积分,兑换物品…

golang的类型断言

前言:原因很简单,写的代码panic了。报错如下。为此专门看下golang的类型断言。 “[PANIC]interface conversion: interface {} is string, not float64”。 1、类型断言(assertion) 所谓“类型断言”即判断一个变量是不是某个类型的实例(简单来讲就是判…

【前端早早聊直播回顾】Harmony Next 与 Flutter 的不解之缘

Hello 大家好,我是 Flutter GDE 郭树煜,本次要分享的话题是关于鸿蒙与 Flutter 的故事,可能没接触过的会感觉有点懵,Harmony 和 Flutter 有啥关系,它们怎么会被放到一起讲了呢?接下来就让我们来聊聊这个问题…

世界电信日 | 人大金仓助力中国移动租赁核算系统升级上线

世界电信日 5月17日恰逢第五十四个世界电信日,运营商作为新型基础设施建设以及维护网信安全的主力军,掌握关键核心技术,实现科技自立自强刻不容缓。 作为数据库领域国家队,人大金仓坚持原始创新,低难度、低成本、低风…

第二证券:怎么判断股票浮筹多少?

股票的浮筹是指公司的股份中,揭露生意在市场上的股份,一般是指除了大股东和筹码安稳的组织等,其他组织和个人能够自在生意的股份。在出资股票时,了解公司的浮筹是非常重要的,由于它直接联络到股票的供需联络和股价动摇…

el-tabel表格加个多选框

<template><div><el-checkbox v-model"checked" :disabled"checkedDis" change"onAllSelectChange">多选框</el-checkbox>点击多选框&#xff0c;禁用列表复选框<el-table ref"multipleTable" :data"…

Nginx+keepalived实现七层的负载均衡

1.keepalived VRRP 介绍 keepalived是什么&#xff1f; keepalived是集群管理中保证集群高可用的一个服务软件&#xff0c;用来防止单点故障。 keepalived工作原理 keepalived是以VRRP协议为实现基础的&#xff0c;VRRP全称Virtual Router Redundancy Protocol&…

CMMI/ASPICE认证咨询及工具服务

服务概述 质量专家戴明博士的名言“如果你不能描述做事情的过程&#xff0c;那么你不知道你在做什么”。过程是连接有能力的工程师和先进技术的纽带&#xff0c;因此产品开发过程直接决定了产品的质量和研发的效率。 经纬恒润可结合多体系要求&#xff0c;如IATF16949\ISO26262…