1.
FIND THE YEAR WISE NUMBER OF EMPLOYEES IN THE EMPLOYEE TABLE:
SELECT TO_CHAR (HIREDATE,’YY’)
YEAR, COUNT (TO_CHAR (HIREDATE,’YY’)) NUMB
FROM EMP GROUP BY (
TO_CHAR (HIREDATE,’YY’));
2. FIND THE DEPARTMENT WISE NUMBER OF EMPLOYEES IN EMPLOYEE
TABLE
SELECT D.DNAME, COUNT (E.ENAME)
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO
GROUP BY D.DNAME;
3. TO PRINT LETTERS
SELECT SUBSTR (‘TECHM', 1, 1)
FROM DUAL UNION ALL
SELECT SUBSTR (‘TECHM', 2, 1)
FROM DUAL UNION ALL
SELECT SUBSTR ('TECHM', 3, 1)
FROM DUAL UNION ALL
SELECT SUBSTR ('TECHM', 4, 1)
FROM DUAL UNION ALL
SELECT SUBSTR ('TECHM', 5, 1)
FROM DUAL;
4. DESIGNATION WISE TOTAL SALARY AND WHICH IS GREATER THAN 5000
SELECT
DISTINCT (E.DEPTNO), DISTINCT (D.DNAME)
SUM (E.SALARY) "TOTAdL SALARY"
FROM EMPLOYEE E, DEPARTMENT D
WHERE D.DEPNO=E.DEPTNO
HAVING SUM (E.SALARY)>=5000
GROUP BY DNAME;
-------------------------------------------------------------------
SIRI) SELECT D.DNAME, E.DEPTNO,
SUM (E.SAL) FROM EMP E, DEPT D
WHERE D.DEPTNO=E.DEPTNO
HAVING SUM (E.SAL)>=5000
GROUP BY D.DNAME, E.DEPTNO;
-------------------------------------------------------------------------
SELF) SELECT JOB, SUM (SAL+NVL (COMM, 0)) TOTAL_SAL
FROM EMP WHERE SAL>5000
GROUP BY JOB;
5. DISPLAYING DOUBLE WORD IN TABLE
SELECT TITLE
FROM SOFTWARE
WHERE TITLE LIKE '% %'
AND TITLE NOT LIKE '% % %';
6. DISPLAYING COURSE, SALARY AND PACKAGE
SELECT S.COURSE, P.SALARY, P.PNAME, SF.TITLE
FROM SOFTWARE SF, STUDIES S, PROGRAMMER P
WHERE SF.PNAME=P.PNAME AND
P.PNAME= S.PNAME;
7. DROPPING MASTER TABLE AND CHILD TABLE
DROP TABLE TABLE_NAME1 CASCADE CONSTRAINTS ;( CHILD TABLE)
DROP TABLE TABLE_NAME2 CASCADE CONSTRAINTS ;( PARENT TABLE)
((A FOREIGN KEY WITH CASCADE DELETE MEANS THAT IF A RECORD IN THE
PARENT TABLE IS DELETED, THEN THE CORRESPONDING RECORDS IN THE
CHILD TABLE WILL AUTOMATICALLY BE DELETED. THIS IS CALLED A CASCADE
DELETE IN SQL SERVER.))
//CREATE TABLE DEPARTMENT153 (DEPT_ID NUMBER (10) PRIMARY KEY,
DEPT_NAME VARCHAR (20) NOT NULL);
CREATE TABLE EMPLOYEE322 (EMP_ID NUMBER (10) PRIMARY KEY,
EMP_NAME VARCHAR2 (20) NOT NULL, DEPT_ID NUMBER (10) REFERENCES
DEPARTMENT123 (DEPT_ID) ON DELETE CASCADE);
8. DISPLAY DETAILS OF PROGRAMMERS WHOSE DEVELOPMENT COST IS
RECOVERED
SELECT P.PNAME, SF.TITLE, SF.DEV_IN, (SF.SCOST*SF.SOLD) "TOTAL”,
SF.DCOST
FROM SOFTWARE SF, PROGRAMMER P
WHERE P.PNAME=SF.PNAME AND
((SF.SCOST*SF.SOLD)>SF.DCOST);
9. CREATE TABLE
CREATE TABLE DEPARTMENT (DEPT_ID NUMBER (10) CONSTRAINT PK
PRIMARY KEY, DEPT_NAME VARCHAR (20));
CREATE TABLE EMPLOYEE (EMP_ID NUMBER (10) CONTRAINT PK PRIMARY
KEY, EMP_NAME VARCHAR2(20), DEPT_ID NUMBER (10) CONSTRAINT FK
FOREIGN KEY REFERENCES EMPLOYEE (DEPT_ID));
10. SELECT RECENTLY HIRED EMPLOYEE
SELECT EMPNO, ENAME, JOB, HIREDATE
FROM EMP
WHERE HIREDATE IN (SELECT MAX (HIREDATE)
FROM EMP);
11. DISPLAY HOW MANY MONTHS REQUIRED TO PAY TOTAL COST
SELECT P.PNAME, S.COURSE, S.COST, ROUND (S.COST/ P.SALARY) MONTHS
FROM PROGRAMMER P, STUDIES S
WHERE P.PNAME=S.PNAME;
12. DISPLAY THE MALE EMPLOYEES WHO KNOWS TWO LANGUAGES
SELECT PNAME ||’IS A '||SEX||’ALE ' ||' WHO KNOWS '||PROF1|| ' AND '||PROF2
FROM PROGRAMMER
WHERE SEX ='M';
13. DISPLAY EMPLOYEE NAMES HAVING TWO A'S
SELECT EMPNAME FROM EMPLOYEE
WHERE EMPNAME LIKE '%A%A%’;
14. DISPLAY EXPERIENCE OF EMPLOYEES IN DESCENDING ORDER AND JOB!
=MANAGER
SELECT EMPNO, ENAME, JOB, ROUND ((SYSDATE-HIREDATE)/365)
EXPERIENCE
FROM EMP
WHERE JOB NOT LIKE ’MANAGER’
ORDER BY EXPERIENCE DESC;
15. CREATE SEQUENCE AND INSERT
CREATE SEQUENCE SEQ_294
MINVALUE 1
MAXVALUE 10
INCREMENT BY 1
NOCYCLE;
INSERT INTO COURSE_92
VALUES (SEQ_294.NEXTVAL ACNAME'ACOST');
\\\\\\CREATE TABLE COURSE_92( CID NUMBER(8), CNAME VARCHAR2(20), COST
NUMBER(5)) ;\\\\\\
16. DECODE QUESTION
SELECT ENAME, SAL, DECODE (JOB,’CLERK’, SAL*1.10,
'SALESMAN', SAL*1.20,
'ANALYST', SAL*1.25,
'MANAGER', SAL*1.30, SAL)
FROM EMPLOYEE;
17. DISPLAY EMPLOYEE NAMES ARRANGE THEIR HIRE DATES IN ASCENDING
ORDER.
SELECT DISTINCT (ENAME), HIREDATE
FROM EMPLOYEE
ORDER BY HIREDATE;
18. ROLLUP AND CUBE
USE ROLLUP OR CUBE WITH GROUP BY TO PRODUCE SUPER AGGREGATE
ROWS BY CROSS-REFERENCING COLUMNS.
ROLLUP GROUPING PRODUCES A RESULT SET CONTAINING THE REGULAR
GROUPED ROWS AND THE SUBTOTAL VALUES.
CUBE GROUPING PRODUCES A RESULT SET CONTAINING THE ROWS FROM
ROLLUP AND CROSS-TABULATION ROWS
THE ROLLUP AND CUBE OPERATORS ARE AVAILABLE ONLY IN ORACLE8I AND
LATER RELEASES.
CUBE FUNCTION WE CAN USE CUBE FUNCTION TO GENERATE SUBTOTALS
FOR ALL COMBINATIONS OF THE VALUES IN THE GROUP BY CLAUSE. (CUBE
AND ROLLUP ARE AVAILABLE ONLY FROM 9I)
19. SYNONYMS
TO SIMPLIFY ACCESSING TABLES OWNED BY OTHER USERS, CREATE A
SYNONYM. A SYNONYM IS ANOTHER NAME (ALIAS) TO A TABLE OR VIEW. BY
CREATING A SYNONYM YOU CAN AVOID GIVING THE OWNER NAME WHILE
ACCESSING TABLE OF OTHER USERS. WE CAN CREATE TWO TYPES OF
SYNONYMS
? PRIVATE SYNONYMS
? PUBLIC SYNONYMS
PRIVATE SYNONYM: CREATE SYNONYM EMPL FOR SCOTT.EMP;
PUBLIC SYNONYMS: SQL>CREATE PUBLIC SYNONYM EMPL FOR SCOTT.EMP;
20. CHAR AND NCHAR
CHAR: FIXED LENGTH CHARACTER DATA OF LENGTH SIZE IN BYTES. (DEFAULT
SIZE IS 1 AND MAXIMUM SIZE IS 2000). PADDED ON RIGHT WITH BLANKS TO
FULL LENGTH OF SIZE.
NCHAR: VARIABLE LENGTH CHARACTERS STRINGS HAVING A MAXIMUM SIZE
OF 4000 BYTES (DEFAULT SIZE IS 1) OR CHARACTERS, DEPENDING ON THE
CHOICE OF NATIONAL CHARACTER SET. TRUNCATES LEFTOVER BLANK
SPACES.
21. VIEWS
VIEWS ARE USED FOR SEVERAL DIFFERENT REASONS:
TO HIDE DATA COMPLEXITY. INSTEAD OF FORCING YOUR USERS TO LEARN
THE T-SQL JOIN SYNTAX YOU MIGHT WISH TO PROVIDE A VIEW THAT RUNS A
COMMONLY REQUESTED SQL STATEMENT.
TO PROTECT THE DATA. IF YOU HAVE A TABLE CONTAINING SENSITIVE DATA
IN CERTAIN COLUMNS, YOU MIGHT WISH TO HIDE THOSE COLUMNS FROM
CERTAIN GROUPS OF USERS. FOR INSTANCE, CUSTOMER NAMES,
ADDRESSES AND THEIR SOCIAL SECURITY NUMBERS MIGHT ALL BE STORED
IN THE SAME TABLE; HOWEVER, FOR LOWER LEVEL EMPLOYEES LIKE
SHIPPING CLERKS, YOU CAN CREATE A VIEW THAT ONLY DISPLAYS
CUSTOMER NAME AND ADDRESS. YOU CAN GRANT PERMISSIONS TO A VIEW
WITHOUT ALLOWING USERS TO QUERY THE UNDERLYING TABLES. THERE ARE
A COUPLE OF WAYS YOU MIGHT WANT TO SECURE YOUR DATA:
CREATE A VIEW TO ALLOW READING OF ONLY CERTAIN COLUMNS FROM A
TABLE. A COMMON EXAMPLE OF THIS WOULD BE THE SALARY COLUMN IN THE
EMPLOYEE TABLE. YOU MIGHT NOT WANT ALL PERSONNEL TO BE ABLE TO
READ MANAGER'S OR EACH OTHER'S SALARY. THIS IS