Day1 SQL
Day1 SQL
COM
+91 99720 15559
http://10.177.55.196:5560/ISQLPLUS
TNSNAMES.ORA
---------------------------
C:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN
LISTENER.ORA
C:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN
DEFAULT
----------------
ADMIN
------------
SYS -> CHANGE_ON_INSTALL
SYSTEM -> MANAGER
USER
----------
SCOTT -> TIGER
'WORKING ON SQL'
-----------------------------
SQL> @ Q5.sql
OR
SQL> STA Q5.sql
TO CREATE A USER:
------------------------------
LOGIN AS ADMIN
SQL> CONN SYSTEM/ORACLE
LOGIN AS ADMIN
SQL> GRANT CONNECT,RESOURCE TO ANIL;
---> ROLE
-> SET OF PRIVILEGES
SQL> CONN ANIL/ANCHAN
Connected.
OR
SQL> STA
C:\Oracle\product\10.2.0\db_1\odp.net\samples\DataSet\RelationalData\setup\DEMOBLD
.sql
SQL OPERATORS
---------------------------
ARITH : +,-,*,/
LOGICAL : AND,OR,NOT
RELATIONAL : <,>,=,<=,>=,!= OR <>
MISC : IN,NOT IN,BETWEEN,LIKE'%',IS NULL,
ANY,ALL,EXISTS,NOT EXISTS,.....
WHERE CLAUSE:
-------------------------
IS A CONDITION ON SELECT STMT.
ARITH:
-------------
WRITE A QUERY TO DISPLAY THE SAL BY GIVING A RAISE OF 10% AS RAISE_SAL:
------------------------------
SELECT SAL,SAL+SAL*.10 AS RAISE_SAL FROM EMP;
LOGICAL:
---------------
SELECT * FROM EMP WHERE SAL > 2000 AND DEPTNO = 20;
RELATIONAL:
--------------------
SELECT * FROM EMP WHERE SAL > 2000 AND DEPTNO != 20;
OR
SELECT * FROM EMP WHERE SAL > 2000 AND DEPTNO <> 20;
MISC
---------
IN
SELECT * FROM EMP WHERE DEPTNO IN(10,20);
SELECT * FROM EMP WHERE JOB IN('MANAGER','ANALYST');
NOT IN
SELECT * FROM EMP WHERE JOB NOT IN('SALESMAN');
BETWEEN
SELECT * FROM EMP WHERE SAL BETWEEN 2450 AND 5000;
LIKE'%'
SELECT ENAME FROM EMP WHERE ENAME LIKE'A%';
SELECT ENAME FROM EMP WHERE ENAME LIKE'%S';
SELECT ENAME FROM EMP WHERE ENAME LIKE'A%S';
SELECT ENAME FROM EMP WHERE ENAME LIKE'____';->4 CHAR
CLASS ASSIGNMENT:
--------------------------------
ENAME
------------
A%NIL
ANC%HAN
SQL> SELECT * FROM EMP WHERE ENAME LIKE '%X%%' ESCAPE 'X';
IS NULL
--------------
WRITE A QUERY TO DISPLAY THE EMP ENAMES WHOSE COMM ARE NULL:
----------------------------------------------------------------------------------
----------
SELECT ENAME,COMM FROM EMP WHERE COMM = NULL;
---> WRONG
SELECT ENAME,COMM FROM EMP WHERE COMM IS NULL;
---> RIGHT
WHAT IS NULL?
NULL IS DEFINED AS NO VALUE.
NOTE:
-----------
NULL
''
'&COMM' ----> <ENTER>
SQL CLAUSES:
----------------------
WHERE
GROUP BY
AGGREGATE FNS : MIN()
MAX()
AVG()
SUM()
COUNT()
COUNT()
COUNT(*)
COUNT(COLNAME)
COUNT(DISTINCT COLNAME)
HAVING
ORDER BY
WHERE CLAUSE:
-------------------------
IS A CONDITION ON SELECT STMT.
DISTINCT
---------------
ELIMINATES DUPLICATES.
ARRANGE THE OUTPUT IN ASCENDING ORDER.
LIMITATIONS:
-----------------------
SELECT ENAME,DISTINCT JOB FROM EMP;
SELECT DISTINCT ENAME,DISTINCT JOB FROM EMP;
COUNT()
COUNT(*) : INCL DUPL + INCL NULL
COUNT(COLNAME) : INCL DUPL - EXCL NULL
COUNT(DISTINCT COLNAME) : EXCL DUPL - EXCL NULL
GROUP BY:
-----------------
ELIMINATES DUPLICATES
GROUPS THE OUTPUT BASED ON THE COLUMN SELECTED
IN THE GROUP BY.
SELECT COUNT(*),DEPTNO,MAX(SAL),MIN(SAL),AVG(SAL),
SUM(SAL) FROM EMP GROUP BY DEPTNO;
LIMITATIONS
--------------------
SELECT ENAME,MAX(SAL) FROM EMP GROUP BY DEPTNO;
--> ERROR
SELECT ENAME,MAX(SAL) FROM EMP
GROUP BY ENAME; --> SOLN
OR
SELECT ENAME,MAX(SAL) FROM EMP
GROUP BY DEPTNO,ENAME; --> SOLN
HAVING
-------------
IS A CONDITION ON THE GROUP BY CLAUSE.
SELECT COUNT(*),DEPTNO,MAX(SAL),MIN(SAL),AVG(SAL),
SUM(SAL) FROM EMP
GROUP BY DEPTNO HAVING COUNT(DEPTNO)>=5;
OR
SELECT COUNT(*),DEPTNO,MAX(SAL),MIN(SAL),AVG(SAL),
SUM(SAL) FROM EMP
GROUP BY DEPTNO HAVING COUNT(*)>=5;
OR
SELECT COUNT(*),DEPTNO,MAX(SAL),MIN(SAL),AVG(SAL),
SUM(SAL) FROM EMP HAVING COUNT(*)>=5
GROUP BY DEPTNO ;
ORDER BY:
----------------
ARRANGE THE OUTPUT IN ASCENDING ORDER(DEFAULT)