常用sql语句
连表更新
update blog_tagnum as a,(select Blogid,Tag,count(0) as 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
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,则筛选无效
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(注意,后面不要加分号)
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
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