SlideShare uma empresa Scribd logo
1 de 51
SQL
1
Oracle Built in Functions
• There are two types of functions in Oracle.
1) Single Row Functions: Single row or Scalar functions
return a value for every row that is processed in a query.
2) Group Functions: These functions group the rows of
data based on the values returned by the query. The group
functions are used to calculate aggregate values like total
or average, which return just one total or one average
value after processing a group of rows.
2
Single Row Functions
• There are four types of single row functions. They are:
• 1) Numeric Functions: These are functions that accept numeric input
and return numeric values.
• 2) Character or Text Functions: These are functions that accept
character input and can return both character and number values.
• 3) Date Functions: These are functions that take values that are of
datatype DATE as input and return values of datatype DATE, except
for the MONTHS_BETWEEN function, which returns a number.
• 4) Conversion Functions: These are functions that help us to convert
a value in one form to another form. For Example: a null value into
an actual value, or a value from one datatype to another datatype
like NVL, TO_CHAR, TO_NUMBER, TO_DATE etc. 3
What is a DUAL Table in Oracle?
• This is a single row and single column dummy table provided by
oracle. This is used to perform mathematical calculations without
using a table.
Select * from DUAL;
Output:
DUMMY
-------
X
Select 777 * 888 from Dual;
Output:
777 * 888
---------
689976 4
1) Numeric Functions
• Numeric functions are used to perform operations on numbers.
They accept numeric values as input and return numeric values
as output. Few of the Numeric functions are:
Function Name Return Value
ABS (x) Absolute value of the number 'x'
CEIL (x) Integer value that is Greater than or equal to the number 'x'
FLOOR (x) Integer value that is Less than or equal to the number 'x'
TRUNC (x, y) Truncates value of number 'x' up to 'y' decimal places
ROUND (x, y)
Rounded off value of the number 'x' up to the number 'y' decimal
places
5
Function
Name
Examples Return Value
ABS (x)
ABS (1)
ABS (-1)
1
1
CEIL (x)
CEIL (2.83)
CEIL (2.49)
CEIL (-1.6)
3
3
-1
FLOOR (x)
FLOOR (2.83)
FLOOR (2.49)
FLOOR (-1.6)
2
2
-2
ROUND (x, y)
ROUND (125.666, 1)
ROUND (125.456, 0)
ROUND (124.456, -1)
125.7
125
120
TRUNC (x, y)
TRUNC (140.234, 2)
TRUNC (-54, 1)
TRUNC (5.7)
TRUNC (142, -1)
140.23
-54
5
140
6
These functions can be
used on database columns.
For Example: Let's
consider the product table.
We can use ROUND to
round off the unit_price to
the nearest integer, if any
product has prices in
fraction.
SELECT ROUND
(unit_price) FROM
product;
2) Character or Text Functions
• Character or text functions are used to
manipulate text strings. They accept strings or
characters as input and can return both
character and number values as output.
• Few of the character or text functions are as
given below:
7
Function Name Return Value
LOWER (string_value) All the letters in 'string_value' is converted to lowercase.
UPPER (string_value) All the letters in 'string_value' is converted to uppercase.
INITCAP (string_value) All the letters in 'string_value' is converted to mixed case.
LTRIM (string_value,
trim_text)
All occurrences of 'trim_text' is removed from the left
of 'string_value'.
RTRIM (string_value,
trim_text)
All occurrences of 'trim_text' is removed from the right
of'string_value' .
TRIM (trim_text FROM
string_value)
All occurrences of 'trim_text' from the left and right
of 'string_value' ,'trim_text' can also be only one character long .
SUBSTR (string_value, m, n)
Returns 'n' number of characters from'string_value' starting from
the 'm'position.
LENGTH (string_value) Number of characters in 'string_value'in returned.
LPAD (string_value, n,
pad_value)
Returns 'string_value' left-padded with'pad_value' . The length
of the whole string will be of 'n' characters.
RPAD (string_value, n,
pad_value)
Returns 'string_value' right-padded with 'pad_value' . The length
of the whole string will be of 'n' characters.
8
• For Example, we can use the above UPPER() text function with the column
value as follows.
SELECT UPPER (product_name) FROM product;
• The following examples explains the usage of the above character or text
functions:
Function Name Examples Return Value
LOWER(string_value) LOWER('Good Morning') good morning
UPPER(string_value) UPPER('Good') GOOD
INITCAP(string_value) INITCAP('GOOD MORNING') Good Morning
LTRIM(string_value, trim_text) LTRIM ('Good Morning', 'Good’) Morning
RTRIM (string_value, trim_text)
RTRIM ('Good Morning', '
Morning')
Good
TRIM (leading/trailing/both’trim_text’
FROM string_value)
TRIM (leading'o' FROM 'Good
Morning')
Gd Mrning
SUBSTR (string_value, m, n) SUBSTR ('Good Morning', 6, 7) Morning
LENGTH (string_value) LENGTH ('Good Morning') 12
LPAD (string_value, n, pad_value) LPAD ('Good', 6, '*') **Good
RPAD (string_value, n, pad_value) RPAD ('Good', 6, '*') Good** 9
3) Date Functions
• These are functions that take values that are
of datatype DATE as input and return values of
datatypes DATE, except for the
MONTHS_BETWEEN function, which returns a
number as output.
• Few date functions are as given below.
10
Function Name Return Value
ADD_MONTHS (date, n) Returns a date value after adding 'n'months to the date 'x'.
MONTHS_BETWEEN (x1, x2) Returns the number of months between dates x1 and x2.
ROUND (x, date_format)
Returns the date 'x' rounded off to the nearest century, year,
month, date, hour, minute, or second as specified by
the 'date_format'.
TRUNC (x, date_format)
Returns the date 'x' lesser than or equal to the nearest century,
year, month, date, hour, minute, or second as specified by the
'date_format'.
NEXT_DAY (x, week_day)
Returns the next date of the 'week_day'on or after the
date 'x' occurs.
LAST_DAY (x)
It is used to determine the number of days remaining in a
month from the date 'x' specified.
SYSDATE Returns the systems current date and time.
NEW_TIME (x, zone1, zone2)
Returns the date and time in zone2 if date 'x' represents the
time in zone1. 11
Function Name Examples
Return
Value
ADD_MONTHS ( ) ADD_MONTHS ('16-Sep-81', 3) 16-Dec-81
MONTHS_BETWEEN( ) MONTHS_BETWEEN ('16-Sep-81', '16-Dec-81') 3
NEXT_DAY( ) NEXT_DAY ('01-Jun-08', 'Wednesday') 04-JUN-08
LAST_DAY( ) LAST_DAY ('01-Jun-08') 30-Jun-08
NEW_TIME( ) NEW_TIME ('01-Jun-08', 'IST', 'EST') 31-May-08
12
Unit Valid format parameters Rounding Rule
Year
SYYYY, YYYY, YEAR, SYEAR, YYY,
YY, Y
Rounds up on July 1st
ISO Year IYYY, IY, I
Quarter Q
Rounds up on the 16th day of the
second month of the quarter
Month MONTH, MON, MM, RM
Rounds up on the 16th day of the
month
Week WW
Same day of the week as the first day of
the year
IW IW
Same day of the week as the first day of
the ISO year
W W
Same day of the week as the first day of
the month
Day DDD, DD, J
Start day of
the week
DAY, DY, D
Hour HH, HH12, HH24
Minute MI 13
Below are the valid format parameters for round():
round(to_date ('22-AUG-03'),'YEAR') would return '01-JAN-04'
round(to_date ('22-AUG-03'),'Q') would return '01-OCT-03'
round(to_date ('22-AUG-03'),'MONTH') would return '01-SEP-03'
round(to_date ('22-AUG-03'),'DDD') would return '22-AUG-03'
round(to_date ('22-AUG-03'),'DAY') would return '24-AUG-03'
14
Below are the valid format parameters for trunc():
Unit Valid format parameters
Year SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y
ISO Year IYYY, IY, I
Quarter Q
Month MONTH, MON, MM, RM
Week WW
IW IW
W W
Day DDD, DD, J
Start day of the week DAY, DY, D
Hour HH, HH12, HH24
Minute MI
15
trunc(to_date('22-AUG-03'), 'YEAR') would return '01-JAN-03'
trunc(to_date('22-AUG-03'), 'Q') would return '01-JUL-03'
trunc(to_date('22-AUG-03'), 'MONTH') would return '01-AUG-03'
trunc(to_date('22-AUG-03'), 'DDD') would return '22-AUG-03'
trunc(to_date('22-AUG-03'), 'DAY') would return '17-AUG-03'
16
4) Conversion Functions
• These are functions that help us to convert a value
in one form to another form. For Ex: a null value
into an actual value, or a value from one datatype
to another datatype like NVL, TO_CHAR,
TO_NUMBER, TO_DATE.
• Few of the conversion functions available in oracle
are:
17
Function Name Return Value
TO_CHAR (x [,y])
Converts Numeric and Date values to a character string
value. It cannot be used for calculations since it is a
string value.
TO_DATE (x [, date_format])
Converts a valid Numeric and Character values to a
Date value. Date is formatted to the format specified
by 'date_format'.
NVL (x, y)
If 'x' is NULL, replace it with 'y'. 'x' and 'y‘ must be of
the same datatype.
DECODE (a, b, c, d, e,
default_value)
Checks the value of 'a', if a = b, then returns 'c'. If a =
d, then returns 'e'. Else, returns default_value.
18
Function Name Examples Return Value
TO_CHAR ()
TO_CHAR (3000, '$9999')
TO_CHAR (SYSDATE, 'Day, Month YYYY')
$3000
Monday, June 2008
TO_DATE () TO_DATE ('01-Jun-08') 01-Jun-08
NVL () NVL (null, 1) 1
19
GROUP Functions
• Group functions are built-in SQL functions that
operate on groups of rows and return one
value for the entire group. These functions
are: COUNT, MAX, MIN, AVG, SUM, DISTINCT
20
COUNT ()
• This function returns the number of rows in the table that satisfies
the condition specified in the WHERE condition. If the WHERE
condition is not specified, then the query returns the total number of
rows in the table.
• For Example: If you want the number of employees in a particular
department, the query would be:
SELECT COUNT (*) FROM employee WHERE dept = 'Electronics';
• If you want the total number of employees in all the department, the
query would take the form:
SELECT COUNT (*) FROM employee;
21
DISTINCT()
• This function is used to select the distinct rows.
• For Example: If you want to select all distinct
department names from employee table, the query
would be:
SELECT DISTINCT dept FROM employee;
• To get the count of employees with unique name,
the query would be:
SELECT COUNT (DISTINCT name) FROM employee;
22
MAX()
• This function is used to get the maximum value
from a column.
• To get the maximum salary drawn by an
employee, the query would be:
SELECT MAX (salary) FROM employee;
23
MIN()
• This function is used to get the minimum value
from a column.
• To get the minimum salary drawn by an
employee, the query would be:
SELECT MIN (salary) FROM employee;
24
AVG()
• This function is used to get the average value
of a numeric column.
• To get the average salary, the query would be
SELECT AVG (salary) FROM employee;
25
SUM()
• This function is used to get the sum of a
numeric column.
• To get the total salary given out to the
employees, the query would be:
SELECT SUM (salary) FROM employee;
26
Subquery
• Subquery or Inner query or Nested query is a
query in a query. A subquery is usually added
in the WHERE Clause of the sql statement.
Most of the time, a subquery is used when
you know how to search for a value using a
SELECT statement, but do not know the exact
value.
27
• Subqueries are an alternate way of returning data from
multiple tables.
• Subqueries can be used with the following sql statements
along with the comparision operators like =, <, >, >=, <= etc.
– SELECT
– INSERT
– UPDATE
– DELETE
28
• 1) Usually, a subquery should return only one record, but
sometimes it can also return multiple records when used
with operators like IN, NOT IN in the where clause. The
query would be like:
SELECT first_name, last_name, subject
FROM student_details
WHERE games NOT IN ('Cricket', 'Football');
• The output would be similar to:
first_name last_name subject
-------------- ------------ ----------
Shekar Gowda Badminton
Priya Chandra Chess 29
• 2) Lets consider the student_details table. If you know the
name of the students who are studying science subject, you
can get their id's by using this query below:
SELECT id, first_name
FROM student_details
WHERE first_name IN ('Rahul', 'Stephen');
• but, if you do not know their names, then to get their id's
you need to write the query in this manner:
SELECT id, first_name
FROM student_details
WHERE first_name IN (SELECT first_name
FROM student_details
WHERE subject= 'Science');
30
•Output:
Id first_name
--- ------------------
101 Rahul
102 Stephen
In the above sql statement, first the inner query is
processed first and then the outer query is processed.
31
• 3) Subquery can be used with INSERT statement to
add rows of data from one or more tables to
another table. Lets try to group all the students
who study Maths in a table 'maths_group'.
INSERT INTO maths_group(id, name)
SELECT id, first_name || ' ' || last_name
FROM student_details WHERE subject= 'Maths‘;
32
• 4) A subquery can be used in the SELECT statement
as follows. Lets use the product and order_items
table.
select p.product_name, p.supplier_name, (select
order_id from order_items where product_id = 101)
as order_id from product p where p.product_id =
101;
product_name supplier_name order_id
------------------- ------------------- --------
Television Onida 5103
33
Correlated Subquery
• A query is called correlated subquery when both the inner
query and the outer query are interdependent. For every
row processed by the inner query, the outer query is
processed as well. The inner query depends on the outer
query before it can be processed.
SELECT p.product_name FROM product p
WHERE p.product_id = (SELECT o.product_id FROM
order_items o
WHERE o.product_id = p.product_id);
• NOTE:
1) You can nest as many queries you want but it is
recommended not to nest more than 16 subqueries in
oracle.
2) If a subquery is not dependent on the outer query it is
called a non-correlated subquery.
34
Correlated Subquery
• A correlated subquery is one, which is executed after the
outer query is executed. So correlated queries take the
opposite approach to that of normal subqueries. The
correlated subquery execution is as follows:
– The outer query receives a row.
– For each candidate row of the outer query, the
subquery (the coorelated subquery) is executed once.
– The results of the correlated subquery are used to
determine whether the candidate row should be part
of the result.
– The process is repeated for all rows.
35
• Get the details of all the books in the ascending
order of year of publishing for which an order is
placed.
SELECT *
FROM book
WHERE book.title IN (SELECT DISTINCT orders.title
FROM orders
WHERE book.title = orders.title)
ORDER BY book.year;
36
Correlated Subquery
• A sub-query becomes correlated when the
subquery references a column from a table in the
parent query. A correlated subquery is evaluated
once for each row processed by the parent
statement, which can be any of SELECT, DELETE,
UPDATE.
• A correlated subquery is one way of reading every
row in a table and comparing values in each row
against related data. It is used whenever a subquery
must return a different result for each candidate
row considered by the parent query.
37
• List accounts along with the current balance and
the branch to which it belongs, having a balance
more than the average balance of the branch, to
which the account belongs.
SELECT acct_no, curbal, branch_no
FROM acct_mstr A
WHERE curbal>(SELECT AVG(curbal)
FROM acct_mstr
WHERE branch_no=A.branch_no);
38
Joins
• SQL Joins are used to relate information in different
tables. A Join condition is a part of the sql query
that retrieves rows from two or more tables. A SQL
Join condition is used in the SQL WHERE Clause of
select, update, delete statements.
• The Syntax for joining two tables is:
SELECT col1, col2, col3...
FROM table_name1, table_name2
WHERE table_name1.col2 = table_name2.col1; 39
• If a sql join condition is omitted or if it is invalid
the join operation will result in a Cartesian
product. The Cartesian product returns a
number of rows equal to the product of all rows
in all the tables being joined.
• For example, if the first table has 20 rows and
the second table has 10 rows, the result will be
20 * 10, or 200 rows. This query takes a long
time to execute.
40
table "product"
product_id product_name supplier_name unit_price
100 Camera Nikon 300
101 Television Onida 100
102 Refrigerator Vediocon 150
103 Ipod Apple 75
104 Mobile Nokia 50
table "order_items"
order_id product_id total_units customer
5100 104 30 Infosys
5101 102 5 Satyam
5102 103 25 Wipro
5103 101 10 TCS
41
Tables used in JOIN examples
Types of JOINS
• Equi joins
– Outer Join
– Inner Join
• Self Join
• Non equi joins
42
Equi joins
• It is a simple sql join condition which uses the
equal sign as the comparison operator. Two
types of equi joins are:
– Outer join and
– Inner join.
43
Outer Join
• This sql join condition returns all rows from both
tables which satisfy the join condition along with
rows which do not satisfy the join condition from
one of the tables. The sql outer join operator in
Oracle is ( + ) and is used on one side of the join
condition only.
• The syntax differs for different RDBMS
implementation. Few of them represent the join
conditions as "sql left outer join", "sql right outer
join". 44
• If you want to display all the product data along
with order items data, with null values displayed for
order items if a product has no order item, the sql
query for outer join would be as shown below:
SELECT p.product_id, p.product_name, o.order_id,
o.total_units
FROM order_items o, product p
WHERE o.product_id (+) = p.product_id;
• The output would be like
45
NOTE: If the (+) operator is used in the left side of the join condition it is
equivalent to left outer join. If used on the right side of the join
condition it is equivalent to right outer join.
product_id product_name order_id total_units
------------- ------------- ------------- -------------
100 Camera
101 Television 5103 10
102 Refrigerator 5101 5
103 Ipod 5102 25
104 Mobile 5100 30
46
Inner Join
• All the rows returned by the sql query satisfy the sql join condition
specified.
• For example: If you want to display the product information for each
order the query will be as given below. Since you are retrieving the
data from two tables, you need to identify the common column
between these two tables, which is the product_id.
SELECT order_id, product_name, unit_price, supplier_name,
total_units
FROM product, order_items
WHERE order_items.product_id = product.product_id;
47
• The columns must be referenced by the table name in the
join condition, because product_id is a column in both the
tables and needs a way to be identified. This avoids
ambiguity in using the columns in the SQL SELECT
statement.
• The number of join conditions is (n-1), if there are more
than two tables joined in a query where 'n' is the number
of tables involved. The rule must be true to avoid Cartesian
product.
• We can also use aliases to reference the column name,
then the above query would be like:
SELECT o.order_id, p.product_name, p.unit_price,
p.supplier_name, o.total_units
FROM product p, order_items o
WHERE o.product_id = p.product_id; 48
Self Join
• A Self Join is a type of sql join which is used to join a table
to itself, particularly when the table has a FOREIGN KEY
that references its own PRIMARY KEY.
• It is necessary to ensure that the join statement defines an
alias for both copies of the table to avoid column
ambiguity.
• The below query is an example of a self join,
SELECT a.sales_person_id, a.name, a.manager_id,
b.sales_person_id, b.name
FROM sales_person a, sales_person b
WHERE a.manager_id = b.sales_person_id; 49
Non Equi Join
• A Non Equi Join is a SQL Join whose condition is
established using all comparison operators except
the equal (=) operator. Like >=, <=, <, >
• For example: If you want to find the names of
students who are not studying either Economics,
the sql query would be like:
SELECT first_name, last_name, subject
FROM student_details
WHERE subject != 'Economics‘; 50
• The output would be something like,
first_name last_name subject
-------------- ------------- ------------
Anajali Bhagwat Maths
Shekar Gowda Maths
Rahul Sharma Science
Stephen Fleming Science
51

Mais conteúdo relacionado

Mais procurados

Mais procurados (18)

8. Vectors data frames
8. Vectors data frames8. Vectors data frames
8. Vectors data frames
 
Lec9
Lec9Lec9
Lec9
 
Data structure notes
Data structure notesData structure notes
Data structure notes
 
Lec 9 05_sept [compatibility mode]
Lec 9 05_sept [compatibility mode]Lec 9 05_sept [compatibility mode]
Lec 9 05_sept [compatibility mode]
 
Data import-cheatsheet
Data import-cheatsheetData import-cheatsheet
Data import-cheatsheet
 
Lec16
Lec16Lec16
Lec16
 
Lec16
Lec16Lec16
Lec16
 
Stack q ll algo
Stack q ll algoStack q ll algo
Stack q ll algo
 
Lec5
Lec5Lec5
Lec5
 
Computer Graphics in Java and Scala - Part 1
Computer Graphics in Java and Scala - Part 1Computer Graphics in Java and Scala - Part 1
Computer Graphics in Java and Scala - Part 1
 
Functions
FunctionsFunctions
Functions
 
Scala collections
Scala collectionsScala collections
Scala collections
 
Useful date number and string sql queries
Useful date number and string sql queriesUseful date number and string sql queries
Useful date number and string sql queries
 
Data transformation-cheatsheet
Data transformation-cheatsheetData transformation-cheatsheet
Data transformation-cheatsheet
 
Vector3
Vector3Vector3
Vector3
 
Clustering and Factorization using Apache SystemML by Alexandre V Evfimievski
Clustering and Factorization using Apache SystemML by  Alexandre V EvfimievskiClustering and Factorization using Apache SystemML by  Alexandre V Evfimievski
Clustering and Factorization using Apache SystemML by Alexandre V Evfimievski
 
Big Data Mining in Indian Economic Survey 2017
Big Data Mining in Indian Economic Survey 2017Big Data Mining in Indian Economic Survey 2017
Big Data Mining in Indian Economic Survey 2017
 
NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...
NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...
NCCU: Statistics in the Criminal Justice System, R basics and Simulation - Pr...
 

Semelhante a Oracle sql ppt2

Oracle sql functions
Oracle sql functionsOracle sql functions
Oracle sql functionsVivek Singh
 
Unit 3 - Function & Grouping,Joins and Set Operations in ORACLE
Unit 3 - Function & Grouping,Joins and Set Operations in ORACLEUnit 3 - Function & Grouping,Joins and Set Operations in ORACLE
Unit 3 - Function & Grouping,Joins and Set Operations in ORACLEDrkhanchanaR
 
Intro to tsql unit 10
Intro to tsql   unit 10Intro to tsql   unit 10
Intro to tsql unit 10Syed Asrarali
 
Hive function-cheat-sheet
Hive function-cheat-sheetHive function-cheat-sheet
Hive function-cheat-sheetDr. Volkan OBAN
 
SQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTIONSQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTIONArun Sial
 
Built-in Functions in SQL | Numeric Functions
Built-in Functions in SQL | Numeric FunctionsBuilt-in Functions in SQL | Numeric Functions
Built-in Functions in SQL | Numeric FunctionsRaj vardhan
 
R_CheatSheet.pdf
R_CheatSheet.pdfR_CheatSheet.pdf
R_CheatSheet.pdfMariappanR3
 
Key functions in_oracle_sql
Key functions in_oracle_sqlKey functions in_oracle_sql
Key functions in_oracle_sqlpgolhar
 
A brief introduction to apply functions
A brief introduction to apply functionsA brief introduction to apply functions
A brief introduction to apply functionsNIKET CHAURASIA
 
Python High Level Functions_Ch 11.ppt
Python High Level Functions_Ch 11.pptPython High Level Functions_Ch 11.ppt
Python High Level Functions_Ch 11.pptAnishaJ7
 
Postgresql 9.3 overview
Postgresql 9.3 overviewPostgresql 9.3 overview
Postgresql 9.3 overviewAveic
 
Chapter 16-spreadsheet1 questions and answer
Chapter 16-spreadsheet1  questions and answerChapter 16-spreadsheet1  questions and answer
Chapter 16-spreadsheet1 questions and answerRaajTech
 
Using-Python-Libraries.9485146.powerpoint.pptx
Using-Python-Libraries.9485146.powerpoint.pptxUsing-Python-Libraries.9485146.powerpoint.pptx
Using-Python-Libraries.9485146.powerpoint.pptxUadAccount
 

Semelhante a Oracle sql ppt2 (20)

Oracle sql functions
Oracle sql functionsOracle sql functions
Oracle sql functions
 
Unit 3 - Function & Grouping,Joins and Set Operations in ORACLE
Unit 3 - Function & Grouping,Joins and Set Operations in ORACLEUnit 3 - Function & Grouping,Joins and Set Operations in ORACLE
Unit 3 - Function & Grouping,Joins and Set Operations in ORACLE
 
Intro to tsql unit 10
Intro to tsql   unit 10Intro to tsql   unit 10
Intro to tsql unit 10
 
Hive function-cheat-sheet
Hive function-cheat-sheetHive function-cheat-sheet
Hive function-cheat-sheet
 
SQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTIONSQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTION
 
Built-in Functions in SQL | Numeric Functions
Built-in Functions in SQL | Numeric FunctionsBuilt-in Functions in SQL | Numeric Functions
Built-in Functions in SQL | Numeric Functions
 
R_CheatSheet.pdf
R_CheatSheet.pdfR_CheatSheet.pdf
R_CheatSheet.pdf
 
Key functions in_oracle_sql
Key functions in_oracle_sqlKey functions in_oracle_sql
Key functions in_oracle_sql
 
Python lecture 05
Python lecture 05Python lecture 05
Python lecture 05
 
R Functions.pptx
R Functions.pptxR Functions.pptx
R Functions.pptx
 
R language introduction
R language introductionR language introduction
R language introduction
 
A brief introduction to apply functions
A brief introduction to apply functionsA brief introduction to apply functions
A brief introduction to apply functions
 
Python High Level Functions_Ch 11.ppt
Python High Level Functions_Ch 11.pptPython High Level Functions_Ch 11.ppt
Python High Level Functions_Ch 11.ppt
 
1.2 matlab numerical data
1.2  matlab numerical data1.2  matlab numerical data
1.2 matlab numerical data
 
arrays.pptx
arrays.pptxarrays.pptx
arrays.pptx
 
Postgresql 9.3 overview
Postgresql 9.3 overviewPostgresql 9.3 overview
Postgresql 9.3 overview
 
Les03
Les03Les03
Les03
 
Chapter 16-spreadsheet1 questions and answer
Chapter 16-spreadsheet1  questions and answerChapter 16-spreadsheet1  questions and answer
Chapter 16-spreadsheet1 questions and answer
 
Programming in R
Programming in RProgramming in R
Programming in R
 
Using-Python-Libraries.9485146.powerpoint.pptx
Using-Python-Libraries.9485146.powerpoint.pptxUsing-Python-Libraries.9485146.powerpoint.pptx
Using-Python-Libraries.9485146.powerpoint.pptx
 

Mais de Madhavendra Dutt (12)

Introduction to oracle
Introduction to oracleIntroduction to oracle
Introduction to oracle
 
Oracle Index
Oracle IndexOracle Index
Oracle Index
 
Communication
CommunicationCommunication
Communication
 
Sticky bit suid sgid
Sticky bit suid sgidSticky bit suid sgid
Sticky bit suid sgid
 
Linux intermediate level
Linux intermediate levelLinux intermediate level
Linux intermediate level
 
Linux begining level
Linux begining levelLinux begining level
Linux begining level
 
Io vb.net
Io vb.netIo vb.net
Io vb.net
 
Vb.net
Vb.netVb.net
Vb.net
 
Java interview questions and answers
Java interview questions and answersJava interview questions and answers
Java interview questions and answers
 
Oracle view
Oracle viewOracle view
Oracle view
 
Oracle sql ppt1
Oracle sql ppt1Oracle sql ppt1
Oracle sql ppt1
 
Basics of c++
Basics of c++Basics of c++
Basics of c++
 

Último

Probability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter LessonsProbability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter LessonsJoseMangaJr1
 
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...amitlee9823
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightDelhi Call girls
 
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...amitlee9823
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxolyaivanovalion
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxolyaivanovalion
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxolyaivanovalion
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxolyaivanovalion
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxolyaivanovalion
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...amitlee9823
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceDelhi Call girls
 
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfAccredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfadriantubila
 
ELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptxELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptxolyaivanovalion
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Researchmichael115558
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxolyaivanovalion
 

Último (20)

Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
Probability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter LessonsProbability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter Lessons
 
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptx
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
 
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfAccredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
 
ELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptxELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptx
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 

Oracle sql ppt2

  • 2. Oracle Built in Functions • There are two types of functions in Oracle. 1) Single Row Functions: Single row or Scalar functions return a value for every row that is processed in a query. 2) Group Functions: These functions group the rows of data based on the values returned by the query. The group functions are used to calculate aggregate values like total or average, which return just one total or one average value after processing a group of rows. 2
  • 3. Single Row Functions • There are four types of single row functions. They are: • 1) Numeric Functions: These are functions that accept numeric input and return numeric values. • 2) Character or Text Functions: These are functions that accept character input and can return both character and number values. • 3) Date Functions: These are functions that take values that are of datatype DATE as input and return values of datatype DATE, except for the MONTHS_BETWEEN function, which returns a number. • 4) Conversion Functions: These are functions that help us to convert a value in one form to another form. For Example: a null value into an actual value, or a value from one datatype to another datatype like NVL, TO_CHAR, TO_NUMBER, TO_DATE etc. 3
  • 4. What is a DUAL Table in Oracle? • This is a single row and single column dummy table provided by oracle. This is used to perform mathematical calculations without using a table. Select * from DUAL; Output: DUMMY ------- X Select 777 * 888 from Dual; Output: 777 * 888 --------- 689976 4
  • 5. 1) Numeric Functions • Numeric functions are used to perform operations on numbers. They accept numeric values as input and return numeric values as output. Few of the Numeric functions are: Function Name Return Value ABS (x) Absolute value of the number 'x' CEIL (x) Integer value that is Greater than or equal to the number 'x' FLOOR (x) Integer value that is Less than or equal to the number 'x' TRUNC (x, y) Truncates value of number 'x' up to 'y' decimal places ROUND (x, y) Rounded off value of the number 'x' up to the number 'y' decimal places 5
  • 6. Function Name Examples Return Value ABS (x) ABS (1) ABS (-1) 1 1 CEIL (x) CEIL (2.83) CEIL (2.49) CEIL (-1.6) 3 3 -1 FLOOR (x) FLOOR (2.83) FLOOR (2.49) FLOOR (-1.6) 2 2 -2 ROUND (x, y) ROUND (125.666, 1) ROUND (125.456, 0) ROUND (124.456, -1) 125.7 125 120 TRUNC (x, y) TRUNC (140.234, 2) TRUNC (-54, 1) TRUNC (5.7) TRUNC (142, -1) 140.23 -54 5 140 6 These functions can be used on database columns. For Example: Let's consider the product table. We can use ROUND to round off the unit_price to the nearest integer, if any product has prices in fraction. SELECT ROUND (unit_price) FROM product;
  • 7. 2) Character or Text Functions • Character or text functions are used to manipulate text strings. They accept strings or characters as input and can return both character and number values as output. • Few of the character or text functions are as given below: 7
  • 8. Function Name Return Value LOWER (string_value) All the letters in 'string_value' is converted to lowercase. UPPER (string_value) All the letters in 'string_value' is converted to uppercase. INITCAP (string_value) All the letters in 'string_value' is converted to mixed case. LTRIM (string_value, trim_text) All occurrences of 'trim_text' is removed from the left of 'string_value'. RTRIM (string_value, trim_text) All occurrences of 'trim_text' is removed from the right of'string_value' . TRIM (trim_text FROM string_value) All occurrences of 'trim_text' from the left and right of 'string_value' ,'trim_text' can also be only one character long . SUBSTR (string_value, m, n) Returns 'n' number of characters from'string_value' starting from the 'm'position. LENGTH (string_value) Number of characters in 'string_value'in returned. LPAD (string_value, n, pad_value) Returns 'string_value' left-padded with'pad_value' . The length of the whole string will be of 'n' characters. RPAD (string_value, n, pad_value) Returns 'string_value' right-padded with 'pad_value' . The length of the whole string will be of 'n' characters. 8
  • 9. • For Example, we can use the above UPPER() text function with the column value as follows. SELECT UPPER (product_name) FROM product; • The following examples explains the usage of the above character or text functions: Function Name Examples Return Value LOWER(string_value) LOWER('Good Morning') good morning UPPER(string_value) UPPER('Good') GOOD INITCAP(string_value) INITCAP('GOOD MORNING') Good Morning LTRIM(string_value, trim_text) LTRIM ('Good Morning', 'Good’) Morning RTRIM (string_value, trim_text) RTRIM ('Good Morning', ' Morning') Good TRIM (leading/trailing/both’trim_text’ FROM string_value) TRIM (leading'o' FROM 'Good Morning') Gd Mrning SUBSTR (string_value, m, n) SUBSTR ('Good Morning', 6, 7) Morning LENGTH (string_value) LENGTH ('Good Morning') 12 LPAD (string_value, n, pad_value) LPAD ('Good', 6, '*') **Good RPAD (string_value, n, pad_value) RPAD ('Good', 6, '*') Good** 9
  • 10. 3) Date Functions • These are functions that take values that are of datatype DATE as input and return values of datatypes DATE, except for the MONTHS_BETWEEN function, which returns a number as output. • Few date functions are as given below. 10
  • 11. Function Name Return Value ADD_MONTHS (date, n) Returns a date value after adding 'n'months to the date 'x'. MONTHS_BETWEEN (x1, x2) Returns the number of months between dates x1 and x2. ROUND (x, date_format) Returns the date 'x' rounded off to the nearest century, year, month, date, hour, minute, or second as specified by the 'date_format'. TRUNC (x, date_format) Returns the date 'x' lesser than or equal to the nearest century, year, month, date, hour, minute, or second as specified by the 'date_format'. NEXT_DAY (x, week_day) Returns the next date of the 'week_day'on or after the date 'x' occurs. LAST_DAY (x) It is used to determine the number of days remaining in a month from the date 'x' specified. SYSDATE Returns the systems current date and time. NEW_TIME (x, zone1, zone2) Returns the date and time in zone2 if date 'x' represents the time in zone1. 11
  • 12. Function Name Examples Return Value ADD_MONTHS ( ) ADD_MONTHS ('16-Sep-81', 3) 16-Dec-81 MONTHS_BETWEEN( ) MONTHS_BETWEEN ('16-Sep-81', '16-Dec-81') 3 NEXT_DAY( ) NEXT_DAY ('01-Jun-08', 'Wednesday') 04-JUN-08 LAST_DAY( ) LAST_DAY ('01-Jun-08') 30-Jun-08 NEW_TIME( ) NEW_TIME ('01-Jun-08', 'IST', 'EST') 31-May-08 12
  • 13. Unit Valid format parameters Rounding Rule Year SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y Rounds up on July 1st ISO Year IYYY, IY, I Quarter Q Rounds up on the 16th day of the second month of the quarter Month MONTH, MON, MM, RM Rounds up on the 16th day of the month Week WW Same day of the week as the first day of the year IW IW Same day of the week as the first day of the ISO year W W Same day of the week as the first day of the month Day DDD, DD, J Start day of the week DAY, DY, D Hour HH, HH12, HH24 Minute MI 13 Below are the valid format parameters for round():
  • 14. round(to_date ('22-AUG-03'),'YEAR') would return '01-JAN-04' round(to_date ('22-AUG-03'),'Q') would return '01-OCT-03' round(to_date ('22-AUG-03'),'MONTH') would return '01-SEP-03' round(to_date ('22-AUG-03'),'DDD') would return '22-AUG-03' round(to_date ('22-AUG-03'),'DAY') would return '24-AUG-03' 14
  • 15. Below are the valid format parameters for trunc(): Unit Valid format parameters Year SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y ISO Year IYYY, IY, I Quarter Q Month MONTH, MON, MM, RM Week WW IW IW W W Day DDD, DD, J Start day of the week DAY, DY, D Hour HH, HH12, HH24 Minute MI 15
  • 16. trunc(to_date('22-AUG-03'), 'YEAR') would return '01-JAN-03' trunc(to_date('22-AUG-03'), 'Q') would return '01-JUL-03' trunc(to_date('22-AUG-03'), 'MONTH') would return '01-AUG-03' trunc(to_date('22-AUG-03'), 'DDD') would return '22-AUG-03' trunc(to_date('22-AUG-03'), 'DAY') would return '17-AUG-03' 16
  • 17. 4) Conversion Functions • These are functions that help us to convert a value in one form to another form. For Ex: a null value into an actual value, or a value from one datatype to another datatype like NVL, TO_CHAR, TO_NUMBER, TO_DATE. • Few of the conversion functions available in oracle are: 17
  • 18. Function Name Return Value TO_CHAR (x [,y]) Converts Numeric and Date values to a character string value. It cannot be used for calculations since it is a string value. TO_DATE (x [, date_format]) Converts a valid Numeric and Character values to a Date value. Date is formatted to the format specified by 'date_format'. NVL (x, y) If 'x' is NULL, replace it with 'y'. 'x' and 'y‘ must be of the same datatype. DECODE (a, b, c, d, e, default_value) Checks the value of 'a', if a = b, then returns 'c'. If a = d, then returns 'e'. Else, returns default_value. 18
  • 19. Function Name Examples Return Value TO_CHAR () TO_CHAR (3000, '$9999') TO_CHAR (SYSDATE, 'Day, Month YYYY') $3000 Monday, June 2008 TO_DATE () TO_DATE ('01-Jun-08') 01-Jun-08 NVL () NVL (null, 1) 1 19
  • 20. GROUP Functions • Group functions are built-in SQL functions that operate on groups of rows and return one value for the entire group. These functions are: COUNT, MAX, MIN, AVG, SUM, DISTINCT 20
  • 21. COUNT () • This function returns the number of rows in the table that satisfies the condition specified in the WHERE condition. If the WHERE condition is not specified, then the query returns the total number of rows in the table. • For Example: If you want the number of employees in a particular department, the query would be: SELECT COUNT (*) FROM employee WHERE dept = 'Electronics'; • If you want the total number of employees in all the department, the query would take the form: SELECT COUNT (*) FROM employee; 21
  • 22. DISTINCT() • This function is used to select the distinct rows. • For Example: If you want to select all distinct department names from employee table, the query would be: SELECT DISTINCT dept FROM employee; • To get the count of employees with unique name, the query would be: SELECT COUNT (DISTINCT name) FROM employee; 22
  • 23. MAX() • This function is used to get the maximum value from a column. • To get the maximum salary drawn by an employee, the query would be: SELECT MAX (salary) FROM employee; 23
  • 24. MIN() • This function is used to get the minimum value from a column. • To get the minimum salary drawn by an employee, the query would be: SELECT MIN (salary) FROM employee; 24
  • 25. AVG() • This function is used to get the average value of a numeric column. • To get the average salary, the query would be SELECT AVG (salary) FROM employee; 25
  • 26. SUM() • This function is used to get the sum of a numeric column. • To get the total salary given out to the employees, the query would be: SELECT SUM (salary) FROM employee; 26
  • 27. Subquery • Subquery or Inner query or Nested query is a query in a query. A subquery is usually added in the WHERE Clause of the sql statement. Most of the time, a subquery is used when you know how to search for a value using a SELECT statement, but do not know the exact value. 27
  • 28. • Subqueries are an alternate way of returning data from multiple tables. • Subqueries can be used with the following sql statements along with the comparision operators like =, <, >, >=, <= etc. – SELECT – INSERT – UPDATE – DELETE 28
  • 29. • 1) Usually, a subquery should return only one record, but sometimes it can also return multiple records when used with operators like IN, NOT IN in the where clause. The query would be like: SELECT first_name, last_name, subject FROM student_details WHERE games NOT IN ('Cricket', 'Football'); • The output would be similar to: first_name last_name subject -------------- ------------ ---------- Shekar Gowda Badminton Priya Chandra Chess 29
  • 30. • 2) Lets consider the student_details table. If you know the name of the students who are studying science subject, you can get their id's by using this query below: SELECT id, first_name FROM student_details WHERE first_name IN ('Rahul', 'Stephen'); • but, if you do not know their names, then to get their id's you need to write the query in this manner: SELECT id, first_name FROM student_details WHERE first_name IN (SELECT first_name FROM student_details WHERE subject= 'Science'); 30
  • 31. •Output: Id first_name --- ------------------ 101 Rahul 102 Stephen In the above sql statement, first the inner query is processed first and then the outer query is processed. 31
  • 32. • 3) Subquery can be used with INSERT statement to add rows of data from one or more tables to another table. Lets try to group all the students who study Maths in a table 'maths_group'. INSERT INTO maths_group(id, name) SELECT id, first_name || ' ' || last_name FROM student_details WHERE subject= 'Maths‘; 32
  • 33. • 4) A subquery can be used in the SELECT statement as follows. Lets use the product and order_items table. select p.product_name, p.supplier_name, (select order_id from order_items where product_id = 101) as order_id from product p where p.product_id = 101; product_name supplier_name order_id ------------------- ------------------- -------- Television Onida 5103 33
  • 34. Correlated Subquery • A query is called correlated subquery when both the inner query and the outer query are interdependent. For every row processed by the inner query, the outer query is processed as well. The inner query depends on the outer query before it can be processed. SELECT p.product_name FROM product p WHERE p.product_id = (SELECT o.product_id FROM order_items o WHERE o.product_id = p.product_id); • NOTE: 1) You can nest as many queries you want but it is recommended not to nest more than 16 subqueries in oracle. 2) If a subquery is not dependent on the outer query it is called a non-correlated subquery. 34
  • 35. Correlated Subquery • A correlated subquery is one, which is executed after the outer query is executed. So correlated queries take the opposite approach to that of normal subqueries. The correlated subquery execution is as follows: – The outer query receives a row. – For each candidate row of the outer query, the subquery (the coorelated subquery) is executed once. – The results of the correlated subquery are used to determine whether the candidate row should be part of the result. – The process is repeated for all rows. 35
  • 36. • Get the details of all the books in the ascending order of year of publishing for which an order is placed. SELECT * FROM book WHERE book.title IN (SELECT DISTINCT orders.title FROM orders WHERE book.title = orders.title) ORDER BY book.year; 36
  • 37. Correlated Subquery • A sub-query becomes correlated when the subquery references a column from a table in the parent query. A correlated subquery is evaluated once for each row processed by the parent statement, which can be any of SELECT, DELETE, UPDATE. • A correlated subquery is one way of reading every row in a table and comparing values in each row against related data. It is used whenever a subquery must return a different result for each candidate row considered by the parent query. 37
  • 38. • List accounts along with the current balance and the branch to which it belongs, having a balance more than the average balance of the branch, to which the account belongs. SELECT acct_no, curbal, branch_no FROM acct_mstr A WHERE curbal>(SELECT AVG(curbal) FROM acct_mstr WHERE branch_no=A.branch_no); 38
  • 39. Joins • SQL Joins are used to relate information in different tables. A Join condition is a part of the sql query that retrieves rows from two or more tables. A SQL Join condition is used in the SQL WHERE Clause of select, update, delete statements. • The Syntax for joining two tables is: SELECT col1, col2, col3... FROM table_name1, table_name2 WHERE table_name1.col2 = table_name2.col1; 39
  • 40. • If a sql join condition is omitted or if it is invalid the join operation will result in a Cartesian product. The Cartesian product returns a number of rows equal to the product of all rows in all the tables being joined. • For example, if the first table has 20 rows and the second table has 10 rows, the result will be 20 * 10, or 200 rows. This query takes a long time to execute. 40
  • 41. table "product" product_id product_name supplier_name unit_price 100 Camera Nikon 300 101 Television Onida 100 102 Refrigerator Vediocon 150 103 Ipod Apple 75 104 Mobile Nokia 50 table "order_items" order_id product_id total_units customer 5100 104 30 Infosys 5101 102 5 Satyam 5102 103 25 Wipro 5103 101 10 TCS 41 Tables used in JOIN examples
  • 42. Types of JOINS • Equi joins – Outer Join – Inner Join • Self Join • Non equi joins 42
  • 43. Equi joins • It is a simple sql join condition which uses the equal sign as the comparison operator. Two types of equi joins are: – Outer join and – Inner join. 43
  • 44. Outer Join • This sql join condition returns all rows from both tables which satisfy the join condition along with rows which do not satisfy the join condition from one of the tables. The sql outer join operator in Oracle is ( + ) and is used on one side of the join condition only. • The syntax differs for different RDBMS implementation. Few of them represent the join conditions as "sql left outer join", "sql right outer join". 44
  • 45. • If you want to display all the product data along with order items data, with null values displayed for order items if a product has no order item, the sql query for outer join would be as shown below: SELECT p.product_id, p.product_name, o.order_id, o.total_units FROM order_items o, product p WHERE o.product_id (+) = p.product_id; • The output would be like 45
  • 46. NOTE: If the (+) operator is used in the left side of the join condition it is equivalent to left outer join. If used on the right side of the join condition it is equivalent to right outer join. product_id product_name order_id total_units ------------- ------------- ------------- ------------- 100 Camera 101 Television 5103 10 102 Refrigerator 5101 5 103 Ipod 5102 25 104 Mobile 5100 30 46
  • 47. Inner Join • All the rows returned by the sql query satisfy the sql join condition specified. • For example: If you want to display the product information for each order the query will be as given below. Since you are retrieving the data from two tables, you need to identify the common column between these two tables, which is the product_id. SELECT order_id, product_name, unit_price, supplier_name, total_units FROM product, order_items WHERE order_items.product_id = product.product_id; 47
  • 48. • The columns must be referenced by the table name in the join condition, because product_id is a column in both the tables and needs a way to be identified. This avoids ambiguity in using the columns in the SQL SELECT statement. • The number of join conditions is (n-1), if there are more than two tables joined in a query where 'n' is the number of tables involved. The rule must be true to avoid Cartesian product. • We can also use aliases to reference the column name, then the above query would be like: SELECT o.order_id, p.product_name, p.unit_price, p.supplier_name, o.total_units FROM product p, order_items o WHERE o.product_id = p.product_id; 48
  • 49. Self Join • A Self Join is a type of sql join which is used to join a table to itself, particularly when the table has a FOREIGN KEY that references its own PRIMARY KEY. • It is necessary to ensure that the join statement defines an alias for both copies of the table to avoid column ambiguity. • The below query is an example of a self join, SELECT a.sales_person_id, a.name, a.manager_id, b.sales_person_id, b.name FROM sales_person a, sales_person b WHERE a.manager_id = b.sales_person_id; 49
  • 50. Non Equi Join • A Non Equi Join is a SQL Join whose condition is established using all comparison operators except the equal (=) operator. Like >=, <=, <, > • For example: If you want to find the names of students who are not studying either Economics, the sql query would be like: SELECT first_name, last_name, subject FROM student_details WHERE subject != 'Economics‘; 50
  • 51. • The output would be something like, first_name last_name subject -------------- ------------- ------------ Anajali Bhagwat Maths Shekar Gowda Maths Rahul Sharma Science Stephen Fleming Science 51

Notas do Editor

  1. What is difference between COUNT(*) and COUNT(field-name)? http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1156159920245
  2. SQL A Complete Reference, Leon &amp; Leon. Page No 163
  3. SQL, PL/SQL The Programming Language of Oracle- Ivan Bayross, Page No 205
  4. Outer Joins An outer join extends the result of a simple join. An outer join returns all rows that satisfy the join condition and also returns some or all of those rows from one table for which no rows from the other satisfy the join condition. ■ To write a query that performs an outer join of tables A and B and returns all rows from A (a left outer join), use the LEFT [OUTER] JOIN syntax in the FROM clause, or apply the outer join operator (+) to all columns of B in the join condition in the WHERE clause. For all rows in A that have no matching rows in B, Oracle Database returns null for any select list expressions containing columns of B. ■ To write a query that performs an outer join of tables A and B and returns all rows from B (a right outer join), use the RIGHT [OUTER] JOIN syntax in the FROM clause, or apply the outer join operator (+) to all columns of A in the join condition in the WHERE clause. For all rows in B that have no matching rows in A, Oracle returns null for any select list expressions containing columns of A. ■ To write a query that performs an outer join and returns all rows from A and B, extended with nulls if they do not satisfy the join condition (a full outer join), use the FULL [OUTER] JOIN syntax in the FROM clause. You cannot compare a column with a subquery in the WHERE clause of any outer join, regardless which form you specify. You can use outer joins to fill gaps in sparse data. Such a join is called a partitioned outer join and is formed using the query_partition_clause of the join_clause syntax. Sparse data is data that does not have rows for all possible values of a dimension such as time or department. For example, tables of sales data typically do not have rows for products that had no sales on a given date. Filling data gaps is useful in situations where data sparsity complicates analytic computation or where some data might be missed if the sparse data is queried directly. Oracle recommends that you use the FROM clause OUTER JOIN syntax rather than the Oracle join operator. Outer join queries that use the Oracle join operator (+) are subject to the following rules and restrictions, which do not apply to the FROM clause OUTER JOIN syntax: ■ You cannot specify the (+) operator in a query block that also contains FROM clause join syntax. ■ The (+) operator can appear only in the WHERE clause or, in the context of left-correlation (when specifying the TABLE clause) in the FROM clause, and can be applied only to a column of a table or view. ■ If A and B are joined by multiple join conditions, then you must use the (+) operator in all of these conditions. If you do not, then Oracle Database will return only the rows resulting from a simple join, but without a warning or error to advise you that you do not have the results of an outer join. ■ The (+) operator does not produce an outer join if you specify one table in the outer query and the other table in an inner query. ■ You cannot use the (+) operator to outer-join a table to itself, although self joins are valid. For example, the following statement is not valid: -- The following statement is not valid: SELECT employee_id, manager_id FROM employees WHERE employees.manager_id(+) = employees.employee_id; However, the following self join is valid: SELECT e1.employee_id, e1.manager_id, e2.employee_id FROM employees e1, employees e2 WHERE e1.manager_id(+) = e2.employee_id ORDER BY e1.employee_id, e1.manager_id, e2.employee_id; ■ The (+) operator can be applied only to a column, not to an arbitrary expression. However, an arbitrary expression can contain one or more columns marked with the (+) operator. ■ A WHERE condition containing the (+) operator cannot be combined with another condition using the OR logical operator. ■ A WHERE condition cannot use the IN comparison condition to compare a column marked with the (+) operator with an expression. If the WHERE clause contains a condition that compares a column from table B with a constant, then the (+) operator must be applied to the column so that Oracle returns the rows from table A for which it has generated nulls for this column. Otherwise Oracle returns only the results of a simple join. In a query that performs outer joins of more than two pairs of tables, a single table can be the null-generated table for only one other table. For this reason, you cannot apply the (+) operator to columns of B in the join condition for A and B and the join condition for B and C.