SlideShare a Scribd company logo
1 of 53
Download to read offline
Retrieving Data Using
the SQL SELECT Statement
Objectives
• After completing this lesson, you should be able
to do the following:
–List the capabilities of SQL SELECT
statements
–Execute a basic SELECT statement
–Limit the rows that are retrieved by a query
–Sort the rows that are retrieved by a query
Capabilities of SQL
SELECT Statements
Selection
Projection
Table 1 Table 2
Table 1
Table 1
Join
Basic SELECT Statement
◦ SELECT identifies the columns to be displayed
◦ FROM identifies the table containing those columns
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table;
Selecting All Columns
SELECT *
FROM departments;
Selecting Specific Columns
SELECT department_id, location_id
FROM departments;
Writing SQL Statements
◦ SQL statements are not case-sensitive.
◦ SQL statements can be on one or more lines.
◦ Keywords cannot be abbreviated or split across lines.
◦ Clauses are usually placed on separate lines.
◦ Indents are used to enhance readability.
Arithmetic Expressions
 Create expressions with number and date data by using
arithmetic operators.
Operator Description
+ Add
- Subtract
* Multiply
/ Divide
SELECT last_name, salary, salary + 300
FROM employees;
Using Arithmetic Operators
…
SELECT last_name, salary, 12*salary+100
FROM employees;
Operator Precedence
SELECT last_name, salary, 12*(salary+100)
FROM employees;
…
…
1
2
Defining a Null Value
◦ A null is a value that is unavailable, unassigned, unknown, or
inapplicable.
◦ A null is not the same as a zero or a blank space.
SELECT last_name, job_id, salary, commission_pct
FROM employees;
…
…
SELECT last_name, 12*salary*commission_pct
FROM employees;
Null Values
in Arithmetic Expressions
 Arithmetic expressions containing a null value evaluate to
null.
…
…
Defining a Column Alias
 A column alias:
◦ Renames a column heading
◦ Is useful with calculations
◦ Immediately follows the column name (There can also be
the optional AS keyword between the column name and
alias.)
◦ Requires double quotation marks if it contains spaces or
special characters or if it is case-sensitive
Using Column Aliases
SELECT last_name "Name" , salary*12 "Annual Salary"
FROM employees;
SELECT last_name AS name, commission_pct comm
FROM employees;
…
…
Concatenation Operator
 A concatenation operator:
◦ Links columns or character strings to other columns
◦ Is represented by keyword CONCAT
◦ Creates a resultant column that is a character expression
SELECT concat(last_name,job_id) AS "Employees"
FROM employees;
…
Literal Character Strings
◦ A literal is a character, a number, or a date that is included in
the SELECT statement.
◦ Date and character literal values must be enclosed by single
quotation marks.
◦ Each character string is output once for each
row returned.
Using Literal Character Strings
…
SELECT concat(last_name,' is a ',job_id)
AS "Employee Details"
FROM employees;
Duplicate Rows
 The default display of queries is all rows, including duplicate
rows.
SELECT department_id
FROM employees;
…
SELECT DISTINCT department_id
FROM employees;
…
1
2
Limiting Rows Using a Selection
“retrieve all
employees in
department 90”
EMPLOYEES
…
Limiting the Rows That Are Selected
◦ Restrict the rows that are returned by using the WHERE
clause:
◦ The WHERE clause follows the FROM clause.
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table
WHERE condition(s)];
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;
Using the WHERE Clause
SELECT last_name, job_id, department_id
FROM employees
WHERE last_name = 'Whalen' ;
Character Strings and Dates
◦ Character strings and date values are enclosed by single
quotation marks.
◦ Character values are case-sensitive, and date values are
format-sensitive.
◦ The default date format is yyyy-mm-dd.
Comparison Conditions
Operator Meaning
= Equal to
> Greater than
>= Greater than or equal to
< Less than
<= Less than or equal to
<> Not equal to
BETWEEN
...AND...
Between two values
(inclusive)
IN(set) Match any of a list of values
LIKE Match a character pattern
IS NULL Is a null value
SELECT last_name, salary
FROM employees
WHERE salary <= 3000 ;
Using Comparison Conditions
SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500 ;
Using the BETWEEN Condition
 Use the BETWEEN condition to display rows based on a
range of values:
Lower limit Upper limit
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201) ;
Using the IN Condition
 Use the IN membership condition to test for values in a list:
SELECT first_name
FROM employees
WHERE first_name LIKE 'S%' ;
Using the LIKE Condition
◦ Use the LIKE condition to perform wildcard searches of
valid search string values.
◦ Search conditions can contain either literal characters or
numbers:
 % denotes zero or many characters.
 _ denotes one character.
Using the LIKE Condition
◦ You can combine pattern-matching characters:
◦ You can use the ESCAPE identifier to search for the actual
% and _ symbols.
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%' ;
SELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL ;
Using the NULL Conditions
 Test for nulls with the IS NULL operator.
Logical Conditions
Operator Meaning
AND Returns TRUE if both component
conditions are true
OR Returns TRUE if either component
condition is true
NOT Returns TRUE if the following
condition is false
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >=10000
AND job_id LIKE '%MAN%' ;
Using the AND Operator
AND requires both conditions to be true:
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >= 10000
OR job_id LIKE '%MAN%' ;
Using the OR Operator
OR requires either condition to be true:
SELECT last_name, job_id
FROM employees
WHERE job_id
NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ;
Using the NOT Operator
Rules of Precedence
You can use parentheses to override rules of
precedence.
Operator Meaning
1 Arithmetic operators
2 Concatenation operator
3 Comparison conditions
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 Not equal to
7 NOT logical condition
8 AND logical condition
9 OR logical condition
SELECT last_name, job_id, salary
FROM employees
WHERE job_id = 'SA_REP'
OR job_id = 'AD_PRES'
AND salary > 15000;
Rules of Precedence
SELECT last_name, job_id, salary
FROM employees
WHERE (job_id = 'SA_REP'
OR job_id = 'AD_PRES')
AND salary > 15000;
1
2
Using the ORDER BY Clause
◦ Sort retrieved rows with the ORDER BY clause:
 ASC: ascending order, default
 DESC: descending order
◦ The ORDER BY clause comes last in the SELECT
statement:
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date ;
…
Sorting
◦ Sorting in descending order:
◦ Sorting by column alias:
◦ Sorting by multiple columns:
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC ;
1
SELECT employee_id, last_name, salary*12 annsal
FROM employees
ORDER BY annsal ;
2
SELECT last_name, department_id, salary
FROM employees
ORDER BY department_id, salary DESC;
3
CASE Expression
• Facilitates conditional inquiries by doing the work of an IF-
THEN-ELSE statement:
CASE expr WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END
SELECT last_name, job_id, salary,
CASE job_id WHEN 'IT_PROG' THEN 1.10*salary
WHEN 'ST_CLERK' THEN 1.15*salary
WHEN 'SA_REP' THEN 1.20*salary
ELSE salary END "REVISED_SALARY"
FROM employees;
Using the CASE Expression
• Facilitates conditional inquiries by doing the work of an IF-
THEN-ELSE statement:
…
…
INNER JOIN, SELF JOIN AND OUTER JOIN
• Joining data together is one of the most significant strengths of
a relational database.
• A join is a query that combines rows from two or more
relations.
• Joins allow database users to combine data from one table
with data from one or more other tables or views, or
synonyms, as long as they are relations.
• Tables are “joined” two at a time making a new relation (a
table generated on the fly) containing all possible
combinations of rows from the original two tables (sometimes
called a “cross join” or “Cartesian product”).
• See sample script
• A join condition is usually used to limit the combinations of
table data to just those rows containing columns that match
columns in the other table.
• Most joins are “equi-joins” where the data from a column in
one table exactly matches data in the column of another table.
• It is also possible (though usually less efficient) to join using
ranges of values or other comparisons between the tables
involved.
• A table may be “joined” to another table, tables, or even itself
(reused multiple times).
• It is important to understand that whenever two or
more tables/views/synonyms (in fact, they are all
relations) are listed in a FROM clause, a join results.
• Join conditions serve the purpose of limiting the
number of rows returned by the join.
• The absence of a join condition results in all possible
combinations of rows from the involved tables, i.e. a
Cartesian product, which is usually not useful
information.
Inner Joins
• An inner join (sometimes called a simple join) is a join of two
or more tables that returns only those rows that satisfy the
join condition.
Inner Join
• Traditional inner joins look for rows that match rows in the other
table(s), i.e. to join two tables based on values in one table being
equal to values in another table
• Also known as equality join, equijoin or natural join
• Returns results only if records exist in both tables
Joining Via Linking Table
Self-Join
• A query that joins a table to itself, for example,
employee table can be joined to itself to find out
subordinate - supervisor pairs.
• Used when a table has a foreign key relationship to
itself (usually parent-child relationship)
• Must create a table alias and structure the query as if
you are joining the table to a copy of itself
• FROM table1 alias1, ...
• Use alias, not table name for select and where clauses
Self-Join Example
From inner join to outer join
• A problem with the simple inner join is that only rows that
match between tables are returned; while it is also possible
that a user might be interested in rows that DO NOT match
rows in the other table(s).
• Finding rows without matches is often referred as Outer Join.
What is an outer join
• An outer join extends the result of a simple join (inner join,
equ-join, theta join or natural join).
• An outer join returns all rows that satisfy the join condition
and those rows from one table for which no rows from the
other satisfy the join condition. Such rows are not returned by
a simple join.
Retrieving and Filtering Data Using SQL SELECT Statements

More Related Content

Similar to Retrieving and Filtering Data Using SQL SELECT Statements

Restricting and sorting data
Restricting and sorting dataRestricting and sorting data
Restricting and sorting dataSyed Zaid Irshad
 
Restricting and sorting data
Restricting and sorting dataRestricting and sorting data
Restricting and sorting dataSyed Zaid Irshad
 
Database Systems - SQL - DDL Statements (Chapter 3/3)
Database Systems - SQL - DDL Statements (Chapter 3/3)Database Systems - SQL - DDL Statements (Chapter 3/3)
Database Systems - SQL - DDL Statements (Chapter 3/3)Vidyasagar Mundroy
 
Database Systems - SQL - DDL Statements (Chapter 3/3)
Database Systems - SQL - DDL Statements (Chapter 3/3)Database Systems - SQL - DDL Statements (Chapter 3/3)
Database Systems - SQL - DDL Statements (Chapter 3/3)Vidyasagar Mundroy
 
Les02 (restricting and sorting data)
Les02 (restricting and sorting data)Les02 (restricting and sorting data)
Les02 (restricting and sorting data)Achmad Solichin
 
Les02 (restricting and sorting data)
Les02 (restricting and sorting data)Les02 (restricting and sorting data)
Les02 (restricting and sorting data)Achmad Solichin
 
Beginers guide for oracle sql
Beginers guide for oracle sqlBeginers guide for oracle sql
Beginers guide for oracle sqlN.Jagadish Kumar
 
Beginers guide for oracle sql
Beginers guide for oracle sqlBeginers guide for oracle sql
Beginers guide for oracle sqlN.Jagadish Kumar
 
Its about a sql topic for basic structured query language
Its about a sql topic for basic structured query languageIts about a sql topic for basic structured query language
Its about a sql topic for basic structured query languageIMsKanchanaI
 
Its about a sql topic for basic structured query language
Its about a sql topic for basic structured query languageIts about a sql topic for basic structured query language
Its about a sql topic for basic structured query languageIMsKanchanaI
 

Similar to Retrieving and Filtering Data Using SQL SELECT Statements (20)

Restricting and sorting data
Restricting and sorting dataRestricting and sorting data
Restricting and sorting data
 
Restricting and sorting data
Restricting and sorting dataRestricting and sorting data
Restricting and sorting data
 
Database Systems - SQL - DDL Statements (Chapter 3/3)
Database Systems - SQL - DDL Statements (Chapter 3/3)Database Systems - SQL - DDL Statements (Chapter 3/3)
Database Systems - SQL - DDL Statements (Chapter 3/3)
 
Database Systems - SQL - DDL Statements (Chapter 3/3)
Database Systems - SQL - DDL Statements (Chapter 3/3)Database Systems - SQL - DDL Statements (Chapter 3/3)
Database Systems - SQL - DDL Statements (Chapter 3/3)
 
Les06
Les06Les06
Les06
 
Les06
Les06Les06
Les06
 
Module03
Module03Module03
Module03
 
Module03
Module03Module03
Module03
 
Les18
Les18Les18
Les18
 
Les18
Les18Les18
Les18
 
Les02
Les02Les02
Les02
 
Les02
Les02Les02
Les02
 
Les02 (restricting and sorting data)
Les02 (restricting and sorting data)Les02 (restricting and sorting data)
Les02 (restricting and sorting data)
 
Les02 (restricting and sorting data)
Les02 (restricting and sorting data)Les02 (restricting and sorting data)
Les02 (restricting and sorting data)
 
Beginers guide for oracle sql
Beginers guide for oracle sqlBeginers guide for oracle sql
Beginers guide for oracle sql
 
Beginers guide for oracle sql
Beginers guide for oracle sqlBeginers guide for oracle sql
Beginers guide for oracle sql
 
Its about a sql topic for basic structured query language
Its about a sql topic for basic structured query languageIts about a sql topic for basic structured query language
Its about a sql topic for basic structured query language
 
Its about a sql topic for basic structured query language
Its about a sql topic for basic structured query languageIts about a sql topic for basic structured query language
Its about a sql topic for basic structured query language
 
Les02
Les02Les02
Les02
 
Les02
Les02Les02
Les02
 

More from ssuser0562f1

Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++ssuser0562f1
 
Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in russuser0562f1
 
Geometry algorithms and formulas calculation
Geometry algorithms and formulas calculationGeometry algorithms and formulas calculation
Geometry algorithms and formulas calculationssuser0562f1
 
Algorithms in number theory presentation
Algorithms in number theory presentationAlgorithms in number theory presentation
Algorithms in number theory presentationssuser0562f1
 
Курсовая (1).pdf
Курсовая (1).pdfКурсовая (1).pdf
Курсовая (1).pdfssuser0562f1
 
springdatajpatwjug-120527215242-phpapp02.pdf
springdatajpatwjug-120527215242-phpapp02.pdfspringdatajpatwjug-120527215242-phpapp02.pdf
springdatajpatwjug-120527215242-phpapp02.pdfssuser0562f1
 
springdatajpa-up.pdf
springdatajpa-up.pdfspringdatajpa-up.pdf
springdatajpa-up.pdfssuser0562f1
 
08-170327133157.pdf
08-170327133157.pdf08-170327133157.pdf
08-170327133157.pdfssuser0562f1
 

More from ssuser0562f1 (14)

Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++
 
Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in ru
 
Geometry algorithms and formulas calculation
Geometry algorithms and formulas calculationGeometry algorithms and formulas calculation
Geometry algorithms and formulas calculation
 
Algorithms in number theory presentation
Algorithms in number theory presentationAlgorithms in number theory presentation
Algorithms in number theory presentation
 
jpa_nus.pdf
jpa_nus.pdfjpa_nus.pdf
jpa_nus.pdf
 
servlets1.pdf
servlets1.pdfservlets1.pdf
servlets1.pdf
 
servlets.pdf
servlets.pdfservlets.pdf
servlets.pdf
 
Курсовая (1).pdf
Курсовая (1).pdfКурсовая (1).pdf
Курсовая (1).pdf
 
springdatajpatwjug-120527215242-phpapp02.pdf
springdatajpatwjug-120527215242-phpapp02.pdfspringdatajpatwjug-120527215242-phpapp02.pdf
springdatajpatwjug-120527215242-phpapp02.pdf
 
springdatajpa-up.pdf
springdatajpa-up.pdfspringdatajpa-up.pdf
springdatajpa-up.pdf
 
08-170327133157.pdf
08-170327133157.pdf08-170327133157.pdf
08-170327133157.pdf
 
waits.pdf
waits.pdfwaits.pdf
waits.pdf
 
waits.pdf
waits.pdfwaits.pdf
waits.pdf
 
geometry.pdf
geometry.pdfgeometry.pdf
geometry.pdf
 

Recently uploaded

ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 

Recently uploaded (20)

ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 

Retrieving and Filtering Data Using SQL SELECT Statements

  • 1. Retrieving Data Using the SQL SELECT Statement
  • 2. Objectives • After completing this lesson, you should be able to do the following: –List the capabilities of SQL SELECT statements –Execute a basic SELECT statement –Limit the rows that are retrieved by a query –Sort the rows that are retrieved by a query
  • 3. Capabilities of SQL SELECT Statements Selection Projection Table 1 Table 2 Table 1 Table 1 Join
  • 4. Basic SELECT Statement ◦ SELECT identifies the columns to be displayed ◦ FROM identifies the table containing those columns SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;
  • 5. Selecting All Columns SELECT * FROM departments;
  • 6. Selecting Specific Columns SELECT department_id, location_id FROM departments;
  • 7. Writing SQL Statements ◦ SQL statements are not case-sensitive. ◦ SQL statements can be on one or more lines. ◦ Keywords cannot be abbreviated or split across lines. ◦ Clauses are usually placed on separate lines. ◦ Indents are used to enhance readability.
  • 8. Arithmetic Expressions  Create expressions with number and date data by using arithmetic operators. Operator Description + Add - Subtract * Multiply / Divide
  • 9. SELECT last_name, salary, salary + 300 FROM employees; Using Arithmetic Operators …
  • 10. SELECT last_name, salary, 12*salary+100 FROM employees; Operator Precedence SELECT last_name, salary, 12*(salary+100) FROM employees; … … 1 2
  • 11. Defining a Null Value ◦ A null is a value that is unavailable, unassigned, unknown, or inapplicable. ◦ A null is not the same as a zero or a blank space. SELECT last_name, job_id, salary, commission_pct FROM employees; … …
  • 12. SELECT last_name, 12*salary*commission_pct FROM employees; Null Values in Arithmetic Expressions  Arithmetic expressions containing a null value evaluate to null. … …
  • 13. Defining a Column Alias  A column alias: ◦ Renames a column heading ◦ Is useful with calculations ◦ Immediately follows the column name (There can also be the optional AS keyword between the column name and alias.) ◦ Requires double quotation marks if it contains spaces or special characters or if it is case-sensitive
  • 14. Using Column Aliases SELECT last_name "Name" , salary*12 "Annual Salary" FROM employees; SELECT last_name AS name, commission_pct comm FROM employees; … …
  • 15. Concatenation Operator  A concatenation operator: ◦ Links columns or character strings to other columns ◦ Is represented by keyword CONCAT ◦ Creates a resultant column that is a character expression SELECT concat(last_name,job_id) AS "Employees" FROM employees; …
  • 16. Literal Character Strings ◦ A literal is a character, a number, or a date that is included in the SELECT statement. ◦ Date and character literal values must be enclosed by single quotation marks. ◦ Each character string is output once for each row returned.
  • 17. Using Literal Character Strings … SELECT concat(last_name,' is a ',job_id) AS "Employee Details" FROM employees;
  • 18. Duplicate Rows  The default display of queries is all rows, including duplicate rows. SELECT department_id FROM employees; … SELECT DISTINCT department_id FROM employees; … 1 2
  • 19. Limiting Rows Using a Selection “retrieve all employees in department 90” EMPLOYEES …
  • 20. Limiting the Rows That Are Selected ◦ Restrict the rows that are returned by using the WHERE clause: ◦ The WHERE clause follows the FROM clause. SELECT *|{[DISTINCT] column|expression [alias],...} FROM table WHERE condition(s)];
  • 21. SELECT employee_id, last_name, job_id, department_id FROM employees WHERE department_id = 90 ; Using the WHERE Clause
  • 22. SELECT last_name, job_id, department_id FROM employees WHERE last_name = 'Whalen' ; Character Strings and Dates ◦ Character strings and date values are enclosed by single quotation marks. ◦ Character values are case-sensitive, and date values are format-sensitive. ◦ The default date format is yyyy-mm-dd.
  • 23. Comparison Conditions Operator Meaning = Equal to > Greater than >= Greater than or equal to < Less than <= Less than or equal to <> Not equal to BETWEEN ...AND... Between two values (inclusive) IN(set) Match any of a list of values LIKE Match a character pattern IS NULL Is a null value
  • 24. SELECT last_name, salary FROM employees WHERE salary <= 3000 ; Using Comparison Conditions
  • 25. SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500 ; Using the BETWEEN Condition  Use the BETWEEN condition to display rows based on a range of values: Lower limit Upper limit
  • 26. SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201) ; Using the IN Condition  Use the IN membership condition to test for values in a list:
  • 27. SELECT first_name FROM employees WHERE first_name LIKE 'S%' ; Using the LIKE Condition ◦ Use the LIKE condition to perform wildcard searches of valid search string values. ◦ Search conditions can contain either literal characters or numbers:  % denotes zero or many characters.  _ denotes one character.
  • 28. Using the LIKE Condition ◦ You can combine pattern-matching characters: ◦ You can use the ESCAPE identifier to search for the actual % and _ symbols. SELECT last_name FROM employees WHERE last_name LIKE '_o%' ;
  • 29. SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL ; Using the NULL Conditions  Test for nulls with the IS NULL operator.
  • 30. Logical Conditions Operator Meaning AND Returns TRUE if both component conditions are true OR Returns TRUE if either component condition is true NOT Returns TRUE if the following condition is false
  • 31. SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >=10000 AND job_id LIKE '%MAN%' ; Using the AND Operator AND requires both conditions to be true:
  • 32. SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 OR job_id LIKE '%MAN%' ; Using the OR Operator OR requires either condition to be true:
  • 33. SELECT last_name, job_id FROM employees WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ; Using the NOT Operator
  • 34. Rules of Precedence You can use parentheses to override rules of precedence. Operator Meaning 1 Arithmetic operators 2 Concatenation operator 3 Comparison conditions 4 IS [NOT] NULL, LIKE, [NOT] IN 5 [NOT] BETWEEN 6 Not equal to 7 NOT logical condition 8 AND logical condition 9 OR logical condition
  • 35. SELECT last_name, job_id, salary FROM employees WHERE job_id = 'SA_REP' OR job_id = 'AD_PRES' AND salary > 15000; Rules of Precedence SELECT last_name, job_id, salary FROM employees WHERE (job_id = 'SA_REP' OR job_id = 'AD_PRES') AND salary > 15000; 1 2
  • 36. Using the ORDER BY Clause ◦ Sort retrieved rows with the ORDER BY clause:  ASC: ascending order, default  DESC: descending order ◦ The ORDER BY clause comes last in the SELECT statement: SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ; …
  • 37. Sorting ◦ Sorting in descending order: ◦ Sorting by column alias: ◦ Sorting by multiple columns: SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC ; 1 SELECT employee_id, last_name, salary*12 annsal FROM employees ORDER BY annsal ; 2 SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC; 3
  • 38. CASE Expression • Facilitates conditional inquiries by doing the work of an IF- THEN-ELSE statement: CASE expr WHEN comparison_expr1 THEN return_expr1 [WHEN comparison_expr2 THEN return_expr2 WHEN comparison_exprn THEN return_exprn ELSE else_expr] END
  • 39. SELECT last_name, job_id, salary, CASE job_id WHEN 'IT_PROG' THEN 1.10*salary WHEN 'ST_CLERK' THEN 1.15*salary WHEN 'SA_REP' THEN 1.20*salary ELSE salary END "REVISED_SALARY" FROM employees; Using the CASE Expression • Facilitates conditional inquiries by doing the work of an IF- THEN-ELSE statement: … …
  • 40. INNER JOIN, SELF JOIN AND OUTER JOIN
  • 41. • Joining data together is one of the most significant strengths of a relational database. • A join is a query that combines rows from two or more relations. • Joins allow database users to combine data from one table with data from one or more other tables or views, or synonyms, as long as they are relations.
  • 42. • Tables are “joined” two at a time making a new relation (a table generated on the fly) containing all possible combinations of rows from the original two tables (sometimes called a “cross join” or “Cartesian product”). • See sample script
  • 43. • A join condition is usually used to limit the combinations of table data to just those rows containing columns that match columns in the other table. • Most joins are “equi-joins” where the data from a column in one table exactly matches data in the column of another table.
  • 44. • It is also possible (though usually less efficient) to join using ranges of values or other comparisons between the tables involved. • A table may be “joined” to another table, tables, or even itself (reused multiple times).
  • 45. • It is important to understand that whenever two or more tables/views/synonyms (in fact, they are all relations) are listed in a FROM clause, a join results. • Join conditions serve the purpose of limiting the number of rows returned by the join. • The absence of a join condition results in all possible combinations of rows from the involved tables, i.e. a Cartesian product, which is usually not useful information.
  • 46. Inner Joins • An inner join (sometimes called a simple join) is a join of two or more tables that returns only those rows that satisfy the join condition.
  • 47. Inner Join • Traditional inner joins look for rows that match rows in the other table(s), i.e. to join two tables based on values in one table being equal to values in another table • Also known as equality join, equijoin or natural join • Returns results only if records exist in both tables
  • 49. Self-Join • A query that joins a table to itself, for example, employee table can be joined to itself to find out subordinate - supervisor pairs. • Used when a table has a foreign key relationship to itself (usually parent-child relationship) • Must create a table alias and structure the query as if you are joining the table to a copy of itself • FROM table1 alias1, ... • Use alias, not table name for select and where clauses
  • 51. From inner join to outer join • A problem with the simple inner join is that only rows that match between tables are returned; while it is also possible that a user might be interested in rows that DO NOT match rows in the other table(s). • Finding rows without matches is often referred as Outer Join.
  • 52. What is an outer join • An outer join extends the result of a simple join (inner join, equ-join, theta join or natural join). • An outer join returns all rows that satisfy the join condition and those rows from one table for which no rows from the other satisfy the join condition. Such rows are not returned by a simple join.