If you can't read please download the document
Upload
phamkhuong
View
252
Download
10
Embed Size (px)
Citation preview
Ethan Frome
1
214
Oracle8i/9i
()
20030126
(ORACLE8i )ORACLE SQL*PLUSORACLE ORACLE PL/SQLORACLEPL/SQL1.2.3.Oracle8IORACLE8i OCPORACLE DBAOracle8i/9iOracle8i/9i
ORACLE ORACLE010-6234 6242(home)1360 136 5681
23 Oracle SQL*PLUS
23 Oracle
231.1 RDBMS
231.1.1
241.1.2 Codd
241.2 RDBMS
241.2.1 RDBMS
241.2.2
251.3 SQLSQL*Plus PL/SQL
251.3.1 SQLSQL*PLUS
261.3.2 PL/SQL
271.4 SQL*PLUS
271.4.1 UNIX
291.4.2 Windows NTWINDOWS/2000
311.5 SQL*PLUS
321.5.1 SQL*PLUS
321.5.2 EXITQUIT
321.5.3 DESCRIBE()
331.5.4 LIST()
331.5.5 Change()
341.5.6 Append
341.5.7 Save
351.5.8 GET
351.5.9 SPOOL
361.5.10
361.6
381.7 ORACLE
441.8 SQL
451.8.1 SQL
461.8.2 select
461.9
471.10 SQL Worksheet
51
512.1 SELECT
512.2 SQL
512.2.1
572.2.2
632.2.3
662.2.4
692.2.5
742.3 SQL
742.3.1
762.3.2 GROUP BY
762.3.3 HAVING
772.4
772.4.1 ORDER BY
772.4.2 BREAK
792.4.3 COMPUTE
832.5
832.5.1 ARRAYSIZE
832.5.2 AUTOCOMMIT()
842.5.3 LINESIZE()
842.5.4 LONG()
842.5.5 PAGESIZE()
842.5.6 PAUSE()
842.5.7 SPACE()
852.5.8 Termout (/)
852.5.9 ECHO (/)
852.5.10 TRANSACTION ()
852.5.11 SHOW ALL()
872.6
872.6.1
882.6.2
902.7
902.8
922.9
94
943.1
943.1.1
963.1.2
973.1.3
983.3
983.3.1
993.3.2
1003.3.3
1013.3.4 CHECK
1023.3.5 UNRECOVERABLE
1023.3.6
1043.3.7
1043.3.8
1063.3
1063.3.1
1083.3.2
1093.3.3
1093.4
1093.4.1
1113.4.2
1113.4.3
1123.5
1123.5.1
1133.5.2
1143.5.3
1143.6
1143.6.1
1163.6.2
1163.6.3
1183.7
1193.8
1193.8.1
1203.8.2 LOB
1213.8.3 LOB
1243.9
1243.9.1
1243.9.2
127
1274.1
1274.1.1
1274.1.2
1294.1.3
1304.1.4
1304.2 (MATERIALIZED VIEW)
1304.2.1
1364.2.2
1384.2.3
1404.2.4
1414.2.5
1454.3 (sequence)
1454.3.1
1464.3.2
1464.3.3
1464.3.4
1474.4
1474.4.1
1484.4.2
1484.5
149
1495.1 ( cluster )
1495.1.0
1505.1.1
1535.1.2
1535.1.3
1545.1.4
1545.1.5
1565.2
1565.2.1
1575.2.2
1585.2.3
1635.2.3
1655.2.4
1675.3
1675.3.1
1675.3.2
168 SQL
1686.1 INSERT
1696.1.1
1696.1.2
1706.2 UPDATE
1716.2.1
1716.2.2
1716.2.3
1726.3 DETELE
1726.3.1 delete
1736.3.2 delete
1736.3.3 delete
1746.4 insertdeleteupdate
1746.4.1
1756.4.2
178
1787.1
1787.1.1
1787.1.2
1797.1.3
1807.1.4 UNION,INTERSECTMINUS
1817.2
1817.2.1
1817.2.2
1817.2.3
1827.3
1827.3.1
1837.3.2
1847.4 from
186
1868.1 DECODE
1868.1.1 DECODE if-then-else
1868.1.2 DECODE
1878.1.3 DECODE
1908.2
1908.2.1
1918.2.2
1928.2.3 user
1938.2.4 COPY
1948.2.5 Oracle
1948.3
1948.3.1
1958.3.2
1978.3.3
1978.4 DIMENSION
1978.4.1 CREATE DIMENSION
1988.4.2
200
2009.1 CREATE USER
2019.2
2019.2.1 Authenticated
2019.2.2 (Globally)-
2029.3 ALTER USER
2029.4 DROP USER
2029.5 GRANT REVOKE
2039.5.1 GRANT
2039.5.2 REVOKE
2049.6
2049.6.1
2059.6.2
2059.6.3
2069.7
2069.7.1
2069.7.2
209
20910.1
20910.1.1 Oracle2000
21010.1.2
21110.1.3
21210.1.4 Truncate
21210.1.5 Rowid
21410.1.6
21410.1.7 EXCEPTIONS
21510.1.8 Not inNot Exists
21510.1.9 COPY
21610.1.10 NULL
21710.1.11 product_user_file
21810.2
21810.2.1 long
21910.2.2
21910.2.3
22010.2.4 TRANSLATE
22210.2.5
22310.2.6
22310.2.7
22510.2.8
22610.2.9
22610.2.10
228 Oracle PL/SQL
228 PL/SQL
22811.1
22811.2 SQLPL/SQL
22811.2.1 PL/SQL?
22911.2.1 PL/SQL
22911.2.1.1 /
22911.2.1.2
22911.2.1.3
22911.2.2 PL/SQL SQL
23011.3 PL/SQL
23111.4 PL/SQL
232PL/SQL
23212.1 PL/SQL
23312.2 PL/SQL
23312.3
23412.4 PL/SQL
23412.4.1
23512.4.2
23612.4.3 %ROWTYPE
23712.4.4 LOB
23712.4.5
24012.4.6
24012.5 ()
24012.5.1
24012.5.2
24112.5.3
24112.6
24212.6.1
24212.6.2 Boolean
24212.6.3
24312.6.4
24412.7
24512.8
24512.9
24612.9.1
24612.9.2
246PL/SQL
24713.1
24713.2
25113.3 GOTO
25113.4 NULL
252
25214.1
25214.1.1
25314.1.2
25514.2
25514.2.1
25614.2.2 WHILE
25614.2.3 FOR
25714.2.4 NO_DATA_FOUND%NOTFOUND
25714.2.5 SELECT FOR UPDATE
25814.3
25814.3.1
25914.3.2
25914.3.3
25914.3.4
25914.3.5
26214.3.6
263
26315.1
26415.1.1
26515.1.2
26615.1.3
26715.1.4
26815.2
26815.2.1
26815.2.2
26915.3
27015.4 PL/SQL sqlcode,sqlerrm
272
27216.1
27216.2
27216.2.1
27316.2.2
27416.2.3
27516.2.3.1
27516.2.3.2
27516.2.3.3
27516.2.3.4
27616.2.4
27616.3
27816.4
27816.4.1
27816.4.1.1
27916.4.1.2
28116.4.2 +
28216.4.2.1
28216.4.2.2 EXCEPTION_INIT
28216.4.2.3 raise_application_error
283
28317.1
28317.2
28417.3
28517.4
28517.5
28817.6
28917.7
28917.7.1
29017.7.2
29117.7.3
293
29318.1
29318.1.1 DML
29318.1.2
29318.1.3
29318.2
29418.2.1 DML
29618.2.2 (Instead_of)
29718.2.3
30018.2.4
30018.2.5
30118.3
30218.4
30218.5
30418.5.1
30518.5.2 -
30818.5.3 -
30818.6
30818.6.1
30918.6.2
310
31019.1
31019.2 C
31119.2.1
31619.2.2 ( )
318
31820.1 DBMS_PIPE
31820.1.1
31920.1.2
32020.1.3
33920.2 DBMS_ALERT
34020.2.1
34020.2.2
34120.2.3
34220.3 DBMS_PIPEDBMS_ALERT
342 I/O
34321.1 DBMS_JOB
34321.1.1
34321.1.2
34621.1.3 DBMS_JOB-
35021.1.4
35121.1.5
35221.1.6
35421.1.7
35521.2 I/O
35521.2.1
35621.2.2
35721.2.3
35821.2.3
35921.2.4
359 PL/SQL SQL
36022.1PL/SQL DML
36222.2
36222.3 GRANTREVOKE
36322.3.1
36322.3.2 GRANTREVOKE
36322.4
36422.4.1 COMMIT ROLLBACK
36422.4.2 SAVEPOINT
36522.5 PL/SQLSQL
36622.5.1
36622.5.2
367 PL/SQL
36723.1 PL/SQL
36723.2 OracleProcedure Builder
37023.2.1 Procedure
37123.2.2 Procedure
37423.3 Keeptool
37423.4 PLedit
37823.5
37823.5.1
37923.5.2
37923.6
37923.7 DBMS_OUTPUT
38123.8
38123.8.1
38123.8.2
38123.8.3
382
38224.1
38224.1.1
38324.1.2
38424.1.3 PL/SQL
38524.2 SQL
38824.3
38824.4 PL/SQL wrap()
38824.4.1 wrap
38924.4.2
38924.5 DBMS_OUTPUT
391
39125.1
39125.1.1
39125.1.2
39225.1.3
39325.1.4
39425.1.5
39525.2
39625.3
398 PL/SQL
39826.1
39826.1.1 SQLSQL
39826.1.2 DBMS_SQL
40026.1.3 SQL
40026.2 DBMS_SQL
40026.2.1 DMLDDLAlter session
40326.2.2
40426.2.3 DDL
40526.2.4 PL/SQL
40626.4 SQL
40626.4.1EXECUTE IMMEDIATE
40726.4.2
40826.4.3
409 LOBDBMS_LOB
40927.1 LOB
40927.1.1 LOB
41027.1.2 LOB
41127.1.3 LOB
41127.2 LOB
41127.2.1 LOB
41327.2.2 EMPTY_CLOBEMPTY_BLOBLOB
41427.2.3 LOB
41427.3 LOBDBMS_LOB
41527.3.1 APPEND
41627.3.2 CLOSE
41627.3.3 COMPARE
41827.3.4 COPY
42027.3.5 ERASE
42127.3.6 GETCHUNKSIZE
42227.3.7 GETLENGTH
42327.3.8 INSTR
42427.3.9 READ
42527.3.10 SUBSTR
42527.3.11 WRITE
42727.3.12 WRITEAPPEND
42727.4LOB
42827.4.1 LOB
42827.4.2 LOB
42927.4.3 LOB
43027.4.4 BFILELOB
43027.4.5 LOB
43127.4.6 LOB
43227.4.7 LOB
43327.4.8 LOB
43427.4.9 LOB
43427.4.10 LOB
43527.4.11 LOB
43627.4.12 LOB
43727.4.13 LOB
43827.4.14 LOBLOB
43827.4.15 LOB
43927.4.16 LOB
43927.4.17 LOB
44027.4.18 LOB
44127.5LOB (BFILE)
44127.5.1 BFILE
44127.5.2 BFILE
44327.5.3 BFILENAME()
44327.5.4 BFILE
44327.5.5 BFILEBFILE
44327.5.6 BFILE
44427.5.7 BFILELOB
44527.5.8 FILEOPENBFILE
44527.5.9 OPENBFILE
44527.5.10 FILEISOPENBFILE
44627.5.11 ISOPENBFILE
44627.5.12 BFILE
44727.5.13 BFILE
44727.5.14 BFILE
44827.5.15 BFILE
44827.5.16 BFILE
44927.5.17 BFILE
44927.5.18 BFILE
45027.5.19 BFILELOB
45027.5.20
45127.5.21 BFILEBFILE
45127.5.22 FILECLOSEBFILE
45127.5.23 CLOSEBFILE
45227.5.24 CLOSEALLBFILE
45227.5.25 DELETEBFILE
45227.6 SQL*loaderLOB
45227.6.1
45327.6.2
456 PL/SQL
45628.1
45728.2TOO_MANY_ROWS
46028.3TOO_MANY_ROWS
46128.4PL/SQL
46228.5
46328.6PL/SQLTruncate
46428.7
473ASQLSQL*PLUS
473%FOUND
474%ISOPEN
475%NOTFOUND
475%ROWCOUNT
476%ROWTYPE
477%TYPE
478(+)
478@ (at )
478@@
479ABS
479ACCEPT
480ACOS
480ADD_MONTHS
481ALTER CLUSTER
481ALTER DATABASE
482ALTER FUNCTION
483ALTER INDEX
483ALTER PACKAGE
484ALTER PROCEDURE
484ALTER PROFILE
485ALTER RESOURCE COST
485ALTER ROLE
486ALTER ROLLBACK SEGMENT
486ALTER SEQUENCE
487ALTER SESSION
487ALTER SNAPSHOT
488ALTER SNAPSHOT LOG
489ALTER SYSTEM
489ALTER TABLE
490ALTER TABLESPACE
491ALTER TRIGGER
491ALTER TYPE
492ALTER USER
493ALTER VIEW
493ANALYZE
494APPEND
494ASCII
495ASIN
495ATAN
496ATAN2
496AUDIT
497AVG
497BFILENAME
498BLOCK
499BTITLE
500CEIL
501CHANGE
501CHARTOROWID
502CHR
502CLEAR
503CLOSE
503COLUMN
504COMMENT
504COMMIT
505COMPUTE
506CONCAT
506CONCATENATE
507CONNECT BY
507CONVERT
508COPY
508COS
509COSH
509COUNT
510CREATE CLUSTER
511CREATE CONTROLFILE
511CREATE DATABASE
512CREATE DATABASE LINK
513CREATE PROFILE
513CREATE DIRECTORY
514CREATE FUNCTION
514CREATE INDEX
515CREATE LIBRARY
516CREATE PACKAGE
517CREATE PACKAGE BODY
518CREATE PROCEDURE
519CREATE ROLE
519CREATE ROLLBACK SEGMENT
520CREATE SCHEMA
521CREATE SEQUENCE
521CREATE SNAPSHOT
522CREATE SNAPSHOT LOG
523CREATE SYNONYM
523CREATE TABLE
525CREATE TABLESPACE
526CREATE TRIGGER
527CREATE TYPE
527CREATE TYPE BODY
528CREATE USER
529CREATE VIEW
530CURRVAL
530CURSOR_ALREADY_OPEN
531DATATYPE
531DATATYPE CHAR
532DATATYPE DATE
532DATATYPE FLOAT
532DATATYPE LONG
532DATATYPE LONGRAW
533DATATYPE MLSLABEL
533DATATYPE NUMBER
533DATATYPE RAW
534DATATYPE ROWID
534DATATYPE VARCHAR
534DATATYPE VARCHAR2
534DECLARE
535DECODE
536DEFINE
536DEL
537DELETE
537DEREF
538DESCRIBE
538DROP CLUSTER
539DROP DATABASE LINK
539DROP DIRECTORY
539DROP FUNCTION
540DROP INDEX
540DROP LIBRARY
541DROP PACKAGE
541DROP PROCEDURE
542DROP PROFILE
542DROP ROLE
542DROP ROLLBACK SEGMENT
543DROP SEQUENCE
543DROP SNAPSHOT
544DROP SNAPSHOT LOG
544DROP SYNONYM
545DROP TABLE
545DROP TABLESPACE
545DROP TRIGGER
546DROP TYPE
546DROP TYPE BODY
547DROP USER
547DROP VIEW
548DUMP
548DUP_VAL_ON_INDEX
549EDIT
549EMPTY_BLOB
550EMPTY_CLOB
550EXCEPTION INIT Pragma
551EXECUTE
551EXISTS
552EXIT
553EXIT
553EXIT-WHEN
554EXP
554EXPLAIN PLAN
555FETCH
556FLOOR
556FOR-LOOP
557FORMAT
557FORMAT DATE
558FORMAT NUMBER
558GET
558GLB
559GOTO
560GRANT
560GREATEST
561GREATEST_LB
561HEXTORAW
562HOST
562IF-THEN
563IF-THEN-ELSE
563IF-THEN-ELSEIF
564INITCAP
565INPUT
565INSERT
566INSTR
566INSTRB
567INTERSECT
568INVALID_CURSOR
568INVALID_NUMBER
569KEYWORDS
570LABELS
571LAST_DAY
571LEAST
572LEAST_LB
572LENGTH
573LENGTHB
573LIKE
574LIST
575LN
575LOCK TABLE
576LOG
576LOGIN_DENIED
577LOOP
578LOWER
578LPAD
579LTRIM
579LUB
580MAKE_REF
580MAX
581MIN
581MINUS
582MOD
582MONTHS_BETWEEN
583NEW_TIME
584NEXT_DAY
584NEXTVAL
585NLS_CHARSET_DECL_LEN
585NLS_CHARSET_ID
585NLS_CHARSET_NAME
586NLS_INITCAP
586NLS_LOWER
587NLS_UPPER
588NO_DATA_FOUND
588NOAUDIT
589NOT_LOGGED_ON
589NULL
590NVL
591OPEN
591OPEN-FOR
592
592 < >
592>
593> =
594! =
594*
595+
595-*
596/
596 set pause on SQL*PLUS
1.5.1 SQL*PLUS
SQL*PLUSSQL*PLUS
SQLPLUS [ [logon] | [start] ]
logon
{username[/password][@connect_identifier]|/} [AS {SYSOPER|SYSDBA}]
|/NOLOG
1SQLPLUS NTWINDOWS/2000UNIX
2UNIXSQLPLUSPATHSQLPLUS $ORACLE_HOME/bin
1.5.2 EXITQUIT
exit quit SQL*PLUS
{EXIT|QUIT} [SUCCESS|FAILURE|WARNING ]
{EXIT|QUIT} exit quit
SUCCESS
FAILURE
WARNING
COMMIT
SQL>exit
1.5.3 DESCRIBE()
DESCRIBE(DESC)
DESC[RIBE] {[schema.]object[@connect_identifier]}
Schema:,
object
table, view, type, procedure, function, package synonym
@connect_identifier
emp
SQL>desc emp
1.5.4 LIST()
LIST SQL
L[IST] [n|n m|n *|n LAST|*|* n|* LAST|LAST]
n n
n m nm
n * n
n LAST n
*
* n n
* LAST
LAST
SQL> LIST
1 SELECT ENAME, DEPTNO, JOB
2 FROM EMP
3 WHERE JOB = CLERK
4* ORDER BY DEPTNO
1.5.5 Change()
Change
C[HANGE] sepchar old [sepchar [new [sepchar]]]
Sepchar / ! --
Old
New
(/) * c !/!*!
SQL> l
1* select sal,sal/100 from emp
SQL> c !/!*!
/ ! ()
* + c !/!*!
SQL> l
1* select sal,sal*100 from emp
SQL> c/*/+/
1* select sal,sal+100 from emp
SQL>
1.5.6 Append
Append
A[PPEND] text
Text
select sal,sal+100 from emp where sal>=2000,
SQL> l
1* select sal,sal+100 from emp
SQL> a where sal>=2000
1* select sal,sal+100 from emp where sal>=2000
SQL>
1.5.7 Save
SAVE
SAV[E] filename[.ext] [CRE[ATE]|REP[LACE]|APP[END]]
filename
extSQL
SQL>select table_name from dict where table_name like %ROLE%;
SQL>save c:\get_role
1.5.8 GET
GET
GET filename [.ext] [LIS[T]|NOL[IST]]
filename: SQL
ext: SQL.
SQL>get c:\get_role
1.5.9 SPOOL
OracleSPOOL SPOOL OFF
SPO[OL] [filename[.ext] | OFF | OUT]
filenamespool
extLSTLIS
SQL>col table_name for a20
SQL>col comments for a80
SQL>set linesize 110
SQL>SPOOl c:\all_dict
SQL>select table_name,comments from dict;
. . . . . . ()
SQL>SPOOL OFF
1.5.10
SQL>Run(R) /
SQL> set lin 120
SQL> select table_name from dict where table_name like '%ROLE%';
TABLE_NAME
------------------------------
DBA_ROLES
DBA_ROLE_PRIVS
USER_ROLE_PRIVS
ROLE_ROLE_PRIVS
ROLE_SYS_PRIVS
ROLE_TAB_PRIVS
SESSION_ROLES
7
SQL> l
1* select table_name from dict where table_name like '%ROLE%'
SQL> /
TABLE_NAME
------------------------------
DBA_ROLES
DBA_ROLE_PRIVS
USER_ROLE_PRIVS
ROLE_ROLE_PRIVS
ROLE_SYS_PRIVS
ROLE_TAB_PRIVS
SESSION_ROLES
7
1.6
ORACLE , DBA
ORACLE
USER ----
ALL ---- USER PUBLIC
DBA ----
V$ ,.
V_$ CATALOG.SQL
GV$ (oracle 8)(Global V$).
V$
SELECT * FROM GV$LOCK WHERE INST_ID = 2 OR INST_ID = 5 ;
instances 2 5V$GV$Instances. GV$PARALLEL_MAX_SERVERS0
Oracle Enterprise Manager Administrator's Guide.
DBA_ USER_ALL_
DBA_
V$_
1. USER_TABLEs(=TABS)
2USER_TAB_COLUMNS=COLS
3USER_VIEWS
4USER_SYNONYMS=SYN
5USER_SEQUENCES(=SEQ)
6USER_CONSTRAINTS
7USER_TAB_COMMENTS
Comment on table emp is '';
8 USER_COL_COMMENTS
Comment on column emp.ename is '';
9 USER_INDEXES(=IND)
10 USER_IND_COLUMNS
11 USER_TRIGGERS
12 USER_SOURCE
13 USER_TABLESPACE
14 USER_TS_QUOTAS
15 USER_SEGMENTS
16 USER_EXTENTS
17 USER_OBJECTS
=USER_TABLES+USER_VIEWS+USER_INDEXES+
USER_SOURCE+USER_TRIGGERS+USER_JAVA
18 USER_PART_TABLES
19 USER_TAB_PARTITIONS
20 USER_PART_COL_STATISTICS
21 USER_IND_PARTITIONS
22 USER_FREE_SPACE
23 CAT(=USER_CATALOG)
24 TAB
25 DICT=DICTIONARY
OracleComment on column tablename.column is 'xxxx';
1.7 ORACLE
OracleOracleOracleNUMBER(m,n)DATEOracleOracleOracle
ORACLE5ORACLE6
Char
254
Varchar2
2000
Number(m,n)
Date
mmm-dd-yyyy hh:mi:ss7
Long
2GB
Raw
2GB
Long raw
2GB
ORACLE7
Char
255
Varchar
2000
Varchar2
2000
Number(m,n)
Long
2GB
Raw
2000
Long raw
2GB
ORACLE8/8i
Char
2000
Varchar
Varchar24000
Varchar2
4000
Date
7
Number
Long
2GB
Raw
4000
Long raw
2GB
MLSLABEL
Trusted Oracle 2~5
Blob
4GB
Clob
4GB
Nclob
Clob4GB
Bfile
OS
ORACLE9i ()
Char(size)
size2000
Varchar(size)
Varchar2size4000
Varchar2(size)
size4000
NCHAR(size)
size2000
NVARCHAR(size)
size4000
NVARCHAR2(size)
size4000
Date
7
timestamp
Interval year
exp 092
Interval day
exp 092
Number(precision,scale)
Precisionscale
Long
2GB
Raw(size)
size4000
Long raw
2GB
MLSLABEL
Blob
4GB
Clob
4GB
Nclob
Clob4GB
Bfile
OS
rowid
Oracle
Urowid(size)
,size create table nchar_tst(name nchar(6),addr nvarchar2(16),sal number(9,2));
SQL> insert into nchar_tst values(N'',N'',9999.99);
1
SQL> select * from nchar_tst where name like N'%';
NAME ADDR SAL
------ ---------------- ----------
9999.99
SQL> select * from nchar_tst where name like '%';
select * from nchar_tst where name like '%'
*
ERROR 1 :
ORA-12704: .
Oraclenchar, nvarchar2 NCHARNVARCHAR2CHARVARCHAR2
NUMBER(
,)
,
1234567.89
Number
1234567.89
1234567.89
Number(8)
1234568
1234567.89
Number(6)
1234567.89
Number(9,1)
1234567.9
1234567.89
Number(9,3)
1234567.89
Number(7,2)
1234567.89
Number(5,-2)
1234600
1234511.89
Number(5,-2)
1234500
1234567.89
Number(5,-4)
1230000
1234567.89
Number(*,1)
1234567.9
Sal number(7,2), --52.
DATE
Oracle 7
Century ()
Year
Month
Day
Hour
Minute
Second
to_date
NLS_DATE_FORMATDD-MON-YY
00:00:00 (0 00)
sysdate
cc yyyymmddhh24miss
SQL> create table save_info(per_id varchar2(20),name varchar2(20),tran_date date,
2 tran_val number(12,2));
SQL> insert into save_info values ( '110105540609811','',
2 to_date('2001.06.18','yyyy.mm.dd'),12345.66);
1
SQL> select * from save_info;
PER_ID NAME TRAN_DATE TRAN_VAL
-------------------- -------------------- ---------- ----------
110105540609811 18-6 -01 1234.66
SQL> select per_id,name,to_char(tran_date,'yyyy/mm/dd'),tran_val from save_info;
PER_ID NAME TO_CHAR(TR TRAN_VAL
-------------------- -------------------- ---------- ----------
110105540609811 2001/06/18 12345.66
SQL> show parameter nls_date_format
NAME TYPE VALUE
------------------------------------ ------- ------------------------------
nls_date_format string
SQL> alter session set nls_date_format=
2 '""yyyy""mm""dd""';
SQL> select sysdate from dual;
SYSDATE
------------------
20010518
SQL> select to_char(sysdate,'cc yyyy.mm.dd') from dual;
TO_CHAR(SYSDA
-------------
21 2001.05.18
Oracle8i National Language Support Guide
Datetime Interval:
CREATE TABLE my_table (
start_time TIMESTAMP,
duration_1 INTERVAL DAY (6) TO SECOND (5),
duration_2 INTERVAL YEAR TO MONTH
);
BLOB
4GB
CLOB
4GB
BFILE
4GBOS
RAW
RAW2,000
LONGRAW
LONGRAWLONGRAW2GBLONGRAWRAW
ROWID
ROWIDOracleRowid
UROWID
UROWID Universal ROWID ROWIDROWIDgetway Oracle ROWIDUROWIDROWID
%TYPE
books_printed number(6)
books_sold books_printed%TYPE
books_soldbook_printed
( %TYPE PL/SQL )
null + =null +
null > =null
null || '' =
number
DEC
Decimal
Double PREcision
Float
Integer
Int
Numeric
Real
Smallint
OracleNUMBER(n,m)
Long
selectlong
updateselect
insertValus
long
longnullnot null
long
long
long
long
selectWhereGroup byorder byConnect bydistinct
longsubstrinstr
long
Create table ...as select long
1.8 SQL
SQL
1.8.1 SQL
+ -
+
-1234.56
+
A=c+b
-
34-12
*
12*34
/
18*11
NULL
Where name is null;
||
101-||tel_num
=
Select * from emp
where name=;
!= ^=
Select * from emp
where name !=;
p class=""/pp class=""Select * from emp /pp class=""Where sal < 5000;/p
p class="">
Select * from emp
Where sal > 5000;
= 5000;
Not in
Select name,addr from expert
where local not in(,);
ANY
!=,,=
select ename,sal from emp where salDESC select
EMP
SQL>select ename, sal, hiredate from emp;
1.9
OraclePseudocolumnOracleOracle
CURRVAL and NEXTVAL
LEVEL
ROWID
ROWNUM
Oracle DUAL SELECT from from DUAL
1Oracle
SQL> select to_char( sysdate,'yyyy.mm.dd hh24:mi:ss') from DUAL;
TO_CHAR(SYSDATE,'YY
-------------------
2001.06.02 07:28:09
2 5000+5000*0.1
SQL> select 5000+5000*0.1 from DUAL;
5000+5000*0.1
-------------------
5500
1.10 SQL Worksheet
OracleSQL Worksheet SQLORACLE Enterprise Manager SQL>
ORACLE Enterprise Manager
Administrtor
SQL Worksheet
1) SQL Worksheet ->->Oracle-OraHome81->database Administration->SQLPLUS WorksheetSQLPLUS Worksheet
1.10-1 SQL Worksheet
ORACLE1.10-2
21.10-2
3SQL
select ename, sal from scott.emp;
Oracle
110-2
1.10-3
SQL Worksheet
1
2
3
.SQL
SQL WorksheetNT/2000/98WINDOWS NT
regedit ORACLE
1)==regedit;
2)HEY_LOCAL_MACHINE+
3)SOFTWARE+
4)ORACLE
5)ORACLENLSprops$
Oracle8i/9I
Oracle
2.1 SELECT
SELECTSELECT SELECT
1.
SELECT
SELECT [DISTINCT | ALL] {* | column1[, column2]...}
FROM {table_1 | (subquery)} [alias]
[, {table_2 | (subquery)} [alias]]...
[WHERE condition]
[CONNECT BY condition [START WITH condition]
[GROUP BY expn] [HAVING expn]
[{ UNION [ALL] | INTERSECT | MINUS } SELECT . . . ]
[ ORDER BY [expn ] [ ASC | DESC]
[ FOR UPDATE [OF [user.]table | view] column ]
[NOWAIT]
ORACLE ORACLE8i SQL REFERENCE MANUALORACLE9i SQL REFERENCE MANUAL
2.2 SQL
Oracle OracleSQL
2.2.1
ASCII
CHR
CONCAT
||
INITCAT
INSTR
INSTRB
LENGTH
LENGTHB
LOWER
LPAD
LTRIM
RPAD
RTRIM
REPLACE
SUBSTR
SUBSTRB
SOUNDEX
TRANSLATE
TRIM
UPPER
NVL
ASCII()
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
A a ZERO SPACE
---------- ---------- ---------- ----------
65 97 48 32
SQL> select ascii('') zhao,length('') leng from dual;
ZHAO LENG
---------- ----------
54740 1
CHR([NCHAR])
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- -
A
CONCAT(,)
SQL> select concat('010-','8801 8159')||'23' from dual;
-----------------
010-8801 815923
INITCAP()
c1
SQL> select initcap('simth') upp from dual;
UPP
-----
Simth
INSTR(,[,[,] ] )
C1:
C2:
I: 1
J: 1
SQL> SELECT INSTR ('Oracle Training', 'ra', 1, 2) "Instring" FROM DUAL;
Instring
----------
9
INSTRB(,[,[,] ] )
INSTR
LENGTH( )
c
SQL> l
1 select name,length(name),addr,length(addr),sal,length(to_char(sal))
2* from nchar_tst
SQL> /
NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ ---------- ----------------
3 6 99999.99 8
LENGTHB( )
SQL> select name,lengthb(name),length(name) from nchar_tst;
NAME LENGTHB(NAME) LENGTH(NAME)
------ ------------- ------------
6 3
LOWER ( )
SQL> select lower('AaBbCcDd') AaBbCcDd from dual;
AABBCCDD
--------
aabbccdd
UPPER( )
LOWER
SQL> select upper('AaBbCcDd') AaBbCcDd from dual;
AABBCCDD
--------
AABBCCDD
RPADLPAD()
RPAD(stringLength['set'])
LPAD(stringLength['set'])
RPAD
LPAD
1
SQL>select RPAD(City35'.')temperature from weather;
RPAD(City35'.') temperature
-------------------------- ----------------
CLEVELAND...... 85
LOS ANGELES.. 81
.........................
35'.'
LTRIM()RTRIM
LTRIM (string [,set])
Left TRIM ()set
RTRIM (string [,set])
Right TRIM ()set
1
SELECT RTRIM (Mother Theresa, The, The) Example of Right
Trimming FROM DUAL;
Example of Right
----------------
Mother Theresa,
SUBSTR Substr(stringstart[Count])
start count count
select phone,substr(phone,1,3) || 0 || substr(phone,4)
from telecommunication where master=;
SUBSTRB(stringstart[Count])
start count count
REPLACE (string [,string_in,string_out])
String:
String_in:
String_out:
SQL> select replace('Informaix','Informaix','IBM Informix')
2 IBM from dual;
IBM
--------------------
IBM Informix
SOUNDEX( )
SELECT DPL_NAME FROM DENIED_PARTIES_LIST WHERE
SOUNDEX(DPL_NAME) = SOUNDEX(Saddam Hussain) ;
DPL_NAME
----------------------------------------------
Al Husseni
Sadda Al Sada.
REPLACE (string [,string_in,string_out])
String:
String_in:
String_out:
SELECT REPLACE (Oracle, Or, Mir) Example FROM DUAL;
Example
-------
Miracle
TRIM [] FROM
TRIM
LEADING, Oracle trim_char
TRAILING, Oracle trim_char
Oracletrim_char
trim_character,
trim_source, Oracle Oracletrim_char
0
SELECT TRIM (0 FROM 0009872348900) "TRIM Example" FROM DUAL;
TRIM example
--------------------------------
98723489
2.2.2
Value1 + value2
Value1 - value2
Value1 * value2
Value1 / value2
ABS(value)
CEIL(value)
COS(value)
COSH(value)
EXP(value)
FLOOR(value)
LN(value)
LOG(value)
MOD(value,divisor)
NVL(value,substitute)
POWER(value,exponent)
ROUND(value,precision)
SIGN(value)
SIN(value)
SINH(value)
SQRT(value)
TAN(value)
TANH(value)
TRUNC(value,precision)
VSIZE(value)
value
evalue
value
value
value10
valuesubstitute
valueexponent
precision 45
value1;-1;0 0.
value
precision value
valueORACLE
ABS( )
SQL> select abs(100),abs(-100) from dual;
ABS(100) ABS(-100)
---------- ----------
100 100
ACOS( )
SQL> Select acos(-1) acos from dual;
ACOS
----------
3.14159265
ASIN( )
SQL> select asin(-1) "arc sine" from dual;
arc sine
----------
-1.5707963
ATAN
SQL> select atan(-1) "arc tangent" from dual;
arc tangent
-----------
-.78539816
CEIL( )
SQL> select ceil(3.14159) from dual;
CEIL(3.14159)
-------------
4
COS ( )
SQL> select cos(-3.1415926) from dual;
COS(-3.1415926)
---------------
-1
COSH ( )
SQL> select cosh(20) cosh from dual;
COSH
----------
242582598
EXP ( )
e n
SQL> select exp(2),exp(1) from dual;
EXP(2) EXP(1)
---------- ----------
7.3890561 2.71828183
FLOOR ( )
SQL> select floor(123.45),floor(45.56) from dual;
FLOOR(123.45) FLOOR(45.56)
------------- ------------
123 45
LN( )
n 0
SQL> select ln(1),ln(2),ln(3) from dual;
LN(1) LN(2) LN(3)
---------- ---------- ----------
0 .693147181 1.09861229
LOG( , )
n1n2n101
SQL> select log(2,1),log(2,2) from dual;
LOG(2,1) LOG(2,2)
---------- ----------
0 1
MOD( , )
SQL> Select mod(10,3), mod(10,2), mod(10,4) from dual;
MOD(10,3) MOD(10,2) MOD(10,4)
---------- ---------- ----------
1 0 2
POWER ( , )
n1 n2
SQL> select power(2,10),power(3,3) from dual;
POWER(2,10) POWER(3,3)
----------- ----------
1024 27
ROUND(value,precision)
select round(55.5),round(-55.5),trunc(55.5),trunc(-55.5)
from dual;
round(55.5) round(-55.5) trunc(55.5) trunc(-55.5)
----------- ------------ ----------- -------------
56 -56 55 -55
SIGN()
n 0 10 -1 0 0
select sign(123), sign(-100),sign(0) from dual;
sign(123) sign(-100) sign(0)
---------- ---------- ----------
1 -1 0
SIN ( )
SQL> select sin(1.57079) from dual;
SIN(1.57079)
------------
1
SINH( )
SQL> select sin(20),sinh(20) from dual;
SIN(20) SINH(20)
---------- ----------
.912945251 242582598
SQRT( )
n
SQL> select sqrt(64),sqrt(10) from dual;
SQRT(64) SQRT(10)
---------- ----------
8 3.16227766
TAN( )
n
SQL> select tan(20),tan(10) from dual;
TAN(20) TAN(10)
---------- ----------
2.23716094 .648360827
TANH( )
n
SQL> select tanh(20),tan(20) from dual;
TANH(20) TAN(20)
---------- ----------
1 2.23716094
TRUNC(value,precision)
SQL> SELECT TRUNC (124.16666, -2) trunc1, trunc(124.16666,2) from dual;
TRUNC1 TRUNC(124.16666,2)
---------- ------------------
100 124.16
2.2.3
Oracle
ADD_MONTH
datecount
GREATEST(date1,date2,. . .)
LAST_DAY( date )
date
LEAST( date1, date2, . . .)
MONTHS_BETWEEN(date2,date1)
Date2 - date1 ()
NEXT_DAY( date,day)
dateday MONDAY,Tuesday
NEW_TIME(date,this,other)
this =Other
ROUND(date,format)
format12 A.M.(),12 A.M.(),
TRUNC(date,format)
format12 A.M.( ).
ADD_MONTHS( , )
SQL> select to_char( add_months(to_date('199712','yyyymm'), 1),'yyyymm') add_month
2 from dual;
ADD_MO
------
199801
SQL> select to_char(add_months(to_date('199712','yyyymm'), -1 ),'yyyymm') add_mo
2 from dual;
ADD_MO
------
199711
LAST_DAY( date )
date
SQL> select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd')
2 from dual;
TO_CHAR(SY TO_CHAR((S
---------- ----------
2001.05.18 2001.05.19
MONTHS_BETWEEN(date2,date1)
Date2 - date1 ()
SQL> select months_between('19-12-1999','19-3-2000') mon_betw from dual;
MON_BETW
----------
-3
SQL> select months_between(to_date('2000.05.20','yyyy.mm.dd'),
2 to_date('2005.05.20','yyyy.mm.dd') ) mon_bet from dual;
MON_BET
----------
-60
NEW_TIME(date,this,other)
this =Other
Thisother
AST/ADT
/
BST/BDT
/
CST/CDT
/
GMT
HST/HDT
-/
MST/MDT
/
NST
PST/PDT
/
YST/YDT
Yukon/
SQL> select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') bj_time,
2 to_char(new_time(sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss') los_angles
3 from dual;
BJ_TIME LOS_ANGLES
------------------- -------------------
2001.05.19 06:25:25 2001.05.19 13:25:25
NEXT_DAY( date,day)
datexxday MONDAY,Tuesdayx
518
SQL> select next_day('18-5-2001','') nxt_day from dual;
NXT_DAY
----------
25-5 -01
SYSDATE
SQL> select to_char(sysdate,'dd-mon-yyyy day') from dual;
TO_CHAR(SYSDATE,'DD
-------------------
18-5 -2001
TRUNC(,[,] )
fmt fmt=mi
SQL> select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh,
2 to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual;
HH HHMM
------------------- -------------------
2001.05.18 22:00:00 2001.05.18 22:27:00
2.2.4
CHARTOROWID
rowid
CONVERT
HEXTORAW
raw
RAWTOHEX
raw
ROWIDTOCHAR
ROWID
TO_CHAR
TO_DATE
TO_MULTIBYTE
TO_NUMBER
TO_SINGLE_BYTE
CHARTOROWID()
ROWID
1* select rowid,rowidtochar(rowid),ename from scott.emp
SQL> /
ROWID ROWIDTOCHAR(ROWID) ENAME
----------------------------------- ---------------------------------------- ----------
AAAFXDAABAAAHVaAAA AAAFXDAABAAAHVaAAA SMITH
AAAFXDAABAAAHVaAAB AAAFXDAABAAAHVaAAB ALLEN
AAAFXDAABAAAHVaAAC AAAFXDAABAAAHVaAAC WARD
CONVERT( ,[,] )
ssetdset
SELECT CONVERT (strutz, WE8HP, F7DEC ) Conversion
FROM DUAL;
Conversion
---------------
Strutz.
HEXTORAW( )
Insert into printers( printer_nbr,manufacturer,model,init_string)
Values ( 12,HP,Laserjet,HEXTORAW(1B45));
RAWTOHEX( )
select rawtohex ( init_string) hext from printers
where model=LaserJet and manufacturer=HP;
hext
-----------
1B45
ROWIDTOCHAR( )
ROWID CHARTOROWID
TO_CHAR(date,format)
format date
SQL> select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2001/05/18 23:05:36
AD BC
AD=Anno Domini,BC=Before Christ
YYYY AD=1999 AD
A.D. B.C.
YYYY A.D.=1999 A.D.
AMPM
AM= ante meridiem PM=post meridiem
HH12AM=09AM
A.M.P.M.
HH12A.M.=09A.M.
DY
Mon,Tue,...
DAY
Monday,Tuesday,...
D
=1=7
1,2,3,4,5,6,7
DD
1(31
12... 31
DDD
1(366
1,2,3,...366
J
4712 ?
2451514,2451515,...
W
1( 5
1,2,3,4,5
WW,IW
ISO
1,2,3,4,... 52
MM
01,02,03,...12
MON
Jan,Feb,Mar ,...Dec
MONTH
January,February,...
RM
I ( XII
I,II,III,IV,...XII
YYYY,YYY,YY,Y
1999,999,99,9
YEAR
Nineteen Ninety-nine
SYYYY
(BC),
-1250
RR
012001
HH,HH12
121(12
1,2,3,...12
HH24
240(23
0,1,2,3,...23
MI
0(59
0,1,2,3...59
SS
0(59
0,1,2,3,...59
SSSSS
0(86399
0,1,2,3,...86399
../-;:
text
TO_DATE(string,format)
ORACLE
Insert into demo(demo_key,date_col)
Values(1 , to_date(04-Oct-1999, DD-Mon-yyyy) );
TO_MULTI_BYTE()
,
TO_NUMBER()
SELECT TO_NUMBER (1947) FISCAL_YEAR FROM DUAL;
FISCAL_YEAR
-----------
1947
TO_MULTI_BYTE()TO_SINGLE_BYTE
2.2.5
BFILENAME( , )
INSERT INTO file_tbl
VALUES (BFILENAME (lob_dir1, image1.gif));
CONVERT (x,desc_set [, source_set])
x source desc
select sid,serial#,username,
DECODE(command,
0,None,
2,Insert,
3,Select,
6,Update,
7,Delete,
8,Drop,
Other) cmd
from v$session where type != BACKGROUND;
DECODE Oracle8i/9i
DUMP( s,[,fmt [, start [, length ] ] ] )
DUMP fmt VARCHAR2
SQL> col global_name for a30
SQL> col DUMP_STRING for a50
SQL> set lin 200
SQL> select global_name,dump(global_name,1017,8,5) dump_string
2 from global_name;
GLOBAL_NAME DUMP_STRING
------------------------------------- ----------------------------------------------------------------
ORA816.US.ORACLE.COM Typ=1 Len=20 CharacterSet=ZHS16GBK: U,S,.,O,R
EMPTY_BLOB() EMPTY_CLOB()
BLOB --- EMPTY_BLOB()
CLOB --- EMPTY_CLOB()
NCLOB --- EMPTY_CLOB()
Insert into proposal
( proposal_id, recipient_name,proposal_name,short_description,
proposal_text,budget , cover_letter )
values(2,BRAD OHMONT,REBUILD FENCE,NULL,
EMPTY_CLOB(),EMPTY_BLOB(),
BFILENAME(proposal_dir,P2.DOC) );
GREATEST( )
SQL> select greatest('AA','AB','AC') from dual;
GR
--
AC
SQL> select greatest('','','') from dual;
GR
--
LEAST ( )
SQL> select least('','','') from dual;
LE
--
UID
SQL> show user
USER "SYSTEM"
SQL> l
1* select username,user_id from dba_users where user_id=UID
SQL> /
USERNAME USER_ID
------------------------------ ----------
SYSTEM 5
USER
SQL> select user from dual;
USER
------------------------------
SYSTEM
USERENV( )
opt
ENTRYID ID
SESSIONID ID
TERMINAL
OSDBA DBA TRUE
LABLE
LANGUAGE
CLIENT_INFO client-info
dbms_application_info,set_client_info
LANG ISO
VSIZE
ISDBA
DBA SYSDBA TRUE
SQL> show user
USER is "SYSTEM"
SQL> select userenv('ISDBA') from dual;
USEREN
------
FALSE
SQL> connect sys/sys@ora816
Connected.
SQL> select userenv('ISDBA') from dual;
USEREN
------
FALSE
SQL> connect internal
Connected.
SQL> select userenv('ISDBA') from dual;
USEREN
------
TRUE
SESSIONID
select userenv(SESSIONID) aud_id from dual;
aud_id
---------
47343
ENTRYID
initsid.ora audit_trail=TRUE
select userenv(ENTRYID) from dual;
USERENV(ENTRYID)
-------------
835641
INSTANCE
INSTANCE
SQL> select userenv('INSTANCE') from dual;
USERENV('INSTANCE')
-------------------
1
LANGUAGE
SQL> select userenv('LANGUAGE') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
LANG
SQL> l
1* select userenv('LANG') from dual
SQL> /
USERENV('LANG')
----------------------------------------------------
ZHS
TERMINAL
SQL> select userenv('TERMINAL') from dual;
USERENV('TERMINA
----------------
ZHAOYUANJIE
VSIZE( )
x
SQL> select vsize(user),user from dual;
VSIZE(USER) USER
----------- -----------------------------
6 SYSTEM
2.3 SQL
2.3.1
AVG( [ { DISTINCT | ALL}] )
ALLDISTINCT
SQL> l
1* select avg(sal) from emp
SQL> /
AVG(SAL)
----------
2073.21429
MAX( [ { DISTINCT | ALL}] )
ALLDISTINCT
SQL> select max(sal) from emp;
MAX(SAL)
----------
5000
MIN( [ { DISTINCT | ALL}] )
ALLDISTINCT
SQL> select min(sal) from emp;
MIN(SAL)
----------
800
STDDEV( [ { DISTINCT | ALL}] )
ALLDISTINCT
SQL> select stddev(sal) from emp;
STDDEV(SAL)
-----------------
1182.50322
VARIANCE( [ { DISTINCT | ALL}] )
ALLDISTINCT
SQL> select variance(sal) from emp;
VARIANCE(SAL)
------------------------
1398313.87
2.3.2 GROUP BY
GROUP By SUM,count(*)
GROUP BY
SQL> select deptno,count(*) ,sum(sal) from emp group by deptno;
DEPTNO COUNT(*) SUM(SAL)
---------- --------- ----------
10 3 8750
20 5 10875
30 6 9400
2.3.3 HAVING
GROUP BY GROUP BY HAVING 5
SQL> select deptno,count(*) ,sum(sal) from emp group by deptno
2 having count(*)>=5;
DEPTNO COUNT(*) SUM(SAL)
---------- ---------- ---------
20 5 10875
30 6 9400
SQL> select deptno,count(*) ,sum(sal) from emp having count(*)>=5
2 group by deptno;
DEPTNO COUNT(*) SUM(SAL)
---------- ---------- ----------
20 5 10875
30 6 9400
2.4
2.4.1 ORDER BY
Oracle ORDER BY
SQL> select deptno,ename,sal from emp order by deptno,sal desc;
DEPTNO ENAME SAL
--------- ---------- ----------
10 KING 5000
10 CLARK 2450
10 MILLER 1300
20 SCOTT 3000
20 FORD 3000
20 JONES 2975
20 ADAMS 1100
20 SMITH 800
30 BLAKE 2850
30 ALLEN 1600
30 TURNER 1500
30 WARD 1250
30 MARTIN 1250
30 JAMES 950
DESC sal()
2.4.2 BREAK
BREAK ON column SKIP xx BREAK ON
clear breaks break
break on column
break on row
break on Page
break on report
skip n n
skip page
SQL> break on deptno
SQL> set pagesize 100
SQL> select deptno,ename,sal from emp order by deptno;
DEPTNO ENAME SAL
---------- ---------- ----------
10 CLARK 2450
KING 5000
MILLER 1300
20 SMITH 800
ADAMS 1100
FORD 3000
SCOTT 3000
JONES 2975
30 ALLEN 1600
BLAKE 2850
MARTIN 1250
JAMES 950
TURNER 1500
WARD 1250
14
SQL> break on deptno skip 2
SQL> select deptno,ename,sal from emp order by deptno;
DEPTNO ENAME SAL
---------- ---------- ----------
10 CLARK 2450
KING 5000
MILLER 1300
20 SMITH 800
ADAMS 1100
FORD 3000
SCOTT 3000
JONES 2975
30 ALLEN 1600
BLAKE 2850
MARTIN 1250
JAMES 950
TURNER 1500
WARD 1250
SQL> break on deptno skip page
SQL> select deptno,ename,sal from emp order by deptno;
DEPTNO ENAME SAL
---------- ---------- ----------
10 CLARK 2450
KING 5000
MILLER 1300
DEPTNO ENAME SAL
---------- ---------- ----------
20 SMITH 800
ADAMS 1100
FORD 3000
SCOTT 3000
JONES 2975
DEPTNO ENAME SAL
---------- ---------- ----------
30 ALLEN 1600
BLAKE 2850
MARTIN 1250
JAMES 950
TURNER 1500
WARD 1250
14
2.4.3 COMPUTE
COMPUTE
COMP[UTE] [function [LAB[EL] text] ...
OF {expr|column|alias} ...
ON {expr|column|alias|REPORT|ROW} ...]
function
AVG
COU[NT]
MIN[IMUM] NUMBER, CHAR,NCHAR, VARCHAR2(VARCHAR),
NVARCHAR2 (NCHARVARYI NG)
MAX[IMUM] NUMBER, CHAR,NCHAR, VARCHAR2(VARCHAR),
NVARCHAR2 (NCHARVARYI NG)
NUM[BER]
SUM
STD
DEV[IANCE]
LAB[EL] text
OF {expr|column|alias} ...
OF
ON {expr|column|alias|REPORT|ROW} ...
ONREPORTROW
"clerk""analyst""analyst" "salesman" "TOTAL",
SQL> BREAK ON JOB SKIP 1
SQL> COMPUTE SUM LABEL TOTAL OF SAL ON JOB
SQL> SELECT JOB, ENAME, SAL
2 FROM EMP
3 WHERE JOB IN (CLERK, ANALYST, SALESMAN)
4 ORDER BY JOB, SAL;
The following output results:
JOB ENAME SAL
--------- ---------- ----------
ANALYST SCOTT 3000
FORD 3000
********* ----------
TOTAL 6000
CLERK SMITH 800
JAMES 950
ADAMS 1100
MILLER 1300
********* ----------
TOTAL 4150
SALESMAN WARD 1250
MARTIN 1250
TURNER 1500
ALLEN 1600
********* ----------
TOTAL 5600
1,000
SQL> COMPUTE SUM OF SAL ON REPORT
SQL> BREAK ON REPORT
SQL> COLUMN DUMMY HEADING
SQL> SELECT DUMMY, SAL, EMPNO
2 FROM EMP
3 WHERE SAL < 1000
4 ORDER BY SAL;
SAL EMPNO
--- ---------- -----------
800 7369
950 7900
----------
sum 1750
SQL> BREAK ON DNAME SKIP 1
SQL> COMPUTE AVG LABEL Dept Average ->
MAX LABEL Dept Maximum ->
OF SAL ON DNAME
SQL> SELECT DNAME, ENAME, SAL
2 FROM DEPT, EMP
3 WHERE DEPT.DEPTNO = EMP.DEPTNO
4 AND DNAME IN (ACCOUNTING, SALES)
5 ORDER BY DNAME;
DNAME ENAME SAL
-------------- ---------- ----------ACCOUNTING
CLARK 2450
KING 5000
MILLER 1300
************** ----------Dept
Average 2916.66667
Dept Maximum 5000
SALES ALLEN 1600
BLAKE 2850
MARTIN 1250
JAMES 950
TURNER 1500
WARD 1250
************** ----------Dept
Average 1566.66667
Dept Maximum 2850
9 rows selected.
1020
SQL> COLUMN DUMMY NOPRINT
SQL> COMPUTE SUM OF SAL ON DUMMY
SQL> BREAK ON DUMMY SKIP 1
SQL> SELECT DEPTNO DUMMY, DEPTNO, ENAME, SAL
2 FROM EMP
3 WHERE DEPTNO COLUMN DUMMY NOPRINT
SQL> COMPUTE SUM OF SAL ON DUMMY
SQL> BREAK ON DUMMY
SQL> SELECT NULL DUMMY, DEPTNO, ENAME, SAL
2 FROM EMP
3 WHERE DEPTNO SQLPLUS SET
2.5.1 ARRAYSIZE
SET ARRAY[SIZE]{integer}
Fetch15000
2.5.2 AUTOCOMMIT()
SET AUTO [COMMIT] { [ OFF | ON | IMM | n] }
1 ONIMMSQL
2 N COMMITnSQL
3 OFF COMMIT
2.5.3 LINESIZE()
LINESIZE 80
SET Lin[esize]{80|integer}
Integer = ()999
SQL>set linesize 160
2.5.4 LONG()
SQL> SQL>LONG 80 LONGLONG
SET LONG{80|integer}
Integer long n=1->32767Maxdata
SQL>show Maxdata
SQL>set long 2000
2.5.5 PAGESIZE()
SQL> SQL>24222pagesize
SET pag[esize] {24|integer}
SQL>SET pagesize 66
2.5.6 PAUSE()
PAUSE ON OFFON select Enter
SET PAUSE [ ON | OFF ]
SQL> set pause on
select Enter Enter.
2.5.7 SPACE()
set space
SET SPA[CE] {1|n}
N10
SQL>set space 2
space
2.5.8 Termout (/)
TERMOUT
SET TERMOUT { ON | OFF }
set termout off
set termout on
set termout off SPOOL XXX
set termout on SPOOL off
2.5.9 ECHO (/)
ECHOSQL
SET ECHO{OFF|ON}
start
set echo set termout
set pagesize 100
set echo on
select table_name from dict where rownum
2.6
2.6.1
OracleSQL> COLUMN COLMUN
COL[UMN] [{ column | expr } [ option_1 ... option_n ] ]
column
expr SQL
option_1... option_n
ALI[AS] alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE {expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
Alias BREAKCOUMN
CLEAR
FORMAT format
9999990 90
9,999,999.99 0
099999 0
$999,999.99
B99999 0
99999Mi
99999PR
9.999EEEE 4E
999V99 10n , 1234 123400
DATE MM/DD/YY
Heading :
SQL> col ename heading format a10
SQL> select ename,sal from emp;
SQL
COLUMN SALARY FOR $9,999,999.99
COLUMN LAST_NAME FOR A35.
2.6.2
Oracle NLS_DATE_FORMAT yyyymmdd
1. sysdate
sysdate ORACLE RDBMS
SQL> alter session set nls_date_format ='""yyyy""mm""dd""';
SQL> select sysdate from dual;
SYSDATE
------------------
20010530
2.
select sysdate,to_char(sysdate,yyyy.mm.dd hh24:mi;ss) from dual;
SQL> connect scott/tiger
SQL> alter session set nls_date_format ='yyyy""mm""dd""';
SQL> col HIREDATE heading
SQL> col sal heading
SQL> col sal ename
SQL> select ename,sal,hiredate from emp;
---------- ---------- -----------------
SMITH 800 19801217
ALLEN 1600 19810220
WARD 1250 19810222
JONES 2975 19810402
MARTIN 1250 19810928
BLAKE 2850 19810501
CLARK 2450 19810609
SCOTT 3000 19870419
KING 5000 19811117
TURNER 1500 19810908
ADAMS 1100 19870523
JAMES 950 19811203
FORD 3000 19811203
MILLER 1300 19820123
14
2.7
TtitleBtitle
ttitlebtitle
ttitle [center|left|right]string
btitle [center|left|right]string
ttitle center 'XX'
btitle left 'xxxx' right 'xxxxxx'
Clear ttitle
2.8
TTITLEBTITLECOLUMNBREAK ONCOMPUTE SUMSET LINESIZESET PAGESIZESET NEWPAGE SPOOL .LST
1 SPOOL
SPOOL filename
SPOOL off
2 COLUMN
column col_name[heading] format format_spe
COL name heading '' for a10
COL sal heading '' for 9,999.99
3.ttitlebtitle
ttitle [center|left|right]string
btitle [center|left|right]string
ttitle center 'XX'
btitle left '' right '1998.11'
Clear ttitle
4.breakcompute
clear breaks,clear computes
break on column
break on row
break on Page
break on report
skip n n
skip page
compute avg
compute count
compute max
compute min
compute std
compute sum
compute var
compute num
compute sum of sal on deptno
5.set
set termout offset termout on
set termout off SPOOL XXX
set termout on SPOOL off
set ECHO{OFF|ON} start set echo set termout
set Lin[esize]{80|integer} 999
set pag[esize] {24|integer}
SQL>COL ename heading for a12
SQL>COL sal heading for a999,999.99
SQL>COL hiredate heading
SQL>SET LINESIZE 200
SQL>SET PAGESIZE 60
SQL>SPOOL c:\all_emp
SQL>select ename,sal,deptno,hiredate from emp order by deptno;
SQL>SPOOL OFF
2.9
OracleSQL&
Select sid, serial#,username, command from v$session
Where USERNAME = upper(&usr);
SQL> Select sid, serial#,username, command from v$session
2 Where USERNAME = upper('&usr');
usr : sys
2: Where USERNAME = upper('&usr')
2: Where USERNAME = upper('sys')
SID SERIAL# USERNAME COMMAND
---------- ---------- ------------------------------ ----------
7 26 SYS 3
Alter system kill session &sid,&ser;
Alter system kill session &,&;
SQL> Select sid, serial#,username, command from v$session;
SID SERIAL# USERNAME COMMAND
---------- ---------- ------------------------------ ----------
1 1 0
2 1 0
3 1 0
4 1 0
5 1 0
6 1 0
7 26 SYS 3
8 16 ZHAO 0
8
SQL> Alter system kill session '&sid,&ser';
sid : 8
ser : 16
1: Alter system kill session '&sid,&ser'
1: Alter system kill session '8,16'
& &
SQL> set define ?
SQL> select sid,serial#,username from v$session where username='?usr';
usr : SYS
1: select sid,serial#,username from v$session where username='?usr'
1: select sid,serial#,username from v$session where username='SYS'
SID SERIAL# USERNAME
---------- ---------- ------------------------------
7 26 SYS
SQL> show define
define "?" (hex 3f)
ORACLE
3.1
3.1.1
ORACLE8i SQL REFERENCE
CREATE TABLE
CREATE TABLE [USER.] table_name
( { COLUMN1 DATATYPE
[DEFAULT EXPN] [COLUMN_CONSTRAINT] |TABLE_CONSTRAINT }
[, { COLUMN1 DATATYPE
[DEFAULT EXPN] [COLUMN_CONSTRAINT] |
TABLE_CONSTRAINT }] ... )
[CLUSTER CLUSTER (COLUMN1 [,COLUMN2] ...) ]
[PCTFREE N]
[PCTUSED N]
[INITRANS N]
[MAXTRANS N]
[STORAGE N]
[TABLESPACE TABLESPACE]
[ ENABLE | DISABLE]
[ AS QUERY]
schema
table_name
column ORACLE7254ORACLE81000
datatype
DEFAULT
Column constraint
Table_constraint
PCTFREE update1-99
010
PCTUSED . 1-9940
PCTFREEPCTUSED
INITRANS 1-255
1
OS
MAXTRANS 1-
255
TABLESPACE
system
STORAGE
INITIAL integer
NEXT integer
MINEXTENTS integer
MAXEXTENTS integer
PCTINCREASE integer >=0
ENABLE
DISABLE
As subquery
FREELIST GROUP
FREEUST
1
long
"ORA-01547:Failed to allocate extent of size xxxxx in
tablespace 'xxxx' "
SQL>alter table xxx storage(MAXEXTENTS 999 )
2: pctincrease0.
3:STORAGEOracle8i/9i
3.1.2
1SCOTTemp,
Create table scott.emp
(
Empno number(5) primary key,
Ename varchar2(15) not null,
Job varchar2(10),
Mgr number(5),
Hiredate date default sysdate,
Sal number(7,2) CHECK(sal>100),
Comm number(3) default 0.0 ,
Dept number constraint
dept_fkey References scott.dept
)
Tablespace users
PCTFREE 10
PCTUSED 70
STORAGE
(
INITIAL 50K
NEXT 50k
MAXEXTENTS 10
)
2NOT NULL:
CREATE TABLE CHECKUP_HISTORY
(CHECKUP_NO NUMBER(10,0) NOT NULL,
ID_NO NUMBER(10,0),
CHECKUP_TYPE VARCHAR2(30),
CHECKUP_DATE DATE,
DOCTOR_NAME VARCHAR2(50));
CHECKUP_NO.
3CHECKUP_TYPE
CREATE TABLE SEAPARK.CHECKUP_HISTORY
(
CHECKUP_NO NUMBER(10) NOT NULL,
ID_NO NUMBER(10,0),
CHECKUP_TYPE VARCHAR2(30),
CHECKUP_DATE DATE,
DOCTOR_NAME VARCHAR2(50),
FOREIGN KEY (CHECKUP_TYPE) REFERENCES
SEAPARK.CHECKUP (CHECKUP_TYPE),
PRIMARY KEY (CHECKUP_NO)
)
PCTFREE 20
PCTUSED 60
INITRANS 2
MAXTRANS 255
STORAGE ( INITIAL 1250K
NEXT 2K
MINEXTENTS 1
MAXEXTENTS 121
Pctincrease 0)
TABLESPACE user_data;
,
3.1.3
Oracle CREATE GLOBAL TEMPORARY TABLE
SQL> create global temporary table myemp as select * from emp;
SQL> desc myemp
?
----------------------------------------- -------- --------------
ENAME VARCHAR2(20)
SAL NUMBER(9,2)
DEPTNO NUMBER(4)
TEL VARCHAR2(20)
SQL> select * from myemp;
SQL> insert into myemp values('',32456.99,10,'12');
1
SQL> select * from myemp;
ENAME SAL DEPTNO TEL
-------------------- ---------- ---------- ------------------
32456.99 10 12
SQL> connect sys/sys
SQL> connect zhao/zhao
SQL> l
1* select * from myemp
SQL> /
SYSDROP TABLE
SQL> drop table myemp;
3.3
OracleOracle8i
3.3.1
ALTER TABLEORACLE8i SQL REFERENCE
ALTER TABLE [user.] table
[ADD ({colum_element|table_constraint}
[,{column_element|table_constraint}]...)]
[MODIFY(column_element[,column_element]...)]
[DROP CONSTRAINT constraint]...
[PCTFREE integer][PCTUSED integer]
[INITRANS integer][MAXTRANS integer]
[STORAGE storage]
[BACKUP]
ALTER TABLE
()
;
NOT NULL
BACKUP
(Oracle8i)
(Oracle8i)
(Oracle8i)
3.3.2
1
SQL>alter table dept add ( headcount number(3) );
2
SQL>alter table dept modify( Dname char(20) );
ORA-01439: Column to be modified must be empty to change
datatype
ORA-01441: Column to be modified must be empty to decrease
column length
3
CREATE TABLE HOLD_TANK AS SELECT TANK_NO, CHIEF_CARETAKER_NAME
FROM TANK;
4()
create table emp2 as select * from emp where rownum=18 and age0 and sal+comm create table new_emp as select * from emp UNRECOVERABLE;
CREATE TABLE new_emp AS select * from emp NOLOGGING;
UNRECOVERABLEOracleNOLOGGINGLOGGING
3.3.6
Oracle8i Alter table MOVEALTER TABLE
1
Alter table emp MOVE
STORAGE(INITIAL 1m next 512k minextents 1 maxextents 999 pctincrease 0 );
2system
1)
SQL> select tablespace_name,table_name,initial_extent from user_tables;
TABLESPACE_N TABLE_NAME INITIAL_EXTENT
---------------------- ----------------------- ----------------------------
SYSTEM ABC 65536
SYSTEM BONUS 65536
SYSTEM DEPT 65536
SYSTEM EMP 65536
SYSTEM EMP2 65536
SYSTEM EMP3 65536
SYSTEM EMP4 65536
USERS PAY_LST_DET 1048576
SYSTEM PLAN_TABLE 65536
SYSTEM SALGRADE 65536
USERS UNIT_INF 1048576
11 rows selected.
2Alter table . . . MOVE
SQL> alter table emp move tablespace user_data
2 storage(initial 128k next 128k minextents 1 pctincrease 0);
Table altered.
SQL> alter table dept move tablespace user_data
2 storage(initial 128k next 128k minextents 1 pctincrease 0);
Table altered.
SQL> alter table BONUS move tablespace user_data
2 storage(initial 128k next 128k minextents 1 pctincrease 0);
Table altered.
3
SQL> select tablespace_name,table_name,initial_extent from user_tables;
TABLESPACE_N TABLE_NAME INITIAL_EXTENT
----------------------- ------------------------- ---------------------------
SYSTEM ABC 65536
USER_DATA BONUS 131072
USER_DATA DEPT 131072
USER_DATA EMP 131072
SYSTEM EMP2 65536
SYSTEM EMP3 65536
SYSTEM EMP4 65536
USERS PAY_LST_DET 1048576
SYSTEM PLAN_TABLE 65536
SYSTEM SALGRADE 65536
USERS UNIT_INF 1048576
11 rows selected.
3.3.7
ALTER TABLE ALLOCATE EXTENT
ALTER TABLE emp
ALLOCATE EXTENT (SIZE 5K INSTANCE 4);
3.3.8
Oracle8I
LONG_TABLONG_PICS
ALTER TABLE LONG_TAB DROP COLUMN LONG_PICS;
ALTER TABLE . . . SET UNUSED
1) ;
2) ()
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ------------ ------------------- ---------- ---------------- ------------ ----------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
10 rows selected.
SQL> alter table emp2 set unused(comm);
Table altered.
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL DEPTNO
------------ ----------- --------------- ---------- --------------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 30
10 rows selected.
SQL> desc emp
Name Null? Type
----------------------------------------------------------------- -------- ------------
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
DEPTNO NUMBER(2)
ALTER TABLE . . . DROP UNUSED COLUMNS checkpoint
SQL> alter table emp drop unused columns checkpoint;
Table altered.
alter table emp set unused(comm);
3.3
ORACLE primary key ORACLE
3.3.1
Alter table CREATE TABLE
1
CREATE TABLE [schema.]table_name
[SCOPE IS [user.]scope_table_name][column_constraint]
. . . . . .
1
CREATE TABLE dept
(deptno number(2),
dname varchar2(20),
loc varchar2(20),
CONSTRAINT pk_dept PRIMARY KEY (deptno)
);
2 alter table
ALTER TABLE [schema.]tablename
ADD ( constraint_name PRIMARY KEY (column1 [,column2,...])
2
ALTER TABLE PARK_REVENUE
ADD(park_rev_pk PRIMARY KEY ( ACCOUNT_NO));
3
create table dept
(deptno number(5) primary key,
dname varchar2(20),
loc varchar2(30))
disable primary key;
disable primary key
alter table dept enable primary key :
deptno constraint fk_deptno References dept(deptno)
3
CREATE UNIQUE INDEX
primary key
4
Constraintoracle8i sever SQL Reference Help constraint
Create table dept
(deptno number(2),
dname varchar2(40) constraint unq_dname unique,
loc varchar2(50)
);
constraint unq_dname uniquedname,,oracle unq_dname .
Create table dept
(deptno number(2),
dname varchar2(20),
loc varchar2(20),
constraint unq_dname unique(dnam)
using index pctfree 20
tablespace users_x
STORAGE(initial 8K next 6k)
);
constraint unq_dname uniquedname,,oracle unq_dname .
Create table dept
(dept number(2) constraint pk_dept primary key,
dname varchar2(20),
loc varchar2(20)
);
Create table dept
(deptno number(2),
dname varchar2(20),
loc varchar2(20),
constraint pk_dept primary key (deptno)
);
using index
Alter table ship_cont
Add primary key(ship_no,container_no) Disable
Disable
Disableship_nocontainer_no16,.
3.3.2
alter table
ALTER TABLE [schema.]tablename
DISABLE constraint_name
1
Alter table dept
Disable scott.pk_dept;
ORA-02297: Cannot disable constraint ( scott.pk_dept)-
Depentencies exist.
3.3.3
ALTER TABLE [schema.]tablename
DROP CONSTRAINT constraint_name [CASCADE]
1) ,;
2) ,
CASCADE ,
DROP INDEX index_name ;
3.4
Dbase, Foxpro
3.4.1
CREATE TABLEALTER TABLEOracle SQL reference Create table 9Alter table
1. CREATE TABLE
2. ALTER TABLE
ALTER TABLE [schema.]table_name
ADD ( CONSTRAINT_NAME FOREIGN KEY (Column1 [,column2,. . .])
REFERENCES [schema.]table_name (Column1 [,column2,. . .]);
CREATE TABLE dept
(deptno NUMBER(2),
dname VARCHAR2(9),
loc VARCHAR2(10),
CONSTRAINT pk_dept PRIMARY KEY (deptno) );
Create table emp
( empno number(4),
ename varchar2(10),
job varchar2(10),
mgr number(4),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno constraint fk_deptno References dept(deptno)
);
Create table emp
( empno number(4),
ename varchar2(10),
job varchar2(10),
mgr number(4),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno,
constraint fk_deptno
Foreign key(deptno) References dept(deptno)
);
Delete cascade
Create table emp
( empno number(4),
ename varchar2(10),
job varchar2(10),
mgr number(4),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno number(2) constraint fk_deptno
References dept(deptno)
On Delete CASCADE
);
Alter table phone_calls
ADD constraint fk_areaco_phoneno
Foreign key(areaco,phoneno)
References austomers(areano,phoneno)
Exceptions into wrong_numbers
Create table TROUBLE
( City varchar2(10),
Sampledate date,
Noon number(4,1),
Midnight number(4,1),
Precipitation number,
Constraint TROUBLE.PK PRIMARY KEY(city,Sampledate)
)
3.4.2
ORACLEALTER TABLE
ALTER TABLE [schema.]table_name
DISABLE CONSTRAINT_NAME;
3.4.3
Alter table DROP Alter table
ALTER TABLE [schema.]table_name
DROP CONSTRAINT constraint_name;
3.5
3.5.1
1. CREATE INDEX:
CREATE INDEX
CREATE [unique] INDEX [user.]index
ON [user.]table (column [ASC | DESC] [,column
[ASC | DESC] ] ... )
[CLUSTER [scheam.]cluster]
[INITRANS n]
[MAXTRANS n]
[PCTFREE n]
[STORAGE storage]
[TABLESPACE tablespace]
[NO SORT]
Advanced
schema ORACLE
index
table
column 16longlong raw
DESCASC ASC
CLUSTER Hash cluster
INITRANSMAXTRANS
Tablespace
STORAGE create table storage.
PCTFREE (pctused)
NOSORT
2.
insert,update,delete
,30%
Create index ename_in on emp (ename,sal);
1POS
Create table good(good_id number(8) not null,/* */
Good_desc varchar2(40), /* */
Unit_cost number(10,2) /* */
Good_unit varchar2(6), /* */
Unit_pric number(10,2) /* */
)
Create table good(good_id number(8) primary key,
Good_desc Varchar2(40),
Unit_cost number(10,2),
Good_unit char(6),
Unit_pric number(10,2)
);
3.5.2
OracleOracle8I
, Oracle9i SQL Reference Alter index.
ALTER [UNIQUE] INDEX [user.]index
[INITRANS n]
[MAXTRANS n]
REBUILD
[STORAGE n]
REBUILD
DBA REBUILD
alter index pk_detno rebuild storage(initial 1m next 512k);
ALTER INDEX emp_ix REBUILD REVERSE;
Oracle8i
ALTER INDEX . . . COALESCE;
ALTER INDEX ename_idx COALESCE;
3.5.3
DROP INDEX [schema.]indexname
sql> drop index pk_dept;
3.6
Oracle8i
3.6.1
SQLPL/SQLCGLOBAL QUERY REWRITECREATE ANY INDEX
1EMPename idx
CREATE INDEX idx ON emp ( UPPER(ename));
SELECT * FROM EMP WHERE UPPER(ename) LIKE JOH%;
2emp
1) emp
SQL> desc emp
Name Null? Type
----------------------------------------- -------- ------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
2)
SQL> create index sal_comm on emp ( (sal+comm)*12, sal,comm)
2 tablespace users storage(initial 64k next 64k pctincrease 0);
create index sal_comm on emp ( (sal+comm)*12, sal,comm)
*
ERROR at line 1:
ORA-01031: insufficient privileges
3) DBA
SQL> connect sys/sys@ora816
Connected.
SQL> grant GLOBAL QUERY REWRITE to scott;
Grant succeeded.
SQL> grant CREATE ANY INDEX to scott;
Grant succeeded.
4scott
SQL> connect scott/tiger@ora816
Connected.
SQL> create index sal_comm on emp ( (sal+comm)*12, sal,comm)
2 tablespace users storage(initial 64k next 64k pctincrease 0);
Index created.
1)
SQL> select ename,sal,comm from emp where (sal+comm)*12 >5000;
ENAME SAL COMM
---------------------- ---------------- ----------------
ALLEN 1600 300
WARD 1250 500
MARTIN 1250 1400
TURNER 1500 0
1234.5 54321
3.6.2
ALTER INDEXREBUILD NOREVERSEREBUILD REVERSE
1
CREATE INDEX i ON t (a,b,c) REVERSE;
2
ALTER INDEX i REBUILD NOREVERSE;
3.6.3
Index_Organized TableIndex_organized tableIOT
B-(3-1)
3-1
B_ROWIDOracleROWID
CREATE TABLE ORGANIZATION INDEX
CREATE TABLE IOT_EXPAMPLE
(
Pk_col1 number(4),
Pk_col2 varchar2(10),
Non_pk_col1 varchar2(40),
Non_pk_col2 date,
CONSTRAINT pk_iot PRIMARY KEY
( pk_col1, pk_col2)
)
ORGANIZATION INDEX
TABLESPACE INDEX
STORAGE( INITIAL 1M NEXT 512K PCTINCREASE 0 );
LONG
DBA_TABLESIOT_TYPEIOT_NAME
1 docindex INITRANS
ALTER TABLE docindex INITRANS 4;
2 docindex
ALTER TABLE docindex ADD OVERFLOW;
3 docindexINITRANS
ALTER TABLE docindex OVERFLOW INITRANS 4;
3.7
Oracle
1.
CREATE OR REPLACE TYPE [schema.]type_name [IS|AS] OBJECT ( element_list );
ORACLE 8i SQL REFERENCE
2.
add_type
create type add_type as object
(
street varchar2(10),--
city varchar2(20), --
state char(2), --
zip number --
);
add_type
create table customer
(
name varchar2(20),
address add_type
);
insert into customer values
(1,add_type('mystaree','some city','st',10001));
3.8
long 2GB long raw 2GBORACLE
3.8.1
ORACLE8
LOB
BLOB
LOB,4GB
CLOB
LOB, 4GB
BFILE
OS
NCLOB
Multibyte CharactersCLOB
LONG LOB
Create table proposal
(
proposal number(10) promary key,
recipient_name varchar2(25),
proposal_name varchar2(25),
short_description varchar2(1000),
proposal_text clob, /* */
budget blob, /* */
cover_letter bfile /* */
);
3.8.2 LOB
LOBLOB
Create table proposal
(
proposal number(10) promary key,
recipient_name varchar2(25),
proposal_name varchar2(25),
short_description varchar2(1000),
proposal_text clob, /* */
budget blob, /* */
cover_letter bfile /* */
)
storage( initial 1m next 500k pctincrease 0 )
tablespace PROPOSALS;
LOB
Create table proposal
(
proposal number(10) promary key,
recipient_name varchar2(25),
proposal_name varchar2(25),
short_description varchar2(1000),
proposal_text clob, /* */
budget blob, /* */
cover_letter bfile /* */
)
storage( initial 1m next 500k pctincrease 0 )
tablespace PROPOSALS
LOB(proposal_text, budget) STORE AS
( TABLESPACE proposal_lobs
STORAGE( initial 2m next 1m pctincrease 0 )
CHUNK 16k PCTVERSION 10 NOCACHE LOGGING
);
LOB(proposal_text, budget) STORE AS LOBproposal_lobs
CHUNK 16k LOB1k32k
PCTVERSION 10 10%LOB
NOCACHE CACHE
LOGGING LOBREDO NOLOGGING
3.8.3 LOB
LOB
1 DBMS_LOB
2 API(Application Programming Interfaces);
3 OCI(Oracle Call Interfaces)
1.
LOBORACLELocator Value LOBDBMS_LOBOracle LOB
PROPOSALBudget
Insert into proposal
( proposal_id, recipient_name,proposal_name,short_description,
proposal_text,budget , cover_letter )
values(1,DOT PHILLIPS,CLEAR PHILLIPS FIELD,NULL,
This is the text of a proposal to clear Phillips field.,
EMPTY_BLOB(), NULL );
budget EMPTY_BLOBCLOBEMPTY_CLOBcover_letter BFILENULL
BLOB --- EMPTY_BLOB()
CLOB --- EMPTY_CLOB()
NCLOB --- EMPTY_CLOB()
BFILENAME DBA CREATE DIRECTORY Create directory
Create directory proposal_dir for /u01/proposal/letters;
proposal_dir /u01/proposal/letters
proposal cover_letter
Insert into proposal
( proposal_id, recipient_name,proposal_name,short_description,
proposal_text,budget , cover_letter )
values(2,BRAD OHMONT,REBUILD FENCE,NULL,
EMPTY_CLOB(),EMPTY_BLOB(),
BFILENAME(proposal_dir,P2.DOC) );
2.
LONGLOB select
Insert into proposal
( proposal_id, recipient_name,proposal_name,short_description,
proposal_text,budget , cover_letter )
select 3,SKIP GATES,CLEAR GATES FIELD,NULL,
proposal_text,buaget,cover_letter
from proposal
where proposal_id = 1;
3.LOB
update proposal
set proposal_text=This is the new proposal text.
Where proposal_id=3;
Update proposal
Set cover_letter=BFILENAME(proposal_dir,P3.DOC)
Where proposal_id = 3;
4.DBMS_LOBLOB
DBMS_LOBLOBDBMS_LOBLOB
READ
LOB
SUBSTR
LOBSQLSUBSTR
INSTR
LOBSQLINSTR
GETLENGTH
LOBSQLGETLENGTH
COMPARE
LOB
WRITE
LOBLOB
APPEND
LOBLOB
ERASE
LOB
TRIM
LOBTRIM()
COPY
LOBLOB
BFILE
BFILEINITsid.ora
SESSION_MAX_OPEN_FILES xxx
10BFILE
BFILE
FILEOPEN
FILECLOSE
FILECLOSEALL
FILEEXISTS
FILEGETNAME
BFILE
FILEISOPEN
DBMS_LOB LOBPL/SQL
PL/SQLLOB
declare
locator value
amount
offset
output
begin
set amount :=;
set offset := . . .;
select locator_value into locator from table;
DBMS_LOB.READ(locator_value,amount,offset, output );
DBMS_OUTPUT.PUT_LINE(output:||output );
end;
declare
locator_var CLOB;
amount_var integter;
offset_var integer;
output_var varchar2(10);
begin
amunt_var :=10;
offset_var := 1;
select proposal_text into locator_var from PROPOSAL
where proposal_id=1;
DBMS_LOB.READ(locator_var,amount_var,offset_var,output_var);
DBMS_OUTPUT.PUT_LINE(Start of proposal text:||output_var);
End;
/
3.9
,Oracle,,.Oracle8i/9I
3.9.1
DBA_TABLES
DBA_TAB_COLUMNS
DBA_INDEXES ANALYZE
DBA_IND_COLUMNS OracleDBA_INDEXESDBA_IND_COLUMNS
DBA_CONSTRAINTS
DBA_CONS_COLUMNS
3.9.2
1
SQL> select table_name ,tablespace_name,initial_extent,next_extent
2* from user_tables
SQL>
TABLE_NAME TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT
------------------ ------------------ -------------- -----------
ACCESS$ SYSTEM 16384 106496
AQ$_MESSAGE_TYPES SYSTEM 65536 65536
AQ$_PENDING_MESSAGES SYSTEM 65536 65536
. . . . . .
2
SQL> select index_name,tablespace_name,initial_extent,next_extent
2 from all_indexes where owner=user;
INDEX_NAME TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT
------------------------------ ------------------ -------------- -----------
AQ$_MSGTYPES_PRIMARY SYSTEM 65536 65536
AQ$_PROPAGATION_STATUS_PRIMARY SYSTEM 65536 65536
AQ$_QTABLE_AFFINITIES_PK SYSTEM 65536 65536
AQ$_QUEUE_STATITICS_PK SYSTEM 65536 65536
AQ$_SCHEDULES_PRIMARY SYSTEM 65536 65536
ASSOC1 SYSTEM 16384 16384
ASSOC2 SYSTEM 16384 16384
. . . . . .
where owner=user .
3
SQL> col column_name for a40
SQL> col index_name for a18
SQL> select index_name,table_name,column_name from all_ind_columns
2* where table_owner=user;
INDEX_NAME TABLE_NAME COLUMN_NAME
------------------ ------------------ -----------------------------
I_ACCESS1 ACCESS$ D_OBJ#
I_ACCESS1 ACCESS$ ORDER#
AQ$_MSGTYPES_PRIMARY AQ$_MESSAGE_TYPES QUEUE_OID
. . . . . .
4,,,DBA_CONSTRAINTS,:
:
Create table worker
( empno number(4) primary key,
name varchar2(10),
age number(2) CHECK(age between 18 and 65 ),
/* age number(2) CHECK( age >=18 and age select owner,constraint_name,table_name from user_constraints;
OWNER CONSTRAINT_NAME TABLE_NAME
-------------------- ------------------------------ -----------------
ZHAO SYS_C001009 WORKER
ZHAO SYS_C001010 WORKER
SQL> set long 1000
SQL> select SEARCH_CONDITION from user_constraints;
SEARCH_CONDITION
--------------------------------------------------------
age between 18 and 65
5,DBA_CONSTRAINTS,:
CREATE TABLE dept
(deptno number(2),
dname varchar2(20),
loc varchar2(20),
CONSTRAINT pk_dept PRIMARY KEY (de