回如下,希望对您有帮助.
1.Inner Join 把两个表连接在一起,返回两个表中相匹配的记录
Left outer join,左侧表所有的记录都返回,右侧匹配的记录返回,没有匹配的返回Null
Right outer join 与Left outer join相反,右侧的记录返回,左侧返回匹配的记录,没有匹配返回Null
Cross join 两个表的笛卡儿积,返回所有可能的值,不允许有连接条件!
2.select 科目,avg(成绩) from 成绩表 group by 科目
order by 科目
3.建立索引是提高select语句最好的方法
(1).使用exists关键字检查结果集:不要用count(*)来检查结果集中是否包含行。
(2).使用标准联接代替嵌套查询:在执行嵌套查询时,SQL server将先执行内部的子查询,然后将查询结果返回给外部查询的作为检索的数据源,最后执行外部的主查询。而在执行包含标准联接的查询时,SQL server将要执行的仅仅是一个查询。
(3).有效避免整表扫描,使用索引。
(4).在like子句的匹配条件的开始使用了%,若在like子句的匹配条件的开始使用了%,那么包含这个like分句的查询将会调用整表扫描。
4.这个..简单的select * from table 结果这个是根据不同数据库不同类型表而有所区别的,要分情况来说的,一般认为是记录在数据库里面的物理位置吧,不过这样答也不完全正确,表是分有索引和无索引的,不同类型在不同数据库也有不同的处理方法 .
如果一次查询出来多个数据集,那么可以减少对数据库的连接和查询(这是很耗时的)
那么如果你想要一次查询出多个数据集,如果这些数据集与检索出的一批数据相关,因此可能用临时表将那些ID抽出来,然后再根据这些ID查其他的记录。
这里需要临时表。
临时表一般存在tempdb里,不会有大问题的。