zoukankan      html  css  js  c++  java
  • mysql装载本地文件及模式匹配

      使用load data装载本地文件到表中,文件每行一条记录,列值之间用tab分隔,并按照次序一一列出,对于无值或丢失的情况可以使用N。但是在使用insert into插入的时候不能使用N,而应该是NULL。

    load data local infile 'path/*.txt' into table tab1
    line terminated by '
    ';

      比如某一列名为val,那么在查询中使用val is not null 和使用 val != null 是不同的。因为null是特殊的值,不能用普通比较符来比较。在mysql中0和null意味着假而其他值是真。布尔运算的默认真值是1。

      sql中的模式匹配:_表示单个字符,%表示多个或0个字符,这个时候同样不可以使用=等的这种普通比较符,需要用like ,not like 。

    select * from 表名 where 列名 like '%b' or '_b'; 

      sql中的扩展正则表达式匹配:需要使用regexp和not regexp (或者是rlike和not rlike)。

      上面这个图片是我从网上找来的,但是感觉不是很好,所以我又找了一个讲正则表达式的链接,感觉写的挺好的,而且我在之前的小项目中就用到了,学以致用嘛。http://deerchao.net/tutorials/regex/regex.htm

      mysql -h 主机名  -u   用户名   -p  登陆到mysql,然后会提示让你输入用户的密码,也可以mysql -h 主机名  -u   用户名   -pXXX  这里的XXX表示密码,一般不要这样子,密码会被别人窃取挪作他用。在-p 后面也可以跟数据库名,指定你要登陆到的数据库。

      今天还学到个在批处理模式下使用mysql,就是把你要执行的mysql语句及命令事先放在一个文件中,然后执行。比如:我在com.txt文件中写入一行

    select * from tab1;

    然后在命令行键入:

    mysql test < com.txt

    就相当于在mysql>模式下输入上面的那条select语句。如果显示内容过多可以加管道或者是重定向输出。

      在批处理模式下如果想得到交互式模式的输出,可以加参数-t,如果想先输出执行的命令再输出该条命令执行后的结果,可以用参数-vvv。比如像这样:

    mysql -t test < com.txt            mysql -vvv test < com.txt

      也可以在mysql>提示符的模式下运行脚本,像这样:(data.txt相当于上文中的com.txt)

    温馨提示:键入mysql之后还需要进入到存放相应表的数据库,然后再执行上述运行脚本的操作。

  • 相关阅读:
    [算法分析]计数排序
    [置顶] 基于stm32f103zet6之UC/OS_II的学习1(初步移植OS点灯大法)
    IOS开发(59)之Block Object的调用
    【译】测试员,敢问路在何方?来自微软工程师
    各种字符串hash
    hdu 2579 BFS
    qq相册
    程序人生之我们的故事:十年如歌(9)
    关联模型和无限极分类
    十大技巧破解电话面试
  • 原文地址:https://www.cnblogs.com/RainingDays/p/3431649.html
Copyright © 2011-2022 走看看