0% found this document useful (0 votes)
7 views27 pages

SQL Final Notes-1

SQL, or Structured Query Language, is a database language used for interacting with databases to perform CRUD operations (Create, Read, Update, Delete) and validate data. Developed by IBM in the 1970s, SQL is not a programming language but a sublanguage for managing data in a structured format, primarily through relational database management systems (RDBMS). Key features include data integrity, data types, constraints, and various SQL commands for data manipulation and querying.

Uploaded by

pratikkalaghan1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views27 pages

SQL Final Notes-1

SQL, or Structured Query Language, is a database language used for interacting with databases to perform CRUD operations (Create, Read, Update, Delete) and validate data. Developed by IBM in the 1970s, SQL is not a programming language but a sublanguage for managing data in a structured format, primarily through relational database management systems (RDBMS). Key features include data integrity, data types, constraints, and various SQL commands for data manipulation and querying.

Uploaded by

pratikkalaghan1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 27

SQL:

---
IT STANDS FOR STRUCTURED QUERY LANGUAGE OR SEQUENTIAL QUERY LANGUAGE.
SQL IS USED TO INTERACT WITH THE DATABASE TO CHECK WHETHER THE FRONT END DATA IS
STORED OR NOT.
SQL IS USED TO PERFORM BACK END VALIDATION OR TEST DATA VALIDATION.
THE PROCESS OF CHECKING THE FRONT END DATA IN THE BACK END IS CALLED AS BACK END
VALIDATION.

NOTE:
----
SQL IS NOT A PROGRAMMING LANGUAGE.
BECAUSE WE CANNOT DEVELOP A NEW SOFTWARE USING SQL.
IT IS ONLY A DATABASE LANGUAGE.

->SQL IS USED TO PERFORM CRUD OPERATIONS WITH THE DATABASE.


C->CREATE
R->READ
U->UPDATE
D->DELETE.

HISTORY OF SQL:
----------------
SQL WAS DEVELOPED BY IBM IN THE YEAR 1970.
RAYMOND BOYCE IS CALLED AS THE FATHER OF SQL.
EF CODD IS KNOWN AS THE CO-FATHER OF SQL.
IN THE EARLIER DAYS, IT WAS KNOWN AS SEQUEL.
SEQUEL-SIMPLE ENGLISH QUERY EXECUTABLE LANGUAGE.
SQL WAS CERTIFIED BY ANSI IN THE YEAR 1979, AND IN THE SAME YEAR, SEQUEL GOT
RENAMED TO SQL.
ANSI-AMERICAN NATIONAL STANDARD INSTITUTE.

NOTE:
----
WE ARE GOING TO LEARN SQL DEVELOPED BY ORACLE, AS IT IS STUDENT-FRIENDLY AND WIDELY
USED IN THE IT COMPANIES.

SQL SOFTWARE VERSIONS RELEASED BY ORACLE:


----------------------------------------
1I,2I,3I......9I
10G,11G
12C,18C,19C,21C,23C

I-INTERNET
G-GRID
C-CLOUD

WE CAN INSTALL 11G VERSION IN THE LAPTOP.

BASIC TERMS:
-----------
*DATA:
------
IT IS A PIECE OR COLLECTION OF VALUES WHICH DESCRIBES A REAL WORLD OBJECT.

EXAMPLE:
-------
->DATA BECOMES INFORMATION IF IT IS PROCESSED.
->DATA BECOMES RAW-FACT IF IT IS NOT PROCESSED.
->INFORMATION CONTAINS DATA, BUT DATA IS NOT ALWAYS AN INFORMATION.
EXAMPLE:
-------

*DATABASE:
-----------
IT IS A PLACE WHICH IS USED TO STORE THE DATA IN A SYSTEMATIC AND ORGANIZED WAY.
IT IS A COLLECTION OF DATA.
IT IS KNOWN AS A CENTRALIZED PLACE BECAUSE OF 2 REASONS:
1)ALL THE DATA IS STORED IN A SINGLE PLACE.
2)ALL THE USERS CAN ACCESS THE DATA FROM A SINGLE PLACE.

THE FEATURES OF THE DATABASE ARE "CRUD" OPERATIONS.


EXAMPLES OF DATABASE:MOBILE,BOTTLE, COMPUTER, WHATSAPP, GOOGLE DRIVE, AMAZON,
YOUTUBE ETC..

SQL CONTENTS:
-------------
*DATA
*DATABASE
*DBMS
*R-DBMS
*DATA TYPES AND CONSTRAINTS
*DQL:*PROJECTION.
*SELECTION.
*OPERATORS.
*FUNCTIONS
*GROUP BY AND HAVING CLAUSE.
*SUBQUERY
*JOINS
*CO-RELATED SUBQUERY
*PSUEDOCOLUMNS

*SQL SUBLANGUAGES/STATEMENTS/COMMANDS
*VIEWS
*NORMALIZATION
*SINGLE ROW FUNCTIONS.

NOTE:
-----
QUERY LANGUAGES:
----------------------
THE LANGUAGES WHICH CAN INTERACT WITH THE DATABASE ARE CALLED AS QUERY LANGUAGES.
EXAMPLE: AQL,SQL,CYPHER,DATALOG ETC..

*DBMS:
-----
->IT STANDS FOR DATABASE MANAGEMENT SYSTEM.
->IT IS A SOFTWARE WHICH IS USED TO EXECUTE ALL THE QUERY LANGUAGES.
->IN DBMS SOFTWARE, THE DATA IS STORED IN FILE FORMAT, THEREFORE WE CANNOT
ESTABLISH RELATIONSHIP BETWEEN THE FILES, THIS IS THE DRAWBACK OF THE DBMS
SOFTWARE.
->TO OVERCOME THIS DRAWBACK , R-DBMS SOFTWARE WAS DEVELOPED.

*R-DBMS:
--------
->IT STANDS FOR RELATIONAL DATABASE MANAGEMENT SYSTEM.
->IT IS A SOFTWARE WHICH CAN EXECUTE ONLY SQL.
->THE DATA IS STORED IN TABLE FORMAT IN R-DBMS SOFTWARE, EVERY TABLE WILL HAVE
COMMON COLUMNS,
WE CAN ESTABLISH RELATIONSHIP BETWEEN THE TABLES BY USING PRIMARY KEY AND FOREIGN
KEY FOR THE COMMON COLUMNS OF THE TABLE.
->THIS IS THE MAIN ADVANTAGE OF R-DBMS SOFTWARE.

COMPARISON BETWEEN DBMS AND R-DBMS:


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

DBMS: IT STORES THE DATA IN FILE FORMAT.


WE CAN'T CREATE RELATIONSHIP BETWEEN THE FILES.
ALL THE QUERY LANGUAGES CAN BE EXECUTED.
USED IN SMALL SCALE COMPANIES.
IT DOESN'T SUPPORT NORMALIZATION.

R-DBMS: IT STORES THE DATA IN TABLE FORMAT.


WE CAN CREATE RELATIONSHIP BETWEEN THE TABLES.
IT CAN EXECUTE ONLY SQL.
USED IN MEDIUM-SCALE AND LARGE-SCALE COMPANIES.
IT SUPPORTS NORMALIZATION.

R-DBMS SOFTWARES AVAILABLE IN THE MARKET:


-----------------------------------------------
1)ORACLE DB
2)MYSQL
3)MICROSOFT SQL SERVER
4)IBM DB-2
5)MARIA DB
6)POSTGRE SQL

WE ARE GONNA INSTALL ORACLE DB SOFTWARE(11G) DEVELOPED BY ORACLE.

GOOD TO KNOW:
---------------
TABLE IS A COMBINATION OF ROWS AND COLUMNS.
THE DATA IN THE TABLE WILL BE STORED INSIDE A CELL.

DATA INTEGRITY:
---------------
THE PROCESS OF ENTERING THE VALID DATA IN THE TABLE AND AVOIDING THE INVALID DATA
IN THE TABLE IS KNOWN AS DATA INTEGRITY.

DATATYPE:
--------
THE TYPE OF DATA WHICH IS STORED IN THE TABLE IS CALLED AS DATATYPE.
DATATYPE IS MANDATORY FOR EVERY COLUMN IN THE TABLE.
ONE COLUMN SHOULD BE HAVING ONLY ONE DATATYPE.
THE DATATYPES USED IN SQL ARE:
1)CHAR(CHARACTER)
2)VARCHAR/VARCHAR2(VARIABLE CHARACTER)
3)NUMBER
4)DATE

1)CHAR:
------
CHARACTERS ARE:
ALPHABETS (A-Z/a-z)-UPPER/LOWER CASE
DIGITS(0-9)
SPECIAL SYMBOLS (!,@,#,$,....)

CHAR IS USED TO STORE THE CHARACTERS IN THE COLUMN OF THE TABLE.


THE DEFAULT SIZE FOR CHAR IS 1.
EXAMPLE:
----------

2)VARCHAR:
----------

VARCHAR IS ALSO USED TO STORE THE CHARACTERS IN THE COLUMN OF THE TABLE.
THERE IS NO DEFAULT SIZE FOR VARCHAR (SIZE IS COMPULSORY).
EXAMPLE:
---------

COMPARISON BETWEEN CHAR AND VARCHAR:


-----------------------------------
CHAR:
----
THE UNOCCUPIED BLOCKS IN THE CELL IS FILLED WITH SPACE WHICH COMSUMES MEMORY.
IT FOLLOWS FIXED ALLOCATION OF MEMORY.
THE DEFAULT SIZE IS 1.
MAXIMUM SIZE IS 2000 CHARACTERS.

VARCHAR:
-------
THE UNOCCUPIED BLOCKS IN THE CELL IS EMPTY(NULL) WHICH DOES NOT COMSUME MEMORY.
IT FOLLOWS VARIABLE ALLOCATION OF MEMORY.
THERE IS NO DEFAULT SIZE.
MAXIMUM SIZE IS 4000 CHARACTERS.

3)NUMBER:
--------
IT IS USED TO STORE ONLY THE DIGITS(0-9) IN THE COLUMN.
THE DEFAULT SIZE IS 1.
WE CANNOT STORE ALPHABETS AND SPECIAL SYMBOLS FOR NUMBER DATATYPE.

EXAMPLE:
----------

TO STORE THE DECIMAL VALUES IN THE COLUMN OF THE TABLE, WE CAN USE NUMBER DATATYPE
IN THE FOLLOWING FORMAT:

NUMBER(PRECISION, SCALE)

PRECISION(P)->IT REPRESENTS THE TOTAL NUMBER OF DIGITS.


SCALE(S)->IT REPRESENTS THE NUMBER OF DECIMALS.
PRECISION-SCALE(P-S)->IT REPRESENTS THE NUMBER OF INTEGERS.

EXAMPLE:
67.891
P=5
S=3
P-S=2
4)DATE:
------
IT IS USED TO STORE ONLY THE DATE VALUES IN THE COLUMN OF THE TABLE.
THERE IS NO SIZE FOR DATE DATATYPE.
THE DATE FORMAT USED IN SQL IS 'DD-MON-YY'(31-MAY-24).

*CONSTRAINTS:
--------------
THEY ARE THE CONDITIONS WHICH IS USED FOR THE COLUMNS IN THE TABLE.
CONSTRAINTS ARE OPTIONAL FOR THE COLUMNS, BUT IT IS HIGHLY RECOMMENDED.
ONE COLUMN CAN HAVE MULTIPLE CONSTRAINTS.
THE CONSTRAINTS USED IN SQL ARE:
1)NOT NULL.
2)UNIQUE.
3)CHECK.
4)PRIMARY KEY.
5)FOREIGN KEY.

GOOD TO KNOW:
--------------
NULL:
-----
THE EMPTY CELLS IN THE TABLE ARE CALLED AS NULL.
NULL WILL NOT OCCUPY THE MEMORY IN THE TABLE.
ZERO AND SPACE CANNOT BE CALLED AS NULL.
THE ARITHMETIC OPERATIONS PERFORMED WITH A NULL WILL GIVE THE OUTPUT AS NULL.
ANY 2 NULL IN THE TABLE ARE NOT SAME BECAUSE THEIR ADDRESS WILL BE DIFFERENT.

EXAMPLE:
----------

1)NOT NULL:
----------
IT IS USED TO AVOID THE NULL VALUE IN THE COLUMN.
BUT IT ALLOWS DUPLICATES.
EXAMPLE:

2)UNIQUE:
---------
IT IS USED TO AVOID THE DUPLICATE VALUES IN THE COLUMN.
BUT IT ALLOWS NULL.
EXAMPLE:

3)CHECK:
-------
IT IS USED TO STORE THE VALUES IN THE COLUMN BASED ON A SPECIFIC CONDITION.
IT SHOULD BE USED IN THE FORMAT- CHECK(CONDITION)
EXAMPLE:

4)PRIMARY KEY:
-------------
->IT IS A COMBINATION OF NOT NULL AND UNIQUE CONSTRAINT.
->IT IS USED TO IDENTIFY THE RECORDS OF THE TABLE UNIQUELY.
->THE COLUMNS HAVING NOT NULL AND UNIQUE CONSTRAINT ARE ELIGIBLE TO BECOME A
PRIMARY KEY, THESE COLUMNS ARE CALLED AS CANDIDATE KEYS.
->FROM THE CANDIDATE KEYS, THE COLUMN HAVING NUMBER DATATYPE WITH LESS SIZE SHOULD
BE SELECTED AS THE PRIMARY KEY.
->THE CANDIDATE KEYS WHICH IS NOT A PRIMARY KEY ARE CALLED AS ALTERNATE KEYS.
->THE PRIMARY KEY COLUMN CANNOT TAKE DUPLICATE AND NULL VALUES.
->PRIMARY KEY COLUMN IS MANDATORY IN EVERYTABLE AND ONLY ONE PRIMARY COLUMN IS
ALLOWED IN ONE TABLE.
->THE TABLE HAVING PRIMARY KEY COLUMN IS KNOWN AS PARENT/MASTER TABLE.

5)FOREIGN KEY/REFERENTIAL INTEGRITY CONSTRAINT:


---------------------------------------------
->IT IS USED TO ESTABLISH RELATIONSHIP BETWEEN 2 TABLES.
->ONLY THE PRIMARY KEY COLUMN IN ONE TABLE CAN BE USED AS A FOREIGN KEY COLUMN IN
ANOTHER TABLE.
->FOREIGN KEY COLUMN CAN TAKE DUPLICATES AND NULL VALUES BUT IT CANNOT TAKE THE
VALUES WHICH IS NOT IN THE PRIMARY KEY COLUMN.
->A TABLE CAN HAVE MULTIPLE FOREIGN KEY COLUMNS.
->THE TABLE WHICH CONTAINS FOREIGN KEY IS CALLED AS CHILD/SLAVE TABLE.

SQL SUBLANGUAGES/COMMANDS/STATEMENTS:
-------------------------------------
1)DQL:DATA QUERY LANGUAGE
2)DDL:DATA DEFINITION LANGUAGE.
3)DML:DATA MANIPULATION LANGUAGE.
4)TCL:TRANSACTION CONTROL LANGUAGE.
5)DCL:DATA CONTROL LANGUAGE.

THE STATEMENTS OR COMMANDS OR KEYWORDS OF THE SUB LANGUAGES ARE:


DQL: SELECT
DDL: CREATE,ALTER,RENAME,TRUNCATE,DROP.
DML: INSERT,UPDATE,DELETE.
TCL: ROLLBACK,COMMIT,SAVEPOINT.
DCL: GRANT,REVOKE.

*DQL:
-----
IT IS USED TO FETCH/ACCESS THE DATA FROM THE DATABASE.

PROJECTION:
------------
FETCHING ALL THE COLUMNS OR PARTICULAR COLUMNS FROM THE TABLE IS CALLED AS
PROJECTION.
BY DEFAULT, ALL THE ROWS WILL BE SELECTED IN THE OUTPUT.

SYNTAX OF PROJECTION (OR) SYNTAX OF SQL QUERY:


---------------------------------------------
2)SELECT */COLNAME
1)FROM TABLENAME;

THE ABOVE INSTRUCTIONS IS CALLED AS A QUERY.

NOTE:
-----
SELECT AND FROM ARE CALLED AS CLAUSE.
SQL IS NOT A CASE-SENSITIVE LANGUAGE.

EXAMPLE:
-------
2)WAQTD THE PERCENTAGE OF ALL THE STUDENTS.
3)WAQTD THE ID AND BRANCH OF ALL THE STUDENTS.
4)WAQTD THE PERCENTAGE,NAME AND ID FOR ALL THE STUDENTS.
5)WAQTD THE DETAILS OF ALL THE STUDENTS.5

EMP TABLE:
---------
1)WAQTD THE DETAILS OF ALL THE EMPLOYEES.
2)WAQTD THE NAME OF ALL THE EMPLOYEES.
3)WAQTD THE DEPARTMENT NUMBER OF ALL THE EMPLOYEES.
4)WAQTD THE EMPLOYEE NUMBER AND DESIGNATION FOR ALL THE EMPLOYEES.
5)WAQTD THE EMPLOYEENAME AND MANAGER NUMBER FOR ALL THE EMPLOYEES.
6)WAQTD THE DATE OF JOINING,COMMISSION AND SALARY FOR ALL THE EMPLOYEES.

DEPT TABLE:
----------
1)WAQTD THE NAME AND LOCATION OF ALL THE DEPARTMENT.
2)WAQTD THE DETAILS OF ALL THE DEPARTMENT.

SALGRADE TABLE:
--------------
1)WAQTD THE LOWEST SALARY AND HIGHEST SALARY FOR ALL THE EMPLOYEES.

NOTE:
----
THE NAME OF THE SQL SOFTWARE IS SQL PLUS.(11G VERSION)
USER NAME IS SCOTT
PASSWORD IS ORACLE1234

BASIC OPERATIONS IN THE SOFTWARE:


---------------------------------
1)SET:
-----
IT IS USED TO SET THE LINESIZE AND PAGESIZE SO THAT THE TABLE WILL DISPLAYED IN THE
OUTPUT WITH PROPER ALIGNMENT.
EXAMPLE:
--------
SET LINES 100 PAGES 100;

2)DESCRIBE:
----------
IT IS USED TO DISPLAY ALL THE COLUMNS OF THE TABLE ALONG WITH THEIR DATATYPES.
EXAMPLE:
DESCRIBE EMP;
DESCRIBE DEPT;

3)CONNECT:
----------
IT IS USED TO CONNECT FROM ONE DATABASE TO ANOTHER.
EXAMPLE:

CONNECTING FROM SCOTT TO HR DATABASE:


CONNECT
UN:HR
PWD:ORACLE1234

CONNECTING FROM HR TO SCOTT DATABASE:


CONNECT
UN:SCOTT
PWD:ORACLE1234

4)SELECT * FROM TAB;


--------------------
THIS QUERY WILL SHOW ALL THE TABLE NAMES IN THE DATABASE.

*SOFTWARE INSTALLATION STEPS:.


------------------------
-TO CHECK WHETHER THE LAPTOP IS 64-BIT OR 32-BIT OS,
FILE EXPLORER->RIGHT CLICK ON THIS PC->PROPERTIES.
-IF YOUR LAPTOP IS HAVING 32-BIT OS, DOWNLOAD THE 32-BIT SOFTWARE FILES FROM THE
LINK.
-IF YOUR LAPTOP IS HAVING 64-BIT OS, DOWNLOAD THE 64-BIT SOFTWARE FILES FROM THE
LINK.

-DOWNLOAD THE 3 FILES FROM THE LINK ,AND SAVE IT ANY DRIVE(D/C/E) IN A FOLDER
CALLED "SQL".
-DOUBLE CLICK ON THE 7-ZIP FILE AND INSTALL IT.
-RIGHT CLICK ON THE FIRST FILE->7-ZIP->EXTRACT HERE.
-RENAME DATABASE AS DATABASE1.
-RIGHT CLICK ON THE SECOND FILE->7-ZIP->EXTRACT HERE.
-RENAME DATABASE AS DATABASE2.
-GO TO DATABASE2->STAGE->COMPONENTS->SELECT ALL THE FILES AND COPY IT.
->GO TO DATABASE1->STAGE->COMPONENTS->PASTE ALL THE COPIED FILES.
->DOUBLE CLICK ON SETUP FILE IN THE DATABASE 1 FOLDER->IGNORE ALL THE WARNING
MESSAGES BY CLICKING ON "YES".
-DON'T ENTER THE EMAIL-ID AND UNTICK THE CHECK BOX.
-CLICK ON NEXT.(IGNORE THE WARNING MESSAGE)
-CLICK ON NEXT 2 TIMES.
-ADMINISTRATIVE PASSWORD IS ORACLE1234.
-CLICK ON NEXT.
-CLICK ON SAVE RESPONSE FILE AND CLICK ON SAVE BUTTON.
-IGNORE THE WARNING MESAGES WHEN THE INSTALLATION IS IN PROGRESS.
IN THE END,
-DONT CLICK ON OK BUTTON.
-CLICK ON PASSWORD MANAGEMENT, UNLOCK SCOTT AND HR USER BY SETTING THE PASSWORD AS
ORACLE1234.
-AFTER ALL THIS , CLICK ON OK BUTTON.
-FINISH THE INSTALLATION.
-SEARCH THE NAME OF THE SOFTWARE IN THE SEARCH BOX AND OPEN THE SOFTWARE.

*DISTINCT CLAUSE:
---------------
IT IS USED TO REMOVE THE DUPLICATE VALUES FROM THE OUTPUT OF THE QUERY.
DISTINCT CLAUSE CANNOT REMOVE THE DUPLICATES FROM THE TABLE.
IT SHOULD BE USED BEFORE A COLUMN NAME.
EXAMPLE: COPY FROM THE BOARD

SYNTAX:
------
2)SELECT DISTINCT COLUMNNAME
1)FROM TABLENAME;

WAQTD THE UNIQUE NAME OF ALL THE GIRLS.


WAQTD THE UNIQUE COMBINATION OF BOY AND GIRL.

WAQTD THE UNIQUE DEPARTMENT NUMBER FOR ALL THE EMPLOYEES.


WAQTD THE JOB WITHOUT DUPLICATES.
WAQTD THE UNIQUE COMBINATION OF JOB AND MANAGER NUMBER.

NOTE:
------
IF MULTIPLE COLUMNS ARE TAKEN IN THE DISTINCT CLAUSE, WE GET THE UNIQUE COMBINATION
OF VALUES IN THOSE COLUMNS.

EXPRESSION:
----------
IT IS A COMBINATION OF OPERATOR AND OPERANDS.
EXAMPLE:

1)WAQTD THE ANNUAL SALARY FOR ALL THE EMPLOYEES.


2)WAQTD THE ANNUAL COMMISSION FOR ALL THE EMPLOYEES.
3)WAQTD THE HALF TERM COMMISSION AND HALF TERM SALARY FOR ALL THE EMPLOYEES.
4)WAQTD THE SALARY WITH AN INCREMENT OF 700.
5)WAQTD THE COMMISSION WITH A DECREMENT OF 100.
6)WAQTD THE 50 PERCENTAGE OF SALARY FOR ALL THE EMPLOYEES.
7) WAQTD THE 75 PERCENTAGE OF COMMISSION FOR ALL THE EMPLOYEES.

*ALIAS:
-------
IT IS AN ALTERNATE NAME WHICH IS USED FOR THE COLUMNS OR EXPRESSIONS TO FETCH A
USER-FRIENDLY OUTPUT.
SYNTAX:
---------
SELECT COLNAME AS ALIAS
FROM TABLENAME;

'AS' KEYWORD IS OPTIONAL.


ALIAS WILL RENAME THE COLUMNS ONLY IN THE OUTPUT, BUT NOT IN THE TABLE.

EXAMPLE:
-------
ASSIGNMENT :WRITE ALL THE QUERIES OF EXPRESSION TOPIC WITH ALIAS, AGAIN.

*SELECTION:
-----------
USING SELECTION PRINCIPLE, WE CAN FETCH ALL THE COLUMNS OR PARTICULAR COLUMNS FROM
THE TABLE ALONG WITH PARTICULAR ROWS.
EXAMPLE:
---------------
SYNTAX OF SELECTION QUERY:
--------------------------
3)SELECT */COLNAME
1)FROM TABLENAME
2)WHERE CONDITION;

WHERE IS CALLED AS A CLAUSE.


THE CONDITION SYNTAX IS :

LHS OPERATOR RHS


----------------
THE CONDITION CAN EITHER BE TRUE OR FALSE.
THE OPERATORS THAT CAN BE TAKEN ARE :
=, !=, <, >, >=, <=.

WHERE CLAUSE:
-------------
IT IS USED TO FILTER THE RECORDS IN THE TABLE.
IT WILL CHECK THE CONDITION ROW-BY-ROW.
IF THE CONDITION IS TRUE, THE RECORD WILL BE SELECTED.
IF THE CONDITION IS FALSE, THE RECORD WILL BE REJECTED.

THE RHS VALUE IN THE CONDITION IS CASE-SENSITIVE(DEPENDS ON THE TABLE DATA)


AND SHOULD BE USED WITHIN SINGLE QUOTES.

EXAMPLE:COPY FROM THE BOARD.


-------

1)WAQTD THE EMPLOYEENAMES WORKING IN THE DEPARTMENT 10.


2)WAQTD THE EMPLOYEENAMES WHO ARE REPORTING TO THE MANAGER NUMBER 7698.
3)WAQTD THE EMPLOYEENUMBERS WORKING AS A CLERK.
4)WAQTD THE JOB OF THE EMPLOYEE WARD.
5)WAQTD THE DEPARTMENT NUMBER AND HIREDATE FOR THE EMPLOYEE ID 7839.
6)WAQTD THE COMMISSION FOR THE EMPLOYEE KING.
7)WAQTD THE SALARY AND NAME FOR THE EMPLOYEES WHO GOT HIRED ON 2ND APRIL 1981.
8)WAQTD THE EMPLOYEE DETAILS GETTING SALARY MORE THAN 1000.
9)WAQTD THE EMPLOYEENAMES WHO ARE NOT WORKING AS A SALESMAN.
10)WAQTD THE EMP DETAILS WHO GOT HIRED AFTER THE YEAR 1981.

ORDER BY CLAUSE:
------------------
IT IS USED TO SORT/ARRANGE THE VALUES IN ASCENDING OR DESCENDING ORDER.
SYNTAX:
------

3)SELECT */COLNAME
1)FROM TABLENAME
2)WHERE CONDITION
4)ORDER BY COLNAME [ASC]/DESC;

ORDER BY CLAUSE WILL SORT ONLY THE OUTPUT DATA, BUT THE TABLE DATA WILL NOT BE
AFFECTED.
ASC KEYWORD IS OPTIONAL, BY DEFAULT IT WILL FETCH THE VALUES IN ASCENDING ORDER.
IT ALWAYS EXECUTES IN THE END, AND IT IS USED IN THE LAST LINE OF THE QUERY.

1)WAQTD THE SALARY VALUES IN ASCENDING ORDER.


2)WAQTD THE COMMISSION VALUES IN DESCENDING ORDER.
3)WAQTD THE EMPLOYEENAMES IN ALPHABETICAL ORDER.
4)WAQTD THE SALARY OF SALESMAN IN INCREASING ORDER.

OPERATORS:
----------
ARITHMATIC OPERATORS:+, -, *, /
RELATIONAL/COMPARISON:<, >, <=, >=, =, !=
LOGICAL OPERATORS:AND, OR , NOT
SPECIAL OPERATORS : IN, BETWEEN, LIKE, IS,
NOT IN, NOT BETWEEN, NOT LIKE, IS NOT
SET OPERATORS:UNION, UNION ALL.

LOGICAL OPERATORS:
-------------------
IT IS USED TO WRITE MULTIPLE CONDITIONS IN THE WHERE CLAUSE.

AND OPERATOR:
------------
SYNTAX:
------

3)SELECT */COLNAME
1)FROM TABLENAME
2)WHERE CONDITION1 AND CONDITION2;

OR OPERATOR:
-----------
SYNTAX:
-------
3)SELECT */COLNAME
1)FROM TABLENAME
2)WHERE CONDITION1 OR CONDITION2;

1)WAQTD THE EMPLOYEENAMES WORKING AS A CLERK IN THE DEPARTMENT 20.


2)WAQTD THE JOB FOR THE EMPLOYEES REPORTING TO MANAGER NUMBER 7698 BUT WORKING IN
THE DEPARTMENT 30.
3)WAQTD THE EMPNAMES WORKING AS A CLERK OR A SALESMAN.
4)WAQTD THE DEPARTMENT NUMBER FOR THE EMPLOYEES REPORTING TO 7698 OR 7839.
5)WAQTD THE DETAILS OF THE EMPLOYEES SMITH AND ALLEN.

6)WAQTD THE MANAGER NUMBERS 7698 OR 7839 OR 7902.

NOTE:
-----
WHEN TO USE AND OPERATOR:
-------------------------
->IF ALL THE CONDITIONS HAVE TO BE EXECUTED AT THE SAME TIME, WE USE AND OPERATOR.
->IF THE COLUMN NAMES ARE DIFFERENT IN THE CONDITIONS, WE CAN USE AND OPERATOR.

WHEN TO USE OR OPERATOR:


-----------------------
->IF ANY ONE OF THE CONDITIONS HAVE TO BE EXECUTED , WE SHOULD USE OR OPERATOR.
->IF THE COLUMN NAMES ARE SAME IN THE CONDITIONS, WE CAN USE OR OPERATOR.

IF WE WANT TO SELECT MULTIPLE VALUES FROM A SINGLE COLUMN, WE CAN USE 'OR' OPERATOR
OR 'IN' OPERATOR, BUT 'OR' OPERATOR WILL INCREASE THE QUERY LENGTH, TO REDUCE THE
QUERY LENGTH, WE CAN USE 'IN' OPERATOR.

*SPECIAL OPERATORS:
-----------------
IN OPERATOR:
-----------
SYNTAX:
-------
LHS IN('RHS1','RHS2','RHS3',.....);
IT IS A REPLACEMENT FOR OR OPERATOR.
NOT IN:
-------
SYNTAX:
------
LHS NOT IN('RHS1','RHS2','RHS3',......);
IT WILL SELECT ALL THE VALUES EXCEPT THE RHS VALUES MENTIONED.

WAQTD THE EMPLOYEENAMES WORKING IN THE DEPARTMENT 10 AND 20.


WAQTD THE EMPLOYEENAMES WHO ARE WORKING AS A CLERK AND SALESMAN.
WAQTD THE JOB OF THE EMPLOYEES HAVING EMPLOYEE NUMBER 7369 ,7499.
WAQTD THE SALARY FOR THE EMPLOYEES WHO ARE NOT REPORTING TO THE MANAGER NUMBER 7698
AND 7839.

BETWEEN OPERATOR/RANGE OPERATOR:


--------------------------------
IT IS USED TO FETCH A RANGE OF VALUES.

SYNTAX:
------
WHERE LHS BETWEEN 'LOWESTVALUE' AND 'HIGHESTVALUE';
IT IS ALSO CALLED AS INCLUSIVE OPERATOR BECAUSE IT INCLUDES THE RANGE VALUES IN THE
OUTPUT.

NOT BETWEEN:
------------
IT SELECTS THE VALUES EXCEPT THE RANGE.
SYNTAX:
WHERE LHS NOT BETWEEN 'LOWESTVALUE' AND 'HIGHESTVALUE';

1)WAQTD THE SALARY VALUES FROM 1000 TO 2000.


2)WAQTD THE COMMISSION VALUES WITHIN 100 TO 800.
3)WAQTD THE EMP DETAILS WHO GOT HIRED IN THE YEAR 1981.
4)WAQTD THE DEPTNO FOR THE EMPLOYEES WHOSE EMPNUMBER IS NOT WITHIN 7500 TO 7800.
5)WAQTD THE JOB FOR THE EMPLOYEES WHO ARE NOT EARNING COMISSION FROM 1000 TO 2000.

LIKE OPERATOR:
-------------
IT IS USED TO PERFORM PATTERN MATCHING AND WILD CARD SEARCH.
IN LIKE OPERATOR,%(PERCENTILE) AND _(UNDERSCORE) ARE CALLED AS META CHARACTERS.
% ACCEPTS ANY NUMBER OF CHARACTERS.
_ ACCEPTS A SINGLE CHARACTER.
SYNTAX:
LHS LIKE 'PATTERN';
PATTERN SHOULD BE USED WITHIN SINGLE QUOTES.
PATTERN IS A COMBINATION OF ORDINARY CHARACTER AND METACHARACTER.
EX:(COPY FROM THE BOARD).
LIKE OPERATOR WILL NOT TAKE MULTIPLE PATTERNS AT THE SAME TIME.

1)WAQTD THE EMPNAMES WHICH IS STARTING WITH CHARACTER S.


2)WAQTD THE EMPNAMES WHICH ENDS WITH CHARACTER E.
3)WAQTD THE JOB VALUES WHICH CONTAINS CHARACTER L.
4)WAQTD THE JOB WHICH CONTAINS CHARACTER E TWO TIMES.
5)WAQTD THE EMPNAMES WHICH DOES NOT CONTAIN CHARACTER T.
6)WAQTD THE SALARY VALUES WHICH HAS TWO CONSECUTIVE ZERO.
7)WAQTD THE 3-DIGIT COMMISSION VALUES.
8)WAQTD THE EMP DETAILS WHO GOT HIRED IN THE YEAR 1980.
9)WAQTD THE DATE VALUES FROM DECEMBER MONTH.
10)WAQTD THE EMPNUMBERS WHICH CONTAINS DIGIT 8 IN THE SECOND POSITION.
11)WAQTD THE DESIGNATION WHICH CONTAINS 'G' IN THE THIRD POSITION FROM THE LAST.
12)WAQTD THE EMPLOYEE NUMBER STARTING WITH 7 AND ENDING WITH 9.
13)WAQTD THE EMPNAMES WHICH STARTS WITH 'S' OR 'A'.
14)WAQTD THE JOB VALUES WHICH CONTAINS FIVE CHARACTERS.

PATTERN MATCHING:
-----------------
IN A PATTERN, IF WE CAN FIND THE POSITION OF THE ORDINARY CHARACTER IT IS CALLED AS
PATTERN MATCHING.

EX: 'A%', '%G', '_Y%'

WILD CARD SEARCH:


-----------------
IN A PATTERN, IF WE CANNOT FIND THE POSITION OF THE ORDINARY CHARACTER IT IS CALLED
AS WILD CARD SEARCH.

EX:'%A%', '%H%'.

IS OPERATOR:
------------
IT IS USED TO FETCH THE NULL VALUES FROM THE TABLE.
SYNTAX:
LHS IS NULL;

IS NOT:
------
IT WILL FETCH THE VALUES WHICH ARE NOT NULL.
SYNTAX: LHS IS NOT NULL;

1)WAQTD THE EMPLOYEE NAMES WHO ARE NOT EARNING COMMISSION.


2)WAQTD THE EMPNAMES WHO ARE EARNING SOME COMMISSION.
3)WAQTD THE EMP,

SET OPERATORS:
-------------
IT IS USED TO COMBINE MULTIPLE QUERIES.
THERE ARE 2 SET OPERATORS:
1)UNION:
--------
IT COMBINES COMMON AND UNCOMMON VALUES WITHOUT DUPLICATES.
2)UNION ALL
------------
IT COMBINES COMMON AND UNCOMMON VALUES WITH DUPLICATES.

EX:
Q1={1,2}
Q2={2,3}

UNION:Q1UQ2={1,2,3}
UNION ALL:Q1 UNION ALL Q2={1,2,2,3}

EXAMPLE:

SELECT ENAME FROM EMP WHERE JOB='CLERK'


UNION
SELECT ENAME FROM EMP WHERE SAL<'1200';
SELECT ENAME FROM EMP WHERE JOB='CLERK'
UNION ALL
SELECT ENAME FROM EMP WHERE SAL<'1200';

FUNCTIONS:
----------
IT IS USED TO PERFORM A PARTICULAR OPERATION.
SYNTAX:FUNCTIONNAME(INPUTS)
EX: ADD(2,3)
OUTPUT IS 5.

THERE ARE 2 TYPES OF FUNCTIONS:


------------------------------
1)SINGLE ROW FUNCTIONS:
----------------------
IT WILL TAKE MULTIPLE INPUT AND PROVIDES MULTIPLE OUTPUT.
THE OUTPUT DEPENDS ON THE NUMBER OF INPUTS.

2)MULTI ROW FUNCTIONS:


---------------------
IT WILL TAKE MULTIPLE INPUT AND PROVIDES A SINGLE OUTPUT.
THE OUTPUT DEPENDS ON THE NUMBER OF GROUPS CREATED.

NOTE: MULTI ROW FUNCTIONS ARE ALSO CALLED AS GROUP/AGGREGATE FUNCTIONS.

THE MULTIROW FUNCTIONS ARE:


1) MIN(COLNAME):IT WILL FETCH THE LOWEST VALUE.
2)MAX(COLNAME):IT WILL FETCH THE HIGHEST VALUE.
3)AVG(COLNAME):IT WILL FETCH THE AVERAGE VALUE.
4)SUM(COLNAME):IT WILL FETCH THE TOTAL VALUE.
5)A)COUNT(COLNAME): IT WILL FETCH THE NUMBER OF VALUES IN THE COLUMN.
B)COUNT(*):IT WILL FETCH THE NUMBER OF RECORDS IN THE TABLE.

1)WAQTD THE NUMBER OF EMPLOYEES WORKING AS A CLERK.


2)WAQTD THE NUMBER OF EMPLOYEES WORKING IN THE DEPT 30.
3)WAQTD THE NUMBER OF EMPLOYEES WHO ARE NOT REPORTING TO 7698 AND 7839.
4)WAQTD THE HIGHEST SALARY FOR THE SALESMAN.
5)WAQTD THE LOWEST SALARY FOR THE EMPLOYEES WHO GOT HIRED IN THE YEAR 1981.
6) WAQTD THE TOTAL COMMISSION AND AVERAGE COMMISSION FOR THE EMPLOYEES
HAVING EMPLOYEE NUMBER 7499,7521 AND 7654.
7)WAQTD THE RECENT AND OLDEST DATE OF JOINING.
8)WAQTD THE NUMBER OF EMPLOYEES WHO ARE NOT EARNING COMMISSION.
9)WAQTD THE TOTAL SALARY FOR THE EMPLOYEES SMITH, ALLEN AND WARD.

GROUP BY CLAUSE:
----------------
IT IS USED TO CREATE MULTIPLE GROUPS INSIDE THE MULTI ROW FUNCTIONS, SO THAT WE CAN
FETCH MULTIPLE OUTPUT FROM IT.
IT EXECUTES ROW-BY-ROW IN THE TABLE.
IT GROUPS THE RECORDS OF THE TABLE.
THE NUMBER OF GROUPS CREATED BY GROUP BY CLAUSE IS EQUAL TO THE NUMBER OF UNIQUE
VALUES PRESENT IN THE COLUMN MENTIONED IN THE GROUP BY.

SYNTAX:
------
4)SELECT */COLNAME
1)FROM TABLENAME
2)WHERE CONDITION
3)GROUP BY COLNAME
5)ORDER BY COLNAME [ASC]/DESC;

EXAMPLE:
--------

1)WAQTD THE NUMBER OF EMPLOYEES IN EACH DEPARMENT NUMBER.


2)WAQTD THE NUMBER OF EMPLOYEES IN EACH JOB.
3)WAQTD THE NUMBER OF EMPLOYEES REPORTING TO EACH MANAGER NUMBER.

NOTE:
----
MULTIROW FUNCTION(MRF) CONDITION CANNOT BE EXECUTED IN THE WHERE CLAUSE, THEREFORE
WE SHOULD USE HAVING CLAUSE.

HAVING CLAUSE:
-------------
SYNTAX:
------
5)SELECT */COLNAME
1)FROM TABLENAME
2)WHERE CONDITION
3)GROUP BY COLNAME
4)HAVING MRF CONDITION
6)ORDER BY COLNAME [ASC]/DESC;

HAVING CLAUSE:
--------------
IT IS USED TO FILTER THE GROUPS.
IT IS USED TO EXECUTE MRF CONDITION.
IT EXECUTES GROUP-BY-GROUP.
IT EXECUTES AFTER THE GROUP BY CLAUSE.
HAVING CLAUSE CANNOT BE USED WITHOUT GROUP BY CLAUSE.

EXAMPLE:
--------
1)WAQTD THE NUMBER OF EMPLOYEES IN EACH DEPARTMENT NUMBER IF MORE THAN 3 EMPLOYEES
ARE WORKING.
2)WAQTD THE NUMBER OF EMPLOYEES IN EACH JOB IF LESS THEN 4 EMPLOYEES ARE WORKING.
3)WAQTD THE NUMBER OF EMPLOYEES REPORTING TO EACH MANAGER NUMBER IF ATLEAST 2
EMPLOYEES ARE REPORTING.

4)WAQTD THE DUPLICATE SALARY FROM THE EMP TABLE.

DIFFERENCE BETWEEN WHERE CLAUSE AND HAVING CLAUSE:


--------------------------------------------------
WHERE :
-------MRF CONDITION CANNOT BE USED.
IT EXECUTES BEFORE THE GROUP BY CLAUSE.
IT EXECUTES ROW-BY-ROW.
IT FILTERS THE RECORDS.

HAVING:
--------
MRF CONDITION CAN BE USED.
IT EXECUTES AFTER THE GROUP BY CLAUSE.
IT EXECUTES GROUP-BY-GROUP.
IT FILTERS THE GROUPS.

NOTE:
----
QUERY:IT IS A SET OF INSTRUCTIONS WHICH IS USED TO INTERACT WITH THE DATABASE.

SUBQUERY:
--------
A QUERY WHICH IS WRITTEN INSIDE ANOTHER QUERY IS CALLED AS SUBQUERY.
EXAMPLE
--------
(COPY FROM THE BOARD)

NESTED QUERY:
------------
Q1(Q2(Q3(Q4................Q255)))))..;
WE CAN NEST UPTO 255 QUERIES.

WORKING PRINCIPLE:
-----------------
INNER QUERY EXECUTES FIRST, AND PROVIDES THE OUTPUT.
THE OUTPUT OF THE INNER QUERY WILL BE GIVEN AS THE
INPUT TO THE OUTER QUERY.
THE OUTER QUERY EXECUTES IN THE END AND PROVIDES THE FINAL OUTPUT.
THE OUTER QUERY DEPENDS ON THE INNER QUERY BUT INNER QUERY IS INDEPENDANT.

WHY WE SHOULD USE SUBQUERY:


--------------------------
SUBQUERY IS USED TO FETCH NTH MAXIMUM OR NTH MINIMUM VALUES FROM THE TABLE.

1)WAQTD THE 2ND MAXIMUM SALARY.


2)WAQTD THE 3RD MAXIMUM SALARY.
3)WAQTD THE 3RD MINIMUM SALARY.
4)WAQTD THE 2ND LOWEST COMMISSION.
5)WAQTD THE 4TH HIGHEST COMMISSION.
6)WAQTD THE EMPLOYEE DETAILS EARNING 1ST MAXIMUM SALARY.
7)WAQTD THE EMPLOYEENAMES EARNING 1ST MINIMUM SALARY.

DRAWBACK OF SUBQUERY:
--------------------
TO FIND NTH MAXIMUM OR NTH MINIMUM VALUE, WE SHOULD WRITE 'N' NUMBER OF QUERIES,
THEREFORE IT INCREASES THE QUERY LENGTH AND THE EXECUTION TIME
AND DECREASES THE PERFORMANCE.

JOINS:
------
IT IS USED TO FETCH THE DATA FROM MULTIPLE TABLES AT THE SAME TIME.
THERE ARE 4 TYPES:
1)CARTESIAN/CROSS JOIN.
2)INNER/EQUI JOIN.
3)OUTER JOIN.
4)SELF JOIN.

CARTESIAN/CROSS JOIN:
---------------------
IT IS A CROSS PRODUCT OF 2 TABLES.(NUMBER OF RECORDS WILL BE MULTIPLIED).
IT FOLLOWS CARTESIAN PRINCIPLE WHERE EVERY RECORD OF ONE TABLE WILL BE MERGED WITH
EVERY RECORD OF ANOTHER TABLE.
EXAMPLE:
-------

SYNTAX:
------
ORACLE SYNTAX: ANSI SYNTAX:
-------------- ------------
SELECT */COLNAME SELECT */COLNAME
FROM T1,T2; FROM T1 CROSS JOIN T2;

WE DON'T USE WHERE CLAUSE IN THE CARTESIAN JOIN BECAUSE THERE IS NO JOINING
CONDITION.
EXAMPLE:
-------
VALID RECORD:
------------
THE RECORD OF ONE TABLE WHICH IS MATCHING WITH THE RECORD OF ANOTHER TABLE
IS CALLED AS VALID RECORD.

INVALID RECORD:
---------------
THE RECORD OF ONE TABLE WHICH IS NOT MATCHING WITH THE RECORD OF ANOTHER TABLE
IS CALLED AS INVALID RECORD.

CARTESIAN JOIN PROVIDES BOTH VALID AND INVALID RECORDS IN THE OUTPUT,
AND THE OUTPUT CONTAINS MORE INVALID RECORDS.
THIS IS THE DRAWBACK OF CARTESIAN JOIN.
TO OVERCOME THIS DRAWBACK, WE SHOULD USE INNER JOIN.

WAQTD THE EMPLOYEENAME AND DEPARTMENTNAME FOR ALL THE EMPLOYEES.

NOTE:
----
CARTESIAN JOIN CAN BE USED FOR THE TABLES WITH OR WITHOUT RELATIONSHIP(COMMON
COLUMNS).

INNER JOIN/EQUI JOIN:


---------------------
ORACLE SYNTAX FOR JOINING 2 TABLES:
-----------------------------------
SELECT */COLNAME
FROM T1, T2
WHERE T1.CC=T2.CC;

ANSI SYNTAX FOR JOINING 2 TABLES:


-----------------------------------
SELECT */COLNAME
FROM T1 [INNER] JOIN T2
ON T1.CC=T2.CC;

JOINING CONDITION:
T1.CC=T2.CC;
CC=COMMON COLUMNS.
JOINING CONDITION IS A SPECIAL CONDITION WHICH IS USED TO JOIN 2 TABLES.

DEFINITION:
----------
JOINING MULTIPLE TABLES USING COMMON COLUMNS BETWEEN THEM IS CALLED AS INNER JOIN.
INNER JOIN PROVIDES ONLY VALID RECORDS IN THE OUTPUT.
INNER JOIN CAN BE USED ONLY IF THE TABLES ARE HAVING RELATIONSHIP(COMMON COLUMNS).
IT IS CALLED AS EQUI JOIN BECAUSE EQUALS OPERATOR IS USED IN THE JOINING CONDITION.

1)WAQTD THE EMPLOYEENAMES AND THE DEPARTMENT NAMES FOR ALL THE EMPLOYEES.
2)WAQTD THE EMPNAME,JOB,DEPTNAME AND LOCATION FOR ALL THE EMPLOYEES.
3)WAQTD THE HIREDATE,EMPNO AND LOCATION FOR THE EMPLOYEES WORKING AS A CLERK.
4)WAQTD THE SALARY ,COMMISSION AND DEPTNAME FOR THE EMPLOYEES IN CHICAGO.
5)WAQTD THE LOCATION AND DEPTNAME FOR THE EMPLOYEES REPORTING TO THE MANAGER NUMBER
7698 AND 7839.
6)WAQTD THE EMPLOYEE NAMES WORKING IN RESEARCH DEPARTMENT.
7)WAQTD THE DEPTNAME, EMPLOYEENAME,MANAGER NUMBER FOR THE EMPLOYEES WORKING IN
CHICAGO BUT EARNING ATLEAST 2000 SALARY.
8)WAQTD THE EMPLOYEE NAME ,DEPTNAME AND LOCATION FOR THE EMPLOYEES WHO GOT HIRED IN
THE YEAR 1981.

9)WAQTD THE REGIONNAME AND COUNTRYNAME.


10)WAQTD THE COUNTRYNAME AND CITY.

NOTE:JOINS CAN ALSO BE USED TO FETCH THE DATA FROM A SINGLE TABLE.

ORACLE SYNTAX FOR JOINING 3 TABLES:


----------------------------------
SELECT */COLNAME
FROM T1, T2, T3
WHERE T1.CC=T2.CC
AND T2.CC=T3.CC;

NOTE:IF 'N' NUMBER OF TABLES ARE JOINED, WE SHOULD WRITE N-1 JOINING CONDITION.

WAQTD THE REGIONNAME, COUNTRYNAME AND CITY.

NOTE:
----
JOINING CONDITION FOR INNER JOIN:
WHERE T1.CC=T2.CC;
T1->LEFT TABLE
T2->RIGHT TABLE

OUTER JOIN:
----------
IT IS A COMBINATION OF INNER JOIN AND INVALID RECORDS(PARTICULAR TABLE).

OUTER JOIN = INNERJOIN(VALIDRECORDS) + INVALID RECORDS(PARTICULAR TABLE)

THERE ARE 3 TYPES OF OUTER JOIN:


-------------------------------
1)LEFT OUTER JOIN=INNERJOIN+ INVALID RECORDS(LEFT TABLE).
2)RIGHT OUTER JOIN=INNERJOIN+ INVALID RECORDS(RIGHT TABLE).
3)FULL OUTER JOIN=INNERJOIN+ INVALID RECORDS(LEFT AND RIGHT TABLE).

SYNTAX:
------
ORACLE: ANSI:
------ -----
LEFT OUTER JOIN
---------------
SELECT */COLNAME SELECT */COLNAME
FROM T1, T2 FROM T1 LEFT [OUTER] JOIN T2
WHERE T1.CC=T2.CC(+); ON T1.CC=T2.CC;

RIGHT OUTER JOIN


---------------
SELECT */COLNAME SELECT */COLNAME
FROM T1, T2 FROM T1 RIGHT [OUTER] JOIN T2
WHERE T1.CC(+)=T2.CC; ON T1.CC=T2.CC;

FULL OUTER JOIN


----------------
SELECT */COLNAME SELECT */COLNAME
FROM T1, T2 FROM T1 FULL [OUTER] JOIN T2
WHERE T1.CC=T2.CC(+) ON T1.CC=T2.CC;
UNION
SELECT */COLNAME
FROM T1, T2
WHERE T1.CC(+)=T2.CC;

1)WAQTD THE EMPLOYEENAME AND THEIR DEPARTMENT NAME ALONG WITH THE EMPLOYEE WHO IS
NOT WORKING IN ANY DEPARTMENT .

2)WAQTD THE EMPLOYEENAME AND THEIR DEPARTMENT NAME ALONG WITH THE DEPARTMENT WHICH
IS NOT HAVING EMPLOYEES.

3)WAQTD THE EMPNAME AND THEIR DEPARTMENT FOR ALL THE EMPLOYEES WHICH INCLUDES THE
EMPLOYEE WHO IS NOT HAVING DEPARMENT AND THE DEPARTMENT WITHOUT AN EMPLOYEE.

SELF JOIN:
---------
JOINING THE SAME TABLE IS CALLED AS SELF JOIN.
OR
JOINING A TABLE TO ITSELF IS CALLED AS SELF JOIN.

SYNTAX:
-------
SELECT */COLNAME
FROM T1, T1
WHERE T1.COLNAME=T1.COLNAME;
---------------------
JOINING CONDITION

IN THE JOINING CONDITION, THE SAME TABLE IS JOINED USING THE SAME COLUMN.

EXAMPLE:
--------
1)WAQTD THE EMPLOYEENAMES EARNING SAME SALARY.
2)WAQTD THE EMPLOYEENAMES WHO GOT HIRED ON THE SAME DATE.

WHY/WHEN WE SHOULD GO FOR SELFJOIN:


----------------------------------
IT IS USED TO JOIN THE SAME TABLE TO FETCH THE DATA FROM DIFFERENT RECORDS STORED
IN A SINGLE COLUMN.

CO-RELATED SUBQUERY:
-------------------
IT IS AN ADVANCED SUBQUERY.
IT IS USED TO OVERCOME THE DRAWBACK OF SUBQUERY BY REDUCING THE QUERY LENGTH TO
FIND NTH MAX/NTH MIN VALUES.
HERE WE USE A JOINING CONDITION IN THE WHERE CLAUSE OF THE INNER QUERY.

WORKING PRINCIPLE:
-----------------
->THE EXECUTION BEGINS WITH THE OUTER QUERY DUE TO THE PRESENCE OF JOINING
CONDITION IN THE INNER QUERY.
->THE OUTER QUERY EXECUTES PARTIALLY(ONLY FROM CLAUSE) FOR THE 1ST TIME AND
PROVIDES THE OUTPUT WH ICH IS TRANSFERED AS AN INPUT TO THE INNER QUERY.
->THE INNER QUERY RUNS COMPLETELY(SELECT,FROM AND WHERE CLAUSE) AND PROVIDES THE
OUTPUT WHICH IS PASSED AS AN INPUT TO THE OUTER QUERY.
->OUTER QUERY RUNS COMPLETLY FOR THE 2ND TIME AND PROVIDES THE FINAL OUTPUT.
->HERE THE OUTER AND INNER QUERY ARE DEPENDANT ON EACH OTHER.

1)WAQTD THE 6TH HIGHEST SALARY.


2)WAQTD THE 5TH MINIMUM SALARY.
3)WAQTD THE 3RD HIGHEST COMMISSION.
4)WAQTD THE 10TH LOWEST SALARY.
5)WAQTD THE EMPLOYEE DETAILS EARNING 1ST LOWEST SALARY.
6)WAQTD THE 1ST,2ND AND 3RD HIGHEST SALARY.

PSUEDOCOLUMNS:
-------------
PSUEDO MEANS FALSE.
THE COLUMNS WHICH ARE STORED IN THE TABLE BUT NOT VISIBLE TO THE USERS ARE CALLED
AS PSUEDOCOLUMNS.
THE PSUEDO COLUMNS ARE :
1)ROWID
2)ROWNUM

PSUEDOCOLUMNS ARE AUTO-GENERATED VALUES WHICH WILL BE PRESENT IN ALL THE TABLES IN
THE ORACLE DATABASE.

ROWID:
IT IS A 18-BIT ALPHANUMERIC ENCRYPTED VALUE.
IT IS NOT SEQUENTIAL BUT UNIQUE.
IT IS GENERATED BY INSERT COMMAND.
IT IS STATIC/PERMANENT VALUE.
IT REPRESENTS THE PHYSICAL ADDRESS OF THE ROW.

ROWNUM:
IT IS A INTEGER VALUE
IT IS SEQUENTIAL AND UNIQUE.
IT IS GENERATED BY SELECT CLAUSE.(ROWNUMBER WILL DEPEND ON THE NUMBER OF ROWS
SELECTED).
IT IS A DYNAMIC VALUE.
IT REPRESENTS THE COUNT OF ROWS IN THE TABLE.

WHEN TO GO FOR PSUEDOCOLUMNS:


----------------------------
WHEN WE HAVE TO FETCH THE DATA FROM THE TABLE WHICH IS NOT HAVING CLEAR
INFORMATION.(NUMBER OF COLUMNS, COLUMN NAMES AND NUMBER OF ROWS ARE UNKNOWN).
WHY PSUEDOCOLUMNS:
-----------------
TO FETCH THE RECORDS FROM THE TABLE WITHOUT USING ACTUAL COLUMNS IN THE TABLE.

EXAMPLE:
--------
1)WAQTD THE FIRST RECORD FROM THE EMP TABLE.
2)WAQTD THE LAST RECORD OF THE TABLE.
3)WAQTD THE 5TH RECORD OF THE TABLE.
4)WAQTD THE 3RD RECORD OF THE TABLE FROM THE LAST.
5)WAQTD THE 5TH,6TH AND 7TH RECORD OF THE TABLE.
6)WAQTD THE TOP 10 RECORDS OF THE EMP TABLE.
7)WAQTD THE BOTTOM 6 RECORDS OF THE TABLE.

NORMALIZATION/EF CODD RULES:


----------------------------
THE PROCESS OF DECOMPOSITION OF A LARGE/COMPLEX TABLE INTO MULTIPLE SMALL TABLES IS
CALLED AS NORMALIZATION.
IT WAS INTRODUCED B‍
Y EF CODD IN 1970.
TO IDENTIFY WHETHER THE TABLE IS SIMPLE OR COMPLEX, WE HAVE TO USE THE RULES OF
NORMALIZATION.

RULES OF NORMALIZATION/NORMAL FORMS:


-----------------------------------
1NF(1ST NORMAL FORM)
2NF
3NF
3.5NF(BCNF-BOYCE CODD NORMAL FORM)
4NF
5NF
6NF

1NF(1ST NORMAL FORM):


-------------------
RULE1:EVERY CELL IN A TABLE SHOULD CONTAIN A SINGLE VALUE.
RULE2:THE COLUMN NAMES IN THE TABLE MUST BE UNIQUE.
RULE3:A TABLE SHOULD NOT HAVE DUPLICATE RECORDS.

2NF(2ND NORMAL FORM)


--------------------
RULE1:THE TABLE SHOULD FOLLOW THE RULES OF 1ST NORMAL FORM.
RULE2:EVERY TABLE SHOULD HAVE A PRIMARY KEY COLUMN.
RULE3:FUNCTIONAL DEPENDANCY SHOULD BE PRESENT IN THE TABLE.
RULE4: PARTIAL DEPENDANCY SHOULD NOT BE PRESENT IN THE TABLE.

FUNCTIONAL DEPENDANCY(FD):
-------------------------
IF ALL THE NON PRIMARY KEY COLUMNS IN THE TABLE DEPENDS ON THE PRIMARY KEY
COLUMN ,IT IS CALLED AS FUNCTIONAL DEPENDANCY.
THE FD IS CREATED BY THE PRIMARY KEY COLUMN IN EVERY TABLE.

PARTIAL DEPENDANCY:
------------------
IF A NON PRIMARY KEY COLUMN DEPENDS ON ANOTHER NON PRIMARY KEY COLUMN , IT IS
CALLED AS PARTIAL DEPENDANCY.
(3NF)3RD NORMAL FORM:
----------------
RULE1:THE TABLE SHOULD FOLLOW THE RULES OF 2ND NORMAL FORM.
RULE2:TRANSITIVE FUNCTIONAL DEPENDANCY(TFD) IS NOT ALLOWED IN THE TABLE.

TFD:
----
CONSIDER A TABLE HAVING 3 COLUMNS C1, C2 AND C3, IF C3 DEPENDS ON C2 AND C2 DEPENDS
ON C1, THEN INDIRECTLY C3 WILL DEPEND ON C1, THIS KIND OF DEPENDANCY IS KNOWN AS
TRANSITIVE FUNCTIONAL DEPENDANCY.

IMPORTANT DIFFERENCES :
---------------------

DELETE ,TRUNCATE AND DROP:


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

DELETE:IT WILL REMOVE PARTICULAR RECORDS FROM THE TABLE.


IT IS A DML COMMAND.
IT IS NOT A PERMANENT ACTION.
WHERE CLAUSE IS USED.
EXECUTION TIME IS MORE.

TRUNCATE:IT WILL REMOVE ALL THE RECORDS FROM THE TABLE.


IT IS A DDL COMMAND.
IT IS A PERMANENT ACTION.
WHERE CLAUSE IS NOT USED.
EXECUTION TIME IS LESS.

DROP:IT WILL REMOVE THE TABLE FROM THE DATABASE.


IT IS A DDL COMMAND.
IT IS A PERMANENT ACTION.
WHERE CLAUSE IS NOT USED.
EXECUTION TIME IS LESS.

SQL AND MYSQL:


-------------
SQL:IT IS A DATABASE LANGUAGE.
---
MYSQL: IT IS A R-DBMS SOFTWARE WHICH IS USED TO EXECUTE SQL.
------

PRIMARY KEY AND UNIQUE KEY:


--------------------------
PRIMARY KEY:
-----------
IT DOES NOT ACCEPT NULL AND DUPLICATES.
A TABLE SHOULD HAVE ONLY ONE PRIMARY KEY.

UNIQUE KEY:
-----------
IT ACCEPTS NULL, BUT DOESN'T ACCEPT DUPLICATES.
A TABLE MAY HAVE MULTIPLE UNIQUE CONSTRAINTS.

UNIQUE AND DISTINCT:


-------------------
UNIQUE:IT AVOIDS THE DUPLICATES IN THE TABLE.
IT IS A CONSTRAINT.
IT IS USED WITH CREATE COMMAND.

DISTINCT :IT AVOIDS THE DUPLICATES IN THE OUTPUT.


IT IS A CLAUSE.
IT IS USED WITH SELECT CLAUSE.

SQL SUB-LANGUAGES/STATEMENTS/COMMANDS
--------------------------------------
===================================================================================
=========================================================================

1)DQL:SELECT
---
2)DDL(DATA DEFINITION LANGUAGE):
------------------------------

1)CREATE: CREATE STATEMENT IS USED TO CREATE A TABLE IN THE DATABASE.


---------
SYNTAX: CREATE TABLE TABLENAME
(COLNAME1 DATATYPE(SIZE) CONSTRAINT(S),
COLNAME2 DATATYPE(SIZE) CONSTRAINT(S),
.....................................
.....................................
COLNAMEN DATATYPE(SIZE) CONSTRAINT(S));

SYNTAX FOR ADDING FOREIGN KEY COLUMN:

COLUMNNAME DATATYPE(SIZE),
FOREIGN KEY(FKCOLNAME) REFERENCES PARENTABLENAME(PKCOLNAME);

TO COPY THE DATA FROM ONE TABLE TO ANOTHER:


------------------------------------------
SYNTAX: CREATE TABLE NEWTABLENAME
AS
SELECT * FROM TABLENAME;

2)ALTER: ALTER STATEMENT IS USED TO MODIFY THE TABLE W.R.T COLUMNS.


ADDING A COLUMN:
----------------

ALTER TABLE TABLENAME


ADD COLNAME DATATYPE CONSTRAINT(S);

RENAME A COLUMN:
---------------

ALTER TABLE TABLENAME


RENAME COLUMN OLD COLNAME TO NEW COLNAME;

DELETE A COLUMN:

ALTER TABLE TABLENAME


DROP COLUMN COLNAME;
3)RENAME: RENAME STATEMENT IS USED TO RENAME A TABLE.
---------
SYNTAX: RENAME OLDTABLENAME TO NEWTABLENAME;

4)TRUNCATE: TRUNCATE IS USED TO REMOVE ALL RECORDS OF A TABLE AT ONE SHOT. TRUNCATE
MAKES A TABLE EMPTY. TRUNCATE WILL NOT REMOVE
-----------
THE TABLE FROM DATABASE INSTEAD IT REMOVES RECORDS FROM TABLE.

SYNTAX: TRUNCATE TABLE TABLENAME;

5)DROP: DROP STATEMENT IS USED TO REMOVE A TABLE FROM DATABASE.


------
SYNTAX: DROP TABLE TABLENAME;

-->IF DROP IS APPLIED ON TABLE, THE TABLE WILL BE REMOVED FROM DATABASE AND GETS
STORED IN RECYCLEBIN.
TO RESTORE THE TABLE FROM RECYCLEBIN TO DATABASE,WE USE FLASHBACK.

FLASHBACK TABLE TABLENAME TO BEFORE DROP;

-->TO DELETE THE TABLE FROM THE RECYCLEBIN ,

PURGE TABLE TABLENAME;

-->TO REMOVE THE TABLE PERMANENTLY FROM THE DATABASE WITHOUT STORING IN BIN ,

DROP TABLE TABLENAME PURGE;

===================================================================================
================================================================

DML (DATA MANIPULATION LANGUAGE)


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

1)INSERT: INSERT STATEMENT IS USED TO ADD RECORDS INTO THE TABLE.


---------
SYNTAX: INSERT INTO TABLENAME VALUES(V1,V2,V3…);
OR
INSERT INTO TABLENAME (COLNAME1,COLNAME2,…...) VALUES(V1,V2,….);

2.UPDATE: UPDATE IS USED TO UPDATE EXISTING DATA IN A TABLE.


--------
SYNTAX: UPDATE TABLENAME
SET COLNAME=VALUE
WHERE CONDITION(S);
OR
UPDATE TABLENAME
SET COLNAME=VALUE,COLNAME=VALUE..
WHERE CONDITION(S);

3)DELETE: DELETE IS USED TO REMOVE PARTICULAR RECORDS FROM A TABLE.


---------
SYNTAX:DELETE FROM TABLENAME
WHERE CONDITION(S);

NOTE:ALL THE OPERATIONS PERFORMED USING DDL COMMANDS ARE PERMANENT.


-----ALL THE OPERATIONS PERFORMED USING DML COMMANDS ARE NOT PERMANENT.

===================================================================================
=============================================================

TCL(TRANSACTION CONTROL LANGAUGE): SINCE ALL THE DML OPERATIONS ARE NOT PERMANENT,
IT CAN BE SAVED PERMANENTLY USING TCL
---------------------------------
1)ROLLBACK: ROLLBACK STATEMENT IS USED TO UNDO/DELETE ALL THE DML OPERATIONS.
-----------
SYNTAX: ROLLBACK;

2)COMMIT:COMMIT STATEMENT IS USED TO SAVE THE DML OPERATIONS PERMANENTLY.


--------
SYNTAX: COMMIT;

3)SAVEPOINT: SAVEPOINT IS A NAME GIVEN FOR A DML OPERATION. IT IS USED TO FETCH A


PARTICULAR DML OPERATION.
------------
SYNTAX: SAVEPOINT SAVEPOINTNAME;
===================================================================================
=============================================================

DCL (DATA CONTROL LANGUAGE):


---------------------------
DCL IS MAINLY USED TO PROVIDE A PERMISSION OR TO TAKE BACK A PERMISSION FOR
ACCESSING DATA FROM ONE DATABASE TO ANOTHER.

1)GRANT: GRANT IS MAINLY USED TO PROVIDE PERMISSION FOR ACCESSING THE DATA FROM
ONE DATABASE TO ANOTHER.
--------
SYNTAX: GRANT PERMISSIONTYPE ON TABLENAME TO USERNAME;

2)REVOKE: REVOKE IS MAINLY USED TO TAKE BACK THE PERMISSION FOR ACCESSING THE DATA
FROM ONE DATABASE TO ANOTHER.
---------
SYNTAX: REVOKE PERMISSIONTYPE ON TABLENAME FROM USERNAME;

VIEWS:
------
VIEW IS A TABLE LIKE STRUCTURE CREATED BY SELECTING REQUIRED COLUMNS AND ROWS OF A
TABLE.
THE TABLE ON WHICH THE VIEW IS CREATED IS CALLED AS TARGET TABLE.
THE VIEW DATA IS DERIVED FROM THE TARGET TABLE(THE DATA IN THE VIEW IS DEPENDANT
ON THE
TARGET TABLE DATA)

SYNTAX:
CREATE VIEW VIEW_NAME
AS
SELECT REQUIRED COLUMNS
FROM TARGET TABLE
WHERE CONDITION;

THERE ARE 2 TYPES OF VIEWS:


1)SIMPLE VIEW: IF A VIEW IS CREATED ON A SINGLE TARGET TABLE, IT IS A SIMPLE VIEW.
2)COMPLEX VIEW:IF A VIEW IS CREATED ON MULTIPLE TARGET TABLES, IT IS A COMPLEX
VIEW.

APPLICATIONS OF VIEWS:
---------------------
VIEWS ARE USED TO REDUCE THE TABLE COMPLEXITY.
VIEWS HELPS IN SECURING THE CONFIDENTIAL DATA.
PARTIAL ACCESS OF THE TABLE CAN BE PROVIDED USING VIEWS TO THE DATABASE USERS.

STEPS TO BE FOLLOWED BEFORE CREATING A VIEW IN THE SOFTWARE:


----------------------------------------------------------
CONNECT
UN:SYS AS SYSDBA
PWD:ORACLE1234
GRANT CREATE VIEW TO SCOTT;

EXAMPLES:
--------

SINGLE ROW FUNCTIONS:


--------------------
NOTE:
-----
THE INPUTS FOR THE SINGLE ROW FUNCTIONS CAN EITHER BE A COLUMN NAME OR USER DEFINED
DATA.
IF USER DEFINED DATA IS USED AS AN INPUT FOR THE SRF'S, WE HAVE TO USE "DUAL"
TABLE.

1)UPPER(): IT CONVERTS ALL THE LETTERS INTO UPPER CASE.


---------
2)LOWER(): IT CONVERTS ALL THE LETTERS INTO LOWER CASE.
----------
3)INITCAP(): IT CONVERTS ONLY THE FIRST LETTER INTO UPPERCASE.
-----------

SUBSTR():
--------
IT WILL FETCH THE PARTICULAR CHARACTERS FROM THE MAIN STRING.

CONCAT():
--------
IT WILL COMBINE 2 VALUES INTO A SINGLE VALUE.

LENGTH():
--------
IT WILL COUNT THE NUMBER OF CHARACTERS IN A STRING.

REPLACE():
---------
IT IS USED TO REPLACE THE CHARACTERS IN A STRING.

MOD():
-----
IT WILL THE FETCH THE REMAINDER AFTER DIVIDING 2 VALUES.
SYSDATE: IT RETURNS THE SYSTEM DATE.
--------

EXTRACT()
---------
EXTRACT(DAY FROM DATE)
EXTRACT(MONTH FROM DATE)
EXTRACT(YEAR FROM DATE)

NVL()
-----
IT IS USED TO CONVERT NULL VALUES INTO ZERO.

TO_CHAR():
---------
IT IS USED TO GIVE THE COMPLETE DETAILS OF THE SPECIFIED DATE.

SYNTAX: TO_CHAR(DATE, 'FORMAT')


THE FORMATS ARE:
YYYY->FULL YEAR IN NUMBER.
YEAR->YEAR SPELLED OUT.
MM->TWO DIGIT VALUE FOR MONTH.
MONTH->FULL NAME OF MONTH.
MON->THREE LETTER ABBRIEVATION OF MONTH.
DY->THREE LETTER ABBRIEVATION OF DAY.
DAY->FULL NAME OF DAY.
DD->NUMERIC DAY OF MONTH.

You might also like