CH 4
CH 4
SQL
(STRUCTURED QUERY LANGUAGE)
TYPES DATATYPE
❑ CHAR(size)
❑ VARCHAR(size)/VARCHAR2(size)
❑ DATE
❑ NUMBER(P,S)
❑ LONG
❑ RAW/LONG RAW
1. CHAR(SIZE)
• This data type is used to store character strings values of fixed length.
• The size represents length of character should be stored
• This data can store maximum 255 characters.
• The RAW/LONG RAW data type are used to store binary data,
such as digitized picture or image
• RAW data type can have a maximum length of 255 bytes.
• LONG RAW data type can contain up to 2 GB.
• EX: area LONG RAW;
DATABASE LANGUAGE
DDL
(DATA-DEFINITION LANGUAGE)
• “We specify a database schema by a set of definition expressed by a special language called
a data-definition language(DDL)”.
• DDL is used to specify a database’s structure, which includes its tables, views, indexes, and
constraints.
• DDL statements only modify the database’s schema; they have no direct effect on the data
within the database.
• DDL declarations are irreversible and difficult to undo.
• DDL commands generally used for design or define database
• CREATE, ALTER, TRUNCATE, DROP TABLE
1. CREATE
• Syntax:
DROP TABLE <TableName>
• Example:
DROP TABLE client_master;
DML
(DATA MANIPULATION LANGUAGE)
Example:
Insert into table client_master Values (‘C00001’,’RAHUL’);
2. SELECT
The SELECT command is used to retrieve selected rows from one or more tables
Syntax:
• 1). SELECT * FROM <TableName>;
• 2). SELECT <ColumnName1>,<ColumnName1> From <TableName>;
• 3). SELECT * FROM <TableName> WHERE <Condition>; Etc
Example:
• 1). SELECT * FROM client_master;
• 2). SELECT name, city FROM client_master;
• 3). SELECT * FROM client_master Where city=’Bombay’;
3. DELETE
DDL DML
• It helps us define a database's structure or • It allows us to manipulate, i.e., retrieve,
schema and deals with how data is stored in the
update, and delete the data stored in the
database.
database.
• The full form of DDL is Data Definition Language.
• The DDL commands have no further
• The full form of DML is Data Manipulation
classification. Language.
• The commonly used commands under DDL • The DML commands are classified as
language are: CREATE, DROP, ALTER,TRUNCATE procedural and non-procedural (declarative)
and RENAME.
DMLs.
• DDL commands are auto-committed, so changes
that happen in the database will be permanent. • The commonly used commands under DML
• DDL commands made changes permanent; language are: INSERT, UPDATE, DELETE and
therefore, we cannot roll back these statements. SELECT.
• DDL commands have no use of a WHERE clause • DML commands are not auto-committed, so
because here, filtration of records is not possible.
database changes are not permanent.
• The DDL command affects the entire database or
table. • DML commands do not make changes
permanent; therefore, rollback is possible for
these statements.
DCL(DATA CONTROL LANGUAGE)
• DCL includes commands such as GRANT and REVOKE which mainly deal with
the rights, permissions, and other controls of the database system.
• GRANT-Assigns new privileges to a user account, allowing access to specific
database objects, actions, or functions.
Syntax:- GRANT privilege_type [(column_list)] ON [object_type] object_name
TO user [WITH GRANT OPTION];
• Removes previously granted privileges from a user account, taking away their
access to certain database objects or actions.
Syntax:- REVOKE [GRANT OPTION FOR] privilege_type [(column_list)] ON
[object_type] object_name FROM user [CASCADE];
TCL
(TRANSACTION CONTROL LANGUAGE)
• 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 are
successfully completed. If any of the tasks fail, the transaction fails.
• Therefore, a transaction has only two results: success or failure.
Command Description Syntax
Starts a new BEGIN TRANSACTION
BEGIN TRANSACTION
transaction [transaction_name];
Saves all changes
COMMIT made during the COMMIT;
transaction
Undoes all changes
ROLLBACK made during the ROLLBACK;
transaction
Creates a savepoint
SAVEPOINT
OPERATORS
ARITHMETIC OPERATORS
2 . The OR Operator
The OR condition allows creating an SQL statement where
records are returned when any one of the conditions are
met
It can be used in any valid SQL statement such as select,
insert, or delete.
Example: select client_no, name, city, pincode from
client_master
Where pincode=4000054 or pincode=4000057;
LOGICAL OPERATORS
❑ In operator:
• The IN operator can be used to select rows that match one of the values in a list
• SQL> select * from client_master where client_no in(C00001, C00003);
• The above query will retrieve only those rows where client_no is either in C00001 or C00003
❑ Like operator:
• Like operator is used to search character pattern,. The like operator is used with special character %
and _(underscore)
• SQL> select * from client_master where city like ‘ b% ’;
• The above select statement will display only those rows where city is start with ‘B’ followed by any
number of any characters.
• % sign is used to refer number of character ( it similar to * asterisk wildcard in DOS).
• While ¬_(underscore) is used to refer single character.
• Example-SQL> select * from client_master where name like ‘_ahul’;
SQL FUNCTIONS
ADD_MONTHS()
• It returns the date after adding the number of months in specific date.
• Syntax: ADD_MONTHS(date,number)
• Example: select ADD_MONTHS (’04-jun-2009’,2) from dual;
• Output: 04-AUG-2009
MONTHS_BETWEEN
• It returns the number of months between the specified dates.
• Syntax: MONTHS_BETWEEN(date1,date2)
• Example: select MONTHS_BETWEEN (’02-FEB-09’,’02-JAN-09’) from dual;
• Output: 1
DATE FUNCTION
• Round()
• This function round a date in specified format
• Syntax: ROUND(date,format)
• Example: select ROUND(sysdate,’year’) from dual; Output:-1-jan-
2013
• NEXT_DAY
• It returns the date of the first weekday after specified date.
• Syntax: NEXT_DAY(date,’char’)
• Example: select NEXT_DAY(‘04-FEB-09’,’FRIDAY’) from dual; Output: 06-FEB-
09
• TRUNC()
• This function trunc a date in specified format
• Syntax: trunc(date,format)
• Example: select trunc(sysdate,’year’) from dual; Output:-01-
jan-2012
DATE FUNCTION
GREATEST()
• It displays the latest date from a list of dates
• Syntax: GREATEST (date1, date2, date3 …)
• Example: select GRETEST(’02-FEB-09’, ’02-JAN-09’) from dual;
• Output: 02-JAN-09
NEW_TIME()
• It display the date in the required time zone
• Syntax: : NEW_TIME (date,currenttimezone,newtimezone)
• Example: select NEW_TIME(sysdate,'EST','HST') from dual;
• Output: 22-JUL-09
NUMERIC FUNCTION
ABS()
• It returns the absolute value.
• Syntax: ABS(n)
• Example: select ABS(-15) from dual; Output: 15
CEIL()
• It returns the smallest integer that is greater than or equal to a specific value
• Syntax: CEIL(n)
• Example: select CEIL(1.3) from dual; Output:2
• Example: select CEIL(2) from dual; Output:2
• Example: select CEIL(-2.3) from dual; Output: -2
NUMERIC FUNCTION
COS()
• It returns the cosine of a given value.
• Syntax: COS
• Example: select COS(45) from dual; Output: 1
COSH()
• It returns hyperbolic cosine of a given value.
• Syntax: COSH
• Example: select COSH(45) from dual; Output:
1.7467E+19
NUMERIC FUNCTION
EXP()
• It returns e raised to the nth power, where e=2.71828183.
• Syntax: EXP(n)
• Example: select EXP(5) “Exponent” from dual; Output: Exponent
148.413159
FLOOR()
• It returns the greatest integer that is less than or equal to a specific value.
• Syntax: FLOOR(n)
• Example: select FLOOR(1.3) from dual; Output:
1
• Example: select FLOOR(2) from dual; Output:
2
• Example: select FLOOR(-2.3) from dual; Output:
-3
NUMERIC FUNCTION
POWER()
• It returns the value raised to a given positive exponent.
• Syntax: POWER(value, exponent)
• Example: select POWER(3,2) from dual; Output: 9
• Example: select POWER(64,0.5) from dual; Output: 8
MOD()
• It divides a value by a divisor and returns the remainder.
• Syntax: MOD(value, divisor)
• Example: select MOD(100,10) from dual; Output: 0
• Example: select MOD(10,3) from dual; Output: 1
• Example: select MOD(-30.23,7) from dual; Output: -
2.23
NUMERIC FUNCTION
ROUND()
• It rounds a number to given number of digits of precision
• Syntax: ROUND(value, precision)
• Example: select ROUND(66.666,2) from dual; Output: 66.67
TRUNC()
• It truncates digits of precision from a number
• Syntax: TRUNC(value, precision)
• Example: select TRUNC(66.666,2) from dual; Output: 66.66
SQRT()
• It returns the square root given number
• Syntax: SQRT(n)
• Example: select SQRT(64) from dual; Output: 8
CHARACTER FUNCTION
INITCAP()
• Returns a string with the first letter of each
word in UPPER CASE
• Syntax: INITCAP(char)
• Example: select INITCAP(‘Rahul Kumar') from
dual;
• Output: Rahul Kumar
CHARACTER FUNCTION
LOWER()
• It takes any string or column and converts it
into lowercase
• Syntax: LOWER(string)
• Example: select LOWER(‘RAHUL’) from dual;
• Output: rahul
CHARACTER FUNCTION
UPPER()
• It takes any string or column and converts it
into upper case
• Syntax: UPPER(string)
• Example: select UPPER(‘rahul’) from dual;
• Output: RAHUL
CHARACTER FUNCTION
LTRIM()
• It removes character from the left of char with
initial characters removed up to the first
character not in set
• Syntax: LTRIM(char, set)
• Example: select LTRIM(‘RAHUL’,’R’) from dual;
• Output: AHUL
CHARACTER FUNCTION
RTRIM()
• It returns char with final character removed
after the last character not in the set. ’set’ is
optional, it defaults to spaces.
• Syntax: RTRIM(char, set)
• Example: select RTRIM(‘RAHUL’,’L’) from dual;
• Output: RAHU
CHARACTER FUNCTION
REPLACE()
• It replaces a character in a string with zero or more
character.
• Syntax: REPLACE(string1, character to be replaced,
characters)
• Example: select REPLACE(‘Hello’, ’o’, ’rec’ ) from dual;
• Output: hellrec
CHARACTER FUNCTION
SUBSTRING()
• It returns a substring from a given string
• It returns a portion of char, beginning at character m
exceeding up to n characters.
• Syntax: SUBSTR(string)
• Example: select SUBSTR(‘SECURE’,3,4) from dual;
• Output: CURE
CHARACTER FUNCTION
• TRANSLATE()
• • Replace a sequence of character in a string with
another set of character.
• • Syntax: TRANSLATE(string1,string to replace,
replacement string)
• • Example: select TRANSLATE(‘1sct523’,’123’,’7a9’) from
dual;
• Output: 7sct5a9
CONVERSION FUNCTION
TO_CHAR()
• It converts a value of DATE data type to CHAR value. It accept
a date as well as the format in which the date has to appear. The
format must be a date format
• Syntax: TO_CHAR(date, format)
• Example: select TO_CHAR(SYSDATE,’DD-MM-YY’) from dual;
• Output: 22-07-09
CONVERSION FUNCTION
TO_DATE()
• It converts a CHAR filed to a DATE filed.
• Syntax: TO_DATE (‘char’, format)
• Example: select TO_DATE(‘26/08/09’,’DD/MM/YY’) from dual;
• Output: 26-AUG-09
CONVERSION FUNCTION
TO_NUMBER()
• It converts a character value containing a number to a value
of NUMBER data type.
• Syntax: TO_NUMBER(’char’)
• Example: select TO_NUMBER(‘100’) from dual;
• Output: 100
MISCELLANEOUS FUNCTION
UID
• It returns an integer that uniquely identifies the session user.
• Example: select UID from dual;
• Output: 18
USER
• It returns the name by which the current user is know to Oracle.
• Example: select USER from dual;
• Output: scott
VSIZE
• It returns the number of bytes in the internal representation of an expression.
• Syntax: VSIZE(expression)
• Example: select VSIZE(‘SCT on the net’) from dual;
• Output: 14
MISCELLANEOUS FUNCTION
NVL
• It stands for Null value Substitution.
• Syntax: NVL(value, substitute)
• If the value is NULL, this function is equal to substitute.
• If the value is not NULL, this unction is equal to value.
• Example:- Table name: Shipping
Select NVL (weight, 43) from shipping;
Client Weight Client Weight
Johnson tools 59 Johnson tools 59
Inf Software 27 Inf Software 27
Peterson NULL Peterson 43
Industries Industries
• In the above output, the NVL function replaces the value specified in wherever it encounters a
NULL value. Hence, 43 is inserted for client Peterson Industries.
GROUP FUNCTION
AVG()
• It returns average value of the specified column, ignoring NULL values.
• Syntax: AVG(Column name)
• Example: select AVG(sell_price) from product_master;
• Output: 2012.345
MIN()
• It returns the minimum value in the specified column.
• Syntax: MIN(column name)
• Example: select MIN(sell_price) from product_master;
• Output: 250
GROUP FUNCTION
MAX()
• It returns the maximum value in the specified column.
• Syntax: MAX(column name)
• Example: select MAX(sell_price) from product_master;
• Output: 1500
SUM()
• It returns the sum of values of the specified column.
• Syntax: SUM(column name)
• Example: select SUM(salary) from salesman_master;
• Output: 65000
GROUP FUNCTION
COUNT()
• It returns the number of rows in specified column or the total number
of rows in the table.
• Syntax: COUNT(column name)
• Example: select COUNT(salesman_no) from salesman_master;
• Output: 15
• Syntax: COUNT(*)
• Example: select COUNT(*) from salesman_master;
• Output: 50
DECODE FUNCTION
• HAVING Clause can be used in conjunction with the GROUP BY clause HAVING
imposed a condition on the GROUP BY clause which further filter the group
created by the groups by clause
• Syntax: Select <column name1>,<column name2>, <column nameN>
AGGREGATE_FUNCTION (<Expression>) From Table Name WHERE
<condition> GROUP BY<column name1>,<column name2>,<column
nameN>; HAVING <condition>
• Example: Select product_no,sum (qty_ordered) “total QTY ordered” From
sales_order GROUP BY product_no HAVING product_no=’P00001’ or
product_no=’P00004’ HAVING clause is specified row displayed on screen.
ORDER BY CLAUSE
• The UNION clause merges or combines the output of two or more queries into a single set of
rows and columns
• Multiple queries can be put together and their output combined using the UNION clause.
• The output of both queries will be displayed as above.
• Output : Record only in query one + records only in query two + a single set of records which
is common in both queries
OUTPUT
UNION CLAUSE
• The INTERSECT clause outputs only those rows produced by both queries intersected.
• The output of INTERSECT clause will include only those rows that are retrieved by both the
queries.
• A join based on an exact match between two columns is called an Equi Join
• The comparison operator in the join condition is ‘=’
• Example:
• Table Name: emp Table Name: dept
Ename Eid Sal Deptno Deptno Deptnam Location
e
Rahul E01 1000 10
10 Sales Mumbai
Vishal E02 1500 15
15 Accounts Chennai
Ajit E03 2000 20
20 Purchase Mumbai
• select ename,eid,location from emp,dept where emp.deptno=dept.deptno;
• The above join query will retrieve the name, id and location of all employees
• Output: Ename Eid Location
Rahul E01 Mumbai
Vishal E02 Chenna
i
Ajit E03 Mumbai
2. NON-EQUI JOIN
• Joins which use comparison operators other than ‘=’ are called Non-Equi joins.
• Example: Table Name: emp Table Name: dept
Ename Eid Sal Deptn Deptno Deptnam Location
o e
Rahul E01 1000 10 10 Sales Mumbai
Vishal E02 1500 15 15 Accounts Chennai
Ajit E03 2000 20
20 Purchase Mumbai
Select ename, location from emp, dept Where sal BETWEEN(“operator other than ‘=’”)
1000 AND 2000;
The above join query willEname
retrieve the name, and location of employees having salary
Location
between 1000 and 2000Vishal Chennai
Output:
3. SELF JOIN
• A join that joins one row in table with another row in the same table is called Self Join.
• Using the table alias names these two identical tables can be joined.
• From <TableName> [<alias1>], <TableName> [<alias2>]…
• Example: Table Name: employee OUTPUT
Eid Ename Manager_ Ename Manager_n
no o
E00001 Rahul E00002 Rahul Vishal
E00002 Vishal E00005 Vishal Ronak
E00003 Ajit E00004 Ajit Prem
E00004 Prem
E00005 Ronak
SELECT column_name(s)
FROM table1
(INNER/LEFT/RIGHT/FULL OUTER) JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
I. INNER JOIN
• The INNER JOIN keyword selects records that have matching values in both tables.
SELECT ProductID, ProductName, CategoryName FROM Products INNER JOIN Categories
ON Products.CategoryID = Categories.CategoryID;
ProductID ProductN CategoryI Price CategoryID CategoryNam Description
ame D e
1 Beverages Soft drinks,
1 Chais 1 18 coffees, teas,
2 Chang 1 19 beers, and
ales
3 Aniseed 2 10
2 Condiments Sweet and
Syrup
savory
TABLE- PRODUCT sauces,
relishes,
ProductID ProductName CategoryName spreads, and
seasonings
1 Chais Beverages
3 Confections
TABLE- CATEGORYDesserts,
2 Chang Beverages candies, and
3 Aniseed Syrup Condiments sweet breads
OUTPUT
II. 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,
SELECTif there is no match.
ProductID, ProductName, CategoryName FROM Products LEFT JOIN Categories ON
Products.CategoryID = Categories.CategoryID;
ProductID ProductN CategoryI Price CategoryID CategoryNam Description
ame D e
1 Beverages Soft drinks,
1 Chais 1 18 coffees, teas,
2 Chang 1 19 beers, and
ales
3 Aniseed 2 10
2 Condiments Sweet and
Syrup
savory
TABLE- PRODUCT sauces,
relishes,
ProductID ProductName CategoryName spreads, and
seasonings
1 Chais Beverages
3 Confections
TABLE- CATEGORYDesserts,
2 Chang Beverages candies, and
3 Aniseed Syrup Condiments sweet breads
OUTPUT
III. 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.
SELECT ProductID, ProductName, CategoryName FROM Products RIGHT JOIN Categories
ON Products.CategoryID = Categories.CategoryID;
ProductID ProductN CategoryI Price CategoryID CategoryNam Description
ame D e
1 Beverages Soft drinks,
1 Chais 1 18 coffees, teas,
2 Chang 2 19 beers, and
TABLE- ales
3 Aniseed 3 10
PRODUCT 2 Condiments Sweet and
Syrup
savory
4 Rose 4 20 sauces,
relishes,
spreads, and
ProductID ProductName CategoryName seasonings
1 Chais Beverages 3 Confections
TABLE- CATEGORYDesserts,
candies, and
2 Chang Condiments sweet breads
OUTPUT
3 Aniseed Syrup Confections
IV. FULL JOIN(FULL OUTER JOIN)
The FULL OUTER JOIN keyword returns all records when there is a match in left (table1) or
right (table2) table records.
SELECT ProductID, ProductName, CategoryName FROM Products FULL OUTER JOIN
Categories ON Products.CategoryID = Categories.CategoryID;
ProductID ProductN CategoryI Price CategoryID CategoryNam Description
ame D e
1 Beverages Soft drinks,
1 Chais 1 18 coffees, teas,
2 Chang 2 19 beers, and
ales
3 Aniseed 3 10
2 Condiments Sweet and
Syrup
savory
TABLE- PRODUCT sauces,
relishes,
ProductID ProductName CategoryName spreads, and
seasonings
1 Chais Beverages
3 Confections
TABLE- CATEGORYDesserts,
2 Chang Condiments candies, and
3 Aniseed Syrup Confections sweet breads
OUTPUT
SUBQUERIES
• Subqueries are queries that are nested inside another SQL query.
• They help us target specific rows to perform various operations in SQL. They are used to SELECT,
UPDATE, INSERT and DELETE records in SQL.
• There are different types of SQL subquery, like Single-row subquery, multiple row subquery,
multiple column subquery, correlated subquery, and nested subquery.
• Each type performs different roles, and their result is used depending on the user's requirement.
• Subqueries are present in the WHERE clause, FROM clause, or HAVING clause of the PARENT SQL
query.
• They are used with comparison operators and logical operators like >, <, >=, <>, <=, SOME,
ANY, ALL, and IN.
• They execute before the outer query at the run time and pass the result to complete the
statement.
• Subqueries are used to compare an expression to the output and check if any row gets selected.
• A maximum of 255 subquery levels can be nested in a WHERE clause. The FROM clause has no
limit in nesting subqueries. In the real world, we encounter not more than five subqueries. So, 255
is too large to be set as a limit.
( SELECT [DISTINCT] subquery_select_parameter
FROM {table_name | view_name}
{table_name | view_name} ...
[WHERE search_conditions]
[GROUP BY column_name [,column_name ] ...]
[HAVING search_conditions] )
TYPES OF SUBQUERIES
• Imagine that we are famous artists who sell their artworks in art galleries all over the
world. Let's see what the tables in our database look like:
TABLE- Paintings TABLE-
id city Sales_agent
gallery last_n first_n galler agenc
1 Jaipur id name price id
_id ame ame y_id y_fee
2 Kolkata Pattern 1 Brown Denis 2 2250
1 3 5000
3 Madhubani s
2 Ringer 1 4500 2 White Kate 3 3120
TABLE- Galleries 3 Gift 1 3200 3 Black Sarah 2 1640
id gallery_id Violin
1 2 4 Lesson 2 6700 4 Smith Helen 1 4500
2 3 s Stewa
Curiosi 5 Tom 3 2130
4 1 5 2 9800 rt
ty
TABLE- Managers
I. SINGLE ROW SUBQUERY
• Subqueries that return multiple rows as an output to their parent query are called
multiple-row subqueries.
• Multiple row subqueries can be used in a SQL SELECT statement with a HAVING
clause, WHERE clause, a FROM clause, and a logical operator(ALL, IN, NOT IN, and
ANY).
Example-
SELECT AVG(agency_fee) FROM sales_agents WHERE id NOT IN (SELECT id FROM
managers); agency_fee
1885
III. MULTIPLE COLUMN SUBQUERIES
gallery_
id name price
id
3 Gift 1 3200
IV. CORRELATED SUBQUERIES