MySql 基础 - 笔记 12 - 重复数据处理、SQL 注入、导入导出数据
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 出现的重读记录数
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、将数据表及数据库拷贝至其他主机
你也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:
4、导入数据
4.1、mysql 命令导入
同 3.4 示例
4.2、source 命令导入
4.3、使用 LOAD DATA 导入数据
4.4、使用 mysqlimport 导入数据
mysqlimport 的常用选项介绍:
mysqlimport 命令常用的选项还有 -v 显示版本(version), -p 提示输入密码(password)
版权声明: 本文为 InfoQ 作者【虫无涯】的原创文章。
原文链接:【http://xie.infoq.cn/article/f1b8858cbe2034d268c61482c】。文章转载请联系作者。
评论