oracle基礎知識-4

简介: 194. /*+ORDERED*/根据表出现在FROM 中的顺序,ORDERED 使ORACLE依此顺序对其连接。例如:SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;195. /*+USE_NL(TABLE)*/将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表。
194. /*+ORDERED*/
根据表出现在FROM 中的顺序,ORDERED 使ORACLE依此顺序对其连接。
例如:
SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,
TABLE3 C WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;
195. /*+USE_NL(TABLE)*/
将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表。
例如:
SELECT /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO ,
BSEMPMS.EMP_NO , BSEMPMS.EMP_NAM FROM BSEMPMS , BSDPTMS WHERE
BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
196. /*+USE_MERGE(TABLE)*/
将指定的表与其它行源通过合并排序连接方式连接起来。
例如:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS
WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
197. /*+USE_HASH(TABLE)*/
将指定的表与其它行源通过哈希连接方式连接起来。
例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS
WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
198. /*+DRIVING_SITE(TABLE)*/
强制与ORACLE 所选择的位置不同的表进行查询执行。
例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS, DEPT@BSDPTMS WHERE
BSEMPMS.DPT_NO=DEPT.DPT_NO;199. /*+LEADING(TABLE)*/
将指定的表作为连接次序中的首表。
200. /*+CACHE(TABLE)*/
当进行全表扫描时,CACHE 提示能够将表的检索块放置在缓冲区缓存中最近最少列表
LRU 的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
201. /*+NOCACHE(TABLE)*/
当进行全表扫描时,CACHE 提示能够将表的检索块放置在缓冲区缓存中最近最少列表
LRU 的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
202. /*+APPEND*/
直接插入到表的最后,可以提高速度。
insert /*+append*/ into test1 select * from test4 ;
203. /*+NOAPPEND*/
通过在插入语句生存期内停止并行模式来启动常规插入。
insert /*+noappend*/ into test1 select * from test4 ;
ORACLE内部函数
204. 如何得到字符串的第一个字符的ASCII值?
ASCII(CHAR)
SELECT ASCII('ABCDE') FROM DUAL;
结果: 65
205. 如何得到数值N 指定的字符?
CHR(N)
SELECT CHR(68) FROM DUAL;
结果: D
206. 如何连接两个字符串?
CONCAT(CHAR1,CHAR2)
SELECT CONCAT('ABC','DEFGH') FROM DUAL;
结果: 'ABCDEFGH'
207. 如何将列中的数值代替为字符串?
DECODE(CHAR,N1,CHAR1,N2,CHAR2...)
SELECT DECODE(DAY,1,'SUN',2,'MON') FROM DUAL;
208. INITCAP(CHAR)
将字符串CHAR 的第一个字符为大写,其余为小写。
SELECT INITCAP('ABCDE') FROM DUAL;
209. LENGTH(CHAR)
取一字符串CHAR的长度。
SELECT LENGTH('ABCDE') FROM DUAL;
210. LOWER(CHAR)
将字符串CHAR 全部变为小写。
SELECT LOWER('ABCDE') FROM DUAL;
211. LPAD(CHAR1,N,CHAR2)
用字符串CHAR2包括的字符左填CHAR1,使其长度为N。
SELECT LPAD('ABCDEFG',10'123') FROM DUAL;
结果: '123ABCDEFG'
212. LTRIM(CHAR,SET)
从字符串CHAR 的左边移去字符串SET 中的字符,直到第一个不是SET 中的字符为
止。
SELECT ('CDEFG','CD') FROM DUAL;
结果: 'EFG'
213. NLS_INITCAP(CHAR)
取字符CHAR 的第一个字符大写,其余字符为小写。
SELECT NLS_INITCAP('ABCDE') FROM DUAL;
214. NLS_LOWER(CHAR)
将字符串CHAR 包括的字符全部小写。
SELECT NLS_LOWER('AAAA') FROM DUAL;
215. NLS_UPPER(CHAR)
将字符串CHAR 包括的字符全部大写。
SELECT NLS_UPPER('AAAA') FROM DUAL;
216. REPLACE(CHAR1,CHAR2,CHAR3)
用字符串CHAR3代替每一个列值为CHAR2的列,其结果放在CHAR1中。
SELECT REPLACE(EMP_NO,'123','456') FROM DUAL;
217. RPAD(CHAR1,N,CHAR2)
用字符串CHAR2右填字符串CHAR1,使其长度为N。
SELECT RPAD('234',8,'0') FROM DUAL;
218. RTRIM(CHAR,SET)
移去字符串CHAR 右边的字符串SET 中的字符,直到最后一个不是SET 中的字符为
止。
SELECT RTRIM('ABCDE','DE') FROM DUAL;
219. SUBSTR(CHAR,M,N)
得到字符串CHAR从M 处开始的N 个字符. 双字节字符,一个汉字为一个字符的。
SELECT SUBSTR('ABCDE',2,3) FROM DUAL;
220. SUBSTRB(CHAR,M,N)
得到字符串CHAR从M 处开始的N 个字符. 双字节字符,一个汉字为二个字符的。
SELECT SUBSTRB('ABCDE',2,3) FROM DUAL;
221. TRANSLATE(CHAR1,CHAR2,CHAR3)
将CHAR1中的CHAR2的部分用CHAR3代替。
SELECT TRANSLATE('ABCDEFGH','DE','MN') FROM DUAL;
222. UPPER(CHAR)
将字符串CHAR 全部为大写。
223. ADD_MONTHS(D,N)
将N 个月增加到D 日期。
SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;
224. LAST_DAY(D)
得到包含D 日期的月份的最后的一天的日期。
SELECT LAST_DAY(SYSDATE) FROM DUAL;
225. MONTH_BETWEEN(D1,D2)
得到两个日期之间的月数。
SELECT MONTH_BETWEEN(D1,D2) FROM DUAL;
226. NEXT_DAY(D,CHAR)
得到比日期D晚的由CHAR命名的第一个周日的日期。
SELECT NEXT_DAY(TO_DATE('2003/09/20'),'SATDAY') FROM DUAL;
227. ROUNT(D,FMT)
得到按指定的模式FMT舍入到的最进的日期。
SELECT ROUNT('2003/09/20',MONTH) FROM DUAL;
228. SYSDATE
得到当前系统的日期和时间。
SELECT SYSDATE FROM DUAL;
229. TO_CHAR(D,FMT)
将日期D 转换为FMT 的字符串。
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') FROM DUAL;
230. TO_DATE(CHAR,FMT)
将字符串CHAR 按FMT 的格式转换为日期。
SELECT TO_DATE('2003/09/20','YYYY/MM/DD') FROM DUAL;
231. ABS(N)
得到N的绝对值。
SELECT ABS(-6) FROM DUAL;
232. CEIL(N)
得到大于或等于N的最大整数。
SELECT CEIL(5.6) FROM DUAL;
233. COS(N)
得到N的余弦值。
SELECT COS(1) FROM DUAL;
234. SIN(N)
得到N的正弦值。
SELECT SIN(1) FROM DUAL;
235. COSH(N)
得到N的双曲余弦值。
SELECT COSH(1) FROM DUAL;
236. EXP(N)
得到N的E的N次幂。
SELECT EXP(1) FROM DUAL;
237. FLOOR(N)
得到小于或等于N的最小整数。
SELECT FLOOR(5.6) FROM DUAL;
238. LN(N)
得到N的自然对数。
SELECT LN(1) FROM DUAL;
239. LOG(M,N)
得到以M 为底N 的对数。
SELECT LOG(2,8) FROM DUAL;
240. MOD(M,N)
得到M 除以N 的余数。
SELECT MOD(100,7) FROM DUAL;
241. POWER(M,N)
得到M 的N幂。
SELECT POWER(4,3) FROM DUAL;
242. ROUND(N,M)
将N 舍入到小数点后M 位。
SELECT (78.87653,2) FROM DUAL;
243. SIGN(N)
当N<0时,得到-1;
当N>0时,得到1;
当N=0时,得到0;
SELECT SIGN(99) FROM DUAL;
244. SINH(N)
得到N的双曲正弦值。
SELECT SINH(1) FROM DUAL;
245. SORT(N)
得到N的平方根,N>=0
SELECT SORT(9) FROM DUAL;
246. TAN(N)
得到N的正切值。
SELECT TAN(0) FROM DUAL;
247. TANH(N)
得到N的双曲正切值。
SELECT TANH(0) FROM DUAL;
248. TRUNC(N,M)
得到在M位截断的N 的值。
SELECT TRUNC(7.7788,2) FROM DUAL;
249. COUNT()
计算满足条件的记录数。
SELECT COUNT(*) FROM TABLE1 WHERE COL1='AAA';
250. MAX()
对指定的列求最大值。
SELECT MAX(COL1) FROM TABLE1;
251. MIN()
对指定的列求最小值。
SELECT MIN(COL1) FROM TABLE1;
252. AVG()
对指定的列求平均值。
SELECT AVG(COL1) FROM TABLE1;
253. SUM()
计算列的和。
SELECT SUM(COL1) FROM DUAL;
254. TO_NUMBER(CHAR)
将字符转换为数值。
SELECT TO_NUMBER('999') FROM DUAL;
255. CHARTOROWID(CHAR)
将包含外部语法ROWID 的CHAR 或VARCHAR2 数值转换为内部的二进制语法,参数
CHAR 必须是包含外部语法的ROWID 的18字符的字符串。
SELECT NAME FROM BSEMPMS WHERE
ROWID=CHARTOROWID('AAAAfZAABAAACp8AAO');
NAME : LEIXUE
256. CONVERT(CHAR,DEST_CHAR_SET,SOURCE_CHAR_SET)
CONVERT 将字符串CHAR 中的字符从SOURCE_CHAR_SET 标识的字符集转换为由
DEST_CHAR_SET 标识的字符集
SELECT CONVERT('GroB','US7ASCII','WE8HP') 'CONVERSION' FROM PUBS;
CONVERSION: Gross
257. HEXTORAW(CHAR)
将包含十六进制的CHAR 转换为一个RAW数值。
INSERT INTO BSEMPMS(RAW_COLUMN) SELECT HEXTORAW('7D') FROM TEST;
258. RAWTOHEX(RAW)
将RAW数值转换为一个包含十六进制的CHAR值。
SELECT RAWTOHEX(RAW_COLUMN) 'CONVERSION' FROM BSEMPMS;
CONVERSION: 7D
259. ROWIDTOCHAR(ROWID)
将一个ROWID 数值转换为VARCHAR2数据类型。
SELECT ROWID FROM BSEMPMS WHERE ROWIDTOCHAR(ROWID) LIKE
'%BR1AAB%';
260. TO_MULTI_BYTE(CHAR)
将CHAR中的单字节转换为等价的多字节字符。
SELECT TO_MULTI_BYTE('ASFDFD') FROM TEST;
261. TO_SINGLE_BYTE(CHAR)
将CHAR中的多字节转换为等价的单字节字符。
SELECT TO_SINGLE_BYTE('ASFDFD') FROM TEST;
262. TRANSLATE USING(TEXT USING {CHAR_CS|NCHAR_CS})
将文本TEXT 按照指定的转换方式转换成数据库字符集和民族字符集。
其中TEXT是待转换的。
USING CHAR_CS参数转换TEXT 为数据库字符集,输出数据类型是VARCHAR2。
USING NCHAR_CS参数转换TEXT 为数据库字符集,输出数据类型是NVARCHAR2。
CREATE TABLE TEST(CHAR_COL CHAR(20),NCHAR_COL NCHAR(20));
INSERT INTO TEST VALUES('HI,N'BYE');
SELECT * FROM TEST;
263. DUMP(EXPR,RETURN_FORMAT,START_POSITION,LENGTH)
返回一个包含数据类型代码,字节长度等内部表示信息的VARCHAR2值.返回结果是当
前数据库字符集,数据类型按照下面规定的内部数据类型的编码作为一个数字进行返回:
代码 数据类型
0 VARCHAR2
1 NUMBER
8 LONG
12 DATE
23 RAW
24 LONG RAW
69 ROWID
96 CHAR
106 MSSLABEL
参数RETUEN_FORMAT 指定按照下面的基数表示返回的数值。
RETURN_FORMAT RESULT
8 8进制
10 10进制
16 16进制
17 单字符表示
如果参数RETURN_FORMAT 没有指定,则按十进制表示返回。
如果参数START_POSITION 和LENGTH 被指定,则从START_POSITION 开始的长为
LENGTH 的字节将被返回,缺省是返回整数表示。
SELECT DUMP('ABC',1016) FROM TEST;
select dump(ename,8,3,2) 'example' from emp where name='ccbzzp';
目录
相关文章
|
SQL Oracle 关系型数据库
oracle基礎知識-1
1. Oracle 安装完成后的初始口令?internal/oraclesys/change_on_installsystem/managerscott/tigersysman/oem_temp2. ORACLE9IAS WEB CACHE的初始默认用户和密码?administrator/administrator3. oracle 8.0.5怎么创建数据库?用orainst。
1175 0
|
SQL Oracle 关系型数据库
oracle基礎知識-2
64. 如何查出一条记录的最后更新时间?可以用logminer 察看65. 如何在PL/SQL中读写文件?UTL_FILE包允许用户通过PL/SQL读写操作系统文件。66. 怎样把“&”放入一条记录中?insert into a values (translate ('at{&}t','at{}','at'));67.
823 0
|
SQL 存储 监控
oracle基礎知識-3
141. 如何快速编译所有视图?SQL >SPOOL VIEW1.SQLSQL >SELECT ‘ALTER VIEW ‘||TNAME||’COMPILE;’ FROM TAB;SQL >SPOOL OFF然后执行VIEW1.SQL即可。
777 0
|
缓存 监控 Oracle
oracle基礎知識-5
264. empty_b|clob()返回一个空的LOB定位符,用在初始化LOB变量,或用在INSERT及UPDATE声明去初始化LOB 列或将其属性置为空。INSERT INTO TABLE1 VALUES(EMPTY_BLOB());UPDATE TABLE1 SET CLOB_COL=EMPTY_BLOB();265. BFILENAME('DIRECTORY','FILENAME')返回一个BFILE 定位符,相关的二进制LOB 物理文件在服务器的文件系统上.目录DIRECTORY 是指在服务器的文件系统上实际搜索路径全名的别名. FILENAME 是指服务器的文件系统的文件名。
876 0
|
存储 监控 关系型数据库
oracle基礎知識-7
529. DBA_IND_SUBPARTITIONS为当前用户拥有的每一个索引分区,描述分区级的分区信息,分区的存储参数和ANALYZE决定的各种分区统计数据。530. DBA_INDEXES数据库中所有索引的描述。
836 0
|
SQL 缓存 关系型数据库
oracle基礎知識-6
400. V$PQ_SYSSTAT列出并行查询的系统的统计量。401. V$PQ_TQSTAT包含并行执行操作上的统计量.帮助在一个查询中测定不平衡的问题。402. V$PROCESS包含关于当前活动进程的信息。
958 0
|
存储 监控 关系型数据库
oracle基礎知識-8
658. USER_COL_PRIVS列出列上的授权,用户是所有者,授予者或被授予者。659. USER_COL_PRIVS_MADE列出用户拥有对象的列上的全部授权。660. USER_COL_PRIVS_RECD列出列上的授权,用户是被授予者。
825 0
|
存储 Oracle 关系型数据库
oracle基礎知識-9
833. ALL_MVIEW_KEYS描述物化视图FROM列表中的,或间接被FROM列表中视图引用的命名细节关系.834. ALL_MVIEW_REFRESH_TIMES用户可存取的物化视图的刷新时间。
911 0
|
2月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
182 64
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
43 7