SQL Final Notes-1
SQL Final Notes-1
---
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.
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.
I-INTERNET
G-GRID
C-CLOUD
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.
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.
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 (!,@,#,$,....)
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:
---------
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)
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.
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.
*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.
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
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:
-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;
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:
*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;
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 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.
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.
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;
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.
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.
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';
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.
PATTERN MATCHING:
-----------------
IN A PATTERN, IF WE CAN FIND THE POSITION OF THE ORDINARY CHARACTER IT IS CALLED AS
PATTERN MATCHING.
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;
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:
FUNCTIONS:
----------
IT IS USED TO PERFORM A PARTICULAR OPERATION.
SYNTAX:FUNCTIONNAME(INPUTS)
EX: ADD(2,3)
OUTPUT IS 5.
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:
--------
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.
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.
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.
NOTE:
----
CARTESIAN JOIN CAN BE USED FOR THE TABLES WITH OR WITHOUT RELATIONSHIP(COMMON
COLUMNS).
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.
NOTE:JOINS CAN ALSO BE USED TO FETCH THE DATA FROM A SINGLE TABLE.
NOTE:IF 'N' NUMBER OF TABLES ARE JOINED, WE SHOULD WRITE N-1 JOINING CONDITION.
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).
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;
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.
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.
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.
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.
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 :
---------------------
UNIQUE KEY:
-----------
IT ACCEPTS NULL, BUT DOESN'T ACCEPT DUPLICATES.
A TABLE MAY HAVE MULTIPLE UNIQUE CONSTRAINTS.
SQL SUB-LANGUAGES/STATEMENTS/COMMANDS
--------------------------------------
===================================================================================
=========================================================================
1)DQL:SELECT
---
2)DDL(DATA DEFINITION LANGUAGE):
------------------------------
COLUMNNAME DATATYPE(SIZE),
FOREIGN KEY(FKCOLNAME) REFERENCES PARENTABLENAME(PKCOLNAME);
RENAME A COLUMN:
---------------
DELETE A COLUMN:
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.
-->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.
-->TO REMOVE THE TABLE PERMANENTLY FROM THE DATABASE WITHOUT STORING IN BIN ,
===================================================================================
================================================================
===================================================================================
=============================================================
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;
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;
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.
EXAMPLES:
--------
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.