Académique Documents
Professionnel Documents
Culture Documents
--------------------------------------------------------
ARE BUILT IN FUNCTIONS., THEY CAN BE CALLED FROM A USER DEFINED TBL OR SYSTEM
DEFINED VIEW(DUAL).
SYSDATE()
----------------
SELECT SYSDATE FROM DUAL;
02-SEP-08 (DEFAULT DATE FORMAT -> DD-MON-YY)
TYPES:
-----------
NUMBER
CHARACTER
DATE
CONVERSION
MISC
NUMBER:
----------------
ABS()
SQRT()
MOD()
ROUND()
FLOOR()
CEIL()
--
--
--
SELECT ABS(-1),SQRT(9),MOD(3,2),
ROUND(15.432), ROUND(15.432,1),ROUND(15.432,-1),
FLOOR(15,432),CEIL(15.432) FROM DUAL;
CHARACTER
-------------------
LENGTH()
CONCAT()
SUBSTR()
INSTR()
LPAD()
RPAD()
--
--
--
LENGTH()
--------------
SELECT LENGTH('ANIL ANCHAN') FROM DUAL;
SUBSTR()
--------------
SELECT ENAME,SUBSTR(ENAME,1,3) "START_1_3" FROM EMP;
TRY -VE NUMBERS
INSTR()
-----------
SELECT ENAME,INSTR(ENAME,'A') "POS_A" FROM EMP;
LPAD()
-----------
SELECT LPAD(EMPNO,10,'ORACLE') AS EMPID FROM EMP;
SELECT LPAD(EMPNO,9,'ORACLE') AS EMPID FROM EMP;
SELECT LPAD(EMPNO,11,'ORACLE') AS EMPID FROM EMP;
RPAD()
------------
SELECT RPAD(EMPNO,LENGTH(EMPNO)+6,'ORACLE') AS EMPID FROM EMP;
CONVERSION:
---------------------
TO_CHAR() : DATE TO CHAR FORMAT
TO_DATE() : DATE TO SYSDATE FORMAT
--
--
INPUT OUTPUT
--------- -------------
DD 02
DDTH 02ND
YY 08
YYYY 2008
DAY TUESDAY
DY TUE
Dy Tue
day tuesday
MON SEP
MONTH SEPTEMBER
YEAR TWO THOUSAND EIGHT
HH:MI:SS 10:50:07
HH24:MI:SS 14:55:06
HH:MM:SS 10:09:07 -- MM -> 09(SEP)
MISC:
---------
NVL() : NO VALUE FN
NVL2()
DECODE()
--
--
--
NVL2()
----------
SELECT SAL,COMM,NVL2(COMM,SAL+COMM,SAL)
AS GROSS_SAL FROM EMP;
ROWNUM:
---------------
IS SEQUENCE OF NOS FOR THE RECORDS.
CLASS ASSIGNMENT:
--------------------------------
1> WRITE A QUERY TO DISPLAY THE ALTERNATE RECORDS
FROM EMP TABLE:
HINT : USE MOD(),DECODE(),ROWNUM
---> SELECT * FROM EMP WHERE ROWID IN
(SELECT DECODE(MOD(ROWNUM,2),1,ROWID) FROM EMP)
NOTE:
---------
SELECT : IS A COMMAND WHICH CAN BE USED
--------------
1> QUERYING THE DB
2> WITH CREATE COMMAND
3> WITH DML COMMANDS
DATATYPES: 10g
------------------- -----
NUMBER : 38
CHAR (FIXED) : 4000
VARCHAR / VARCHAR2 (VARIABLE) : 4000
DATE : 9 BYTES : DDMONYY
DDMONYYYY
DD-MON-YY
DD-MON-YYYY
LONG (CHAR) : 2000
LONG RAW (BINARY) : 2000
TIMESTAMP : DATE+TIME DD-MON-YY HH:MI:SS
--
--
EX:
CHAR(10) : 'AN9L' -> 10
VARCHAR2(10) : 'AN9L' -> 4
CREATE:
--------------
CREATE TABLE <TNAME>
(COL1 <DATATYPE(SIZE)>,
COL2 <DATATYPE(SIZE)>,
---,
---,
COLN <DATATYPE(SIZE)
);
SQL> /
SQL> ED -> CHANGE THE TBL NAME
SQL> /
BEGIN
INSERT INTO EMPLOY VALUES
(1001,'ANIL',99999,'01-SEP-08','ORACLE','TRAINING');
INSERT INTO EMPLOY VALUES
(1002,'ANCHAN',NULL,NULL,'','YET TO JOIN');
INSERT INTO EMPLOY VALUES
(NULL,'',NULL,NULL,'','');
END;
/
III
----
& METHOD
----------------
INSERT INTO <TNAME> VALUES
(&COL1NAME,'&COL2NAME',....'&COLNNAME');
DELETE:
-------------
DELETE [FROM] <TNAME>; -> ALL RECORDS
DELETE [FROM] <TNAME> WHERE COLNAME = <UNQ_VAL>;
-> 1 RECORD
ROLLBACK;
TCL:
--------------
COMMIT : MAKES DML PERMANENT
UPTO PREV COMMIT
UPTO PREV DDL
UPTO NORMAL DISCONNECT -> SQL> DISC
OR SQL> EXIT
I SELECT
10:00 LOGIN EMP 14
10:30 INSERT 4 18
11:00 UPDATE 2 18
12:00 DELETE 3 15
01:00 ROLL; 14
II SELECT
10:00 LOGIN EMP 14
10:30 INSERT 4 18
10:45 COMMIT;
11:00 UPDATE 2 18
12:00 DELETE 3 15
12:30 COMMIT;
01:00 ROLL; 15
III SELECT
10:00 LOGIN EMP 14
10:30 INSERT 4 18
10:40 SAVEPOINT A;
11:00 UPDATE 2 18
11:30 SAVEPOINT B;
12:00 DELETE 3 15
01:00 ROLL; 14
IV SELECT
10:00 LOGIN EMP 14
10:30 INSERT 4 18
10:40 SAVEPOINT A;
11:00 DELETE 2 16
11:30 SAVEPOINT B;
12:00 DELETE 3 13
01:00 ROLLBACK TO SAVEPOINT B; 18
V SELECT
10:00 LOGIN EMP 14
10:30 INSERT 4 18
10:40 SAVEPOINT A;
11:00 DELETE 2 16
11:15 DROP TABLE T;
11:30 SAVEPOINT B;
12:00 DELETE 3 13
01:00 ROLLBACK TO SAVEPOINT A; 18
DCL:
----------
GRANT
REVOKE
USER1
----------
T1 -> 5 RECORDS
USER2> SELECT * FROM USER1.T1; -> 5 RECORDS
USER3> SELECT * FROM USER1.T1; -> 5 RECORDS
----------------------------------------------------------------------------------
-------------
REVOKE:
--------------
REVOKE ALL ON <TNAME> FROM <USERNAME>;