关于数据库:MySql基础笔记12-重复数据处理SQL注入导入导出数据

54次阅读

共计 2323 个字符,预计需要花费 6 分钟才能阅读完成。

@TOC

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 的罕用选项介绍:

选项 性能
-d or –delete 新数据导入数据表中之前删除数据数据表中的所有信息
-f or –force 不论是否遇到谬误,mysqlimport 将强制持续插入数据
-i or –ignore mysqlimport 跳过或者疏忽那些有雷同惟一
关键字的行,导入文件中的数据将被疏忽。
-l or -lock-tables 数据被插入之前锁住表,这样就避免了,
你在更新数据库时,用户的查问和更新受到影响。
-r or -replace 这个选项与-i 选项的作用相同;此选项将代替
表中有雷同惟一关键字的记录。
–fields-enclosed- by= char 指定文本文件中数据的记录时以什么括起的,很多状况下
数据以双引号括起。默认的状况下数据是没有被字符括起的。
–fields-terminated- by=char 指定各个数据的值之间的分隔符,在句号分隔的文件中,
分隔符是句号。您能够用此选项指定数据之间的分隔符。
默认的分隔符是跳格符(Tab)
–lines-terminated- by=str 此选项指定文本文件中行与行之间数据的分隔字符串
或者字符。默认的状况下 mysqlimport 以 newline 为行分隔符。
您能够抉择用一个字符串来代替一个单个的字符:
一个新行或者一个回车。

mysqlimport 命令罕用的选项还有 -v 显示版本(version),-p 提醒输出明码(password)

正文完
 0