查找 ’ \n ’ : ’ \n’;
vi查找 ‘\n’: ‘\n’
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的字段外,还可以插入常量。
SELECT INTO FROM
语句形式为:SELECT vale1, value2 into Table2 from Table
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。
union命令,char_length(),group_concat()
空格替换为null
‘update disease set freebase_id = null where freebase_id=”” ;’
备份 与 还原
mysqldump -u user -p’password’ db-name foo | ssh user@remote.box.com mysql -u user -p’password’ db-name foo
mysql -halg -ubroot -ppassword database <./division.sql
直接用mysqldump导出的文件是文本的,所以会很大。导成文本文件再压缩,过程中仍然要占用额外的空间,如果使用管道,则可以直接导成压缩文件。既迅速,又少占空间。比如: mysqldump sms | gzip > sms.sql.gz- mysql连接
mysql -h localhost -u root -p111111 -Ddatabase - MySQL字符串函数
left(str, length)
right(str, length)
substring(str, pos, len)
substring(str, pos)
substring_index(str,delim,count) 正则表达式
关键字: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)
定位符 ^ 文本的开始;$ 文本的末尾;[[:<:]] 词的开始;[[:>:]] 词的结尾
触发器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
最新推荐文章于 2024-06-10 16:22:56 发布