oracle常用sql语句cast,常用SQL语句书写技巧

本文介绍了SQL语句的优化技巧,强调了建立合适索引的重要性,区分了聚集索引和非聚集索引的区别,并提供了Oracle数据库的查询session方法。通过案例展示了SQL中的数学函数和CASE语句的使用,帮助提升查询效率。
摘要由CSDN通过智能技术生成

常用SQL语句书写技巧

转自:http://jianghaifeng.blogchina.com/3841741.html

 SQL结构化查询字符串的改写,是实现数据库查询性能提升的最现实、最有效的手段,有时甚至是唯一的手段,比如在不允许大幅度修改现有数据库结构的情况下。

通过优化SQL语句提高查询性能的关键是:

 根据实际需求情况,建立合适的索引;

 使用一切可能的方式去利用好索引,避免全表扫描;

 尽量减少内存及数据I/O方面的开销

一、 建立索引

(一)建立“适当”的索引,是快速查询的基础。

索引(index)是除表之外另一重要的、用户定义的存储在物理介质上的数据结构。当根据索引码的值搜索数据时,索引提供了对数据的快速访问。事实上,没有索引,数据库也能根据SELECT语句成功地检索到结果,但随着表变得越来越大,使用“适当”的索引的效果就越来越明显。注意,在这句话中,我们用了“适当”这个词,这是因为,如果使用索引时不认真考虑其实现过程,索引既可以提高也会破坏数据库的工作性能。

索引实际上是一种特殊的目录,SQL SERVER提供了两种索引:

 聚集索引(clustered index,也称聚类索引、簇集索引)

我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。

例如:

汉语字典中按拼音查某一个字,就是使用“聚集索引”,实际上,你根本用不着查目录,直接在字典正文里找,就能很快找到需要的汉字(假设你知道发音)。

 非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)

我们把目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚集索引”。

例如:

汉语字典中按部首查某一个字,部首目录和正文一定要刻意的通过页码才能联系到一起,其顺序不是天然一致的。

聚集索引与非聚集索引的最大区别就在于:聚集索引是对原数据表进行排序,因此只要符合索引条件,就能够直接连续的读取数据记录,几乎可以达到对数据表的零扫描;而非聚集索引仅仅只是另外建了一张索引表,取数据的时候,从索引表取得结果后,还需要到指针所指的数据行读取相应数据,因此,在性能上,聚集索引会大大优于非聚集索引。

但是在一张表中,聚集索引只允许一个,是比较宝贵的,因此要尽可能的用于那些使用频率最高的索引上。 另外,查询时必需要用到索引的起始列,否则索引无效。另外,起始列也必需是使用频繁的列,那样的索引性能才会达�

相关文档:

为了研究一下系统在后台都干了什么,当然是我在代码里没找到的情况下,研究了一下trace,结果有一定的帮助。oracle中不像sql server中那样直接提供图像化的工具,所以还是得自己动手来做,归纳了一下,步骤如下:

查询session:

SQL> select sid, serial#, username from v$session where username='XXX';//找出你要跟 ......

---------数学函数

1.绝对值

S:select abs(-1) value

O:select abs(-1) value from dual

2.取整(大)

S:select ceiling(-1.001) value

O:select ceil(-1.001) value from dual

3.取整(小)

S:select floor(-1.001) value

O:select floor(-1.001) value from dual

4.取整(截取)

S:select cast(-1.002 as int) v ......

--基础了解:

1) select distinct name from table --打开重复记录的单个字段

2) select * from table where fid in(Select min(fid) from table group by name)--打开重复记录的所有字段值

3) select * from table where name in(select name from table group by name having count(name)=1)--打开重复任意次数� ......

转自http://lavasoft.blog.51cto.com/62575/23373

SQL语言的CASE语句备忘

概述:

SQL语句中的CASE语句与高级语言中的switch语句,是标准SQL的语法,适用与一个条件判断有多种值的情况下分别执行不同的操作。灵活应用CASE语句可以使SQL语句变得简洁易读,下面在DB2环境下通过一个简单的查询来展示SQL CASE� ......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值