• 关于数据库的去重+导入导出参数


    数据库中存在大量的重复内容,并且存在着外键关系

    先删除外键的,以内容分组,查询条数大于一的,将该id在多对多的表中删除

    delete from poem2cls where poem_id in(select id from (select id,count(*)as count from poem group by content having count>1)as a);

    然后在删除拥有重复内容的表中的重复数据

     delete from poem where id in(select id from (select id,count(*)as count from poem group by content having count>1)as a);

    然后循环,直至没有重复内容

    正则搜索

     SELECT 字段 FROM 表 WHERE 字段 REGEXP 正则表达式;
    

    字符串处理的函数

    replace('你 好',' ','') // 替换 
    
    TRIM(LEADING ',' FROM ',,barxxx'); //删除指定首字符 如',‘ 
    
    TRIM(BOTH ',' FROM ',,bar,,,'); //删除指定首尾字符 
    
    TRIM(TRAILING ',' FROM 'barxxyz,,');  //删除指定尾字符 如',‘ 
    

    导入导出数据库

    导出

    mysqldump -h IP -u 用户名 -p 数据库名 > 导出的文件名
    
    0:(备份数据库即导出所有表以及数据 不加-d)
    mysqldump -h localhost -u root -p test > G:arcgisworkspacezypdoc	est.sql
    
    1:(备份数据库即导出所有表结构)
    mysqldump -h localhost -u root -p -d test > G:arcgisworkspacezypdoc	est.sql
    ENTER PASSWORD:******
    
    2 :(导出某张表的表结构不含数据)
    mysqldump -h localhost -u root -p -d test pollution > G:arcgisworkspacezypdoc	est.sql
    
    3:(导出某张表的表结构和数据,不加-d)
    mysqldump -h 127.0.0.1 -u root -p test pollution > G:arcgisworkspacezypdoc	est.sql

    这里补两个挺重要的参数吧

    -t
    默认情况下, 导出的sql语句中会删除表和新建表, 但是有时候两个表的字段稍有不同, 所以新建表的操作就没有必要了. 这时候可以使用-t只导出插入语句
    
    -c
    导出全部字段时, insert带字段名, 默认情况下全倒出来的时候是不带字段名的, 如果两个表的字段顺序不一样,插入时候会出错, 这时可以使用-c
    

      

    报了个错

    很多人都可能碰到过这样的问题:在我们用DOS命令行备份、导出MySQL数据库的时候输入mysqldump语句
    mysqldump -h localhost -u root -p shopdb >d:eifenshopdbbak.sql回车时命令行窗口会提示如下错
    误:
    
    mysqldump: unknown option '--no-beep'
    
            以致数据库备份无法完成。这是什么原因呢? 经过反复查找问题终于找到了出错的原因:原来是
    mysqldump读取mysql安装文件my.cnf里的内容的默认设置,导致命令行无法正常运行,知道了这个原因那解
    决方法也就有了,禁用默认设置!在执行mysqldump的时候加入选项--no-defaults (官方文档解释是Do not 
    read default options from any options file),所以最后的备份语句改成如下:
    
    mysqldump --no-defaults -h localhost -u root -p shopdb >d:eifenshopdbbak.sql
    

      

    导入

    0:导入数据库(首先得创建数据,再导入)
    mysql -h localhost -u root -p(进入mysql下面)
    
    create database abc;(创建数据库)
    show databases;(就可看到所有已经存在的数据库,以及刚刚创建的数据库abc)
    use abc;(进入abc数据库下面)
    show tables;(产看abc数据库下面的所有表,空的)
    
    source G:arcgisworkspacezypdoc	est.sql(导入数据库表)
    
    show tables;(查看abc数据库下面的所有表,就可以看到表了)
    desc pollution;(查看表结构设计)
    
    select * from pollution;
    
    exit(或者ctrl + c)退出mysql
    

    将一张表导出到文本文件

    use dbname //进入数据库
    
    Database Changed
    select * from 表 into outfile 'G:\arcgisworkspace\zypdoc\text.txt'; (指导出数据的,注意转义字符哦)
    
    // 一般形式
    select [列名称] from tablename [where] into outfile '目标文件路径' [option]
    
    其中option参数常用的5个选项
    
    FIELDS TERMINATED BY ‘字符串’:设置字符串为字段的分割符,默认值为 	;
    FIELDS ENCLOSED BY ‘字符’:设置字符串括上char varchar text等字符型字段,默认值为 无任何符号;
    FIELDS OPTIONALLY ENCLOSED BY ‘字符’:设置字符串括上字段的值,默认值为 无任何符号;
    LINES STARTING BY ‘字符串’:设置每一行开头的字符,默认值为 无任何字符;
    FIELDS ESCAPED BY ‘字符’:设置转义字符,默认值为 ;
    LINES TERMINATED BY ‘字符串’:设置每行结束符,默认值为 
    ;
    
    
    // mysqldump导出
    mysqldump -u root -p -T G:arcgisworkspacezypdoc abc pollution "--fields-terminated-by=," (记住不要任何多余的空格,也不用转移字符;-p后面也不用写password;注意目标目录是文件夹,文件名是表名,后缀是txt文件)
    
    
    知识补充:
    mysqldump -u root -p -T 目标目录 dbname tablename [option]
    
    option 和 上面的mysql的一样,只是更改为
    
    "--fields-terminated-by=字符"(不要任何多余的空格,就是指fields-terminated-by紧密相连的)
    

    导入一张表

    首先要有一张表,并且类型对应
    LOAD DATA INFILE 文件名
    INTO TABLE 表名 
    FIELDS TERMINATED BY '\,'  // 上面的option
    OPTIONALLY ENCLOSED BY '"'  
    LINES TERMINATED by'
    '  没有可以不写
    ignore 1 lines  // ignore 1 lines是 忽略第一行的标题行。mei
    (id,name,value);  //字段
    

      

  • 相关阅读:
    UVALive 6584 Escape (Regionals 2013 >> Europe
    莫比乌斯反演
    POJ 3986 Math teacher's homework
    ACM一些题目
    重探 DFT
    GDSOI2015 task4 ACU
    GDSOI2015 task2 覆盖半径
    USACO 2005 January Gold The Wedding Juicer
    CQOI2015 选数
    计算圆的包含(两两圆不相交)
  • 原文地址:https://www.cnblogs.com/wwg945/p/9181248.html
Copyright © 2020-2023  润新知