SqlServer中的几个疏漏的知识点--联合查询,索引键,几个练习
2018-01-22 01:08
218 查看
1.联合查询
使用联合查询,可以将两个相同列不同表的数据合并到一张表查询出来,例子:select id,name form p_q union select id,name from p_s当两张表中有重复的数据的时候,union会自动去重,则时候要使用union all
select id,name from p_q union all select id,name from p_s
2.sql中的索引键
当我们需要经常查询数据的时候,这时候可以建立索引,提高查询效率,但是这样也有缺陷,insert和updata和delete的时候,效率会相对比较低,因为在更新数据库的同事还需要同时更新索引建立索引的办法,现在的可视化建表工具中都提供了建立索引的功能,你可以根据自己使用的工具到网上寻找建立索引的办法3.sql中的几个练习题
1.习题1 表名Test id count 1 10 2 20 3 -30 4 -10 转成 单号 收入 支出 1 10 0 2 20 0 3 0 30 4 0 30用sqlserver语法实现上面操作
select id( case when count > 0 then count else 0 end )as 收入, ( case when count<0 then count else 0 end ) from Test2.习题2data name score 2008-8-8 拜仁 胜2008-8-9 奇才 胜2008-8-9 湖人 胜2008-9-10 拜仁 负2008-8-8 拜仁 负2008-8-12 奇才 胜要求输出下面格式name 胜 负拜仁 1 2湖人 1 0奇才 2 0
select name,sum((case scorewhen N'胜' then 1else 0end))as 胜,sum((case scorewhen N'负' then 1else 0end))as 负from Test group by name<hr>创建一张表,记录电话呼叫员的流水,记录呼叫员编号、对方号码、通话开始时间、通话结束时间。输出所有数据中通话时间最长的5条记录输出所有数据中拨打长途号码(对方号码以0开头)的总时长输出本月通话总时长最多的前三个呼叫员的编号输出本月拨打电话次数最多的前三个呼叫员的编号 输出所有数据的拨号流水,并且在最后一行添加总呼叫次数 呼叫员编号、对方号码、通话时长【汇总市内号码总时长】【长途号码总时长】 1,select top 5 * from Test order by DateDiff(second,StartDateTime,EndDateTime)Desc 2.select sum(datediff(second,startdatetime,gettime()))from Test where TelNum like "0%"3.select top 3 callername from testwhere datediff(month,starttime,endtime) = 0group by callernum order by sum(datediff(second,starttime,endtime)) desc4,select top 3 callernum from Testwhere datediff(month,starttime,gettime())group by callernumorder by count(*) desc5-----汇总select callerNum,telNum,datediff(second,starttime,endtime) from Testunion allselect '汇总'convert(varchar(50),sum((casewhen telNum not like "0%" then datediff(second,starttime,endtime)else 0))) as 短途电话,((casewhen telaNum like "0%" then datediff(second,starttime,endtime)else 0))from Test
相关文章推荐
- 几个表的联合查询练习
- SQLserver基础--连接查询、联合查询、索引
- 11-04 SQLserver基础--连接查询、联合查询、索引
- 数据库触发联合索引的几个条件
- SQL查询优化联合索引 与 单一列的索引
- SqlServer 巧妙解决 多条件组合查询(只是一个很好的想法,但它不会走索引)所以效率不好
- sqlserver查询表索引语句
- Sqlserver 中的联合查询
- 四、优化数据库,将不同功能的表分别建立在不同的库中,尽量避免表的联合查询,重视索引
- SQLSERVER跨数据库表联合查询
- SqlServer性能优化 查询和索引优化(十二)
- 在SqlServer里面没有索引的情况下 where子句的条件顺序对查询效率有影响吗?
- sqlserver查询数据库所有存储过程、触发器、索引信息
- 记一次 mysql 联合索引顺序引发的查询慢死的坑
- Linq中疏漏的几个知识点
- 查询SqlServer下查询所有指定用户下的主外键,索引
- 数据库触发联合索引的几个条件
- Sqlserver 联合查询 时报 Ambiguous column name
- 查询sqlserver 索引的使用情况
- 联合索引优化多条件查询