Ethan Frome - search read.pudn.comread.pudn.com/downloads138/ebook/589242/chinese/chinese... · Web viewAlter table add Constraint 对已有的表加约束 Create table 建立表结构

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

[email protected]

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