MySQL联表查询及联表删除的方法 不指定

kangyang , 2014/07/23 14:09 , MYSQL , 评论(0) , 阅读(3442) , Via 本站原创
MySQL联表查询及联表删除都是经常需要用到的操作,下面对MySQL联表查询和联表删除都作了详细的介绍分析,希望对您有所帮助。

MySQL联表查询:

reference mysql manul:
3.2.7. SELECT语法13.2.7.1. JOIN语法
13.2.7.2. UNION语法
eg1:·mysql> SELECT t1.name, t2.salary FROM employee AS t1, info AS t2·->    WHERE t1.name = t2.name;eg2:·mysql> SELECT table1.* FROM table1·->        LEFT JOIN table2 ON table1.id=table2.id·->        WHERE table2.id IS NULL;

联表删除:

1、从数据表t1 中把那些id值在数据表t2 里有匹配的记录全删除掉

DELETE t1 FROM t1,t2 WHERE t1.id=t2.id    或DELETE  FROM t1 USING t1,t2 WHERE t1.id=t2.id

2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉

DELETE t1 FROM t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL 或

DELETE  FROM t1,USING t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL

3、从两个表中找出相同记录的数据并把两个表中的数据都删除掉

DELETE t1,t2 from t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t1.id=25

注意此处的delete t1,t2 from 中的t1,t2不能是别名

如:delete t1,t2 from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25 在数据里面执行是错误的(MYSQL 版本不小于5.0在5.0中是可以的)

上述语句改写成

delete table_name,table2_name from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25 在数据里面执行是错误的(MYSQL 版本小于5.0在5.0中是可以的)

Vim 注释多行 不指定

kangyang , 2014/07/23 14:08 , LINUX系统管理 , 评论(0) , 阅读(3118) , Via 本站原创
作为一个非专业运维人员,惨为遗忘的操作而悔恨,遂转载之!

from :http://www.21andy.com/blog/20100413/1859.html

Vim 注释多行简化说明
以下一次注释3行操作如下

esc
0 跳到行首
ctrl+v 可视块模式
jjj 下移3行
I 进入插入模式
//
esc
嫌麻烦可以自己定义快捷键

# vim ~/.vimrc
输入如下内容,保存

“F5 for comment
vmap :s=^\(//\)*=//=g:noh
nmap :s=^\(//\)*=//=g:noh
imap :s=^\(//\)*=//=g:noh
“F6 for uncomment
vmap :s=^\(//\)*==g:noh
nmap :s=^\(//\)*==g:noh
imap :s=^\(//\)*==g:noh
Vim 注释多行详细说明:
ctrl+v 进入列模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如#,再按Esc,就会全部注释。或者也可以运行下面这些命令:

:s/^/#                  #用”#”注释当前行
:2,50s/^ /#              #在2~50行首添加”#”注释
:.,+3s/^/#              #用”#”注释当前行和当前行后面的三行
:%s/^/#                 #用”#”注释所有行
顺便说一下vim的替换,这个常用,已经牢记,其实和上面用命令注释多行是一样的,只不过是上面注释的命令里的”^”符号代表开始位置而已,在下面 这些命令中,”s”代表替换,part1代表查找的内容,part2代表替换的内容,”%”代表所有行,”g”代表替换整行里所有的内容(如果不 加”/g”则只替换每行第一个匹配part1的地方)。

:s/part1/part2          #用part2替换当前行中第1个part1
:s/part1 /part2/g        #用part2替换当前行中所有的part1
:%s/part1/part2         #用part2替换所有行中每行第1个part1
:%s/part1/part2/g       #用part2替换所有行中所有的part1
:2,50s/part1 /part2      #用part2替换第2行到第50行中每行第1个part1
:2,50s/part1/part2/g    #用 part2替换第2行到第50行中所有的part1
:.,+3s/part1/part2      #用part2替换当前行以及当前行后面的三行中每行第1个part1
:.,+3s/part1/part2/g    #用part2替换当前行以及当前行后面的三行中所有的part1
BTW: 在替换时要注意,某些字符是需要转译的,如空格、括号等。

vi/vim 跳转到指定行 不指定

kangyang , 2014/07/23 14:07 , LINUX系统管理 , 评论(0) , 阅读(2898) , Via 本站原创
(1)
按ESC,然后123gg
就是跳到123行
(2)
输入 :行号
就跳到你要的行了!
###############################
添加、删除注释:

注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”//”,再按Esc,就会全部注释了。


删除:先按v,进入visual模式,横向选中列的个数(如”/ /”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号。

使用替换命令:
:%s/^/\/\//g来在全部内容的行首添加//号注释
:2,50s/^/\/\//g在2~50行首添加//号注释
反过来替换既是删除操作。
分页: 6/9 第一页 上页 1 2 3 4 5 6 7 8 9 下页 最后页 [ 显示模式: 摘要 | 列表 ]