常用sql语句

连表更新 
update blog_tagnum as a,(select Blogid,Tag,count(0as tagnum from blogtopic_tag where blogid=13990 
group by Tag) as b
set a.num=b.tagnum
where a.Blogid=b.Blogid and a.Tag=b.Tag

 

左连接再筛选

select * from t1 as a left join t2 as b
on a.sid=b.sid 
where a.sid=1
#注意,如果条件写成on a.sid=b.sid and a.sid=1,则筛选无效  

 

 

mysql数据导入导出

-- 导出所有记录 
mysqldump --host 192.168.1.99 -u root -p password -A >db_new.sql

-- 导出所有库的表结构
mysqldump --host 192.168.1.99 -u root -p password -d -A >db_new.sql

--导出某个库的所有表
mysqldump --host 192.168.1.99 -u root -p password dbname >db_new.sql   

-- 导出所有某个库的某些表
mysqldump --host 192.168.1.99 -u root -p password dbname tablename >db_new.sql 

-- 导入
mysql -u root -p dbname<db.sql 

--使用控制台导入
(1)控制台登录mysql
(2)use dbname;
(3)source db.sql(注意,后面不要加分号)

 

 

 

mysql的 "set 系统变量" 语法说明 

 (1)在全局范围内设置系统变量(作用范围:本次连接以及执行set语句以后打开的新连接,直到mysql服务器重启) 
set global group_concat_max_len=100000
set @@global.group_concat_max_len=100000

(2)在本次连接内设置系统变量(作用范围: 仅限本次连接)
set session group_concat_max_len=100000
set @@session.group_concat_max_len=100000
set local group_concat_max_len=100000
set @@local.group_concat_max_len=100000
set group_concat_max_len=100000
set @@group_concat_max_len=100000


Mysql的变量分为2大类型:
1. 系统变量,有二种子类型
    全局变量,例如 global group_concat_max_len,作用域为当前连接和以后打开的新连接(直到服务器重启)  
    会话变量,例如 session group_concat_max_len,作用域为当前连接   
2  用户变量
    直接使用 set @变量名=值 定义的用户变量,作用域为当前连接
3. 局部变量
    使用 declare var_name var_type 定义的局部变量,作用范围在它被声明的BEGIN ... END块内
参考:  http://relay.programfan.info/mysql/146.jsp
    http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html#variables-in-stored-procedures

 

 

 

 

 

 

 

 

posted @ 2012-03-22 16:27  再快一点  阅读(284)  评论(0编辑  收藏  举报