sql学习笔记

来源:互联网 发布:c语言编程实例源代码 编辑:程序博客网 时间:2024/06/05 06:00
sql学习笔记:
1、sql中多个表之间的左连接:
select tb1.* , tb2.* , tb3.*
from tb1 
left join tb2 on tb1.关键字 = tb2.关键字
left join tb3 on tb1.关键字 = tb3.关键字


select tb1.* , tb2.* , tb3.*
from tb1 
left join tb2 on tb1.关键字 = tb2.关键字
left join tb3 on tb2.关键字 = tb3.关键字


sql中一个表对多个表的多个字段的左连接:
from #zydt12 a left join #zdzl b on a.yjks = b.yjks and a.ejks=b.ejks and a.ksdm=b.ksdm
left join #sszl c on a.yjks=c.yjks and a.ejks=c.ejks and a.ksdm=c.ksdm 


2、(工具使用)sql Server Profiler 使用,可以跟踪sql语句的执行,通过SQL Server Profiler 跟踪程序或者数据库运行过程中SQL的执行信息。然后分析sql耗时,从而明确优化点,在选择事件中的各个列中可以按要求设置自己的跟踪,过滤程序的ID等,数据库ID,列名。
在任务管理器中可以看到应用程序的进程id


sp_helptext是显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。sp_helptext statisticMzgkyszlgzlreport--存储过程,在这里可以显示存储过程的文本(未加密的)。
<-->
3、distinct用法:(1)作用于单列:select distinct name from A (2)作用于多列:select distinct xing, ming from B 
(3)count 中使用:select count(distinct name) from A;  --表中name去重后的数目, SQL Server支持,而Access不支持
<-->
4、在sql中修改某列的值:
update Treport  set fname = '主治医师工作量统计' where FID=439
修改Treport表中fid为439的fname列的值为'主治医师工作量统计'
<-->
5、(工具使用)在sqlserver中查找表,存储,用筛选器,过滤筛选
<-->
6、在sqlserver数据库中的存储过程中返回数据集给程序:
if @datetype = 5 
begin
--select * from #Tzypart4report order by fpx
--drop table #Tzypart4report
select * from #Tadreport
drop table #Tadreport
return
end
若没有注释上面部分,则该存储过程返回两个结果集,如果在代码接收结果集地方没有写接收多个结果集,则只会接收第一个;
<-->
数据 库中如果表名想定义成变量就要用动态语句
create proc usp_SelectCount
@table varchar(200)
as
declare @sql varchar(max)
set @sql='select count (*) from '+@table
exec(@sql)
0 0
原创粉丝点击