SQL

  1. 查找 ’ \n ’ : ’ \n’;

    vi查找 ‘\n’: ‘\n’

  2. replace
    UPDATE tb1 SET f1=REPLACE(f1, ‘abc’, ‘def’);
    3.INSERT INTO SELECT
    语句形式为:Insert into Table2(field1,field2,…) select value1,value2,… from Table1

    要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。

  3. SELECT INTO FROM

    语句形式为:SELECT vale1, value2 into Table2 from Table

    要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。

  4. union命令,char_length(),group_concat()

  5. 空格替换为null

    ‘update disease set freebase_id = null where freebase_id=”” ;’

  6. 备份 与 还原

    mysqldump -u user -p’password’ db-name foo | ssh [email protected] mysql -u user -p’password’ db-name foo
    mysql -halg -ubroot -ppassword database <./division.sql
    直接用mysqldump导出的文件是文本的,所以会很大。导成文本文件再压缩,过程中仍然要占用额外的空间,如果使用管道,则可以直接导成压缩文件。既迅速,又少占空间。比如: mysqldump sms | gzip > sms.sql.gz

  7. mysql连接
    mysql -h localhost -u root -p111111 -Ddatabase
  8. MySQL字符串函数
    left(str, length)
    right(str, length)
    substring(str, pos, len)
    substring(str, pos)
    substring_index(str,delim,count)
  9. 正则表达式
    关键字:REGEXP
    . 表示匹配任意一个字符
    REGEXP BINARY区分大小写
    | or操作符
    []匹配任意单一字符
    \ 为前导。即转义.正则表达式内具有特殊意义的所有字符都必须以这种方式转义。
    [:a;num:] 任意字母和数字(同 [a-zA-Z0-9])
    [:alpha:] 任意字符(同 [a-zA-Z])
    [:blank:] 空格和制表(同 [\t])
    [:cntrl:] ASCII控制字符(ASCII 0到31和127)
    [:digit:] 任意数字(同[0-9])
    [:graph:] 与[“print:] 相同,但不包括空格
    [:lower:] 任意小写字线(同 [a-z])
    [:print:] 任意可打印字符
    [:punct:] 既不在 [:alnum:] 又不在 [:cntrl:] 中的任意字符
    [space:] 包括空格在内的任意空白字符(同 [\f\n\t\r\v])
    [:upper:] 任意大小字母(同 [A-Z])
    [:xdigit:] 任意十六进制数字(同 [a-fA-F0-9])

    • 0个或多个匹配
    • 1个或多个匹配(等于 {1, })
      ? 0个或1个匹配(等于 {0, 1})
      {n} 指定数目的匹配
      {n, } 不少于指定数目的匹配
      {n ,m} 匹配数目的范围(m不超过255)
      定位符 ^ 文本的开始;$ 文本的末尾;[[:<:]] 词的开始;[[:>:]] 词的结尾
  10. 触发器trigger
    触发器创建语法四要素:
    监视地点(table)
    监视事件(insert/update/delete)
    触发时间(after/before)
    触发事件(insert/update/delete)
    语法:
    create trigger triggerName
    after/before insert/update/delete on 表名
    for each row #这句话在mysql是固定的
    begin
    sql语句;
    end;
    对于delete而言:原本有一行,后来被删除,想引用被删除的这一行,用old来表示,old.列名可以引用被删除的行的值;
    对于update而言:被修改的行,修改前的数据,用old来表示,old.列名引用被修改之前行中的值;修改的后的数据,用new 来表示,new.列名引用被修改之后行中的值。
    MySQ触发器

你可能感兴趣的:(SQL)