100% found this document useful (1 vote)
1K views85 pages

SQL Notes

(1) The document provides examples of SQL commands and queries used to retrieve and filter data from database tables. It includes commands like SELECT, FROM, WHERE, BETWEEN, LIKE and examples of queries using filters on columns, ranges, patterns and more. (2) Various SQL operators are described including arithmetic, comparison, logical and special operators like IN, BETWEEN, IS, LIKE. (3) The document continues with more examples of queries using combinations of operators, wildcards and filters to select rows from tables based on specified conditions.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
100% found this document useful (1 vote)
1K views85 pages

SQL Notes

(1) The document provides examples of SQL commands and queries used to retrieve and filter data from database tables. It includes commands like SELECT, FROM, WHERE, BETWEEN, LIKE and examples of queries using filters on columns, ranges, patterns and more. (2) Various SQL operators are described including arithmetic, comparison, logical and special operators like IN, BETWEEN, IS, LIKE. (3) The document continues with more examples of queries using combinations of operators, wildcards and filters to select rows from tables based on specified conditions.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 85

DATE-10/12/2018

SOME IMPORTANT COMMANDS


(1) SHOW USER - It is used to display the current user.
(2) CLEAR SCREEN (CL SCR) -It will clear the screen.
(3) TO RETRIEVE - We use select statement.

(4) SELECT * FROM TAB - It is used to display list of the table present in the current user.
(5) DESCRIBE (DESC) - It is used to display the structure of the table.
SYNTAX - DESCRIBE <TABLE_NAME>
or
DESC <TABLE_NAME>
(6) SHOW LINESIZE - It is used to display lining values.

(7) SHOW PAGESIZE-It is used to display paging values.


(8) SET LINESIZE VALUE - It is used to set linesize
(9) SET PAGE VALUE - It used to set pagesize
(10) SELECT * FROM <TABLE_NAME> - It is used to display all records in a given table.
(11) SET LINES VALUE PAGES VALUE - It is used to set values in one line

DQL
(1) SELECT - select command is used to retrieve data from the database.

CAPABILITY OF SELECT STATEMENTS


(1) Projection
(2) Selection
(3) Joins

(1) Projection
(i) It is used to retrieve column wise data from a table.

SYNTAX:- SELECT */{[DISTINCT] COLUMN_NAME/EXPRESSION [ALIAS]}


FROM <TABLE_NAME>;
EX :- (I) SELECT ENAME FROM EMP;
(II) SELECT ENAME , SAL FROM EMP;
(a) * - It is used to display all the column i.e - attributes and records in a given table name.
SYNTAX: - SELECT * FROM EMP;

(b) DISTINCT - It is used to display the unique values in the given column list.
SYNTAX :- SELECT DISTINCT <COLUMN_NAME>
FROM <TABLE_NAME>;
EX :- SELECT DISTINCT DEPTNO
FROM EMP;
DEPTNO

10
20
30
(c) EXPRESSION -It is used to perform some calculation or operation.
DUAL - There is a dummy table used for independent calculation or operation.
EX:- (1) SELECT 1+4 FROM DUAL;

1+4
----------
5
(2) SELECT 'QSPJSP' FROM DUAL;
'QSPJS
------

QSPJSP
(3) SELECT '18-AUG-2018' FROM DUAL;
'18-AUG-201
-----------
18-AUG-2018
LITERALS –
(i) It is the value used in select statements.
(ii) Literals can be a numbers , characters and date.
(iii) Characters and date literals should be enclosed by single quote.

ALIAS –
(i) Alias is the alternative name given to column heading.
(ii) Alias name should mention next to the column name.
EX:- SELECT ENAME EMPLOYEENAME
FROM EMP;
(iii) Between column name and alias we can use an optional keyword AS

EX:- SELECT ENAME EMPLOYEENAME


FROM EMP;
(iv) Alias should be enclosed by double quote if it is having special character or space.
EX:- SELECT ENAME EMPLOYEENAME
FROM EMP;
(v) Underscore can be considered as a character rather than special character.

EX:- SELECT ENAME EMPLOYEENAME


FROM EMP;
(vi) Alias is mainly used for calculation.
(vii) Alias name size depends on the data type of the column name

(2) Selecion
(i) It is used to display row wise data.
SYNTAX :- SELECT DISTINCT <COLUMN_NAME>
FROM <TABLE_NAME>;
WHERE <CONDITION(S)>;
DATE-11/12/2018
QUESTIONS
Q.1 Write a query to list all the employee who are working in deptno.10.
Ans - SELECT *
FROM EMP
WHERE DEPTNO=10;

Q.2 Write a query to list all the employee who earns more than 1500.
Ans- SELECT *
FROM EMP
WHERE SAL>=1500;

Q.3 Write a query to list all the employee who are having the minimum commission of 500.
Ans- SELECT *
FROM EMP
WHERE COMM>=500;

Q.4 Write a query to list all employee who are working in deptno 10 and 20.
Ans- SELECT *
FROM EMP
WHERE DEPTNO=10 OR
DEPTNO=20;

Q.5 Write a query to list all employee who are working as MANAGER.
Ans- SELECT *
FROM EMP
WHERE JOB='MANAGER';

Q.6 Write a query to list all employee who are working as ANALYST , CLERK ,
PRESIDENT AND SALESMAN.
Ans- SELECT *
FROM EMP
WHERE JOB='ANALYST' OR
JOB='CLERK' OR
JOB='PRESIDENT' OR
JOB='SALESMAN';

OPERATORS
(i) Operators are the symbols used to perform some specific operation.

OPERANDS
(i) To perform some operation we need few input and those inputs are called as operands.

TYPES OF OPERATOR
(1) Arithmetic operator - {+,-,*,/}
(2) Relational or comparision operator - {=,==,<,>,<=,>=)
(3) Logical operator - {AND,OR,NOT}

(4) Special operator - {IN,BETWEEN,LIKE, IS}

SPECIAL OPERATOR
(a) IN OPERATOR
(i) Instead of multiple or we use in operator.
(ii) In operator works as same that of or operator.
SYNTAX- SELECT <COLUMN_LIST>
FROM <TABLE_NAME>
WHERE COLUMN_NAME IN('V1','V2',.........,'Vn');

QUESTIONS
Q.1 Write a query to list all the employee who are working in deptno 10,20,30.
Ans - SELECT *
FROM EMP

WHERE DEPTNO IN(10,20,30);

Q.2 Write a query to list all employee who are working as ANALYST , CLERK and
PRESIDENT in dept 10 and 20.
Ans - SELECT *
FROM EMP
WHERE JOB IN('ANALYST','CLERK','PRESIDENT') AND
DEPTNO IN(10,20);

Q.3 Write a query to list all employee who are working in 10 and 20 deptno as CLERK.
Ans - SELECT *
FROM EMP
WHERE JOB IN('CLERK') AND
DEPTNO IN(10,20);

Q.4 Write query to list all the employee who are earning more than 1000 with minimum
commission of 500
Ans- SELECT *
FROM EMP
WHERE SAL>=1000 AND

COMM>=500;

Q.5 Write a query to list all the employee who are working as MANAGER and earning
more than 2000 in deptno 20 and 30.
Ans - SELECT *

FROM EMP
WHERE JOB='MANAGER' AND
SAL>2000 AND
DEPTNO IN(20,30);

Q.6 Write a query to display the dept name and location where the deptno is 20,30 and 40.
Ans- SELECT DNAME,LOC

FROM DEPT WHERE DEPTNO IN(20,30,40);

Q.7 Write a query to display employee name, job, salary and deptno who are working as
CLERK , SALESSMAN , ANALYST and PRESIDENT in deptno 10,20 and 30 and
earning salary more than 1000 with a minimum commission of 300.
Ans - SELECT ENAME,JOB,DEPTNO,SAL
FROM EMP
WHERE JOB IN('SALESMAN','CLERK','ANALYST','PRESIDENT') AND
DEPTNO IN(10,20,30) AND
SAL>1000 AND

COMM>300;

Q.8 Write a query to list all employee who are earning minimum of 1500 with some
commision.
Ans- SELECT *

FROM EMP
WHERE SAL>1500
AND COMM IS NOT NULL;

DATE-12/12/2018
(b) IS OPERATOR
(i) Is operator is used to compare the null value.
SYNTAX - SELECT <COLUMN_LIST>
FROM <TABLE_NAME>
WHERE COLUMN_NAME IS NULL;

QUESTIONS
Q.1 Write a query to list all employee who do not have commission.
Ans - SELECT *
FROM EMP
WHERE COMM IS NULL;

Q.2 Write a query to list all employee who have some commission.
Ans - SELECT *

FROM EMP
WHERE COMM IS NOT NULL;

Q.3 Write a query to list all employee who do not have reporting MANAGER.
Ans - SELECT *
FROM EMP
WHERE MGR IS NULL;

Q.4 Write a query to list all employee who are earning more than 1500 and less than 5000.
Ans - SELECT *
FROM EMP
WHERE SAL>1500 AND
SAL<5000;

c) BETWEEN OPERATOR
(i) To evaluate the range of value we use between operator.

SYNTAX:- SELECT <COLUMN_LIST>


FROM <TABLE_NAME>
WHERE COLUMN_NAME BETWEEN VALUE1 AND VALUE2;

QUESTIONS
Q.1 Write a query to list all employee who earn in the range of 1500 to 5000.
Ans - SELECT *
FROM EMP
WHERE SAL BETWEEN 1500 AND 5000;

Q.2 Write a query to list all employee whose salary is in the range of 500 to 3000.
Ans – SELECT *
FROM EMP

WHERE SAL BETWEEN 500 AND 3000;

COMBINATION OF IS , IN AND BETWEEN


QUESTION
Q.1 Write a query to list all employee who are working in deptno 10,20 and 30 and earning
salary in the range of 1500 to 3000 with commission.
Ans - SELECT *
FROM EMP
WHERE DEPTNO IN(10,20,30) AND
SAL BETWEEN 1500 AND 3000 AND
COMM IS NOT NULL;

d) LIKE OPERATOR
(i) Like operator is used for pattern match.
SYNTAX: - SELECT <COLUMN_LIST>
FROM <TABLE_NAME>
WHERE COLUMN_NAME LIKE ‘PATTERN’{ESCAPE[ESCAPE_CHARACTER]);
(ii) Inside pattern we use use two wilds cards

(a) % - it matches with no character or n number of characters.


(b) _ - it matches with a single character.
(iii) Wild cards are also called as special character.

QUESTIONS
Q.1 Write a query to list all employee who’s name starts with 'S'.
Ans – SELECT *
FROM EMP
WHERE ENAME LIKE ‘S%’;

Q.2 Write a query to list all employee who’s second character is 'A'.
Ans - SELECT *
FROM EMP

WHERE ENAME LIKE '_A%';

Q.3 Write a query to list all employee who’s name starts with 'M'.
Ans - SELECT *
FROM EMP
WHERE ENAME LIKE 'M%';

Q.4 Write a query to list all employee who’s name starts with 'M' and ends with 'N'.
Ans - SELECT *
FROM EMP
WHERE ENAME LIKE 'M%_%N';

Q.5 Write a query to list all employee who’s name last but one character is 'E'.
Ans - SELECT *
FROM EMP
WHERE ENAME LIKE '%E_'

Q.6 Write a query to list all employee who’s name consist of two consecutive 'LL'.
Ans - SELECT *
FROM EMP

WHERE ENAME LIKE '%LL%'

Q.7 Write a query to list all employee who’s name consist of atleast one 'A'.
Ans - SELECT *
FROM EMP
WHERE ENAME LIKE '%A%';

Q.8 Write a query to list all employee who’s name consist of exactly one 'A'.
Ans - SELECT *
FROM EMP
WHERE ENAME LIKE '%A%' AND
ENAME NOT LIKE '%A%A%';

Q.9 Write a query to list all employee who’s name consist of exactly two 'A'.
Ans - SELECT *

FROM EMP
WHERE ENAME LIKE '%A%A%'
AND ENAME NOT LIKE '%A%A%A%';

Q.10 Write a query to list all employee who’s name 3rd character and last character is 'R'.
Ans - SELECT *
FROM EMP
WHERE ENAME LIKE '__R%R';

DATE-13/12/2018
QUESTIONS
Q.1 Write a query to list all employee who's job consist of exactly two 'A'.
Ans - SELECT *
FROM EMP
WHERE JOB LIKE '%A%A%';

Q.2 Write a query to list all employee who's job starts with 'S' and ends with 'N'.
Ans - SELECT *
FROM EMP
WHERE JOB LIKE 'S%N';

Q.3 Write a query to list all employee who’s job starts with string ‘MAN’.
Ans - SELECT *

FROM EMP
WHERE JOB LIKE 'MAN%';

Q.4 Write a query to list all employee who’s job ends with string ‘MAN’.
Ans - SELECT *
FROM EMP
WHERE JOB LIKE '%MAN';

Q.5 Write a query to list all employee who’s job consist of string ‘MAN’ anywhere in it.
Ans - SELECT *
FROM EMP
WHERE JOB LIKE '%MAN%';

Q.6 Write a query to list all employee who’s job ends with ‘T’.
Ans - SELECT *

FROM EMP
WHERE JOB LIKE '%T';

Q.7 Write a query to list all employee who join in the year 81.
Ans - SELECT *
FROM EMP

WHERE HIREDATE LIKE '%81';

Q.8 Write a query to list all employee who join in the month of FEB.
Ans - SELECT *
FROM EMP
WHERE HIREDATE LIKE '%FEB%';

Q.9 Write a query to list all employee who’s reporting manager ID consists of atleast one 6.
Ans - SELECT *
FROM EMP
WHERE MGR LIKE '%6%';

Q.10 Write a query to list all employee who join on 23rd.


Ans - SELECT *
FROM EMP

WHERE HIREDATE LIKE '23%';

Q.11 Write a query to list all employee who’s reporting manager ID end’s with 8.
Ans - SELECT *
FROM EMP
WHERE MGR LIKE '%8';

Q.12 Write a query to list all employee who’s name consists of _ in it.
Ans - SELECT *
FROM EMP
WHERE ENAME LIKE '%/_%' ESCAPE '/';
COMBINATION OF ALL QUERIES
Q.1 Write a query to list all employee who's name starts with 'M' and earning salary in the
range of 1000 to 3000.
Ans - SELECT *
FROM EMP
WHERE ENAME LIKE 'M%'
AND SAL BETWEEN 1000 AND 3000;

Q.2 Write a query to list all employee who's name ends with 'N' and working as
SALESMAN and MANAGER in deptno. 10,20 and 30.
Ans - SELECT *
FROM EMP

WHERE ENAME LIKE '%N'


AND JOB IN('SALESMAN','MANAGER')
AND DEPTNO IN(10,20,30);

Q.3 Write a query to list all the employee who earns in the range of 1000 to 4000 with
commission in deptno. 20 and 30.
Q.4 Write a query to display dept name which consist of two consecutive 'C'.
Q.5 Write a query to list all departmental details where location consist of space in it.
Q.6 Write a query to list the dept names where the department name consist if 'I' and 'N'.
Q.7 Write a query to display dept name and location which consist of exactly two 'O'.
Q.8 Write a query to list all employee who's name consist of atleast one 'A'. and working as
CLERK , SALESMAN , ANALYST , PRESIDENT and join in the year 81 and earning
salary in the range of 1000 to 5000 with no commission in dept 10,20 and 30.

DATE-14/12/2018
TEST
QUESTIONS
Q.1 Write a query to list all employee whose name consist of exactly one 'A' in it.
Q.2 What is RDBMS?
Q.3 Differentiate primary key and foreign key.
Q.4 What is ALIAS?
Q.5 Describe each and every constrant with example.
Q.6 What is the difference between candidate key , alternate key and composite key?

Q.7 Write a query to list all the employee who don’t have reporting manager.
Q.8 Write the syntax for LIKE operator.
Q.9 What are Literals?
Q.10 Write a query lo list all employee who's name consist of atleast one A and working as
CLERK , SALESMAN , ANALYST and PRESIDENT join in the year 81 and salary in the
range of 1000 to 5000 with no commission.?

ANSWERS
Ans 1. SELECT *
FROM EMP
WHERE ENAME LIKE '%A%';

Ans 2. RDBMS
(i) RDBMS is relational database system
(ii) RDBMS defines relation in the form of table.

(iii) In RDBMS tables consist of several rows and columns.


(iv) In RDBMS rows are called as records and columns are called as attributes.

Ans 3. PRIMARY KEY


(i) Primary key is the combination of NOT NULL and UNIQUE constraints.
(ii) Only one key is allowed in a table.
(iii) Primary key uniquely defines a row.

FOREIGN KEY
(i) Foreign Key creates relationship between two tables.
(ii) Foreign Key is created in the child table.
(iii) Foreign Key is also called as referential integrity constraints.
(iv) Foreign Key can take both NULL and Duplicate value.
Ans 4. ALIAS
(i) Alias is the alternative name given to column heading.
(ii) Alias name should mention next to the column name
(iii) Between column name and alias we can use an optional keyword AS.

Ans 5. TYPES OF CONSTRAINTS


(1) NOT NULL
(i) NULL is nothing and represents unknown value.
EX - 100+NULL=NULL

(2) UNIQUE
(i) UNIQUE constraints accept multiple NULL value.

(3) CHECK
(i) CHECK is used to provide the additional validation.

(4) PRIMARY KEY


(i) Primary key is the combination of NOT NULL and UNIQUE constraints.

(ii) Only one key is allowed in a table.


(iii) Primary key uniquely defines a row.

(5) FOREIGN KEY


(i) Foreign Key creates relationship between two tables.
(ii) Foreign Key is created in the child table.
(iii) Foreign Key is also called as referential integrity constraints.

(iv) Foreign Key can take both NULL and Duplicate value.

Ans 6.
CANDIDATE KEY
Columns which are eligible to become primary key is called candidate key.
ALTERNATE KEY
Columns which are eligible to become primary key but not taken as primary key is called
alternate key

COMPOSITE KEY
It is the combination of two or more columns in a table.
Ans 7. SELECT *
FROM EMP
WHERE MGR IS NULL;

Ans 8. SYNTAX
SELECT <COLUMN_LIST>

FROM <TABLE_NAME>
WHERE COLUMN_NAME LIKE 'PATTERN'{ESCAPE [ESCAPE_CHARACTER]};

Ans 9. LITERALS
(i) It is the value used in select statements.
(ii) Literals can be a numbers , characters and date.
(iii) Characters and date literals should be enclosed by single quote.

Ans 10. SELECT *


FROM EMP
WHERE ENAME LIKE '%A%' AND
JOB IN('SALESMAN','CLERK','ANALYST','PRESIDENT') AND
HIREDATE LIKE '%81' AND
SAL BETWEEN 1000 AND 5000 AND

COMM IS NOT NULL;

DATE-17/12/2018
SOME USEFUL COMMANDS
(1) EDIT Command - EDIT command is used to modify the previously executed query.

SYNTAX - EDIT OR ED
(2) LIST Command - LIST command is used to display the previously executed query.
SYNTAX - LIST
(3) SAVE Command - SAVE command is used to save the previously executed query.
SYNTAX - SAVE "LOCATION"

SAVE "E:\A.TXT"
(4) REPLACE Command - REPLACE command is used to override the existing document.
SYNTAX - SAVE "LOCATION" REPLACE
SAVE "E:\A.TXT" REPLACE
(5) APPEND Command - To save the multiple statement to the same file we use APPEND
command.
SYNTAX - SAVE "LOCATION" APPEND
SAVE "E:\A.TXT" APPEND
(6) @ Command- @ command is used to execute all the statement present in a single file.
SYNTAX - @ "LOCATION"

@ "E:\A.TXT"
(7) SPOOL Command - SPOOL command is used to save all executed query along with their
outputs.
SYNTAX - SPOOL "LOCATION"

SPOOL "LOCATION" APPEND - To append the file in the existing file.


In last OFF the spool
SYNTAX - SPOOL OFF

CONCATENATION OPERATOR
(i) Concatenation operator is used to join two strings.
(ii) It is represented by two vertical bars (||).

(iii) We can also use alias.


EX – (i) SELECT 'YASH'||'KUSH'
FROM DUAL;

'YASH'||
--------
YASHKUSH
(ii) SELECT 'YASH'||' '||'KUSH'
FROM DUAL;

'YASH'||'
---------
YASH KUSH
(iii) SELECT 'YASH '||'KUSH'
FROM DUAL;

'YASH'||'

---------
YASH KUSH
(iv) SELECT 'YASH'||' KUSH'
FROM DUAL;

'YASH'||'
---------

YASH KUSH
(v) SELECT 'YASH '||' KUSH'
FROM DUAL;
'YASH'||'K
----------
YASH KUSH
(vi) SELECT ENAME||' '||JOB
FROM EMP;

ENAME||''||JOB
--------------------
SMITH CLERK
ALLEN SALESMAN
WARD SALESMAN
JONES MANAGER
MARTIN SALESMAN

BLAKE MANAGER
CLARK MANAGER
SCOTT ANALYST
KING PRESIDENT
TURNER SALESMAN
ADAMS CLERK

JAMES CLERK
FORD ANALYST
MILLER CLERK
(vii) SELECT ENAME||' '||JOB JOB_DETAILS
FROM EMP;

JOB_DETAILS

--------------------
SMITH CLERK
ALLEN SALESMAN
WARD SALESMAN
JONES MANAGER
MARTIN SALESMAN

BLAKE MANAGER
CLARK MANAGER
SCOTT ANALYST
KING PRESIDENT
TURNER SALESMAN
ADAMS CLERK
JAMES CLERK
FORD ANALYST
MILLER CLERK
(viii) SELECT ENAME||' YOUR SALARY IS '||SAL
FROM EMP;

ENAME||'YOURSALARYIS'||SAL
------------------------------------------------------------------
SMITH YOUR SALARY IS 800
ALLEN YOUR SALARY IS 1600

WARD YOUR SALARY IS 1250


JONES YOUR SALARY IS 2975
MARTIN YOUR SALARY IS 1250
BLAKE YOUR SALARY IS 2850
CLARK YOUR SALARY IS 2450
SCOTT YOUR SALARY IS 3000

KING YOUR SALARY IS 5000


TURNER YOUR SALARY IS 1500
ADAMS YOUR SALARY IS 1100
JAMES YOUR SALARY IS 950
FORD YOUR SALARY IS 3000
MILLER YOUR SALARY IS 1300
(viii) SELECT ENAME||' YOUR SALARY IS '||SAL EMPLOYEE_DETAILS
FROM EMP;

EMPLOYEE_DETAILS
------------------------------------------------------------------
SMITH YOUR SALARY IS 800
ALLEN YOUR SALARY IS 1600
WARD YOUR SALARY IS 1250
JONES YOUR SALARY IS 2975
MARTIN YOUR SALARY IS 1250

BLAKE YOUR SALARY IS 2850


CLARK YOUR SALARY IS 2450
SCOTT YOUR SALARY IS 3000
KING YOUR SALARY IS 5000
TURNER YOUR SALARY IS 1500
ADAMS YOUR SALARY IS 1100

JAMES YOUR SALARY IS 950


FORD YOUR SALARY IS 3000
MILLER YOUR SALARY IS 1300
(ix) SELECT ENAME||' IS WORKING AS '||JOB||' IN DEPATRMENT '||DEPTNO||SAL||'.'
DETAILS FROM EMP;

DETAILS
----------------------------------------------------------------------------------------------------
SMITH IS WORKING AS CLERK IN DEPATRMENT 20800.
ALLEN IS WORKING AS SALESMAN IN DEPATRMENT 301600.
WARD IS WORKING AS SALESMAN IN DEPATRMENT 301250.

JONES IS WORKING AS MANAGER IN DEPATRMENT 202975.


MARTIN IS WORKING AS SALESMAN IN DEPATRMENT 301250.
BLAKE IS WORKING AS MANAGER IN DEPATRMENT 302850.
CLARK IS WORKING AS MANAGER IN DEPATRMENT 102450.
SCOTT IS WORKING AS ANALYST IN DEPATRMENT 203000.
KING IS WORKING AS PRESIDENT IN DEPATRMENT 105000.

TURNER IS WORKING AS SALESMAN IN DEPATRMENT 301500.


ADAMS IS WORKING AS CLERK IN DEPATRMENT 201100.
JAMES IS WORKING AS CLERK IN DEPATRMENT 30950.
FORD IS WORKING AS ANALYST IN DEPATRMENT 203000.
MILLER IS WORKING AS CLERK IN DEPATRMENT 101300.
NOTE - In concatenation operator two consecutive single quote needs to one single quote.
(x) SELECT 'LET''S'|| ' DANCE'
FROM DUAL;

'LET''S'||'
-----------
LET'S DANCE
DIFFERENCE BETWEEN SQL AND SQL * PLUS

SQL
(1) SQL is a standard language used to communicate with database.
(2) It is ANSI standard.
(3) It should be dominated with semi colon.
(4) We cannot abbreviate SQL command ex - SELECT , UPDATE
(5) SQL command can manipulate table and data definition.

SQL * PLUS
(1) It is an environment which supports to write and execute query.
(2) It belongs to oracle tool developed by oracle.
(3) It may be or may not be dominated with semi colon.
(4) We can abbreviate ex - CLEAR , SETLINE , CLEAR SCREEN
(5) It cannot manipulate table and data definition.

DATE – 19/12/2018
FUNCTIONS
(i) Functions are reusable programs.
(ii) To run any function we have pass the inputs(arguments or parameters).
TYPES OF FUNCTIONS
(A) Built-in Function
(B) User defined Function

(A) Built-in Function


(i) In built in function ,functions are already exist just by calling those functions we are using it.

(B) User defined function


(i) In this we come across PL-SQL concept
(ii) PL-SQL is the further study of SQL or extension of SQL.
(iii) In PL-SQL we have looping , branching statements and OOPS concept.

(A) TYPES OF BUILT IN FUNCTIONS


(a) Single row Function
Single row function returns single output for single input.

(b) Multi row Function


(i) Multi row function returns single output for multiple input.
(a) TYPES OF SINGLE ROW FUNCTION
(i) Character Function
(ii) Number Function

(iii) General Function


(iv) Conversion Function
(v) Date Function

(i) TYPES OF CHARACTER FUNCTION


(I) Case Manipulation Function
(II) Character Manipulation Function

(I) TYPES OF CASE MANIPULATION FUNCTION


(1) UPPER
(2) LOWER
(3) INITCAP

(II) TYPES OF CHARACTER MANIPULATION FUNCTION


(1) CONCAT
(2) LENGTH
(3) REVERSE

(4) REPLACE
(5) SUBSTR
(6) INSTR
(7) TRIM

(ii) TYPES OF NUMBER FUNCTION


(1) ROUND
(2) TRUNC
(3) MOD

(4) SQRT
(5) ABS
(6) POWER

(iii) TYPES OF GENERAL FUNCTION


(1) NVL (NULL VALUE LOGIC)
(2) NVL2 (NULL VALUE LOGIC 2)

(iv) TYPES OF CONVERSION FUNCTION


(1) TO_NUMBER
(2) TO_CHAR
(3) TO_DATE

(v) TYPES OF DATE FUNCTION


(1) SYSDATE
(2) CURRENT_ DATE
(3) SYSTIMESTAMP

(4) ADD_MONTHS
(5) MONTHS_BETWEEN
(6) LAST_DAY

(b) TYPES OF MULTI ROW FUNCTION


(1) MAX
(2) MIN
(3) COUNT
(4) AVG
(5) SUM

(I) TYPES OF CASE MANIPULATION FUNCTION


(1) UPPER FUNCTION
(i) UPPER function is used to convert all letters into upper case
SYNTAX – UPPER (‘String’)

EXAMPLES
(i) SELECT UPPER('abhishek') from dual;

UPPER('A
--------
ABHISHEK
(ii) SELECT UPPER('QSPJSP') FROM DUAL;

UPPER(
------
QSPJSP
(iii) SELECT UPPER ('QSPjsp') FROM DUAL;

UPPER(
------
QSPJSP
(iv) SELECT UPPER ('qsp'),UPPER('JSP') FROM DUAL;

UPP UPP
--- ---
QSP JSP
(v) SELECT UPPER ('qsp') R1,UPPER('JSP') R2 FROM DUAL;

R1 R2

--- ---
QSP JSP
(vi) SELECT * FROM EMP WHERE ENAME = UPPER('scott');

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7788 SCOTT ANALYST 7566 19-APR-87 3000 20

(2) LOWER FUNCTION


(i) It is used to convert all letters into lower case in a given string.
SYNTAX - LOWER(‘String’)

EXAMPLES
(i) SELECT LOWER ('QSPJSP') FROM DUAL;

LOWER(

------
qspjsp
(ii) SELECT LOWER ('QSP'),LOWER('JSP') FROM DUAL;

LOW LOW
--- ---
qsp jsp
(iii) SELECT LOWER('QSP') R1,UPPER('jsp') from dual;

R1 UPP
--- ---
qsp JSP
(iv) SELECT * FROM EMP WHERE ENAME=LOWER('ALLEN');

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------


7499 allen SALESMAN 7698 20-FEB-81 1600 300 30
(3) INITCAP FUNCTION
(i) It is used to convert first letter in a given string to upper case and rest of the letter to lower
case.
SYNTAX – INITCAP (‘STRING’)
EXAMPLES
(i) SELECT INITCAP('QSPJSP') R FROM DUAL

R
------

Qspjsp
(ii) SELECT UPPER('qspjsp') A,LOWER ('QSPJSP'),INITCAP('QSPJSP') FROM DUAL;

A LOWER( INITCA
------ ------ ------
QSPJSP qspjsp Qspjsp

(II) TYPES OF CHARACTER MANIPULATION FUNCTION


(1) CONCAT FUNCTION
(i) CONCAT function is used to join two string.

SYNTAX - CONCAT(Arg1,Arg2)

EXAMPLES
(i) SELECT CONCAT('YASH','KUSH') FROM DUAL;

CONCAT('
--------
YASHKUSH

(ii) SELECT CONCAT('YASH ','KUSH') FROM DUAL;

CONCAT('Y
---------
YASH KUSH
(iii) SELECT CONCAT('YASH',' KUSH') FROM DUAL;

CONCAT('Y

---------
YASH KUSH
(iv) SELECT CONCAT('HI',CONCAT('HELLO','BYE')) FROM DUAL;

CONCAT('HI
----------
HIHELLOBYE
(v) SELECT CONCAT('HI',CONCAT(' HELLO',' BYE')) FROM DUAL;

CONCAT('HI',
------------
HI HELLO BYE

(vi) SELECT CONCAT(ENAME,CONCAT(' ',JOB)) JOB_DETAILS FROM EMP;

JOB_DETAILS
--------------------
SMITH CLERK
allen SALESMAN
WARD SALESMAN
JONES MANAGER

MARTIN SALESMAN
BLAKE MANAGER
CLARK MANAGER
SCOTT ANALYST
KING PRESIDENT
TURNER SALESMAN

ADAMS CLERK
JAMES CLERK
FORD ANALYST
MILLER CLERK
DATE – 20/12/2018
(2) LENGTH FUNCTION
(i) Length function is used to find the length of the length of given string.

EXAMPLE
(i) SELECT ENAME,LENGTH(ENAME)
FROM EMP;

ENAME LENGTH(ENAME)
---------- -------------
SMITH 5

ALLEN 5
WARD 4
JONES 5
MARTIN 6
BLAKE 5
CLARK 5

SCOTT 5
KING 4
TURNER 6
ADAMS 5
JAMES 5
FORD 4

MILLER 6
(3) REVERSE FUNCTION
(i) To reverse the given string we use reverse function.

EXAMPLE
(i) SQL> SELECT ENAME,REVERSE(ENAME)
FROM EMP;
ENAME REVERSE(EN
---------- ----------
SMITH HTIMS
ALLEN NELLA

WARD DRAW
JONES SENOJ
MARTIN NITRAM
BLAKE EKALB
CLARK KRALC
SCOTT TTOCS

KING GNIK
TURNER RENRUT
ADAMS SMADA
JAMES SEMAJ
FORD DROF
MILLER RELLIM

QUESTIONS
Q.1 Write a query to list all the employee whose name consist of exactly 5 character in it.
Ans - SELECT *
FROM EMP
WHERE LENGTH(ENAME)=5;

Q.2 Write a query to list all the employee who’s name is palindrome.
Ans - SELECT *
FROM EMP
WHERE REVERSE(ENAME)=ENAME;

Q.3 Write a query to list who have exactly 5 character in name and name is palindrome.
Ans - SELECT *
FROM EMP
WHERE LENGTH(ENAME)=5 AND
REVERSE(ENAME)=ENAME;

(4) SUBSTR(SUB STRING)


(i) It is used to display whether the substring is present in the given string or not.
SYNTAX – SUBSTR(STRING,START_POSITION,LENGTH)

Q.1 Write a query to display all employee first character in their name.
Ans - SELECT ENAME,SUBSTR(ENAME,1,1)
FROM EMP;

Q.2 Write a query to display first two character of all employee in their name.
Ans - SELECT ENAME,SUBSTR(ENAME,1,2)
FROM EMP;

Q.3 Write a query to list all employee last character of their name.
Ans - SELECT ENAME,SUBSTR(ENAME,-1,1)
FROM EMP;

Q.4 Write a query to list all employee last two character of their name.
Ans - SELECT ENAME,SUBSTR(ENAME,-2,2)
FROM EMP;

Q.5 Write a query to list all employee Who’s name starts with ‘S’.
Ans - SELECT *
FROM EMP
WHERE SUBSTR(ENAME,1,1)='S';

Q.6 Write a query to list all employee who’s second character is ‘A’.
Ans - SELECT *
FROM EMP
WHERE SUBSTR(ENAME,2,1)='A';

Q.7 Write a query to list all employee who’s third character is ‘R’.
Ans - SELECT *
FROM EMP
WHERE SUBSTR(ENAME,3,1)='R';

Q.8 Write a query to list all employee who’s last character is ‘N’.
Ans - SELECT *
FROM EMP
WHERE SUBSTR(ENAME,-1,1)='N';

Q.9 Write a query to list all employee who’s name starts with ‘M’ and ends with ‘N’.
Ans - SELECT *
FROM EMP

WHERE SUBSTR(ENAME,1,1)='M' AND


SUBSTR(ENAME,-1,1)='N'

Q.10 Write a query to list all employee who’s name ends with ‘IN’.
Ans - SELECT *
FROM EMP
WHERE SUBSTR(ENAME,-2,2)='IN'

Q.11 Write a query to list all employee who’s name last but one character is ‘E’.
Ans - SELECT *
FROM EMP
WHERE SUBSTR(ENAME,-2,1)='E'

Q.12 Write a query to list all employee who’s job starts with the string ‘MAN’.
Ans - SELECT *

FROM EMP
WHERE SUBSTR(JOB,1,3)='MAN';

Q.13 Write a query to list all employee who’s job ends with the string ‘MAN’.
Ans - SELECT *
FROM EMP
WHERE SUBSTR(JOB,-3,3)='MAN';

Q.14 Write a query to list all employee who’s join in the year 81.
Ans - SELECT *
FROM EMP

WHERE SUBSTR(HIREDATE,-2,2)='81';

Q.15 Write a query to list all employee who’s third and last character is ‘R’.
Ans - SELECT *
FROM EMP
WHERE SUBSTR(ENAME,3,1)='R' AND
SUBSTR(ENAME,-1,1)='R';

Q.16 Write a query to list all employee who’s reporting manager ID ends with ‘8’.
Ans - SELECT *
FROM EMP
WHERE SUBSTR(MGR,-1,1)='8';

Q.17 Write a query to list all employee who’s name consist of atleast one ‘A’.
Q.18 Write a query to list all employee Who’s name consist of two consecutive ‘LL’.

Q.19 Write a query to to display department name where department name starts and ends
with ‘S’.
Ans - SELECT *
FROM DEPT

WHERE SUBSTR(DNAME,1,1)='S' AND


SUBSTR(DNAME,-1,1)='S';

DATE – 21/12/2018
DATE – 24/12/2018
(6)TRIM FUNCTION
(i) Trim function is used to remove some spaces in a given string or character.
TYPES OF TRIM
(6.1) L TRIM
(6.2) R TRIM
(6.3) TRIM

(6.1) L TRIM
(i) It is used to remove all specified characters from left hands side in a given string.

SYNTAX – LTRIM(STRING,TRIM_CHARACTER)

EXAMPLES
(i) SELECT LTRIM('EEWELCOME','E')
FROM DUAL;

LTRIM('
-------

WELCOME
(ii) SELECT LTRIM('EEWELCOME','EW')
FROM DUAL;

LTRIM
-----
LCOME
(iii) SELECT LTRIM('EEWELCOME','WE')

FROM DUAL

LTRIM
-----
LCOME
(iv) SELECT LTRIM(' SQL ',' ')
FROM DUAL

LTRIM('SQL','')
----------------
SQL
(v) SELECT LTRIM(' SQL ')
FROM DUAL

LTRIM('SQL')

----------------
SQL
(vi) SELECT LTRIM('SQL')
FROM DUAL

LTR
---

SQL
(6.2) RTRIM
(i) It is used to remove all specified characters from right hands side in a given string.
SYNTAX – RTRIM(STRING,TRIM_CHARACTER)

EXAMPLES
(i) SELECT RTRIM('EEWELCOME','E')

FROM DUAL;

RTRIM('E
--------
EEWELCOM
(ii) SELECT RTRIM('EEWELCOME','EW')
FROM DUAL

RTRIM('E
--------
EEWELCOM
(iii) SELECT RTRIM('EEWELCOME','ME')
FROM DUAL
RTRIM('
-------
EEWELCO
(iv) SELECT RTRIM('EEWELCOME','EM')

FROM DUAL

RTRIM('
-------
EEWELCO
(v) SELECT RTRIM(' SQL ' ,' ')
FROM DUAL

RTRIM('S
--------
SQL
(vi) SELECT RTRIM(' SQL ')
FROM DUAL

RTRIM('S

--------
SQL
(vii) SELECT RTRIM('SQL' )
FROM DUAL

RTR
---

SQL
(6.3) TRIM
(i) Trim function is used to remove the spaces from both the side.
(ii) Trim function can delete only one character at a time.
NOTE - We can’t trim two character at a time using trim function.
EXAMPLES
(i) SELECT TRIM(BOTH ‘EW’ FROM ‘EEWELCOME’)
FROM DUAL;

ERROR
SYNTAX – TRIM({[LEADING/TRAILING/BOTH]} TRIM_CHARACTER FROM STRING)

EXAMPLES
(i) SELECT TRIM(LEADING 'E' FROM 'EEWELCOME')
FROM DUAL;

TRIM(LE
-------

WELCOME
(ii) SELECT TRIM(TRAILING 'E' FROM 'EEWELCOME')
FROM DUAL

TRIM(TRA
--------
EEWELCOM
(iii) SELECT TRIM(BOTH 'E' FROM 'EEWELCOME')
FROM DUAL

TRIM(B
------
WELCOM

(ii) TYPES OF NUMBER FUNCTION


(1) ROUND FUNCTION
(i) It is used to round off the value to the nearest value.

EXAMPLES
(i) SELECT ROUND(99.7)
FROM DUAL;
ROUND(99.7)
-----------
100
(2) TRUNC FUNCTION
(i) It is used to remove the decimal value.

EXAMPLES
(i) SELECT TRUNC(11.08)
FROM DUAL;

TRUNC(11.08)
------------

11
(3) SQRT FUNCTION
(i) It is used to find the square root of a number.

EXAMPLES
(i) SELECT SQRT(16)
FROM DUAL;

SQRT(16)
----------
4
(ii) SELECT SQRT(12.33)
FROM DUAL;

SQRT(12.33)

-----------
3.51140997
(iii) SELECT ROUND(SQRT(16.44))
FROM DUAL;
ROUND(SQRT(16.44))
------------------
4
(4) ABS FUNCTION
(i) It is used to find the absolute value of a number.

EXAMPLES
(i) SELECT ABS(-90.9)
FROM DUAL;

ABS(-90.9)
----------

90.9
(ii) SELECT ROUND(ABS(-90.8))
FROM DUAL;

ROUND(ABS(-90.8))
-----------------
91

(5) POW FUNCTION(POWER FUNCTION)


SYNTAX – POWER(BASE,EXPONENT)

EXAMPLES
(i) SELECT POWER(4,2)
FROM DUAL;

POWER(4,2)

----------
16
(ii) SELECT POWER(4,19)
FROM DUAL;
POWER(4,19)
-----------
2.7488E+11
(6) MOD FUNCTION

Q.1 Write a query to list all employee who earn even salary.
Ans - SELECT *
FROM EMP
WHERE MOD(SAL,2)=0;

Q.2 Write a query to list all employee who earns odd salary.
Ans - SELECT *

FROM EMP
WHERE MOD(SAL,2)<>0
(OR)
SELECT *
FROM EMP
WHERE MOD(SAL,2)!=0

(iii) TYPES OF GENERAL FUNCTION


(1) NVL FUNCTION
SYNTAX – NVL(ARG 1 , ARG 2 )

(i) It will check argument 1 first , if it is NULL it will return argument 2.


(ii) If argument 1 is NOT NULL it will return argument 1 itself.

EXAMPLES
Q.1 Write a query to display employee name , salary , commission and montly salary using
NVL.
Ans - SELECT ENAME,SAL,COMM,NVL(SAL+COMM,SAL) MSAL
FROM EMP;
(OR)
SELECT ENAME,SAL,COMM,SAL+NVL(COMM,0) MSAL
FROM EMP

(2) NVL 2
SYNTAX – NVL2(ARG 1 , AGR 2 , ARG 3)

(i) If argument 1 is NULL , it will return argument 3.


(ii) If argument 1 is NOT NULL , it will return argument 2.

Q.1 Write a query to display employee name , salary , commission and montly salary using
NVL2.
Ans - SELECT ENAME,SAL,COMM,NVL2(COMM,SAL+COMM,SAL) MSAL
FROM EMP;
(OR)
SELECT ENAME,SAL,COMM,SAL+NVL2(COMM,COMM,0) MSAL
FROM EMP;

DATE - 26/12/2018
(iv) CONVERSION FUNCTION
(i) Conversion function is used to convert one data type to another data type.

TYPES OF CONVERSION FUNCTION


(1) IMPLICIT CONVERSION FUNCTION

(2) EXPLICIT CONVERSION FUNCTION

(1) IMPLICIT CONVERSION FUNCTION


(i) It is used to convert one data type to another data type without using conversion function.

(2) EXPLICIT CONVERSION FUNCTION


(i) It is used to convert one data type to another data type using conversion function.

CONVERSION FUNCTION
(1) TO_NUMBER
(2) TO_CHAR
(3) TO_DATE
ELEMENTS OF DATE FORMAT
(a) YYYY – It is used to display full year in number.
(b) YEAR – year spelled out.
(c) MM – It is used to display two digit value for a month.
(d) MONTH – It is used to display full name of month.
(e) MON – It is used to display three letter abbreviation of month.

(f) DY - It is used to display three letter abbreviation of a date.


(g) DAY – It is used to display full name of a date.
(h) DD – It is used to display numeric day of a month.

(v) TYPES OF DATE FUNCTION


(1) SYSDATE
It is used to display the system date.

(2) CURRENT_ DATE


It is used to display the current date.

(3) SYSTIMESTAMP
It is used to display date , month and year along with the time zone.

(4) ADD_MONTHS
EXAMPLES
(i) SELECT ADD_MONTHS(SYSDATE,2)
FROM DUAL;

ADD_MONTH

---------
26-FEB-19
(ii) SELECT ADD_MONTHS(SYSDATE,-2)
FROM DUAL;
ADD_MONTH
---------
26-OCT-18
(iii) SELECT ADD_MONTHS(CURRENT_DATE,-2)

FROM DUAL

ADD_MONTH
---------
26-OCT-18
(iv) SELECT ADD_MONTHS(CURRENT_DATE,2)
FROM DUAL

ADD_MONTH
---------
26-FEB-19
(v) SELECT ADD_MONTHS(CURRENT_DATE,4)
FROM DUAL

ADD_MONTH

---------
26-APR-19
(vi) SELECT ADD_MONTHS('25-AUG-2018',4)
FROM DUAL

ADD_MONTH
---------

25-DEC-18
(5) MONTHS_BETWEEN
EXAMPLES
(i) SELECT MONTHS_BETWEEN('28-AUG-2018','28-AUG-2015')
FROM DUAL;
MONTHS_BETWEEN('28-AUG-2018','28-AUG-2015')
-------------------------------------------
36
(ii) SELECT MONTHS_BETWEEN('28-AUG-2014','28-AUG-2015')

FROM DUAL

MONTHS_BETWEEN('28-AUG-2014','28-AUG-2015')
-------------------------------------------
-12
(iii) SELECT MONTHS_BETWEEN('28-AUG-2014','29-AUG-2015')
FROM DUAL

MONTHS_BETWEEN('28-AUG-2014','29-AUG-2015')
-------------------------------------------
-12.032258

(iv) SELECT ROUND(MONTHS_BETWEEN('28-AUG-2014','29-AUG-2015'))


FROM DUAL

ROUND(MONTHS_BETWEEN('28-AUG-2014','29-AUG-2015'))
--------------------------------------------------
-12

(5) LAST_DAY
EXAMPLES
(i) SELECT LAST_DAY(SYSDATE)
FROM DUAL;

LAST_DAY(
---------
31-DEC-18
(ii) SELECT LAST_DAY(CURRENT_DATE)
FROM DUAL

LAST_DAY(
---------

31-DEC-18
(iii) SELECT LAST_DAY('28-AUG-98')
FROM DUAL

LAST_DAY(
---------
31-AUG-98

QUESTIONS
Q.1 Wite a query to display next month first date.
Ans - SELECT LAST_DAY(SYSDATE)+1
FROM DUAL;

Q.2 Write a query to display next month last date.


Ans - SELECT LAST_DAY(LAST_DAY(SYSDATE)+1)
FROM DUAL;

LAST_DAY(
---------
31-JAN-19
(6) TO_CHAR

EXAMPLES
(i) SELECT TO_CHAR(SYSDATE,'YYYY')
FROM DUAL;

TO_C
----
2018
(ii) SELECT TO_CHAR(SYSDATE,'DAY')
FROM DUAL

TO_CHAR(S
---------

WEDNESDAY

DATE – 27/12/2018
(b) MULTI ROW FUNCTION
(ii) It is also called as aggregate function or group function.

TYPES OF MULTI ROW FUNCTION


(1) MAX
(i) It returns the maximum value.

EXAMPLE
(i) SELECT MAX(SAL)
FROM EMP;

MAX(SAL)

----------
5000
(2) MIN
(i) It returns the minimum value.

EXAMPLE
(i) SELECT MIN(SAL)
FROM EMP;

MIN(SAL)
----------
800
(3) COUNT
(i) It returns the number of records.

EXAMPLES
(i) SELECT COUNT(*)

FROM EMP;

COUNT(*)
----------
14
(ii) SELECT COUNT(JOB)
FROM EMP;

COUNT(JOB)
----------
14
(iii) SELECT COUNT(COMM)
FROM EMP;

COUNT(COMM)

-----------
4
(4) AVG
It returns the average value.

EXAMPLES
(i) SELECT AVG(SAL)

FROM EMP;

AVG(SAL)
----------
2073.21429
(5) SUM
It returns the total value.

EXAMPLE
(i) SELECT SUM(SAL)

FROM EMP;

SUM(SAL)
----------
29025

ORDER BY CLAUSE
(i) It is used to sort the data in ascending or descending order.
SYNTAX – SELECT <COLUMN_LIST>
FROM <TABLE_NAME>
WHERE <CONDITION(S)> - Optional condition
ORDER BY <COLUMN_LIST> ASC/DESC;
(ii) If we want to sort the data in ascending order then we have to use ASC Keyword in front of
column name in order by clause.

EXAMPLE
SELECT *
FROM EMP
ORDER BY DEPTNO ASC;
(iii) If we want to sort the data in ascending order then we have to use DESC keyword next to the
column name in order by clause.

EXAMPLE
SELECT *
FROM EMP
ORDER BY DEPTNO DESC;
(iv) If we won’t mention ASC or DESC keyword next to the column name then by default the
data will be sorted in ascending order.
(v) Order by clause should be a last statement in a query.

EXAMPLE
SELECT *
FROM EMP

ORDER BY DEPTNO;

QUESTIONS
Q.1 Write a query to display job and department number of all employee , sort the data
based on job in ascending order.
Ans - SELECT JOB,DEPTNO
FROM EMP
ORDER BY JOB ASC;

Q.2 Write a query to display Employee name job and department number, sort the data
based on both job and department number in ascending order.
Ans - SELECT JOB,DEPTNO,ENAME
FROM EMP
ORDER BY JOB,DEPTNO ASC;

(OR)
SELECT JOB,DEPTNO,ENAME
FROM EMP
ORDER BY DEPTNO,JOB ASC;

GROUP BY CLAUSE
(i) It is used in a select statement to collect the data across multiple records and group the results
by one or more columns.
SYNTAX - SELECT <COLUMN_LIST>

FROM <TABLE_NAME>
WHERE <CONDITION(S)> - Optional condition
GROUP BY <COLUMN_LIST>
HAVING <CONDITION_BASED _ON_GROUP_BY_CLAUSE>; - Optional
RULES OF GROUP BY CLAUSE
(i) Whatever the column which are present in select statement that should be present in group by
clause
(ii) Where condition is used to check the condition before grouping that means it is used to filter
non group data.
(iii) We cannot use aggregate function in where condition
(iv) Having clause is used to restrict the group data.
(v) Where condition should be used before group by clause.

(vi) Having clause is used after group by clause.


(vii) We can use aggregate function in having clause.

Q.1 Write a query to display department wise highest salary.


Ans - SELECT DEPTNO,MAX(SAL)
FROM EMP
GROUP BY DEPTNO

ORDER BY DEPTNO;

Q.2 Write a query to display department wise the number of employees.


ANS - SELECT DEPTNO,COUNT(EMPNO)
FROM EMP
GROUP BY DEPTNO
ORDER BY DEPTNO;

Q.3 Write a query to display minimum salary , maximum salary, total salary and average
salary in each of the job.
Ans - SELECT JOB,MIN(SAL),MAX(SAL),SUM(SAL),AVG(SAL)
FROM EMP
GROUP BY JOB;

Q.4 Write a query to display total salary in each of department except all the employees
who’s name starts with ‘S’.
Ans - SELECT DEPTNO,SUM(SAL)
FROM EMP
WHERE ENAME NOT LIKE 'S%'
GROUP BY DEPTNO;

Q.5 Write a query to display department wise average salary except SALESMAN.
Ans - SELECT DEPTNO,AVG(SAL)

FROM EMP
WHERE JOB NOT LIKE 'SALESMAN'
GROUP BY DEPTNO;

Q.6 Write a query to display department wise the department number which are having
atleast 4 employees in it.
Ans - SELECT DEPTNO,COUNT(*)
FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)>=4

Q.7 Write a query to display department wise total salary except department number 10.
Ans - SELECT DEPTNO,SUM(SAL)
FROM EMP
WHERE DEPTNO <> 10
GROUP BY DEPTNO;

(OR)
SELECT DEPTNO,SUM(SAL)
FROM EMP
GROUP BY DEPTNO
HAVING DEPTNO <> 10;

Q.8 Write a query to display job wise highest salary only if the highest salary is more than
1500 excluding department number 30.sort the data based on highest salary in ascending
order.
Ans - SELECT JOB,MAX(SAL)
FROM EMP
WHERE SAL>1500 AND
DEPTNO <> '30'
GROUP BY JOB

ORDER BY JOB ASC;

(OR)
SELECT JOB,MAX(SAL)
FROM EMP
WHERE DEPTNO<>30
GROUP BY JOB

HAVING MAX(SAL)>1500
ORDER BY MAX(SAL) ASC;

Q.9 Write a query to display the department number which are having more than 9000 AS
there departmental salary.
Ans - SELECT DEPTNO,SUM(SAL)
FROM EMP
GROUP BY DEPTNO
HAVING SUM(SAL)>9000;

DATE – 28/12/2018
SUB QUERIES
(i) Query within a query is called sub query.
(ii) The inner most query will execute first.

(iii) Maximum of 255 queries can be written in a nested form and hence sub query is also called
as nested query.
(iv) Sub query mainly used to find the unknown value.
SYNTAX - SELECT………..

FROM ………….
WHERE………...( SELECT………..
FROM ………….
WHERE…………( SELECT………..
FROM ………….
WHERE…………

QUESTIONS
Q.1 Write a query to list all employee who are working in the same department of SMITH.
Ans - SELECT *
FROM EMP
WHERE DEPTNO=(SELECT DEPTNO

FROM EMP
WHERE ENAME='SMITH');

Q.2 Write a query to list all employees who’s job is same as that of ADAMS.
Ans - SELECT *
FROM EMP
WHERE JOB=(SELECT JOB

FROM EMP
WHERE ENAME='ADAMS');

Q.3 Write a query to list all employees who are earning more than NITIN.
Ans - SELECT *
FROM EMP
WHERE SAL>(SELECT SAL

FROM EMP
WHERE ENAME='NITIN');

Q.4 Write a query to list all employees who are working in same department of ALLEN
and earning more than SMITH.
Ans - SELECT *
FROM EMP
WHERE DEPTNO=(SELECT DEPTNO
FROM EMP
WHERE ENAME='ALLEN') AND
SAL>(SELECT SAL

FROM EMP
WHERE ENAME='SMITH');

Q.5 Write a query to display the department name of KING.


Ans - SELECT DNAME
FROM DEPTNO
WHERE DEPTNO=(SELECT DEPTNO

FROM EMP
WHERE ENAME='KING');

Q.6 Write a query to display the location of ALLEN.


Ans - SELECT LOC
FROM DEPT
WHERE DEPTNO=(SELECT DEPTNO

FROM EMP
WHERE ENAME='ALLEN');

Q.7 Write a query to display all the employee details who works for research department.
Ans - SELECT *
FROM EMP
WHERE DEPTNO=(SELECT DEPTNO

FROM DEPT
WHERE DNAME='RESEARCH');

Q.8 Write a query to list all the employees who are located at new York.
Ans - SELECT *
FROM EMP
WHERE DEPTNO=(SELECT DEPTNO
FROM DEPT
WHERE LOC='NEW YORK');

Q.9 Write a query to list all the employees who are working in accounting and research
department.
Ans - SELECT *
FROM EMP
WHERE DEPTNO IN(SELECT DEPTNO

FROM DEPT
WHERE DNAME IN('ACCOUNTING','RESEARCH'));

Q.10 Write a query to list all the department names that are having analyst.
Ans - SELECT DNAME
FROM DEPT
WHERE DEPTNO IN(SELECT DEPTNO

FROM EMP
WHERE JOB='ANALYST');

Q.11 Write a query to list all the department names which are having salesman in it.
Ans - SELECT DNAME
FROM DEPT
WHERE DEPTNO IN(SELECT DEPTNO

FROM EMP
WHERE JOB='SALESMAN');

Q.12 Write a query to display the employees who’s location having ateast one ‘O’ without
using like operator.
Ans - SELECT *
FROM EMP
WHERE DEPTNO IN(SELECT DEPTNO
FROM DEPT
WHERE INSTR(LOC,'O')>0);

Q.13 Write a query to list the department name that are having atleast 4 employees in it.
Ans - SELECT DNAME
FROM DEPT

WHERE DEPTNO IN(SELECT DEPTNO


FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*)>=4);

Q.14 Write a query to display the department name which are having atleast 2 clerk’s in it.
Ans - SELECT DNAME

FROM DEPT
WHERE DEPTNO IN(SELECT DEPTNO
FROM EMP
WHERE JOB='CLERK'
GROUP BY DEPTNO
HAVING COUNT(JOB)>=2);

Q.15 Write a query to display 2nd highest salary.


Ans - SELECT MAX(SAL)
FROM EMP
WHERE SAL<(SELECT MAX(SAL)
FROM EMP);

Q.16 Write a query to display the departmental details that are having no employees in it.
Ans - SELECT DNAME
FROM DEPT
WHERE DEPTNO NOT IN(SELECT DEPTNO
FROM EMP);

Q.17 Write a query to display SCOTT manager’s his manager’s department name.
Ans - SELECT DNAME
FROM DEPT
WHERE DEPTNO=(SELECT DEPTNO FROM EMP
WHERE EMPNO=(SELECT MGR FROM EMP

WHERE EMPNO=(SELECT MGR FROM EMP


WHERE ENAME='SCOTT')));

DATE – 02/01/2018
JOINS
(i) It is used to join the multiple tables.
(ii) In joints we are displaying multiple columns from multiple tables.

TYPES OF JOINS
(1) Cartesian joins
(2) Inner joins
(3) Outer joins

(4) Self joins

(1) CARTESIAN JOINS


(i) In Cartesian join each and every record from one table is directly matching with each and
every record of another table.

(ii) In Cartesian join we obtain both valid and invalid output.


(iii) Cartesian join works on the principle of Cartesian product.

EXAMPLE
S1={1,2,3}
S1={4,5,6,7}
S1*S2={(1,4),(1,5),(1,6),(1,7), (2,4),(2,5),(2,6),(2,7) (3,4),(3,5),(3,6),(3,7)}
Q.1 Write a query to display employee name and department name of all employees using
Cartesian join.
Ans - SELECT ENAME,DNAME
FROM EMP,DEPT;

DATE – 03/01/2019
(2) INNER JOIN
(i) In inner join we are going to display matched records between two tables.
(ii) Inner join is also called as equi join or simple join.
(iii) In inner join each and every record of one table is compared with each and every record of
another table and finally display the matched output to the user.
EXAMPLE
Table 1 = {1,2,3,4}
Table 2 = {3,4,5,6}
Table1 JOIN Table2={3,4}

SYNTAX – SELECT t1.COLUMN_NAME , t2.COLUMN_NAME

FROM t1, t2 //ORACLE


WHERE t1.COMMON_COLUMN=t2.COMMON_COLUMN;

SELECT t1.COLUMN_NAME , t2.COLUMN_NAME


FROM t1 JOIN t2 //ANSI
ON t1.COMMON_COLUMN=t2.COMMON_COLUMN;

Q.1 Write a query to display employee name and department name of all employees using
inner join.
Ans – SELECT ENAME,DNAME
FROM EMP,DEPT

WHERE EMP.DEPTNO=DEPT.DEPTNO;

(OR)
SELECT ENAME,DNAME
FROM EMP JOIN DEPT
ON EMP.DEPTNO=DEPT.DEPTNO;

(OR)
SELECT ENAME,DNAME

FROM EMP E JOIN DEPT D


ON E.DEPTNO=D.DEPTNO;

Q.2 Write a query to display department name and employee of all employees who are
working in research department.
Ans - SELECT E.ENAME,D.DNAME
FROM EMP E JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
D.DNAME='RESEARCH';

Q.3 Write a query to display employee name , job , department name and location of all
employees who are working as SALESMAN and earning more than 1000.
Ans - SELECT ENAME,JOB,DNAME,LOC
FROM EMP E JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
JOB='SALESMAN' AND

SAL>=1000;
Q.4 Write a query to display employee name , job , salary , commission and department
name all employees who are earning in the range of 1000 to 4000 with some commission.
Ans - SELECT ENAME,JOB,SAL,COMM,DNAME

FROM EMP E JOIN DEPT D


ON E.DEPTNO=D.DEPTNO AND
SAL BETWEEN 1000 AND 4000 AND
COMM >0;

Q.5 Write a query to display employee name , hiredate , salary and location of all
employees who’s name starts with ‘M’ and ends with ‘N’ without using operator.
Ans - SELECT ENAME,HIREDATE,SAL,LOC
FROM EMP E JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
SUBSTR(ENAME,1,1)='M'

AND SUBSTR(ENAME,-1,1)='N';

Q.6 Write a query to display employee name , hiredate and location of all employees who
join in the month of MAY without using LIKE operator.
Ans - SELECT ENAME,HIREDATE,LOC

FROM EMP E JOIN DEPT D


ON E.DEPTNO=D.DEPTNO AND
SUBSTR(HIREDATE,4,3)='MAY';
(OR)
SELECT ENAME,HIREDATE,LOC
FROM EMP E JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND

INSTR(HIREDATE,'MAY',1,1)>=1;

Q.7 Write a query to display employee name and department name of all employee who’s
location and department name consist of atleast one ‘O’ without using operator.
Ans - SELECT ENAME,DNAME

FROM EMP E JOIN DEPT D


ON E.DEPTNO=D.DEPTNO AND
INSTR(LOC,'O')>0 AND
INSTR(DNAME,'O')>0;

Q.8 Write a query to display employee name ,department name and department number of
all employees who’s name starts with ‘A’ and earning more than 1000 with no commission
and working as clerk in department number 10,20 and 30.
Ans - SELECT ENAME,DNAME,E.DEPTNO

FROM EMP E JOIN DEPT D


ON E.DEPTNO=D.DEPTNO AND
ENAME LIKE 'A%' AND
E.SAL>1000 AND
COMM IS NULL AND
E.JOB='CLERK' AND

E.DEPTNO IN(10,20,30);

DATE – 04/01/2019
CONNECTECTION FROM ONE USER TO ANOTHER USER
SQL> CONN
Enter user-name: HR

Enter password: *****(tiger)


Connected.
SQL> SHOW USER
USER is "HR"

Q.9 Write a query to display region name , country name and city using inner join. Give
table alias.
Ans - SELECT REGION_NAME,COUNTRY_NAME,CITY
FROM REGIONS R JOIN COUNTRIES C
ON R.REGION_ID=C.REGION_ID JOIN LOCATIONS L

ON C.COUNTRY_ID=L.COUNTRY_ID;
(3) OUTER JOIN
(i) It is used to display matched as well as unmatched records between two tables.

TYPES OF OUTER JOIN


(a) Left outer join
(b) Right outer join

(c) Full outer join

(a) LEFT OUTER JOIN


(i) Left outer join is used to display matched records between two tables and unmatched records
from left table.

EXAMPLE
TABLE 1 = {1,2,3,4}
TABLE 2 = {3,4,5,6}
TABLE 1 LEFT OUTER JOIN TABLE 2 = {3,4,1,2}

SYNTAX – SELECT <COLUMN_LIST> //ANSI


FROM t1 LEFT OUTER JOIN t2
ON t1.COMMON_COLUMN=t2.COMMON_COLUMN;

SELECT <COLUMN_LIST> //ORACLE


FROM t1,t2
WHERE t1.COMMON_COLUMN=t2.COMMON_COLUMN(+);

(b) RIGHT OUTER JOIN


(i) Right outer join is used to display matched records between two tables and unmatched records
from right table.

EXAMPLE
TABLE 1 = {1,2,3,4}
TABLE 2 = {3,4,5,6}
TABLE 1 RIGHT OUTER JOIN TABLE 2 = {3,4,5,6}

SYNTAX – SELECT <COLUMN_LIST> //ANSI


FROM t1 RIGHT OUTER JOIN t2
ON t1.COMMON_COLUMN=t2.COMMON_COLUMN;

SELECT <COLUMN_LIST> //ORACLE


FROM t1,t2
WHERE t1.COMMON_COLUMN(+)=t2.COMMON_COLUMN;

(c) FULL OUTER JOIN


(i) Full outer join is used to display matched records between two tables and unmatched records
from both the table.

EXAMPLE
TABLE 1 = {1,2,3,4}
TABLE 2 = {3,4,5,6}
TABLE 1 RIGHT OUTER JOIN TABLE 2 = {3,4,1,2,5,6}

SYNTAX – SELECT <COLUMN_LIST> //ANSI


FROM t1 FULL OUTER JOIN t2
ON t1.COMMON_COLUMN=t2.COMMON_COLUMN;

SELECT <COLUMN_LIST> //ORACLE


FROM t1,t2
WHERE t1.COMMON_COLUMN=t2.COMMON_COLUMN(+);
UNION
SELECT <COLUMN_LIST>

FROM t1,t2
WHERE t1.COMMON_COLUMN(+)=t2.COMMON_COLUMN;

INSERT QUERY
INSERT INTO EMP(empno,ename) values(01,’A’);

Q.1 Write a query to display employee name and department name of all employees using
outer join.
Ans - SELECT ENAME,DNAME
FROM EMP LEFT OUTER JOIN DEPT
ON EMP.DEPTNO=DEPT.DEPTNO;

(OR)
SELECT ENAME,DNAME
FROM EMP RIGHT OUTER JOIN DEPT
ON EMP.DEPTNO=DEPT.DEPTNO;

(OR)
SELECT ENAME,DNAME
FROM EMP FULL OUTER JOIN DEPT

ON EMP.DEPTNO=DEPT.DEPTNO;

Q.2 Write a query to display department name and employee of all employees who are
working in research department.
Ans - SELECT E.ENAME,D.DNAME

FROM EMP E LEFT OUTER JOIN DEPT D


ON E.DEPTNO=D.DEPTNO AND
D.DNAME='RESEARCH';

(OR)
SELECT E.ENAME,D.DNAME
FROM EMP E RIGHT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
D.DNAME='RESEARCH';

(OR)
SELECT E.ENAME,D.DNAME
FROM EMP E FULL OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
D.DNAME='RESEARCH';

Q.3 Write a query to display employee name , job , department name and location of all
employees who are working as SALESMAN and earning more than 1000.
Ans - SELECT ENAME,JOB,DNAME,LOC
FROM EMP E LEFT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND

JOB='SALESMAN' AND
SAL>=1000;

(OR)
SELECT ENAME,JOB,DNAME,LOC
FROM EMP E RIGHT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND

JOB='SALESMAN' AND
SAL>=1000;

(OR)
SELECT ENAME,JOB,DNAME,LOC
FROM EMP E FULL OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND

JOB='SALESMAN' AND
SAL>=1000;
Q.4 Write a query to display employee name , job , salary , commission and department
name all employees who are earning in the range of 1000 to 4000 with some commission.
Ans - SELECT ENAME,JOB,SAL,COMM,DNAME
FROM EMP E LEFT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
SAL BETWEEN 1000 AND 4000 AND
COMM >0;

(OR)
SELECT ENAME,JOB,SAL,COMM,DNAME
FROM EMP E RIGHT JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
SAL BETWEEN 1000 AND 4000 AND
COMM >0;

(OR)
SELECT ENAME,JOB,SAL,COMM,DNAME
FROM EMP E FULL OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
SAL BETWEEN 1000 AND 4000 AND
COMM >0;

Q.5 Write a query to display employee name , hiredate , salary and location of all
employees who’s name starts with ‘M’ and ends with ‘N’ without using operator.
Ans - SELECT ENAME,HIREDATE,SAL,LOC
FROM EMP E LEFT JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND

SUBSTR(ENAME,1,1)='M'
AND SUBSTR(ENAME,-1,1)='N';

(OR)
SELECT ENAME,HIREDATE,SAL,LOC
FROM EMP E RIGHT JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
SUBSTR(ENAME,1,1)='M'
AND SUBSTR(ENAME,-1,1)='N';

(OR)
SELECT ENAME,HIREDATE,SAL,LOC
FROM EMP E FULL JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
SUBSTR(ENAME,1,1)='M'
AND SUBSTR(ENAME,-1,1)='N';

Q.6 Write a query to display employee name , hiredate and location of all employees who
join in the month of MAY without using LIKE operator.
Ans - SELECT ENAME,HIREDATE,LOC
FROM EMP E LEFT OUTER JOIN DEPT D

ON E.DEPTNO=D.DEPTNO AND
SUBSTR(HIREDATE,4,3)='MAY';

(OR)
SELECT ENAME,HIREDATE,LOC
FROM EMP E LEFT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND

SUBSTR(HIREDATE,4,3)='MAY';

(OR)
SELECT ENAME,HIREDATE,LOC
FROM EMP E LEFT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
SUBSTR(HIREDATE,4,3)='MAY';

(OR)
SELECT ENAME,HIREDATE,LOC
FROM EMP E LEFT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
INSTR(HIREDATE,'MAY',1,1)>=1;

(OR)
SELECT ENAME,HIREDATE,LOC
FROM EMP E RIGHT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
INSTR(HIREDATE,'MAY',1,1)>=1;

(OR)
SELECT ENAME,HIREDATE,LOC

FROM EMP E FULL OUTER JOIN DEPT D


ON E.DEPTNO=D.DEPTNO AND
INSTR(HIREDATE,'MAY',1,1)>=1;

Q.7 Write a query to display employee name and department name of all employee who’s
location and department name consist of atleast one ‘O’ without using operator.
Ans - SELECT ENAME,DNAME
FROM EMP E LEFT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
INSTR(LOC,'O')>0 AND
INSTR(DNAME,'O')>0;

(OR)
SELECT ENAME,DNAME
FROM EMP E RIGHT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
INSTR(LOC,'O')>0 AND
INSTR(DNAME,'O')>0;

(OR)
SELECT ENAME,DNAME
FROM EMP E FULL OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
INSTR(LOC,'O')>0 AND
INSTR(DNAME,'O')>0;

Q.8 Write a query to display employee name ,department name and department number of
all employees who’s name starts with ‘A’ and earning more than 1000 with no commission
and working as clerk in department number 10,20 and 30.
Ans - SELECT ENAME,DNAME,E.DEPTNO
FROM EMP E LEFT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
ENAME LIKE 'A%' AND
E.SAL>1000 AND

COMM IS NULL AND


E.JOB='CLERK' AND
E.DEPTNO IN(10,20,30);

(OR)
SELECT ENAME,DNAME,E.DEPTNO
FROM EMP E RIGHT OUTER JOIN DEPT D

ON E.DEPTNO=D.DEPTNO AND
ENAME LIKE 'A%' AND
E.SAL>1000 AND
COMM IS NULL AND
E.JOB='CLERK' AND
E.DEPTNO IN(10,20,30);

(OR)
SELECT ENAME,DNAME,E.DEPTNO
FROM EMP E FULL OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO AND
ENAME LIKE 'A%' AND
E.SAL>1000 AND
COMM IS NULL AND
E.JOB='CLERK' AND

E.DEPTNO IN(10,20,30);

Q.9 Write a query to display region name , country name and city using inner join. Give
table alias.
Ans - SELECT REGION_NAME,COUNTRY_NAME,CITY

FROM REGIONS R LEFT OUTER JOIN COUNTRIES C


ON R.REGION_ID=C.REGION_ID JOIN LOCATIONS L
ON C.COUNTRY_ID=L.COUNTRY_ID;

(OR)
SELECT REGION_NAME,COUNTRY_NAME,CITY
FROM REGIONS R RIGHT OUTER JOIN COUNTRIES C

ON R.REGION_ID=C.REGION_ID JOIN LOCATIONS L


ON C.COUNTRY_ID=L.COUNTRY_ID;

(OR)
SELECT REGION_NAME,COUNTRY_NAME,CITY
FROM REGIONS R FULL OUTER JOIN COUNTRIES C
ON R.REGION_ID=C.REGION_ID JOIN LOCATIONS L

ON C.COUNTRY_ID=L.COUNTRY_ID;

DATE – 06/01/2019
(4) SELF JOIN
(i) self join is used to join the table to itself.

Q.1 Write a query to display to display employee name and their manager name.
Ans - SELECT A.ENAME EMP_NAME,B.ENAME M_NAME
FROM EMP A,EMP B
WHERE A.MGR=B.EMPNO;

Q.2 Write a query to display employee name ,manager name along with their joining date.
Ans- SELECT A.ENAME EMP_NAME,A.HIREDATE EJOIN,

B.ENAME M_NAME,B.HIREDATE MJOIN


FROM EMP A,EMP B
WHERE A.MGR=B.EMPNO;

Q.3 Write a query to display employee name and their manager name where the employees
join before their manager.
Ans - SELECT A.ENAME EMP_NAME,A.HIREDATE EJOIN,
B.ENAME M_NAME,B.HIREDATE MJOIN
FROM EMP A,EMP B
WHERE A.MGR=B.EMPNO AND
A.HIREDATE<B.HIREDATE;

Q.4 Write a query to list all employees who are earning same salary.
Ans – SELECT A.ENAME E1,A.SAL E1SAL,B.ENAME E2,B.SAL E2SAL
FROM EMP A,EMP B
WHERE A.SAL=B.SAL AND
A.EMPNO<>B.EMPNO;

Q.5 Write a query to list all employees who are working in same department.
Ans - SELECT A.ENAME E1,A.DEPTNO E1DEPTNO,
B.ENAME E2,B.DEPTNO E2DEPTNO
FROM EMP A,EMP B
WHERE A.DEPTNO=B.DEPTNO AND
A.EMPNO<>B.EMPNO;
DATE – 08/01/2019
CREATE TABLE
SYNTAX –
CREATE TABLE <TABLE_NAME>(CN1 DATATYPE CONSTRAINT,
CN2 DATATYPE CONSTRAINT,
CN3 DATATYPE CONSTRAINT,
.

.
CNn DATATYPE CONSTRAINT);

EXAMPLE
(i) CREATE TABLE STUDENT(USN VARCHAR(10) PRIMARY KEY,NAME
VARCHAR(28),SEMESTER NUMBER(4),BRANCH CHAR(6));
(ii) CREATE TABLE LIBRARY(L_ID VARCHAR(10) PRIMARY
KEY,BOOK_NAME CHAR(28),AUTHOR CHAR(28),PRICE NUMBER(10));
(iii) CREATE TABLE PROJECT(P_ID VARCHAR(10) PRIMARY KEY,PROJ_NAME
CHAR(28),RELEASE_DATE DATE);
(iv) CREATE TABLE PRODUCT(PROD_NUM NUMBER(20) PRIMARY
KEY,PROD_NAME CHAR(28), MANU_DATE DATE);
(v) CREATE TABLE COLLEGE(C_ID VARCHAR(10) PRIMARY KEY,C_NAME
CHAR(28),REGION VARCHAR(28),USN VARCHAR(10) REFERENCES
STUDENT(USN));
(vi) CREATE TABLE COLL(C_ID NUMBER(11) PRIMARY KEY,REG_ID
VARCHAR(10) REFERENCES STUDENT(USN));

ALTER COMMAND
Alter command is used to modify the structure of the table.
(a) To add a new column

SYNTAX –
ALTER TABLE <TABLE_NAME>
ADD COLUMN_NAME DATATYPE;

EXAMPLE
(i) ALTER TABLE BANK
ADD BANK_LOCATION CHAR(20);
(b) To drop a column
SYNTAX - ALTER TABLE <TABLE_NAME>
DROP COLUMN COLUMN_NAME;

EXAMPLE
(i) ALTER TABLE BANK
DROP COLUMN BANK_LOCATION;
(c) To alter a column name
SYNTAX – ALTER TABLE <TABLE_NAME>
RENAME COLUMN OLDCOLUMN_NAME TO NEWCOLUMN_NAME;

EXAMPLE
(i) ALTER TABLE BANK
RENAME COLUMN ACCOUNT_NUMBER TO ACC_NUM
(d) To change the data type
SYNTAX – ALTER TABLE <TABLE_NAME>
MODIFY COLUMN_NAME NEW_DATATYPE;

EXAMPLE
(i) ALTER TABLE BANK
MODIFY ACC_NUM CHAR(10)
(e) To change the data type size
SYNTAX - ALTER TABLE <TABLE_NAME>
MODIFY COLUMN_NAME DATATYPE(NEW_DATATYPE_SIZE);

EXAMPLE
(i) ALTER TABLE BANK
MODIFY ACC_NUM NUM(20)

To drop a constraint(primary key)


SYNTAX -
ALTER TABLE <TABLE_NAME>
DROP CONSTRAINT CONSTRAINT_NAME;

EXAMPLE
(i) SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE
FROM USER_CONSTRAINTS

WHERE TABLE_NAME='LIBRARY';
(ii) ALTER TABLE LIBRARY
DROP CONSTRAINT SYS_C005702;
SQL> SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE
FROM USER_CONSTRAINTS
WHERE TABLE_NAME='LIBRARY';

CONSTRAINT_NAME C
------------------------------ -
SYS_C005702 P
SQL> ALTER TABLE LIBRARY
DROP CONSTRAINT SYS_C005702;
Table altered.

SQL> SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE


FROM USER_CONSTRAINTS
WHERE TABLE_NAME='LIBRARY';
no rows selected

To add a primary key constraint


SYNTAX –
ALTER TABLE <TABLE_NAME>
ADD CONSTRAINT CONSTRAINT_NAME PRIMARY KEY(COLUMN_NAME);

EXAMPLE
(i) ALTER TABLE LIBRARY
ADD CONSTRAINT NPK PRIMARY KEY(COST);
SQL> ALTER TABLE LIBRARY
ADD CONSTRAINT NPK PRIMARY KEY(COST);
Table altered.
SQL> SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE

FROM USER_CONSTRAINTS
WHERE TABLE_NAME='LIBRARY';
CONSTRAINT_NAME C
------------------------------ -
NPK P
SQL> ALTER TABLE LIBRARY

DROP CONSTRAINT NPK;


Table altered.
SQL> SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE
FROM USER_CONSTRAINTS
WHERE TABLE_NAME='LIBRARY';
no rows selected

INSERT COMMAND
SYNTAX –
INSERT INTO TABLE_NAME(CN1,CN2,CN3,………,CNn) VALUES(V1,V2,V3,….,Vn);
DATE – 09/01/2019
TRUNCATE COMMAND
(i) Truncate command is used to delete all records permanently apart structure of the table
remains same.
SYNTAX – TRUNCATE TABLE <TABLE_NAME>;
TRUNCATE TABLE PRODUCT;

DROP COMMAND
(i) Drop command is used to drop the entire table.
SYNTAX - DROP TABLE <TABLE_NAME>;
DROP TABLE PROJECT;
(ii) If we drop a table it will be moved to recycle bin , if we want to restore the dropped table
from recycle bin we are using ‘FLASHBACK command’.
SYNTAX – FLASHBACK TABLE <TABLE_NAME> TO BEFORE DROP;
FLASHBACK TABLE PROJECT TO BEFORE DROP;
(iii) If we want to delete dropped table permanently from recycle bin then we use ‘PURGE
COMMAND’.
SYNTAX – PURGE TABLE <TABLE_NAME>;
PURGE TABLE PROJECT;
(iv) If we want to delete the entire table without moving to recycle bin we use ‘DROP AND
PURGE COMMAND’ TOGETHER.
SYNTAX – DROP TABLE <TABLE_NAME> PURGE;
DROP TABLE PRODUCT PURGE;
SHOW RECYCLEBIN

DATA MANUPULATION LANGUAGE(DML)


INSERT COMMAND
(i) Insert command is used to insert data into a table.

SYNTAX –
INSERT INTO TABLE_NAME(CN1,CN2,CN3,………,CNn) VALUES(V1,V2,V3,….,Vn);

(OR)
INSERT INTO <TABLE_NAME> VALUES(V1,V2,V3,V4,……,Vn);

(OR)
INSERT INTO <TABLE_NAME> VALUES (‘&CN1’,’&CN2’,’&CN3,………,’&CNn’);

EXAMPLE
INSERT INTO STUDENT VALUES('&USN','&NAME','&SEMESTER','&BRANCH');
Enter value for usn: 11
Enter value for name: ANUP
Enter value for semester: 4
Enter value for branch: SCE
old 1: INSERT INTO STUDENT VALUES('&USN','&NAME','&SEMESTER','&BRANCH')
new 1: INSERT INTO STUDENT VALUES('11','ANUP','4','SCE')

UPDATE COMMAND
SYNTAX – UPDATE <TABLE_NAME>
SET COLUMN_NAME=’NEW_VALUE’
WHERE COLUMN_NAME=’OLD_VALUE’;

EXAMPLE
UPDATE STUDENT
SET NAME='AKHIN'
WHERE NAME='KRISHNA';

DELETE COMMAND
SYNTAX – DELETE FROM <TABLE_NAME>
WHERE <CONDITION(S)>;

EXAMPLES
(i) DELETE FROM STUDENT
WHERE NAME='AKHIN';
(ii) DELETE FROM STUDENT
WHERE USN=13;

TCL

COMMIT COMMAND
(i) It is used to save the DML changes.
SYNTAX – COMMIT;

ROLLBACK
(i) It is used to restore the previous changes.
SYNTAX – ROLLBACK;

DATE – 10/01/2019
SAVEPOINT COMMAND
(i) Savepoint command is used to mark the current point in the processing of a transacation.

SYNTAX - SAVEPOINT SAVEPOINT_NAME;


ROLLBACK TO SAVEPOINT SAVEPOINT_NAME;

DATA CONTROL LANGUAGE(DCL)


GRANT
(i) To give permission or privileges to the user we use grant command.
SYNTAX – GRANT <USER_PERMISSION> ON <TABLE_NAME> TO <USER_NAME>;

REVOKE
(i) It is used to discard the given permission from the user
SYNTAX - REVOKE <USER_PERMISSION> ON <TABLE_NAME> TO <USER_NAME>;

VIEWS
(i) Views are virtual table which physically doesn’t exist.

(ii) Views are created to reduce the number of hits to the database and increase the performance
of database and query.
SYNTAX – CREATE VIEW <VIEW_NAME>
AS
(SUBQUERY)

EXAMPLE
SQL> CONN SYS/TIGER AS SYSDBA
Connected.
SQL> GRANT CREATE VIEW TO SCOTT;
Grant succeeded.

SQL> CONN
Enter user-name: SCOTT
Enter password: *****
Connected.
SQL> CREATE VIEW V55
AS

SELECT EMPNO,ENAME,SAL,COMM FROM EMP;


View created.
SQL> SELECT * FROM V55;

EMPNO ENAME SAL COMM


---------- ---------- ---------- ----------
7369 SMITH 800

7499 ALLEN 1600 300


7521 WARD 1250 500
7566 JONES 2975
7654 MARTIN 1250 1400
7698 BLAKE 2850
7782 CLARK 2450

7788 SCOTT 3000


7839 KING 5000
7844 TURNER 1500 0
7876 ADAMS 1100
7900 NITIN 950
7902 FORD 3000

7934 MILLER 1300

SET OPERATOR
ANY OPERATOR
(i) Instead of OR/IN OPERATOR we use any operator.
SYNTAX –
EXAMPLE
(i) SELECT *
FROM EMP
WHERE SAL>ANY(1000,2000,3000);

ALL OPERATOR
(i) Instead of AND operator we use all operator

SYNTAX –
EXAMPLE
(i) SELECT *

FROM EMP
WHERE SAL>ALL(1000,2000,3000);

PSEUDO COLUMNS
ROWNUMBER
(i) RowNum is a sequential number which is automatically generated during the query execution.
RowNum is temporary.

Rownum is a dynamic value.


Rownum gives a count of records in a table.

Rowid
Rowid is a physical address of a row.
Rowid is permanent.
Rowid is automatically generated during the insertion of a record.

Rowid is a unique id provided to each and every record.


Rowid is the fastest means of accessing data.

Q. 1 Write a query to display top 5 records.


Ans - SELECT *
FROM EMP
WHERE ROWNUM<=5;
Q.2 Write a query to display 5th record.
Ans - SELECT *
FROM EMP

WHERE ROWNUM<=5
MINUS
(SELECT *
FROM EMP
WHERE ROWNUM<=4);

Q.3 Write a query to display 3rd and 5th records.


Ans - SELECT *
FROM EMP
WHERE ROWNUM<=3
MINUS
(SELECT *
FROM EMP

WHERE ROWNUM<=2)
UNION
(SELECT *
FROM EMP
WHERE ROWNUM<=5
MINUS

(SELECT *
FROM EMP
WHERE ROWNUM<=4));

Q.4 Write a query to display last record.


Ans - SELECT *
FROM EMP
MINUS
(SELECT *
FROM EMP

WHERE ROWNUM<=(SELECT COUNT(*)-1


FROM EMP));

Q.5 Write a query to display first and last record.


Ans -SELECT *
FROM EMP
WHERE ROWNUM<=1

UNION
(SELECT *
FROM EMP
MINUS
(SELECT *
FROM EMP

WHERE ROWNUM<=(SELECT COUNT(*)-1


FROM EMP)));

Q.6 Write a query to display first 5 and last 5 record.


Ans - SELECT *
FROM EMP
WHERE ROWNUM<=5

UNION
(SELECT *
FROM EMP
MINUS
(SELECT *
FROM EMP
WHERE ROWNUM<=(SELECT COUNT(*)-5
FROM EMP)));

Q.7 Write a query to display 2nd and last record.


Ans - SELECT *
FROM EMP
WHERE ROWNUM<=2
MINUS
(SELECT *
FROM EMP

WHERE ROWNUM=1)
UNION
(SELECT *
FROM EMP
MINUS
(SELECT *

FROM EMP
WHERE ROWNUM<=(SELECT COUNT(*)-1
FROM EMP)));
Q.8 Write a query to display 4th and 8th record.
Ans - SELECT *
FROM EMP

WHERE ROWNUM<=4
MINUS
(SELECT *
FROM EMP
WHERE ROWNUM<=3)
UNION
(SELECT *
FROM EMP
WHERE ROWNUM<=8

MINUS
(SELECT *
FROM EMP
WHERE ROWNUM<=7));

You might also like