You are on page 1of 5

CHAPTER 10

___________
OTHER DATABASE OBJECTS
_______________________________________
VIEW
_____
SYNTAX
_________
CREATE
AS
[WHERE
[WITH
[WITH

[OR REPLACE] [FORCE | NO FORCE] VIEW VIEW_NAME


SUBQUERY
CONDITION(S)]
CHECK OPTION [CONSTRAINT CONS_NAME]]
READ ONLY [CONSTRAINT CONS_NAME]];

CREATE
AS
FROM
WHERE

VIEW MANAGER
SELECT EMPLOYEE_ID,LAST_NAME,JOB_ID,SALARY,DEPARTMENT_ID
COPY_EMP
JOB_ID LIKE '%MAN%';

SELECT *
FROM
USER_VIEWS;
SELECT *
FROM
USER_VIEWS
WHERE VIEW_NAME='MANAGER';
SELECT *
FROM
MANAGER;
UPDATE MANAGER
SET
SALARY=15000
WHERE EMPLOYEE_ID=201;
DELETE MANAGER
WHERE EMPLOYEE_ID=201;
DROP

VIEW MANAGER;

CREATE
AS
FROM
WHERE

OR REPLACE VIEW MANAGER


SELECT EMPLOYEE_ID,LAST_NAME,SALARY,JOB_ID,MANAGER_ID,DEPARTMENT_ID
EMPLOYEES
JOB_ID LIKE '%MAN%';

CREATE OR REPLACE VIEW MANAGER


AS
SELECT * FROM E10001;
CREATE OR REPLACE FORCE VIEW MANAGER
AS
SELECT * FROM E10001;
SELECT * FROM MANAGER;
CREATE TABLE E10001(
INO NUMBER);
SELECT * FROM MANAGER;

CREATE
AS
FROM
ON

OR REPLACE VIEW EMP_VW


SELECT E.EMPLOYEE_ID,E.LAST_NAME,E.SALARY,D.DEPARTMENT_NAME
EMPLOYEES E JOIN DEPARTMENTS D
(E.DEPARTMENT_ID=D.DEPARTMENT_ID);

CREATE
AS
FROM
GROUP

OR REPLACE VIEW EMP_VW


SELECT DEPARTMENT_ID,SUM(SALARY) TOTSAL
EMPLOYEES
BY DEPARTMENT_ID;

CREATE
AS
FROM
GROUP

OR REPLACE VIEW EMP_VW(DID,TOTSAL)


SELECT DEPARTMENT_ID,SUM(SALARY)
EMPLOYEES
BY DEPARTMENT_ID;

CREATE
AS
FROM
WHERE

OR REPLACE VIEW MANAGER


SELECT EMPLOYEE_ID,LAST_NAME,SALARY,DEPARTMENT_ID
EMPLOYEES
DEPARTMENT_ID=50 WITH CHECK OPTION CONSTRAINT VW_CON;

UPDATE MANAGER
SET
SALARY=SALARY+1000;
UPDATE MANAGER
SET
DEPARTMENT_ID=40;
CREATE
AS
FROM
WHERE

OR REPLACE VIEW MANAGER


SELECT EMPLOYEE_ID,LAST_NAME,SALARY,DEPARTMENT_ID
EMPLOYEES
DEPARTMENT_ID=50 WITH READ ONLY CONSTRAINT CONS_NM;

UPDATE MANAGER
SET
SALARY=SALARY+1000;
UPDATE MANAGER
SET
DEPARTMENT_ID=40;
TOP-N-ANALYSIS
________________
Q. DISPLAY THE TOP EMPS OF THE COMPANY.
SELECT ROWNUM,SALARY
FROM
(SELECT
SALARY
FROM
EMPLOYEES
ORDER BY SALARY DESC)
WHERE ROWNUM<=10;
SELECT ROWNUM,MIN(SALARY)
FROM
(SELECT
SALARY
FROM
EMPLOYEES
ORDER BY SALARY DESC)
WHERE ROWNUM<=3
SEQUENCE
__________

CREATE SEQUENCE EMP_SEQ;


SELECT *
FROM
USER_SEQUENCES;
SELECT *
FROM
USER_SEQUENCES
WHERE SEQUENCE_NAME='EMP_SEQ';
DROP

SEQUENCE EMP_SEQ;

CREATE SEQUENCE EMP_SEQ


START WITH 1
INCREMENT BY 1
MAXVALUE 10
MINVALUE 1
NOCYCLE
NOCACHE;
NEXTVAL : GENERATE NEXT SEQ NUM.
CURRVAL : STORE THE CURRENT SEQ NUM
SELECT EMP_SEQ.NEXTVAL FROM DUAL;
SELECT EMP_SEQ.CURRVAL FROM DUAL;
CREATE TABLE SE_TABLE(
EMPNO NUMBER,
NAME
VARCHAR2(20));
INSERT INTO SE_TABLE(EMPNO,NAME)
VALUES(EMP_SEQ.NEXTVAL,'&NAME');
SELECT * FROM SE_TABLE;
ALTER SEQUENCE EMP_SEQ
INCREMENT BY 2
MAXVALUE 20;
CREATE SEQUENCE EMP_SEQ1
START WITH 1
INCREMENT BY 1
MAXVALUE 10
MINVALUE 1
NOCYCLE
CACHE 5;
SELECT * FROM USER_SEQUENCES
WHERE SEQUENCE_NAME='EMP_SEQ1';
SELECT EMP_SEQ1.NEXTVAL FROM DUAL;
INDEX
_______
CREATE INDEX EMP_IND
ON
EMPLOYEES(LAST_NAME,SALARY,DEPARTMENT_ID);
SYNONYM

___________
GRANT SELECT,UPDATE,INSERT ON COPY_EMP TO GUEST;

You might also like