0808.pdf

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.
0808.pdf
1 sur 53

Recommandé

Chinabankppt par
ChinabankpptChinabankppt
Chinabankpptnewrforce
1.6K vues365 diapositives
Chinabankppt par
ChinabankpptChinabankppt
Chinabankpptnewrforce
1.6K vues365 diapositives
SQL- Introduction to MySQL par
SQL- Introduction to MySQLSQL- Introduction to MySQL
SQL- Introduction to MySQLVibrant Technologies & Computers
406 vues36 diapositives
SQL- Introduction to MySQL par
SQL- Introduction to MySQLSQL- Introduction to MySQL
SQL- Introduction to MySQLVibrant Technologies & Computers
406 vues36 diapositives
ALL ABOUT SQL AND RDBMS par
ALL ABOUT SQL AND RDBMSALL ABOUT SQL AND RDBMS
ALL ABOUT SQL AND RDBMSgaurav koriya
4.5K vues311 diapositives
ALL ABOUT SQL AND RDBMS par
ALL ABOUT SQL AND RDBMSALL ABOUT SQL AND RDBMS
ALL ABOUT SQL AND RDBMSgaurav koriya
4.5K vues311 diapositives

Contenu connexe

Similaire à 0808.pdf

Restricting and sorting data par
Restricting and sorting dataRestricting and sorting data
Restricting and sorting dataSyed Zaid Irshad
450 vues29 diapositives
Restricting and sorting data par
Restricting and sorting dataRestricting and sorting data
Restricting and sorting dataSyed Zaid Irshad
450 vues29 diapositives
Database Systems - SQL - DDL Statements (Chapter 3/3) par
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
1.1K vues89 diapositives
Database Systems - SQL - DDL Statements (Chapter 3/3) par
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
1.1K vues89 diapositives
Les06 par
Les06Les06
Les06Sudharsan S
1K vues32 diapositives
Les06 par
Les06Les06
Les06Sudharsan S
1K vues32 diapositives

Similaire à 0808.pdf(20)

Database Systems - SQL - DDL Statements (Chapter 3/3) par 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)
Vidyasagar Mundroy1.1K vues
Database Systems - SQL - DDL Statements (Chapter 3/3) par 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)
Vidyasagar Mundroy1.1K vues
Les02 (restricting and sorting data) par Achmad Solichin
Les02 (restricting and sorting data)Les02 (restricting and sorting data)
Les02 (restricting and sorting data)
Achmad Solichin2.1K vues
Les02 (restricting and sorting data) par Achmad Solichin
Les02 (restricting and sorting data)Les02 (restricting and sorting data)
Les02 (restricting and sorting data)
Achmad Solichin2.1K vues

Plus de ssuser0562f1

jpa_nus.pdf par
jpa_nus.pdfjpa_nus.pdf
jpa_nus.pdfssuser0562f1
1 vue23 diapositives
servlets1.pdf par
servlets1.pdfservlets1.pdf
servlets1.pdfssuser0562f1
4 vues20 diapositives
servlets.pdf par
servlets.pdfservlets.pdf
servlets.pdfssuser0562f1
1 vue20 diapositives
Курсовая (1).pdf par
Курсовая (1).pdfКурсовая (1).pdf
Курсовая (1).pdfssuser0562f1
13 vues51 diapositives
springdatajpatwjug-120527215242-phpapp02.pdf par
springdatajpatwjug-120527215242-phpapp02.pdfspringdatajpatwjug-120527215242-phpapp02.pdf
springdatajpatwjug-120527215242-phpapp02.pdfssuser0562f1
13 vues33 diapositives
springdatajpa-up.pdf par
springdatajpa-up.pdfspringdatajpa-up.pdf
springdatajpa-up.pdfssuser0562f1
4 vues32 diapositives

Dernier

MercerJesse2.1Doc.pdf par
MercerJesse2.1Doc.pdfMercerJesse2.1Doc.pdf
MercerJesse2.1Doc.pdfjessemercerail
301 vues5 diapositives
Class 9 lesson plans par
Class 9 lesson plansClass 9 lesson plans
Class 9 lesson plansTARIQ KHAN
68 vues34 diapositives
STRATEGIC MANAGEMENT MODULE 1_UNIT1 _UNIT2.pdf par
STRATEGIC MANAGEMENT MODULE 1_UNIT1 _UNIT2.pdfSTRATEGIC MANAGEMENT MODULE 1_UNIT1 _UNIT2.pdf
STRATEGIC MANAGEMENT MODULE 1_UNIT1 _UNIT2.pdfDr Vijay Vishwakarma
90 vues68 diapositives
CUNY IT Picciano.pptx par
CUNY IT Picciano.pptxCUNY IT Picciano.pptx
CUNY IT Picciano.pptxapicciano
60 vues17 diapositives
Nelson_RecordStore.pdf par
Nelson_RecordStore.pdfNelson_RecordStore.pdf
Nelson_RecordStore.pdfBrynNelson5
46 vues10 diapositives
Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant... par
Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant...Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant...
Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant...Ms. Pooja Bhandare
194 vues45 diapositives

Dernier(20)

Class 9 lesson plans par TARIQ KHAN
Class 9 lesson plansClass 9 lesson plans
Class 9 lesson plans
TARIQ KHAN68 vues
CUNY IT Picciano.pptx par apicciano
CUNY IT Picciano.pptxCUNY IT Picciano.pptx
CUNY IT Picciano.pptx
apicciano60 vues
Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant... par Ms. Pooja Bhandare
Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant...Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant...
Pharmaceutical Inorganic Chemistry Unit IVMiscellaneous compounds Expectorant...
NodeJS and ExpressJS.pdf par ArthyR3
NodeJS and ExpressJS.pdfNodeJS and ExpressJS.pdf
NodeJS and ExpressJS.pdf
ArthyR347 vues
12.5.23 Poverty and Precarity.pptx par mary850239
12.5.23 Poverty and Precarity.pptx12.5.23 Poverty and Precarity.pptx
12.5.23 Poverty and Precarity.pptx
mary850239162 vues
Parts of Speech (1).pptx par mhkpreet001
Parts of Speech (1).pptxParts of Speech (1).pptx
Parts of Speech (1).pptx
mhkpreet00143 vues
JQUERY.pdf par ArthyR3
JQUERY.pdfJQUERY.pdf
JQUERY.pdf
ArthyR3103 vues
11.30.23A Poverty and Inequality in America.pptx par mary850239
11.30.23A Poverty and Inequality in America.pptx11.30.23A Poverty and Inequality in America.pptx
11.30.23A Poverty and Inequality in America.pptx
mary85023986 vues
Career Building in AI - Technologies, Trends and Opportunities par WebStackAcademy
Career Building in AI - Technologies, Trends and OpportunitiesCareer Building in AI - Technologies, Trends and Opportunities
Career Building in AI - Technologies, Trends and Opportunities
WebStackAcademy41 vues
Creative Restart 2023: Atila Martins - Craft: A Necessity, Not a Choice par Taste
Creative Restart 2023: Atila Martins - Craft: A Necessity, Not a ChoiceCreative Restart 2023: Atila Martins - Craft: A Necessity, Not a Choice
Creative Restart 2023: Atila Martins - Craft: A Necessity, Not a Choice
Taste41 vues
Monthly Information Session for MV Asterix (November) par Esquimalt MFRC
Monthly Information Session for MV Asterix (November)Monthly Information Session for MV Asterix (November)
Monthly Information Session for MV Asterix (November)
Esquimalt MFRC98 vues
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37 par MysoreMuleSoftMeetup
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Retail Store Scavenger Hunt.pptx par jmurphy154
Retail Store Scavenger Hunt.pptxRetail Store Scavenger Hunt.pptx
Retail Store Scavenger Hunt.pptx
jmurphy15452 vues

0808.pdf

  • 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.