资源描述:
《oracle索引、序列、查询分组、排序、连接、视图等》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、orcleoracle索引、序列、查询、视图本章目标索引序列聚合函数排序分组连接查询视图索引什么是做引?一种用户提升查询效率的数据库对象通过快速定位数据的方法,减少磁盘I/O操作索引信息与表独立存放oracle数据库自动使用和维护做引索引分类唯一性索引非唯一性索引创建索引的方式自动创建:在定义主键或唯一性约束的时候系统会自动在相应的字段上创建唯一索引手动创建:用户可以在其他列上创建索引,以加速查询速度创建/删除索引可以使用createindex语句手动创建索引createindex索引名on表名(列名[,列名])删除
2、索引使用dropindex语句删除索引创建索引的原则下列情况下可以创建索引字段取值分布范围很广字段中报刊大量的空值字段经常出现在where子句或者连接条件中表经常被访问、数据量很大,且通常每次访问的数据量小于记录总量的2%-4%下列情况可以不用创建索引表很小字段不经常出现在where子句中每次访问的数据量大于记录总数的2%-4%表经常更新被索引的字段作为表达式的一部分被引用查看索引查询用户字典视图user_indexes可得到用户的所有索引查询用户字典视图user_ind_columns可以获知索引建立在哪些字段上序
3、列序列是用于生成唯一、连续序号的对象序列可以是升序的,也可以是降序的使用CREATESEQUENCE语句创建序列SQL>CREATESEQUENCEtoys_seqSTARTWITH10INCREMENTBY10MAXVALUE2000MINVALUE10NOCYCLECACHE10;指定第一个序号从10开始指定序号之间的间隔为10表示序列的最大值为2000表示序列的最小值为10在达到最大值后停止生成下一个值指定内存中预先分配的序号数访问序列通过序列的伪列来访问序列的值NEXTVAL返回序列的下一个值CURRVAL返
4、回序列的当前值SQL>INSERTINTOtoys(toyid,toyname,toyprice)VALUES(toys_seq.NEXTVAL,‘TWENTY’,25);SQL>INSERTINTOtoys(toyid,toyname,toyprice)VALUES(toys_seq.NEXTVAL,’MAGICPENCIL’,75);指定序列的下一个值SQL>SELECTtoys_seq.CURRVALFROMdual;检索序列的当前值更改和删除序列SQL>ALTERSEQUENCEtoys_seqMAXVALU
5、E5000CYCLE;使用ALTERSEQUENCE语句修改序列,不能更改序列的STARTWITH参数使用DROPSEQUENCE语句删除序列SQL>DROPSEQUENCEtoys_seq;数据库的查询SELECT语句的格式SELECT[predicate]{*
6、table.*
7、[table.]field[,[table.]field2[,...]]}[ASalias1[,alias2[,...]]]FROMtableexpression[,...][WHERE...][GROUPBY...][HAVING...]
8、[ORDERBY...][WITHOWNERACCESSOPTION]SELECT中的条件语句FROM条件子句SELECTfieldlistFROM表名WHERE条件子句SELECTfieldlistFROM表名WHERE条件DISTINCT属性词用法SELECT[*
9、DISTINCT]FROMtableSELECT中的条件语句BETWEEN...AND运算符expr[Not]BETWEENvalue1ANDvalue2LIKE操作数expressionLIKE"pattern"expression空值的查询列的别名
10、数据查询-排序1升序排列SELECTStudentIDAs学员编号,(Score*0.9+5)As综合成绩FROMScoreWHERE(Score*0.9+5)>60ORDERBYScore降序排列SELECTAu_Lname+'.'+Au_fNameASEMPFromAuthorsUnionSELECTfName+'.'+LNameASEMPFromEmployeeORDERBYEMPDESC数据查询-排序2按多列排序SELECTStudentIDAs学员编号,ScoreAs成绩FROMScoreWHEREScor
11、e>60ORDERBYScore,CourseID思考:排序中的字段,可以使用表达式吗?——如果不可以,请说明原因;——如果可以,请举例说明;问题成绩表中存储了所有学员的成绩,我想知道:学员的总成绩、平均成绩、有成绩的学员总共有多少名怎么办?聚合函数-1SUMAVGSELECTSUM(ytd_sales)FROMtitlesWHEREtype=