Académique Documents
Professionnel Documents
Culture Documents
-------
ALTER
ADD : COLUMN/'S,CONSTRAINT
MODIFY : COLUMN DATATYPE(SIZE),CONSTRAINT
DROP : COLUMN/'S,CONSTRAINT
RENAME : COLUMN
ALTER + ADD:
----------------------
ALTER TABLE <TNAME> ADD(NEW_COL DATATYPE(SIZE),.....);
ALTER + MODIFY
--------------------------
ALTER TABLE <TNAME>
MODIFY(EXST_COLNAME NEW_DATATYPE(SIZE));
DESC EMPLOY
ALTER + DROP
----------------------
ALTER TABLE <TNAME> DROP COLUMN <COLNAME>;
ALTER + RENAME:
----------------------------
ALTER TABLE <TNAME> RENAME
COLUMN <EXST_COLNAME> TO <NEW_COLNAME>;
DESC EMPLOY
RENAME:
--------------
RENAME <EXST_TBLNAME> TO <NEW_TBLNAME>;
DESC <NEW_TBLNAME>;
SELECT * FROM <NEW_TBLNAME>;
CONSTRAINTS
----------------------
ARE RESTRICTIONS FOR USER, APPLIED ON COLUMNS.
TYPES:
-------------
NOT NULL : NO NULL
UNIQUE : NO DUPL, MULTIPLE NULL ALLO
-WED.
PRIMARY KEY : NO NULL,NO DUPL
ONLY ONE PRIMARY KEY PER
TABLE.
CHECK : CHECKS FOR PREDEFINED VAL.
FOREIGN KEY
REFERENTIAL INTEGRITY CONSTRAINT
SELF REFERENTIAL INTEGRITY CONSTRAINT
2 LEVELS:
---------------
COLUMN
TABLE
NAMED:
-------------
USER : CONSTRAINT <CONSTR_NAME> CON_TYPE
SYSTEM(DEFAULT): CON_TYPE : SYS_C004859
2 STAGES:
--------------------
CREATE
ALTER
CREATE:
-------------
CREATE TABLE EMPLY_DETAILS
(EMPNO NUMBER(4) CONSTRAINT PK_EMPNO PRIMARY KEY,
ENAME CHAR(10) CONSTRAINT NN_ENAME NOT NULL,
SAL NUMBER(10) CHECK(SAL>10000),
EPFNO NUMBER(4) NOT NULL UNIQUE);
USER_CONSTRAINTS
----------------------------------
DESC USER_CONSTRAINTS
SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'EMPLY_DETAILS';
CONSTRAINT_NAME C STATUS
------------------------------ -- ------------
NN_NAME C ENABLED
SYS_C005595 C ENABLED
SYS_C005596 C ENABLED
PK_NO P ENABLED
SYS_C005598 U ENABLED
DISABLE/ENABLE:
---------------------------
ALTER TABLE EMPLY_DETAILS
DISABLE CONSTRAINT SYS_C005598;
SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'EMPLY_DETAILS';
SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'EMPLY_DETAILS';
ALTER+MODIFY
-----------------------
ALTER TABLE <TNAME>
MODIFY(COLNAME CONSTRAINT <CONSTR_NAME> CON_TYPE);
EXERCISE:
ALTER TABLE EMPLY_DETAILS
ADD CONSTRAINT NN_NAME NOT NULL(ENAME); -> ERROR
TABLE LEVEL:
----------------------
COMPOSITE PRIMARY KEY: CHECKS ON ROW BASIS
-----------------------------------------
MULTIPLE COLUMNS ACT AS A SINGLE PRIMARY KEY.
CREATE TABLE T
(A NUMBER(4),
B NUMBER(4), CONSTRAINT C_PK PRIMARY KEY(A,B)
);
A B
-- --
1 1
1 2
2 1
2 2
2 3
3 2
3 3
FOREIGN KEY
REFERENTIAL INTEGRITY CONSTRAINT
SELF REFERENTIAL INTEGRITY CONSTRAINT
2 LAWS:
-------------
1> NO INSERTION OF A DETAIL RECORD ALLOWED IF CORRESPONDING MASTER RECORD
IS NOT PRESENT.
2> NO DELETION OF MASTER ALLOWED WHEN DEPENDENCIES
EXIST IN THE DETAIL.
ON DELETE CASCADE:
----------------------------------
IT ALLOWS TO DELETE THE MASTER RECORD,SUBSEQUENTLY
THE DEPENDENCIES WILL ALSO BE DELETED.
);
BEGIN
INSERT INTO DEPARTMENT VALUES
(10,'SALES','BLORE');
INSERT INTO EMPLOYEES VALUES
(1001,'ANIL',99999,1001,10);
INSERT INTO EMPLOYEES VALUES
(1002,'ANCHAN',99999,1001,10);
INSERT INTO EMPLOYEES VALUES
(1003,'COLLINS',99999,1001,10);
INSERT INTO EMPLOYEES VALUES
(1004,'RAJ',99999,1002,10);
END;
/
ON DELETE CASCADE:
---------------------------------
ALTER TABLE EMPLOYEES
ADD CONSTRAINT FK_DEPTNO FOREIGN KEY(DEPTNO) REFERENCES
DEPARTMENT(DNO) ON DELETE CASCADE;
SET OPERATORS
--------------------------
UNION ALL : INCL DUPL + INCL NULL
UNION : EXCL DUPL + INCL NULL
INTERSECT : EXCL DUPL - EXCL NULL
MINUS : T1-T2 : DATA PRESENT IN T1 NOT IN T2
VICEVERSA.
SELECT ..COL.FROM <T1> OPERATOR SELECT..COL..FROM<T2>;
LIMITATIONS
--------------------
NO OF COLS SELECTED FROM T1 MUST BE EQUAL TO NO OF COLS FROM T2.
THESE COL DATATYPES MUST ALSO BE THE SAME.
THE OUTPUT WILL BE DISPLAYED FROM BOTH THE TBLS
ONE BELOW THE OTHER.
JOINS
--------------------------------------------
SELECT * FROM EMP,DEPT;
EMP -> 14 DEPT -> 4
CARTESIAN PRODUCT =========> 14*4 = 56
IS USED:
1> TO ELIMINATE CARTESIAN PRODUCT
2> TO RETRIEVE DATA FROM MORE THAN 1 TBL AT A TIME.
JOIN CONCEPT:
-------------------------
TABLE1.COMMONCOLUMN = TABLE2.COMMONCOLUMN
TYPES:
-----------
EQUI
NON EQUI
SELF JOIN
OUTER
FULL OUTER JOIN
EQUI JOIN:
-----------------
SELECT * FROM EMP,DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
SOL1:
---------
SELECT EMPNO,ENAME,SAL,EMP.DEPTNO,DNAME FROM EMP,DEPT WHERE
EMP.DEPTNO = DEPT.DEPTNO;
OR
SELECT EMPNO,ENAME,SAL,DEPT.DEPTNO,DNAME FROM EMP,DEPT WHERE
EMP.DEPTNO = DEPT.DEPTNO;
SELF JOIN:
-----------------
JOINING A TABLE TO ITSELF.
WRITE A QUERY TO DISPLAY EMPLOYEE NAMES AND THEIR RESPECTIVE MANAGER NAMES
REPORTING TO:
----------------------------------------------------------------------------------
-------------
SELECT A.ENAME AS EMPLOYEES,
B.ENAME AS MANAGERS FROM EMP A,EMP B
WHERE A.MGR = B.EMPNO;
13 rows selected. -----> 14
----------------------------------------------------------------------------------
------------