//在DOS界面中设变量
set @i=0;
update 表名 set 字段名 = concat('all_',(@i:=@i+1)) where name = 'All';
//表的级联操作(select)
select c.字段名, b.id from 表名1 c, 表名2 a, 表名3 b where a.字段名 = c.id and a.字段名 = b.id and b.字段名 like '%all%';
//表的级联操作(update)
update 表名1 a, 表名2 b, 表名3 c set a.字段名 = concat('all_',c.code,b.code) where a.字段名 = b.id and b.字段名 = c.id and a.name = 'all';
//表的级联操作(delete)
delete from 表名 where 字段名 = (select a.id from 表名1 a, 表名2 b where a.字段名 = b.id and b.字段名 = '****') and 字段名 = '****';
//根据条件导出表中内容(仅仅是内容字段值)
select * from 表名 where 字段名 = '****' into outfile 'c:/temp/plan.sql' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n'
//根据条件导出表中内容(有insert等操作语句,可以再次导入其他数据库)
先创建临时表
create table rptemp select * from 表名 where 字段名 = '****';
再导出临时表
mysqldump
//无需密码进入MYSQL 先启动MYSQLD
mysqld --skip-grant-tables
//进入MYSQL
mysql -uroot -ppassword -h192.168.22.125 --default-character-set=gbk
//清除binlog
reset master;
//转义BINLOG 的二进制编码到文件中
mysqlbinlog --no-default binlog.000001 > c:\temp\ss.sql
//sql when的用法 类似 IF 语句
select case when version = '5' then id else name end as a from employee;
//union 和 union all
将2个SQL查询出来的不同结果合并成一个结果集合,只要是列的类型相同。
union
select id,name from employee union select id, name from project;
union all
select "1" union all select "1";
显示 1
1
union会自动合并相同的行,union all不会。
使用union的时候若使用了limit则需要用括号包裹SQL。
错误:select id from employee limit 1 union all select id from employee limit 1; 结果:1个值
正确:(select id from employee limit 1) union all (select id from employee limit 1); 结果:2个值
//导出存储过程
mysqldump -uroot -ppassword -n -d -t -R puppet > c:\temp\procedure.sql
//存储过程
delimiter |
CREATE PROCEDURE procedure1(IN parameter1 INTEGER)
BEGIN
DECLARE variable1 CHAR(10);
END;
|
delimiter ;
//存储过程 处理 exception "CONTINUE HANDLER" "EXIT HANDLER"
CREATE PROCEDURE p23 ()
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1;
SET @x = 1;
INSERT INTO t4 VALUES (1);
SET @x = 2;
INSERT INTO t4 VALUES (1);
SET @x = 3;
End;
|
//存储过程 附值
注意:select中附值是用":=",一般附值set @x=@x+1; set @x:=@x+1;一样暂时认为。
delimiter |
Create procedure myif()
Begin
set @x=1;
select @x;
select (@x:=s1*3) from t;
select @x;
End;
|
delimiter ;
把数据库查询结果附值
select id from t limit 1 into @x;
//存储过程 if..then..elseif..then..else..end if while..do..end while
注意: elseif是写一块的
delimiter |
Create procedure myifelse5()
Begin
set @x=1;
while @x<=11 do
if @x < 5 then
select concat(@x,"小于五");
set @x = @x + 1;
elseif @x>=5 and @x<=10 then
select concat(@x,"大于等于五,小于等于十");
set @x = @x + 1;
else
select concat(@x,"大于十");
set @x = @x + 1;
end if;
end while;
End;
|
delimiter ;
//存储过程参数in, out, inout
in传入参数,out 用于传出参数, inout都可以使用
set @s1='sss1';
set @s2='sss2';
set @s3='sss3';
delimiter |
create procedure inoutp(in s varchar(255), out b varchar(255), inout c varchar(255))
begin
select c;
select b;
set s='2345';
select s;
set b=s;
set c=s;
select b;
select c;
end
|
delimiter ;
call inoutp(@s1,@s2,@s3);
//触发器 trigger
Create trigger triggerName before insert|update|delete on tableName For each row
begin
sql code.
end
sql code 中OLD.columnName表示操作之前的值
NEW.columnName表示操作之后的值
分享到:
相关推荐
SQL 学习顶顶顶顶顶顶顶 dddddddddddd顶顶顶顶顶顶顶的
sql学习资料 SQL自学通 SQL语句集锦 sql基础到高级 SQLServer实例 MySQL中文参考手册 数据库语言SQL必学 MySQL中文参考手册.chm SQL21自学通.pdf SQL查询答案.doc sql基础到高级.doc SQL语句集锦.txt 多个 SQLServer...
SQL学习指南(第二版)书中的sql初始脚本,此脚本直接运行即可,含有数据。
SQL学习笔记(pdf)
SQL学习资料(包含所有常用的语句例子) sql学习必备,内含sql一些常用语句的例子,有图有表,通过结果来理解sql语句的实现与结果。
SQL学习资料下载 SQL学习资料下载 SQL学习资料下载SQL学习资料下载
SQL学习指南 SQL学习指南 SQL学习指南 SQL学习指南 SQL学习指南
sql学习指南第二版,影印版,老外写的,张伟超等翻译的中文版,方便查阅。
sql学习心得5篇汇总.docxsql学习心得5篇汇总.docxsql学习心得5篇汇总.docxsql学习心得5篇汇总.docxsql学习心得5篇汇总.docxsql学习心得5篇汇总.docxsql学习心得5篇汇总.docxsql学习心得5篇汇总.docx
完整的linq to sql 学习笔记。
ORACLE数据库教程-SQL学习篇.ppt
t-sql学习笔记,总结的挺好
SQL学习指南(新第二版)带sql语句
SQL学习资料SQL学习资料SQL学习资料SQL学习资料SQL学习资料SQL学习资料
sql学习sql学习sql学习sql学习sql学习sql学习sql学习sql学习sql学习sql学习sql学习
PL/SQL学习总结是本人学习ORACLE报表开发及FROM开发的总结,包括存储程序及,包等
sql学习资料
SQL学习(SQL语言学习的DOC资料),供SQL初学者观看,资料齐全。
SQL学习资料SQL学习资料SQL学习资料
sql学习心得5篇精选汇总(优秀4篇).docx