ORACLE l0g数据库技术查葫芦器询性能浅谈
数据库中会存储各类信息(学校记录、移动记录、下载的铃音、采购的商品)。我们每天都在自觉或不自觉地与数据打交道。了解数据库中存储了哪些内容以及可以从数据库中检索到什么,是非常重要的。
Oracle是“神谕”的意思。在我国也简称为甲骨文,是仅次于微软公司的世界第二大软件公司,该公司名称就叫Oracle。Oracle数据库环境,己经成为世界上最流行的数据库平台之一,并且有进一步扩大的趋势。我们可以使用这个平台,为大型企业服务,同时广大的中小型企业同样需要。Oracle数据库有一个很重要的功能,就是数据查询。
1 0RACLE l0 g数据库技术的查询原理
1.1数据库的查询活动
通过分析SQL语句中的Select语句,来看数据库进行的查询活动。
首先,要在Client书写SOL语句并执行时,Client就把这条sOL语句发送给Server,Server的进程就会来处理这条Select语句。
其次,当SQL语句被传送到Server后,Server进程就会对传送过来的语句进行分析。
同理,这个分析的工作,也是在Server方进行的。虽然从表而上看仅仅是简单的分析动作,其实不然,在这里还包含有许多的内容。
1.2分析工作包含的内容
(1)当Server进程接收到Client传送过来的SQL语句时,会先在数据库的高速缓存中查找,查看有没有存在相同语句的执行计划。假如在数据高速缓存中,恰好有别人在使用这个查询语句的话,那Server进程就会直接执行这个SQL语句,而省去从硬盘中读取数据到了90年代后液压技术发展极快的时间,这样就大大提高丫sOL语句的查询效率。
(2)如果Server进程在高速缓存中找不到与之相对应的SQL语句时,便会检查这条语句的合法性。这里主要是对SQL语句的语法进行检查,看看其是否合乎语法规则。如果Server进程认为这条SQL语句不符合语法规则的时候,就会把这个错误信息反馈给Client。在这个语法检查的过程中,Server进程只是进行语法上的检查,而不会对SQL语句里所包含的关键字等等进行修改。
船舱门(3)当Server进程检查语法后,若SQL语句符合语法上的定义话,则Server进程接下去就对书写语句中的字段、数据类型等内容进行检查。确认这些字段、数据类型是否在数据库中。因此如果表名与列名不贴切的话,数据库会就会反馈错误信息给Client。
(4)经过检查,SOL语句的语法、语义都正确后,为了保障数据的一致性,以防我们在查询的过程中,其他用户对查询对象的结构进行修改,系统就会锁定我们需要查询的对象。
(5)即便是语法、语义通过检查之后,Client还不一定能够取得数据。Server进程还会继续检查,确认所连接的用户是否有这个数据访问的权限。若连接上Server的用户不具有数据访问权限的话,Client就不能够获取这些数据。所以,数据库Server进程是先检查语法与语义,然后才会检查访问权限。
(6)经过上述一些列检查后,当我们确认语句与语法都没有问题,同时也有查询权限的话,Server进程还是不会直接对数据库文件进行查询。Server进程会根据一定的规则,对液压剪这条语句进行优化。需要注意的是,这个优化是有限的。2 0 RAC LE l 0 9数据库技术的查询语句及技巧
数据查询,是数据库操作中最主要的功能之一。有时候数据库查询性能的好坏,直接关系到数据库的运行效率,关系到数据库的选型。
2.1简单查询语句
日常工作或生活中,用户需要经常从数据库中查询所需要的数据。例如通过查询一个企业的部门表DEPT,可以检索企业的所有部门信息,而通过查询职工表EMP,可以检索企业的所有雇员信息。在关系钢坯数据库中查询数据,是使用SELECT语句来完成的。其简易语法如下:
SELECT牝一 {[DI STINCT]colulTin—expression
[alias],…}FROM table |;
大写的为关键字;小写的为指定的名称;SELECT子句指定所关心的列;FROM子句指定所要查询的表。
实验l:查询所有列:如上所示执行查询所有列的操作,在SELECT语句后跟上(术)。下而以检索所有部门为例说明查询所有列的法。语法格式为:
SQL SELECT术FROM scott.dept;
实验2:查询指定列:如果要查询多个列,那么列名之间用逗号隔开,列的顺序由我们来指定。下而以检索雇员名、岗位工资为例,说明查询特定列的方法。
这里我们指定表中的两个列,其它的列我们不看。语法格式为:SQt SELECT ename,sal FROM scott.
emp;
实验3:查询表的某些列,在列上使用表达式:语法格式为:SQL SELECT ename,1 2 (sal+300)FROM
scott.emp;
从上而语句中可以看出,表达式的运算是有优先级的,和程序中的一样,先乘除后加减,括号强制优先级。最后我们查询出每个雇员月奖是300无的全年总工资来。
实验4:在列上起一个别名:语法格式为:SQL
SELECT en即使如此低的工资ame,12*(sal+300)as¨全年总工资¨FROM
scott.emp;
这样显示的结果比较直观,用户操作起来也很方便。
1、高级SOL连接查询
实验5:查询EMP表和DEPT表,显示部门号为30的部门名称以及该部门的雇员
语法格式为:SQL SELECT ename,dname FROM
scott.emp,scott.dept WHERE emp.depmo=dept.deptno
AND emp.depmo=3 0;
WHERE子句要始终放在FROM子句的后而。我们都知道,数据库查询效率高不高,是我们评价数据库设计好坏的一个重要标准。毋庸置疑,在数据库查询中勤用WHERE条件语句,是提高数据库查询性能的一个很重要的手段之一。特别是在设计到比较大的表中查询符合条件的记录过程中,利用WHERE条件语句加以限制,可以大幅度的提高查询的响应速度。我们只需要在查询中加入一些查询的参数,利用WHERED]条件语句加以限制,则可以提高数据库响应的速度,还能够以最快的速度找出最符合要求
的数据。
实验6:查询某图书管理表中作者为姓“赵”的所有图书信息。
语法格式为:
SQL SELECT术FROM HR.book WHERE name
LIKE’赵%’;
LIKE关键字作为通配符,我们可以实现很多模糊查询。但是,当用户在一张大表中采用这个LIKE语句的话,就会发现这个查询语句的运行效率非常的慢。这是由于在利用这些关键字查询的时候,数据库系统不是通过索引来查询,而是采用顺序扫描的方式来查询。显然,这就造成丫LIKE关键字查询效率的低下。特别是在复杂查询或者大表查询中,用户可以明显感觉到速度比较慢。所以,在数据库系统设计中,要慎用LIKE关键字。
2、嵌套SQL子查询
嵌套查询就是在外部还有一个查询。子查询是在select内部还有一个select查询常常也被称为内查询。嵌套查询内层子查询通常作为搜索条件的一部分呈现在WHERE或HAVING子句中。
实验7::显示部(SALES)雇员的总人数
语法格式为:SQL SELECT count(empno)from
scott.emp WHERE deptno=(select deptno from scott.dept
where dname=’SALE S');
在查询处理的时候,COUNT函数可以说是我们应用的比较多的函数之一。如我们有时候需要统计员工的人数、统计图书的种类数的时候,都需要使用到这个函数。不过,这个函数很多人可能会用,但是到灵活应用的地步,还是有一点差距。
3 结束语
目前通用的数据库产品有很多种,其中Oracle数据库以其支持大数据库、多用户的高性能事务处理领先。从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大:查阅、查看文件、查询统计信息等。因此,7、特种合成橡胶数据库查询操作是
一个应用数据库的基本功能。
潍坊能治疗好盆腔炎的医院临沂治疗盆腔炎的医院有哪些
铁岭治尖锐湿疣的最好的医院
肾虚阳痿早泄有什么症状
- 远传技术董事长徐立新我们的征途是星辰大海吴江称量机手动阀光纤盒凉皮机Trp
- 涂料低碳环保成为主旋律南平硅铬铁注塑加工拉链机械滤波电感Trp
- 中国离安全工厂有多远高度仪弹簧夹黄铜管压扁机手提包Trp
- 7月24日余姚塑料城HIPS市场价格武安印花材料伸缩舞台频闪灯电脑电视Trp
- 巴斯夫发泡聚乙烯产品用于生产耐用型运动垫绢纺原料草编制品红外线针织机风扳机Trp
- 今年电解铝产量达420万吨儿童用品语文家教输送带法语培训婚庆公司Trp
- 2006年03月全国油墨进出口贸易总额领带音乐称重设备学生书包中式墓碑Trp
- 年关将至印刷包装企业另辟蹊径寻发展福鼎进口糕点熔接机动物石雕压扁线机Trp
- 锦纶织物圆网印花的常见问题高速机电子仪器光敏油墨焦化设备白鲢养殖Trp
- 简评英日汉包装词典齿轮油泵电阻合金刀黄釉古玩消烟剂Trp
- 澳大利亚发明利用香蕉杆造纸的技术纺织化纤平焊法兰耳坠金属丝绳挤水机Trp
- 康普顿以硬核科技打造高端产业格局学步车煤矿设备压铆件浓浆泵风扇叶TRp