7/29/2019 Oracle Lecture 4
1/45
Copyright 2004, Oracle. All rights reserved.
Lecture 4:
1-Retrieving Data Usingthe SQL SELECT Statement
2-Restricting and Sorting Data
ORACLE
7/29/2019 Oracle Lecture 4
2/45
Objectives
After completing this lesson, you should
be able to do the following:
List the capabilities of SQL SELECTstatements
Execute a basic SELECT statement
7/29/2019 Oracle Lecture 4
3/45
Capabilities of SQL SELECT
Statements
SelectionProjection
Table 1 Table 2
Table 1Table 1
Join
7/29/2019 Oracle Lecture 4
4/45
Basic SELECT Statement
SELECT identifies the columns to be displayed
FROM identifies the table containing thosecolumns
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table;
7/29/2019 Oracle Lecture 4
5/45
Selecting All Columns
SELECT *
FROM departments;
7/29/2019 Oracle Lecture 4
6/45
Selecting Specific Columns
SELECT department_id, location_id
FROM departments;
7/29/2019 Oracle Lecture 4
7/45
Writing SQL Statements
SQL statements are not case-sensitive.
SQL statements can be on one or morelines.
Keywords cannot be abbreviated or splitacross lines.
Clauses are usually placed on separatelines.
Indents are used to enhance readability.
In SQL*plus, you are required to endeach SQL statement with a semicolon (;).
7/29/2019 Oracle Lecture 4
8/45
Arithmetic Expressions
Create expressions with number and date data byusing arithmetic operators.
Operator Description
+ Add
- Subtract
* Multiply
/ Divide
7/29/2019 Oracle Lecture 4
9/45
SELECT last_name, salary, salary + 300
FROM employees;
Using Arithmetic Operators
7/29/2019 Oracle Lecture 4
10/45
SELECT last_name, salary, 12*salary+100
FROM employees;
Operator Precedence
SELECT last_name, salary, 12*(salary+100)
FROM employees;
1
2
7/29/2019 Oracle Lecture 4
11/45
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 blankspace.
SELECT last_name, job_id, salary, commission_pctFROM employees;
7/29/2019 Oracle Lecture 4
12/45
SELECT last_name, 12*salary*commission_pct
FROM employees;
Null Values
in Arithmetic Expressions
Arithmetic expressions containing a null value evaluateto null.
7/29/2019 Oracle Lecture 4
13/45
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 keywordbetween the column name and alias.)
Requires double quotation marks if itcontains spaces or special characters or if it
is case-sensitive
7/29/2019 Oracle Lecture 4
14/45
Using Column Aliases
SELECT last_name "Name" , salary*12 "Annual Salary"
FROM employees;
SELECT last_name AS name, commission_pct comm
FROM employees;
7/29/2019 Oracle Lecture 4
15/45
Concatenation Operator
A concatenation operator:
Links columns or character strings to othercolumns
Is represented by two vertical bars (||) Creates a resultant column that is a character
expression
SELECT last_name||job_id AS "Employees"
FROM employees;
7/29/2019 Oracle Lecture 4
16/45
Literal Character Strings
A literal is a character, a number, or a datethat is included in the SELECT statement.
Date and character literal values must beenclosed by single quotation marks.
Each character string is output once foreachrow returned.
7/29/2019 Oracle Lecture 4
17/45
Using Literal Character Strings
SELECT last_name ||' is a '||job_id
AS "Employee Details"
FROM employees;
7/29/2019 Oracle Lecture 4
18/45
Alternative Quote (q)
Operator Specify your own quotation mark delimiter
Choose any delimiter
Increase readability and usability
SELECT department_name ||q'[, it's assigned Manager Id: ]'
|| manager_id
AS "Department and Manager"
FROM departments;
7/29/2019 Oracle Lecture 4
19/45
Duplicate Rows
The default display of queries is all rows, includingduplicate rows.
SELECT department_id
FROM employees;
SELECT DISTINCT department_id
FROM employees;
1
2
7/29/2019 Oracle Lecture 4
20/45
Summary
In this lesson, you should havelearned how to: Write a SELECT statement that:
Returns all rows and columns from a table
Returns specified columns from a table
Uses column aliases to display moredescriptive column headings
SELECT *|{[DISTINCT] column|expression [alias],...}
FROMtable;
7/29/2019 Oracle Lecture 4
21/45
Practice 1:1- The following SELECT statement executes successfully:SELECT last_name, job_id, salary AS Sal
FROM employees;
True/False
2-The following SELECT statement executes successfully:
SELECT *
FROM job_grades;
True/False
3-There are four coding errors in the following statement. Can
you identify them?
SELECT employee_id, last_name
sal x 12 ANNUAL SALARY
FROM employees;
7/29/2019 Oracle Lecture 4
22/45
Practice 1 :
4-The HR department needs a query to display allunique job codes from the EMPLOYEES table.
5-The HR department has requested a report of all
employees and their job IDs. Display the lastname concatenated with the job ID (separated
by a comma and space) and name the column
Employee and Title.
7/29/2019 Oracle Lecture 4
23/45Copyright 2004, Oracle. All rights reserved.
2-Restricting and Sorting Data
ORACLE
7/29/2019 Oracle Lecture 4
24/45
Objectives
After completing this lesson, you
should be able to do the following:
Limit the rows that are retrieved by aquery
Sort the rows that are retrieved by a
query
7/29/2019 Oracle Lecture 4
25/45
Limiting Rows Using a
Selection
retrieve all
employees indepartment 90
EMPLOYEES
7/29/2019 Oracle Lecture 4
26/45
Limiting the Rows That Are
Selected
Restrict the rows that are returned by using theWHERE clause:
The WHERE clause follows the FROM clause.
SELECT *|{[DISTINCT] column | expression [alias],...}
FROM table
[WHERE condition(s)];
7/29/2019 Oracle Lecture 4
27/45
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;
Using the WHERE Clause
7/29/2019 Oracle Lecture 4
28/45
SELECT last_name, job_id, department_id
FROM employees
WHERE last_name = 'Whalen' ;
Character Strings and Dates
Character strings and date values areenclosed by single quotation marks.
Character values are case-sensitive, and
date values are format-sensitive. The default date format is DD-MON-RR.
7/29/2019 Oracle Lecture 4
29/45
Comparison Conditions
Operator Meaning
= Equal to
> Greater than
>= Greater than or equal to< Less than
7/29/2019 Oracle Lecture 4
30/45
SELECT last_name, salary
FROM employees
WHERE salary
7/29/2019 Oracle Lecture 4
31/45
SELECT last_name, salaryFROM employees
WHERE salary BETWEEN 2500 AND 3500 ;
Using the BETWEEN Condition
Use the BETWEEN condition to display rows based on arange of values:
Lower limit Upper limit
7/29/2019 Oracle Lecture 4
32/45
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 ina list:
7/29/2019 Oracle Lecture 4
33/45
SELECT first_name
FROM employeesWHERE first_name LIKE 'S%' ;
Using the LIKE Condition
Use the LIKE condition to perform wildcardsearches of valid search string values.
Search conditions can contain either literalcharacters or numbers: % denotes zero or many characters.
_ denotes one character.
7/29/2019 Oracle Lecture 4
34/45
Using the LIKE Condition
You can combine pattern-matchingcharacters:
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%' ;
7/29/2019 Oracle Lecture 4
35/45
SELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL ;
Using the NULL Conditions
Test for nulls with the IS NULL operator.
7/29/2019 Oracle Lecture 4
36/45
Logical Conditions
Operator Meaning
AND Returns TRUE ifbothcomponent
conditions are true
OR Returns TRUE ifeithercomponent
condition is true
NOT Returns TRUE if the following
condition is false
7/29/2019 Oracle Lecture 4
37/45
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:
7/29/2019 Oracle Lecture 4
38/45
SELECT employee_id, last_name, job_id, salaryFROM employees
WHERE salary >= 10000
OR job_id LIKE '%MAN%' ;
Using the OR Operator
OR requires either condition to be true:
7/29/2019 Oracle Lecture 4
39/45
SELECT last_name, job_id
FROM employees
WHERE job_id
NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ;
Using the NOT Operator
7/29/2019 Oracle Lecture 4
40/45
Rules of Precedence
You can use parentheses to override rules ofprecedence.
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 ORlogical condition
7/29/2019 Oracle Lecture 4
41/45
SELECT last_name, job_id, salaryFROM 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
7/29/2019 Oracle Lecture 4
42/45
Using the ORDER BY Clause
Sort retrieved rows with the ORDER BYclause: ASC: ascending order, default
DESC: descending order
The ORDER BY clause comes last in theSELECT statement:SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date ;
7/29/2019 Oracle Lecture 4
43/45
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
7/29/2019 Oracle Lecture 4
44/45
SELECT *|{[DISTINCT] column|expression [alias],...}FROM table
[WHERE condition(s)]
[ORDER BY {column, expr, alias} [ASC|DESC]] ;
Summary
In this lesson, you should have learned howto: Use the WHERE clause to restrict rows of output:
Use the comparison conditions Use the BETWEEN, IN, LIKE, and NULL conditions
Apply the logical AND, OR, and NOT operators
Use the ORDER BY clause to sort rows ofoutput
7/29/2019 Oracle Lecture 4
45/45
Practice 2:
1-The HR departments needs to find high-salary and low-salary
employees. display the last name and salary of employees who earn
between $5,000 and $12,000 and are in department 20 or 50. Label
the columns Employee and Monthly Salary, respectively.
2- Create a report to display the last name, salary, and commission ofall employees who earn commissions. Sort data in descending order
of salary and commissions.
3- Display the last name of all employees who have both an a and an e
in their last name.
4- Display the last name, job, and salary for all employees whose jobis SA_REP orST_CLERKand whose salary is not equal to
$2,500, $3,500, or $7,000.
Top Related