`
deepfuture
  • 浏览: 4399434 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80062
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70024
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103330
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285713
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15005
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67539
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32129
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45979
社区版块
存档分类
最新评论

ORACLE常用功能集锦

阅读更多

数值函数:


abs(m)m的绝对值
mod(m,n)m被n除后的余数
power(m,n)m的n次方
round(m[,n])m四舍五入至小数点后n位的值(n缺省为0)
trunc(m[,n])m截断n位小数位的值(n缺省为0)

字符函数:


initcap(st)返回st将每个单词的首字母大写,所有其他字母小写
lower(st)返回st将每个单词的字母全部小写
upper(st)返回st将每个单词的字母全部大写
concat(st1,st2)返回st为st2接st1的末尾(可用操作符"||")
lpad(st1,n[,st2])返回右对齐的st,st为在st1的左边用st2填充直至长度为n,st2的缺省为空格
rpad(st1,n[,st2])返回左对齐的st,st为在st1的右边用st2填充直至长度为n,st2的缺省为空格
ltrim(st[,set])返回st,st为从左边删除set中字符直到第一个不是set中的字符。缺省时,指的是空格
rtrim(st[,set])返回st,st为从右边删除set中字符直到第一个不是set中的字符。缺省时,指的是空格
replace(st,search_st[,replace_st])将每次在st中出现的search_st用replace_st替换,返回一个st。缺省时,删除search_st
substr(st,m[,n])n=返回st串的子串,从m位置开始,取n个字符长。缺省时,一直返回到st末端
length(st)数值,返回st中的字符数
instr(st1,st2[,m[,n]])数值,返回st1从第m字符开始,st2第n次出现的位置,m及n的缺省值为1
例:
1.
select initcap('THOMAS'),initcap('thomas') from test;
initca initca
------ ------
Thomas Thomas
2.
select concat('abc','def') "first" from test;
first
-----
abcdef
3.
select 'abc'||' '||'def' "first" from test;
first
-----
abc def
4.
select lpad(name,10),rpad(name,5,'*') from test;
lpad(name,10) rpad(name,5,'*')
------------ ----------------
mmx mmx**
abcdef abcde
5.
去掉地址字段末端的点及单词st和rd
select rtrim(address,'. st rd') from test
6.
select name,replace(name,'a','*') from test;
name replace(name,'a','*')
---- ---------------------
great gre*t
7.
select substr('archibald bearisol',6,9) a,substr('archibaldbearisol',11) b from test;
ab
------- -------
bald bear bearisol
8.
select name,instr(name,' ') a,instr(name,' ',1,2) b fromtest;
nameab
------- -------- ---------
li lei30
l i l24

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

转换函数:
nvl(m,n)如果m值为null,返回n,否则返回m
to_char(m[,fmt])m从一个数值转换为指定格式的字符串fmt缺省时,fmt值的宽度正好能容纳所有的有效数字
to_number(st[,fmt])st从字符型数据转换成按指定格式的数值,缺省时数值格式串的大小正好为整个数
附:
to_char()函数的格式:
---------------------------------
符号说明
---------------------------------
9每个9代表结果中的一位数字
0代表要显示的先导0
$美元符号打印在数的左边
L任意的当地货币符号
.打印十进制的小数点
,打印代表千分位的逗号
---------------------------------
例:
1.
select to_number('123.45')+to_number('234.56') form test;
to_number('123.45')+to_number('234.56')
----------------------------------------
358.01
2.
select to_char(987654321) from test;
to_char(987654321)
------------------
987654321
3.
select to_char(123,'$9,999,999') a,to_char(54321,'$9,999,999')b,to_char(9874321,'$9,999,999') c from test;
abc
------- ---------- -----------
$123$54,321$9,874,321
4.
select to_char(1234.1234,'999,999.999')a,to_char(0.4567,'999,999.999') b,to_char(1.1,'999,999.999') fromtest;
abc
--------- ---------- ------------
1,234.123.4571.100


分组函数:


avg([distinct/all] n)列n的平均值
count([all]*)返回查询范围内的行数包括重复值和空值
count([distinct/all] n)非空值的行数
max([distinct/all] n)该列或表达式的最大值
min([distinct/all] n)该列或表达式的最小值
stdev([distinct/all]n)该列或表达式的标准偏差,忽略空值
sum([distinct/all] n)该列或表达式的总和
variance([distinct/all]n)该列或表达式的方差,忽略空值

日期函数:

>

add_months(d,n)日期d加n个月
last_day(d)包含d的月份的最后一天的日期
month_between(d,e)日期d与e之间的月份数,e先于d
new_time(d,a,b)a时区的日期和时间d在b时区的日期和时间
next_day(d,day)比日期d晚,由day指定的周几的日期
sysdate当前的系统日期和时间
greatest(d1,d2,...dn)给出的日期列表中最后的日期
least(d1,k2,...dn)给出的日期列表中最早的日期
to_char(d[,fmt])日期d按fmt指定的格式转变成字符串
to_date(st[,fmt])字符串st按fmt指定的格式转成日期值,若fmt忽略,st要用缺省格式
round(d[,fmt])日期d按fmt指定格式舍入到最近的日期
trunc(d[,fmt])日期d按fmt指定格式截断到最近的日期
附:
日期格式:
--------------------------------
格式代码 说明举例或可取值的范围
--------------------------------
DD该月某一天1-3
DY   三个大写字母表示的周几SUN,...SAT
DAY   完整的周几,大写英文SUNDAY,...SATURDAY
MM月份1-12
MON     三个大写字母表示的月份JAN,...DEC
MONTH完整JANUARY,...DECEMBER
RM月份的罗马数字I,...XII
YY或YYYY两位,四位数字年
HH:MI:SS   时:分:秒
HH12或HH24  以12小时或24小时显示
MI      分
SS      秒
AM或PM    上下午指示符
SP      后缀SP要求拼写出任何数值字段
TH      后缀TH表示添加的数字是序数 4th,1st
FM前缀对月或日或年值,禁止填充
---------------------------------
例:
1.
下一个周五的日期
select next_day(sysdate,6) from test;
2.
两个月前的今天的日期
select add_months(sysdate,-2) from test;

- 作者: sokovor 2004年08月6日, 星期五13:59  回复(0)|  引用(0)

Template模式--用的最多的模式之一
不要將設計模式想得高不可攀,好像高手才會使用的東西,事實上如果您在下手程式之前,能稍稍對程式作個分析規劃,或多或少都會用到一些模式了,模式不是教條,它只是前人的經驗成果,而Gof的書則是擇前人之精華持續改進而來罷了。

樣版(Template)模式就是一個很簡單的模式,但可能是使用最廣泛的模式,也許您也一直在使用這樣的模式,看它的UML類別結構圖就知道了:


僅僅是抽象類別與具體類別實作的關係而已,有些人常問抽象類別與介面的區別為何,樣版模式可以提供其中一個答案,例如:
public abstract class AbstractClass {
    public void templateMethod() {
        // step by step template to solve something
        // implementor should follow those step
        opStep1();
        opStep2();
        opStep3();
    }

    public abstract void opStep1();
    public abstract void opStep2();
    public abstract void opStep3();
}

public class ConcreteClass extends AbstractClass {
    public abstract void opStep1() {
        // implement the real operation
    }

    public abstract void opStep2() {
        // implement the real operation
    }

    public abstract void opStep3() {
        // implement the real operation
    }
}


對於一些程式而言,我們希望規定一些處理的步驟、流程或骨架,就像是上例中的step1到step3一樣,至於流程中的step1到step3如何實作,我們並不規定,而留給實作的人自行決定,這就是樣版模式的目的。

抽象類別與介面的差別之一,也正在於抽象類別可以先實作其中一些方法,而介面則是完全僅規定接口,使用樣版模式就可以看出兩者之間在應用上的一個差別。

僅以step1到step3這樣的操作來看樣版模式,似乎彰顯示不出其實作骨架,而將實作部份留待子類的實用性,在Gof書中所舉的例子是與工廠方法(FactoryMethod)模式結合的一個例子;通常開啟一個檔案的流程是相似的,例如文字檔或二進位檔,不外乎檢查檔案是否可開啟、讀取檔案、設定顯示等流程,我們可以使用樣版模式來規範這個流程:
public abstract class Application {
    // .....

    public void openDocument(String name) {
        // Template Method
        if(!canOpenDocument(name)) { // unable to open file
            // show error message, throw exception
            return;
        }

        Document doc = createDocument(); // Factory Method

        if(doc != null) {
            _docs.addDocument(doc); 
            // Template Method
            aboutToOpenDocument(doc);
             doc.open();
             doc.doRead();
        }
    }

    public abstract Document createDocument(); // Factory Method

    // Template Method
    public abstract boolean canOpenDocument(String name);
    public abstract void aboutToOpenDocument(Document doc);
}

public class MyApplication extends Application {
    // implement Factory Method
    public void Document createDocument() {
        return new MyDocument();
    }

    // implement Template Method
    public void boolean canOpenDocument(String name) {
        // implemented code here
    }

    public void aboutToOpenDocument(Document doc) {
        // implemented code here
    }
}


工廠方法將實際要創建的物件推遲至子類中決定,而樣版模式則是將流程框架的實作留待子類來解決,事實上在這個例子中,您也可以將createDocument()看作是樣版模式中的一個方法,從物件創建的角度來看它是工廠方法,而從流程框架的角度來看,它則是樣版模式的一個方法實作。
分享到:
评论

相关推荐

    Oracle常用功能集锦

    数值函数: abs(m) m的绝对值 mod(m,n) m被n除后的余数 power(m,n) m的n次方 round(m[,n]) m四舍五入至小数点后n位的值(n缺省为0) trunc(m[,n]) m截断n位小数位的值(n缺省为0) ——————————————...

    oracle常用函数功能演示

    本篇文章将详细解析Oracle的一些常用函数,并通过实例演示它们的功能。 首先,Oracle的数值函数包括三角函数、幂和方根运算以及数值处理函数。例如,`SIN`, `COS`, `TAN`用于三角计算,`POWER`用于求幂,`SQRT`用于...

    Oracle常用命令大全

    ### Oracle常用命令详解 #### 一、Oracle的启动与关闭 **1. 在单机环境下的启动与关闭** - **启动Oracle系统** - **切换用户:** 首先需要切换到Oracle用户环境。 ```bash su - oracle ``` - **使用`svrmgrl`...

    Oracle常用函数集锦.rar

    通过深入学习和实践这些Oracle常用函数,你可以更有效地处理数据库中的数据,无论是查询、分析还是报表生成,都将更加得心应手。不断探索和掌握这些函数,将使你在Oracle数据库管理领域更加游刃有余。

    Oracle常用语法3

    在Oracle数据库管理中,数据导出是非常重要的一个功能,它可以帮助用户将数据库中的数据或元数据导出到一个二进制文件中,以便于数据备份或者迁移。在示例中使用的命令为 `exp`,这是Oracle提供的一个命令行工具,...

    oracle常用sql整理

    本文将基于"oracle常用sql整理"的主题,深入探讨Oracle SQL的一些核心概念、语句及其实用技巧,适合初级到中级水平的学习者。 一、SQL基础 SQL是标准化的查询语言,分为DDL(Data Definition Language)、DML(Data...

    oracle常用管理工具

    本文将详细介绍Oracle中的一些常用管理工具,包括Oracle Database Configuration Assistant (DBCA)、SQL*Plus、SQL*Plus Worksheet以及Oracle Enterprise Manager (OEM)。 1. **Oracle Database Configuration ...

    Oracle常用函数和使用方法

    ### Oracle常用函数与使用方法详解 #### 一、Oracle SQL函数概述 在Oracle数据库中,SQL函数被广泛用于处理各种数据类型,包括数值、字符、日期等,它们能够帮助我们更高效地进行数据检索和分析。本文将详细介绍...

    ORACLE常用函数功能及演示

    ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码...

    oracle常用端口号

    下面将详细介绍Oracle常用端口及其功能。 #### 1. Oracle基本端口 - **1521**:这是最著名的Oracle端口之一,用于监听TNS(透明网络服务)连接请求。TNS是Oracle数据库用于客户端与服务器之间通信的一种协议。通过...

    ORACLE常用快捷键设置

    以下是一些关于ORACLE常用快捷键设置的详细说明: 1. **登录后默认选择"My Objects"**:在PLSQL Developer中,设置登录后默认打开"My Objects"目录而不是"All objects"可以显著提升响应速度,特别是对于DBA用户,...

    Oracle 常用脚本.zip

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其强大的功能和高效的数据处理能力深受企业和开发者的青睐。在日常管理和维护Oracle数据库时,经常会用到一些脚本来完成数据备份、性能监控、表空间管理等...

    oracle常用傻瓜问题1000问

    "Oracle常用傻瓜问题1000问"显然是一部针对初学者和中级用户设计的指南,涵盖了日常工作中可能遇到的各种常见问题。在这个文档中,我们可以预见到一系列关于安装、配置、管理、查询优化以及故障排查的问答。 1. **...

    oracle常用cmd命令

    Oracle 是一种关系数据库管理系统,提供了强大的数据存储和管理功能。但是,对于新手来说,熟悉 Oracle 的 CMD 命令是非常必要的。下面我们将详细介绍 Oracle 常用的 CMD 命令,帮助新手快速了解相关的操作。 一、...

    oracle常用SQL语句(汇总版).docx

    Oracle 是一个功能强大且复杂的关系数据库管理系统,它提供了多种 SQL 语句来管理和操作数据库。在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义语句(DDL)和其他相关知识...

    oracle常用基本命令脚本

    根据提供的文件信息,我们可以归纳总结出以下几个重要的Oracle数据库管理和操作相关的知识点: ### 一、用户管理 #### 1.1 创建用户 ```sql CREATE USER XXX IDENTIFIED BY XXX DEFAULT TABLESPACE tablespaceName...

    oracle 常用命令 TXT 最全的

    - 在Oracle 9i及之后的版本中,很多管理功能已经被SQL*Plus等工具取代。 ### 8. 如何查看Oracle服务器信息 - 可以通过如下命令查看Oracle服务器的信息: - `SELECT machine, terminal FROM V$SESSION;` - 这条...

    oracle常用经典sql查询.rar

    本压缩包“oracle常用经典sql查询.rar”显然是一份关于如何在Oracle环境中高效运用SQL查询的教程资料,适合数据库管理员、开发人员以及对Oracle数据库感兴趣的用户学习。 首先,我们来探讨SQL的基础概念。SQL,全称...

    Oracle常用功能,基础帮扶新手利器

    本文将详细介绍Oracle的一些常用功能,帮助新手快速上手。 1. **数据存储与管理**:Oracle数据库的核心功能在于存储和管理数据。它使用表来组织数据,通过SQL(结构化查询语言)进行数据的增删改查操作。创建表、...

Global site tag (gtag.js) - Google Analytics