You are on page 1of 110

STRUCTURED QUERY

LANGUAGE
BY PALLAVI BHARGAWA MISHRA
SQL SUMMERY

• STRUCTURED QUERY LANGUAGE IS A STANDARD DATABASE LANGUAGE WHICH IS USED TO


CREATE, MAINTAIN AND RETRIEVE THE RELATIONAL DATABASE.
FACTS ABOUT SQL……

• SQL IS CASE INSENSITIVE. BUT IT IS A RECOMMENDED PRACTICE TO USE KEYWORDS (LIKE SELECT,
UPDATE, CREATE, ETC) IN CAPITAL LETTERS AND USE USER DEFINED THINGS (LIKED TABLE NAME,
COLUMN NAME, ETC) IN SMALL LETTERS.
• WE CAN WRITE COMMENTS IN SQL USING “–” (DOUBLE HYPHEN) AT THE BEGINNING OF ANY LINE.
• SQL IS THE PROGRAMMING LANGUAGE FOR RELATIONAL DATABASES (EXPLAINED BELOW) LIKE
MYSQL, ORACLE, SYBASE, SQL SERVER, POSTGRE, ETC.
• OTHER NON-RELATIONAL DATABASES (ALSO CALLED NOSQL) DATABASES LIKE MONGODB,
DYNAMODB, ETC DO NOT USE SQL
WHAT IS RELATIONAL DATABASE…..???
RELATIONAL DATABASE MEANS……..

• THE DATA IS STORED AS WELL AS RETRIEVED IN THE FORM


OF RELATIONS (TABLES).
• TABLE SHOWS THE RELATIONAL DATABASE WITH ONLY ONE RELATION
CALLED STUDENT WHICH STORES ROLL_NO, NAME, ADDRESS, PHONE AND AGE OF
STUDENTS.
STUDENTS
TERMINOLOGIES THAT ARE USED IN TERMS OF RELATION

• ATTRIBUTE: ATTRIBUTES ARE THE PROPERTIES THAT DEFINE A RELATION. E.G.; ROLL_NO, NAME
• UPLE: EACH ROW IN THE RELATION IS KNOWN AS TUPLE. THE ABOVE RELATION CONTAINS 4
TUPLES, ONE OF WHICH IS SHOWN AS:

• DEGREE: THE NUMBER OF ATTRIBUTES IN THE RELATION IS KNOWN AS DEGREE OF THE


RELATION. THE STUDENT RELATION DEFINED ABOVE HAS DEGREE 5
• CARDINALITY: THE NUMBER OF TUPLES IN A RELATION IS KNOWN AS CARDINALITY.
THE STUDENT RELATION DEFINED ABOVE HAS CARDINALITY 4.
TERMINOLOGIES THAT ARE USED IN TERMS OF RELATION……

• COLUMN: COLUMN REPRESENTS THE SET OF VALUES FOR A PARTICULAR ATTRIBUTE. THE
COLUMN ROLL_NO IS EXTRACTED FROM RELATION STUDENT
THE QUERIES TO DEAL WITH RELATIONAL DATABASE CAN
BE CATEGORIES AS
DQL COMMAND

• THIS COMMAND ALLOWS GETTING THE DATA OUT OF THE DATABASE TO PERFORM
OPERATIONS WITH IT.
• SELECT: IT IS USED TO RETRIEVE DATA FROM THE DATABASE.
DDL COMMAND

• DDL IS A SET OF SQL COMMANDS USED TO CREATE, MODIFY, AND DELETE DATABASE
STRUCTURES BUT NOT DATA.
LIST OF DDL COMMANDS

• CREATE: THIS COMMAND IS USED TO CREATE THE DATABASE OR ITS OBJECTS (LIKE TABLE, INDEX,
FUNCTION, VIEWS, STORE PROCEDURE, AND TRIGGERS).
• DROP: THIS COMMAND IS USED TO DELETE OBJECTS FROM THE DATABASE.
• ALTER: THIS IS USED TO ALTER THE STRUCTURE OF THE DATABASE.
• TRUNCATE: THIS IS USED TO REMOVE ALL RECORDS FROM A TABLE, INCLUDING ALL SPACES
ALLOCATED FOR THE RECORDS ARE REMOVED.
• COMMENT: THIS IS USED TO ADD COMMENTS TO THE DATA DICTIONARY.
• RENAME: THIS IS USED TO RENAME AN OBJECT EXISTING IN THE DATABASE.
DML COMMAND

• IT IS THE COMPONENT OF THE SQL STATEMENT THAT CONTROLS ACCESS TO DATA AND TO
THE DATABASE. BASICALLY, DCL STATEMENTS ARE GROUPED WITH DML STATEMENTS.
LIST OF DML COMMANDS

• INSERT : IT IS USED TO INSERT DATA INTO A TABLE.


• UPDATE: IT IS USED TO UPDATE EXISTING DATA WITHIN A TABLE.
• DELETE : IT IS USED TO DELETE RECORDS FROM A DATABASE TABLE.
• LOCK: TABLE CONTROL CONCURRENCY.
• CALL: CALL A PL/SQL OR JAVA SUBPROGRAM.
• EXPLAIN PLAN: IT DESCRIBES THE ACCESS PATH TO DATA.
DCL COMMAND

• DCL INCLUDES COMMANDS SUCH AS GRANT AND REVOKE WHICH MAINLY DEAL WITH THE
RIGHTS, PERMISSIONS, AND OTHER CONTROLS OF THE DATABASE SYSTEM.
LIST OF DCL COMMANDS

• GRANT: THIS COMMAND GIVES USERS ACCESS PRIVILEGES TO THE DATABASE.


• REVOKE: THIS COMMAND WITHDRAWS THE USER’S ACCESS PRIVILEGES GIVEN BY USING THE
GRANT COMMAND.
TCL COMMAND

• TRANSACTIONS GROUP A SET OF TASKS INTO A SINGLE EXECUTION UNIT.


• EACH TRANSACTION BEGINS WITH A SPECIFIC TASK AND ENDS WHEN ALL THE TASKS IN THE
GROUP SUCCESSFULLY COMPLETE.
• IF ANY OF THE TASKS FAIL, THE TRANSACTION FAILS. THEREFORE, A TRANSACTION HAS ONLY
TWO RESULTS: SUCCESS OR FAILURE.
LIST OF TCL COMMANDS

• COMMIT: COMMITS A TRANSACTION.


• ROLLBACK: ROLLBACKS A TRANSACTION IN CASE OF ANY ERROR OCCURS.
• SAVEPOINT: SETS A SAVE POINT WITHIN A TRANSACTION.
• SET TRANSACTION: SPECIFIES CHARACTERISTICS FOR THE TRANSACTION.
WHAT ARE CLAUSES IN SQL?

• WITH THE HELP OF CLAUSES, WE CAN DEAL WITH DATA EASILY STORED IN THE TABLE.
OR
• CLAUSES HELP US FILTER AND ANALYZE DATA QUICKLY. WHEN WE HAVE LARGE AMOUNTS OF
DATA STORED IN THE DATABASE
SOME OF THE EXAMPLES OF CLAUSES ARE
WHERE CLAUSE

• THE WHERE CLAUSE IS USED TO FILTER RECORDS.


• IT IS USED TO EXTRACT ONLY THOSE RECORDS THAT FULFILL A SPECIFIED CONDITION.
• SYNTAX:-
• SELECT COLUMN1, COLUMN2, ...
FROM TABLE_NAME
WHERE CONDITION;
• NOTE: THE WHERE CLAUSE IS NOT ONLY USED IN SELECT STSTEMENTS ,IT IS ALSO USED IN
UPDATE, DELETE, ETC.!
EXAMPLE
THE WHERE CLAUSE CAN BE COMBINED WITH
AND,OR,NOT OPERATORS.
• THE AND AND OR OPERATORS ARE USED TO FILTER RECORDS BASED ON MORE THAN ONE
CONDITION.
• The AND operator displays a record if all the conditions separated by AND are
TRUE.
• The OR operator displays a record if any of the conditions separated by OR is
TRUE.
• The NOT operator displays a record if the condition(s) is NOT TRUE.
AND,OR,NOT SYNTAX

• AND SYNTAX:-

• OR SYNTAX:-

• NOT SYNTAX:-
AND,OR,NOT EXAMPLE

• AND EXAMPLE:-

• OR EXAMPLE:-

• NOT EXAMPLE:-
COMBINING AND, OR AND NOT
ORDER BY CLAUSE

• The ORDER BY keyword is used to sort the result-set in ascending or


descending order.
• The ORDER BY keyword sorts the records in ascending order by default. To
sort the records in descending order, use the DESC keyword.
• SYNTAX:-
EXAMPLE

• ORDER BY(ASCENDING ORDER):-

• ORDER BY(DESCENDING ORDER):-

• ORDER BY Several Columns:-


HAVING CLAUSE

• The HAVING clause was added to SQL because the WHERE keyword cannot be
used with aggregate functions
• Syntax:-
EXAMPLE

• THE FOLLOWING SQL STATEMENT LISTS THE NUMBER OF CUSTOMERS IN EACH COUNTRY,
SORTED HIGH TO LOW (ONLY INCLUDE COUNTRIES WITH MORE THAN 5 CUSTOMERS):
EXAMPLE…

• THE FOLLOWING SQL STATEMENT LISTS IF THE EMPLOYEES "DAVOLIO" OR "FULLER" HAVE
REGISTERED MORE THAN 25 ORDERS:
TOP CLAUSE

• The SELECT TOP clause is used to specify the number of records to return.
• The SELECT TOP clause is useful on large tables with thousands of records.
Returning a large number of records can impact performance.
EXAMPLE
EXAMPLE
GROUP BY CLAUSE

• The GROUP BY statement groups rows that have the same values into
summary rows, like "find the number of customers in each country.
• The GROUP BY statement is often used with aggregate functions
(COUNT(), MAX(), MIN(), SUM(), AVG()) to group the result-set by one or more
columns.
• SYNTAX:-
• EXAMPLE:-
EXAMPLE
MIN() EXAMPLE
MAX() EXAMPLE
COUNT() EXAMPLE
AVG() EXAMPLE
SUM() EXAMPLE
MISCELLANEOUS CLAUSE

• LIKE OPERATOR:-
• The LIKE operator is used in a WHERE clause to search for a specified pattern
in a column.
There are two wildcards often used in conjunction with the LIKE operator:
• The percent sign (%) represents zero, one, or multiple characters
• The underscore sign (_) represents one, single character
•Syntax
IN OPERATOR

• The IN operator allows you to specify multiple values in a WHERE clause.


• The IN operator is a shorthand for multiple OR conditions.

• Syntax:-
EXAMPLE
EXAMPLE
EXAMPLE

• SELECTS ALL CUSTOMERS THAT ARE FROM THE SAME COUNTRIES AS THE SUPPLIERS
BETWEEN OPERATOR

• The BETWEEN operator selects values within a given range. The values can be
numbers, text, or dates.
• The BETWEEN operator is inclusive: begin and end values are included.
• Syntax:
EXAMPLE

• SELECTS ALL PRODUCTS WITH A PRICE BETWEEN 10 AND 20.


ALIASES OPERATOR

• SQL aliases are used to give a table, or a column in a table, a temporary


name.
• Aliases are often used to make column names more readable.
An alias only exists for the duration of that query.
An alias is created with the AS keyword.

Syntax:-
EXAMPLE
EXAMPLE
EXAMPLE
SQL JOIN

• A JOIN clause is used to combine rows from two or more tables, based on a
related column between them.
EXAMPLE

LET'S LOOK AT A SELECTION FROM THE LOOK AT A SELECTION FROM THE


"ORDERS" TABLE "CUSTOMERS" TABLE
DIFFERENT TYPES OF SQL JOINS

• (INNER) JOIN: Returns records that have matching values in both tables.
• LEFT (OUTER) JOIN: Returns all records from the left table, and the matched
records from the right table.
• RIGHT (OUTER) JOIN: Returns all records from the right table, and the
matched records from the left table.
• FULL (OUTER) JOIN: Returns all records when there is a match in either left or
right table.
INNER JOIN

• The INNER JOIN keyword selects records that have matching values in both
tables
EXAMPLE
JOIN THREE TABLE
LEFT JOIN

• The LEFT JOIN keyword returns all records from the left table (table1), and
the matching records from the right table (table2). The result is 0 records
from the right side, if there is no match.
• Syntax:-
EXAMPLE

SELECTION FROM THE "CUSTOMERS"


TABLE SELECTION FROM THE "ORDERS" TABLE
RIGHT JOIN

• The RIGHT JOIN keyword returns all records from the right table (table2), and
the matching records from the left table (table1) The result is 0 records from
the left side, if there is no match.
• syntax:-
EXAMPLE

SELECTION FROM THE "ORDERS" TABLE SELECTION FROM THE "EMPLOYEES" TABLE
NORMALIZATION

• NORMALIZATION IS A DATABASE DESIGN TECHNIQUE THAT REDUCES DATA REDUNDANCY


AND ELIMINATES UNDESIRABLE CHARACTERISTICS LIKE INSERTION, UPDATE AND DELETION
ANOMALIES.
• NORMALIZATION RULES DIVIDES LARGER TABLES INTO SMALLER TABLES AND LINKS THEM
USING RELATIONSHIPS.
• THE PURPOSE OF NORMALISATION IN SQL IS TO ELIMINATE REDUNDANT (REPETITIVE) DATA
AND ENSURE DATA IS STORED LOGICALLY.
DATABASE NORMAL FORMS

• 1NF (FIRST NORMAL FORM)


• 2NF (SECOND NORMAL FORM)
• 3NF (THIRD NORMAL FORM)
• BCNF (BOYCE-CODD NORMAL FORM)
• 4NF (FOURTH NORMAL FORM)
• 5NF (FIFTH NORMAL FORM)
• 6NF (SIXTH NORMAL FORM)
EXAMPLE

• ASSUME, A VIDEO LIBRARY MAINTAINS A DATABASE OF MOVIES RENTED OUT. WITHOUT ANY
NORMALIZATION IN DATABASE, ALL INFORMATION IS STORED IN ONE TABLE AS SHOWN
BELOW.
HERE YOU SEE MOVIES RENTED COLUMN HAS MULTIPLE VALUES. NOW LET’S
MOVE INTO 1ST NORMAL FORMS
1NF (FIRST NORMAL FORM) RULES

• EACH TABLE CELL SHOULD CONTAIN A SINGLE VALUE.


• EACH RECORD NEEDS TO BE UNIQUE.
THE ABOVE TABLE IN 1NF
WHAT IS A KEY IN SQL?

• A KEY IN SQL IS A VALUE USED TO IDENTIFY RECORDS IN A TABLE UNIQUELY.


• SQL KEY IS USED TO IDENTIFY DUPLICATE INFORMATION, AND IT ALSO HELPS ESTABLISH A
RELATIONSHIP BETWEEN MULTIPLE TABLES IN THE DATABASE.

• NOTE: COLUMNS IN A TABLE THAT ARE NOT USED TO IDENTIFY A RECORD UNIQUELY ARE
CALLED NON-KEY COLUMNS.
DBMS
KEYS
PRIMARY KEY

• A PRIMARY KEY CANNOT BE NULL


• A PRIMARY KEY VALUE MUST BE UNIQUE
• THE PRIMARY KEY VALUES SHOULD RARELY BE CHANGED
• THE PRIMARY KEY MUST BE GIVEN A VALUE WHEN A NEW RECORD IS INSERTED
COMPOSITE KEY
• A COMPOSITE KEY IS A PRIMARY KEY COMPOSED OF MULTIPLE COLUMNS USED TO IDENTIFY A
RECORD UNIQUELY.
• IN OUR DATABASE, WE HAVE TWO PEOPLE WITH THE SAME NAME ROBERT PHIL, BUT THEY LIVE
IN DIFFERENT PLACES.

• HENCE, WE REQUIRE BOTH FULL NAME AND ADDRESS TO IDENTIFY A RECORD UNIQUELY. THAT
IS A COMPOSITE KEY
2NF (SECOND NORMAL FORM) RULES

• RULE 1- BE IN 1NF
• RULE 2- SINGLE COLUMN PRIMARY KEY THAT DOES NOT FUNCTIONALLY DEPENDANT ON ANY
SUBSET OF CANDIDATE KEY RELATION
• SO WE CAN’T MOVE FORWARD TO MAKE OUR SIMPLE DATABASE IN 2ND NORMALIZATION
FORM UNLESS WE PARTITION THE TABLE ABOVE
FOREIGN KEY

• IN TABLE 2, MEMBERSHIP_ID IS THE FOREIGN KEY.


• A FOREIGN KEY CAN HAVE A DIFFERENT NAME FROM ITS PRIMARY KEY
• IT ENSURES ROWS IN ONE TABLE HAVE CORRESPONDING ROWS IN ANOTHER
• UNLIKE THE PRIMARY KEY, THEY DO NOT HAVE TO BE UNIQUE. MOST OFTEN THEY AREN’T
• FOREIGN KEYS CAN BE NULL EVEN THOUGH PRIMARY KEYS CAN NOT.
WHY FOREIGN KEY?
TRANSITIVE FUNCTIONAL DEPENDENCY

• A TRANSITIVE FUNCTIONAL DEPENDENCY IS WHEN CHANGING A NON-KEY COLUMN, MIGHT


CAUSE ANY OF THE OTHER NON-KEY COLUMNS TO CHANGE.
• IF P -> Q AND Q -> R IS TRUE, THEN P-> R IS A TRANSITIVE DEPENDENCY.
• TO ACHIEVE 3NF, ELIMINATE THE TRANSITIVE DEPENDENCY.
• CONSIDER THE TABLE 1. CHANGING THE NON-KEY COLUMN FULL NAME MAY CHANGE
SALUTATION
3NF (THIRD NORMAL FORM) RULES

• RULE 1- BE IN 2NF
• RULE 2- HAS NO TRANSITIVE FUNCTIONAL DEPENDENCIES.
EXAMPLE
BCNF (BOYCE-COD NORMAL FORM)

• EVEN WHEN A DATABASE IS IN 3RD NORMAL FORM, STILL THERE WOULD BE ANOMALIES
RESULTED IF IT HAS MORE THAN ONE CANDIDATE KEY.
• SOMETIMES IS BCNF IS ALSO REFERRED AS 3.5 NORMAL FORM.
ER-MODEL

• THIS MODEL IS USED TO DEFINE THE DATA ELEMENTS AND RELATIONSHIP FOR A SPECIFIED
SYSTEM.
• IT DEVELOPS A VERY SIMPLE AND EASY TO DESIGN VIEW OF DATA.
COMPONENT OF ER DIAGRAM
ENTITY
WEAK ENTITY
ATTRIBUTE
KEY ATTRIBUTE
COMPOSITE ATTRIBUTE
MULTIVALUED ATTRIBUTE
DERIVED ATTRIBUTE
RELATIONSHIP
TYPES OF RELATIONSHIP

• ONE-TO-ONE RELATIONSHIP

• ONE-TO-MANY RELATIONSHIP

• MANY-TO-ONE RELATIONSHIP

• MANY-TO-MANY RELATIONSHIP
EXAMPLE

• In a university, a Student enrolls in Courses. A student must be assigned to at least one


or more Courses. Each course is taught by a single Professor To maintain instruction
quality, a Professor can deliver only one course .
BEST PRACTICES FOR DEVELOPING EFFECTIVE ER
DIAGRAMS
• ELIMINATE ANY REDUNDANT ENTITIES OR RELATIONSHIPS
• YOU NEED TO MAKE SURE THAT ALL YOUR ENTITIES AND RELATIONSHIPS ARE PROPERLY LABELED
• THERE MAY BE VARIOUS VALID APPROACHES TO AN ER DIAGRAM. YOU NEED TO MAKE SURE THAT
THE ER DIAGRAM SUPPORTS ALL THE DATA YOU NEED TO STORE
• YOU SHOULD ASSURE THAT EACH ENTITY ONLY APPEARS A SINGLE TIME IN THE ER DIAGRAM
• NAME EVERY RELATIONSHIP, ENTITY, AND ATTRIBUTE ARE REPRESENTED ON YOUR DIAGRAM
• NEVER CONNECT RELATIONSHIPS TO EACH OTHER
• YOU SHOULD USE COLORS TO HIGHLIGHT IMPORTANT PORTIONS OF THE ER DIAGRAM
THANK YOU
APART FROM SQL QUARRY DO YOU HAVE ANY
QUARRY

You might also like