ORACL∈ 0000 ·例1,查询各个课程的平均分数,其中只需要cm列 值大于1的记录; SELECT cno, avglgrade) FROM Sc GROUP BY cno HAVING Cno>1 SQL>SELECT Cno, aug(grade> FROM SC GROUP BY Cno HAUING Cno>1F CNO AUG(GRADE) 61.4615385 85.5454545 69 已用时间:8:09:991 第11页
• 例1,查询各个课程的平均分数,其中只需要cno列 值大于1的记录; Ø SELECT cno , avg(grade) FROM sc GROUP BY cno HAVING cno>1; 第 11 页
ORACL∈ SELECT cno, avggrade) from sc where cno>1 group by cno: QL> SELECT cno, aug<grade) FROM sc where cno >1 GROUP BY cno CNo∩UG( GRADE 61.4615385 85.5454545 第12页
ØSELECT cno,avg(grade) FROM sc where cno>1 GROUP BY cno; 第 12 页
ORACL∈ 0000 ·虽然结果基本一样,但是两种方式根据记录量的不同消耗 时间也有差异; ·故,对于数据记录特别多的数据查询,应提前使用Wre 子句就会减少此方面的开销,过滤条件应尽量让Wre子 句实现。 第13页
• 虽然结果基本一样,但是两种方式根据记录量的不同消耗 时间也有差异; • 故,对于数据记录特别多的数据查询,应提前使用Where 子句就会减少此方面的开销,过滤条件应尽量让Where子 第 13 页 句实现
ORACL∈ ·3TNAT与TME ·删除表中的数据可以使用功N减者TNA语句; 其中,使用K语句删除表中所有的数据时, 0 racle会对数据逐行删除; NA句删除表中的所有数据行时是一次性的, 也就是执行一次A晤句,所有的数据行是在同 一时间被删除。 ·如果确定要删除表中的所有行,建议使用NA踣句。 第14页
3.TRUNCATE与DELETE • 删除表中的数据可以使用DELETE或者TRUNCATE语句; – 其中,使用DELETE语句删除表中所有的数据时, Oracle会对数据逐行删除; – TRUNCATE语句删除表中的所有数据行时是一次性的, 第 14 页 也就是执行一次TRUNCATE语句,所有的数据行是在同 一时间被删除。 • 如果确定要删除表中的所有行,建议使用TRUNCATE语句
ORACL∈ ●·●·4使用表连接而不是多个查询 在执行每条查询语句时, racle内部执行了许多工作 解析S语句、估算索引的利用率、绑定变量,以及读取 数据块等。因此,要尽量减少访问S语句的执行次数。 尽量减少表的查询次数,主要是指可以使用一次查询获得 的数据,尽量不要通过两次或更多次的查询获得。 第15页
4.使用表连接而不是多个查询 • 在执行每条查询语句时,Oracle内部执行了许多工作—— 解析SQL语句、估算索引的利用率、绑定变量,以及读取 数据块等。因此,要尽量减少访问SQL语句的执行次数。 • 尽量减少表的查询次数,主要是指可以使用一次查询获得 第 15 页 的数据,尽量不要通过两次或更多次的查询获得