SQL Notes
SQL Notes
(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.
DQL
(1) SELECT - select command is used to retrieve data from the database.
(1) Projection
(i) It is used to retrieve column wise data from a table.
(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
(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}
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
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
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.
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
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
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
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
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
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.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
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.
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.
(2) UNIQUE
(i) UNIQUE constraints accept multiple NULL value.
(3) CHECK
(i) CHECK is used to provide the additional validation.
(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.
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"
CONCATENATION OPERATOR
(i) Concatenation operator is used to join two strings.
(ii) It is represented by two vertical bars (||).
'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
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
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.
'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
(4) REPLACE
(5) SUBSTR
(6) INSTR
(7) TRIM
(4) SQRT
(5) ABS
(6) POWER
(4) ADD_MONTHS
(5) MONTHS_BETWEEN
(6) LAST_DAY
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');
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');
R
------
Qspjsp
(ii) SELECT UPPER('qspjsp') A,LOWER ('QSPJSP'),INITCAP('QSPJSP') FROM DUAL;
A LOWER( INITCA
------ ------ ------
QSPJSP qspjsp Qspjsp
SYNTAX - CONCAT(Arg1,Arg2)
EXAMPLES
(i) SELECT CONCAT('YASH','KUSH') FROM DUAL;
CONCAT('
--------
YASHKUSH
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
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;
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
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
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
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
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
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)
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.
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.
(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
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;
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.
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.
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
(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');
FROM EMP
WHERE ENAME='KING');
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
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.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
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
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}
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
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
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
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
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
E.DEPTNO IN(10,20,30);
DATE – 04/01/2019
CONNECTECTION FROM ONE USER TO ANOTHER USER
SQL> CONN
Enter user-name: 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.
EXAMPLE
TABLE 1 = {1,2,3,4}
TABLE 2 = {3,4,5,6}
TABLE 1 LEFT OUTER JOIN TABLE 2 = {3,4,1,2}
EXAMPLE
TABLE 1 = {1,2,3,4}
TABLE 2 = {3,4,5,6}
TABLE 1 RIGHT OUTER JOIN TABLE 2 = {3,4,5,6}
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}
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
(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
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
(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
(OR)
SELECT REGION_NAME,COUNTRY_NAME,CITY
FROM REGIONS R RIGHT OUTER JOIN COUNTRIES C
(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,
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)
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.
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
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
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.
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
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.
Rowid
Rowid is a physical address of a row.
Rowid is permanent.
Rowid is automatically generated during the insertion of a record.
WHERE ROWNUM<=5
MINUS
(SELECT *
FROM EMP
WHERE ROWNUM<=4);
WHERE ROWNUM<=2)
UNION
(SELECT *
FROM EMP
WHERE ROWNUM<=5
MINUS
(SELECT *
FROM EMP
WHERE ROWNUM<=4));
UNION
(SELECT *
FROM EMP
MINUS
(SELECT *
FROM EMP
UNION
(SELECT *
FROM EMP
MINUS
(SELECT *
FROM EMP
WHERE ROWNUM<=(SELECT COUNT(*)-5
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));