首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySql基础-笔记12 -重复数据处理、SQL注入、导入导出数据

MySql基础-笔记12 -重复数据处理、SQL注入、导入导出数据

原创
作者头像
虫无涯
发布2023-01-31 11:00:23
1.3K0
发布2023-01-31 11:00:23
举报
文章被收录于专栏:全栈测试技术全栈测试技术

1、处理重复数据

1.1、防止表中出现重复数据

  • 可以在 MySQL 数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。
    在这里插入图片描述
    在这里插入图片描述
  • 设置表中字段数据不能重复,可以设置双主键模式来设置数据的唯一性, 如果你设置了双主键,那么那个键的默认值不能为 NULL,可设置为 NOT NULL
    在这里插入图片描述
    在这里插入图片描述
  • NSERT IGNORE INTO 与 INSERT INTO 的区别:

INSERT IGNORE:会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的

在这里插入图片描述
在这里插入图片描述
  • INSERT IGNORE INTO和 REPLACE INTO区别:

INSERT IGNORE INTO:当插入数据时,在设置了记录的唯一性后,如果插入重复数据,将不返回错误,只以警告形式返回。 REPLACE INTO :如果存在primary 或 unique 相同的记录,则先删除掉。再插入新记录。

在这里插入图片描述
在这里插入图片描述

1.2、统计重复数据

统计study_tb8中name、old、sex出现的重读记录数

在这里插入图片描述
在这里插入图片描述
查询重复的值,操作步骤:
确定哪一列包含的值可能会重复;
在列选择列表使用COUNT(*)列出的那些列;
在GROUP BY子句中列出的列;
HAVING子句设置重复数大于1。

1.3、过滤重复数据

读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。

在这里插入图片描述
在这里插入图片描述

1.4、读取不重复数据

使用 GROUP BY 来读取数据表中不重复的数据

在这里插入图片描述
在这里插入图片描述

1.5、删除重复数据

在这里插入图片描述
在这里插入图片描述

也可以在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录

2、SQL 注入

略(后续单独补充,SQL注入安全问题)

3、导出数据

MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上

3.1、使用 SELECT ... INTO OUTFILE 语句导出数据

将sutdy_tb1中的数据导出到my_study_tb1.txt中

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结果还是报错,最终找到答案https://blog.csdn.net/NoamaNelson/article/details/105712193

3.1.1、SELECT ... INTO OUTFILE 语句有以下属性
  • LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,SELECT句法。为了将一个数据库的数据写入一个文件,使用SELECT ... INTO OUTFILE,为了将文件读回数据库,使用LOAD DATA INFILE。
  • SELECT...INTO OUTFILE 'file_name'形式的SELECT可以把被选择的行写入一个文件中。该文件被创建到服务器主机上,因此您必须拥有FILE权限,才能使用此语法。
  • 输出不能是一个已存在的文件。防止文件数据被篡改。
  • 你需要有一个登陆服务器的账号来检索文件。否则 SELECT ... INTO OUTFILE 不会起任何作用。
  • 在UNIX中,该文件被创建后是可读的,权限由MySQL服务器所拥有。这意味着,虽然你就可以读取该文件,但可能无法将其删除。3.2、导出 SQL 格式的数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3、导出表作为原始数据

  • mysqldump 是 mysql 用于转存储数据库的实用程序。它主要产生一个 SQL 脚本,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT
  • 使用 mysqldump 导出数据需要使用 --tab 选项来指定导出文件指定的目录,该目标必须是可写的。
    在这里插入图片描述
    在这里插入图片描述

3.4、将数据表及数据库拷贝至其他主机

在这里插入图片描述
在这里插入图片描述

你也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:

mysqldump -u root -p database_name | mysql -h other-host.com database_name

4、导入数据

4.1、mysql 命令导入

同3.4示例

mysql -u用户名    -p密码    <  要导入的数据库数据(runoob.sql)

4.2、source 命令导入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3、使用 LOAD DATA 导入数据

在这里插入图片描述
在这里插入图片描述

4.4、使用 mysqlimport 导入数据

mysqlimport -u root -p --local databasename 文件名

mysqlimport的常用选项介绍:

image.png
image.png

mysqlimport 命令常用的选项还有 -v 显示版本(version), -p 提示输入密码(password)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、处理重复数据
    • 1.1、防止表中出现重复数据
      • 1.2、统计重复数据
        • 1.3、过滤重复数据
          • 1.4、读取不重复数据
            • 1.5、删除重复数据
            • 2、SQL 注入
            • 3、导出数据
              • 3.1、使用 SELECT ... INTO OUTFILE 语句导出数据
                • 3.1.1、SELECT ... INTO OUTFILE 语句有以下属性
              • 3.3、导出表作为原始数据
                • 3.4、将数据表及数据库拷贝至其他主机
                • 4、导入数据
                  • 4.1、mysql 命令导入
                    • 4.2、source 命令导入
                      • 4.3、使用 LOAD DATA 导入数据
                        • 4.4、使用 mysqlimport 导入数据
                        相关产品与服务
                        云数据库 SQL Server
                        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档