1
Writing Basic SQL SELECT Statements
Copyright © Oracle Corporation, 2001. All rights
Objectives After completing this lesson, you should be able to do the following:
• • •
1-2
List the capabilities of SQL SELECT statements Execute a basic SELECT statement Differentiate between SQL statements and iSQL*Plus commands
Copyright © Oracle Corporation, 2001. All rights
Capabilities of SQL SELECT Statements Projection
Selection
Table 1
Table 1 Join
Table 1 1-3
Table 2 Copyright © Oracle Corporation, 2001. All rights
Basic SELECT Statement
SELECT FROM
• •
1-4
*|{[DISTINCT] column|expression [alias],...} table;
SELECT identifies what columns FROM identifies which table
Copyright © Oracle Corporation, 2001. All rights
Selecting All Columns
SELECT * FROM departments;
1-5
Copyright © Oracle Corporation, 2001. All rights
Selecting Specific Columns
SELECT department_id, location_id FROM departments;
1-6
Copyright © Oracle Corporation, 2001. All rights
Writing SQL Statements
1-7
• • •
SQL statements are not case sensitive.
• •
Clauses are usually placed on separate lines.
SQL statements can be on one or more lines. Keywords cannot be abbreviated or split across lines. Indents are used to enhance readability.
Copyright © Oracle Corporation, 2001. All rights
Column Heading Defaults • •
1-8
iSQL*Plus: –
Default heading justification: Center
–
Default heading display: Uppercase
SQL*Plus: –
Character and Date column headings are leftjustified
–
Number column headings are right-justified
–
Default heading display: Uppercase
Copyright © Oracle Corporation, 2001. All rights
Arithmetic Expressions Create expressions with number and date data by using arithmetic operators. Operator
1-9
Description
+
Add
-
Subtract
*
Multiply
/
Divide
Copyright © Oracle Corporation, 2001. All rights
Using Arithmetic Operators SELECT last_name, salary, salary + 300 FROM employees;
…
1-10
Copyright © Oracle Corporation, 2001. All rights
Operator Precedence
* / +
1-11
_
•
Multiplication and division take priority over addition and subtraction.
•
Operators of the same priority are evaluated from left to right.
•
Parentheses are used to force prioritized evaluation and to clarify statements.
Copyright © Oracle Corporation, 2001. All rights
Operator Precedence SELECT last_name, salary, 12*salary+100 FROM employees;
…
1-12
Copyright © Oracle Corporation, 2001. All rights
Using Parentheses SELECT last_name, salary, 12*(salary+100) FROM employees;
…
1-13
Copyright © Oracle Corporation, 2001. All rights
Defining a Null Value •
A null is a value that is unavailable, unassigned, unknown, or inapplicable.
•
A null is not the same as zero or a blank space.
LECT last_name, job_id, salary, commission_pct OM employees;
… …
1-14
Copyright © Oracle Corporation, 2001. All rights
Null Values in Arithmetic Expressions Arithmetic expressions containing a null value evaluate to null. SELECT last_name, 12*salary*commission_pct FROM employees;
… …
1-15
Copyright © Oracle Corporation, 2001. All rights
Defining a Column Alias A column alias:
1-16
• • •
Renames a column heading
•
Requires double quotation marks if it contains spaces or special characters or is case sensitive
Is useful with calculations Immediately follows the column name - there can also be the optional AS keyword between the column name and alias
Copyright © Oracle Corporation, 2001. All rights
Using Column Aliases SELECT last_name AS name, commission_pct comm FROM employees;
… SELECT last_name "Name", salary*12 "Annual Salary" FROM employees;
…
1-17
Copyright © Oracle Corporation, 2001. All rights
Concatenation Operator A concatenation operator:
1-18
•
Concatenates columns or character strings to other columns
• •
Is represented by two vertical bars (||) Creates a resultant column that is a character expression
Copyright © Oracle Corporation, 2001. All rights
Using the Concatenation Operator
SELECT FROM
last_name||job_id AS "Employees" employees;
…
1-19
Copyright © Oracle Corporation, 2001. All rights
Literal Character Strings
1-20
•
A literal is a character, a number, or a date included in the SELECT list.
•
Date and character literal values must be enclosed within single quotation marks.
•
Each character string is output once for each row returned.
Copyright © Oracle Corporation, 2001. All rights
Using Literal Character Strings
SELECT last_name ||' is a '||job_id AS "Employee Details" FROM employees;
…
1-21
Copyright © Oracle Corporation, 2001. All rights
Duplicate Rows The default display of queries is all rows, including duplicate rows. SELECT department_id FROM employees;
…
1-22
Copyright © Oracle Corporation, 2001. All rights
Eliminating Duplicate Rows Eliminate duplicate rows by using the DISTINCT keyword in the SELECT clause. SELECT DISTINCT department_id FROM employees;
1-23
Copyright © Oracle Corporation, 2001. All rights
SQL and iSQL*Plus Interaction SQL statements
iSQL*Plus
Oracle server
Internet Browser
Query results
iSQL*Plus commands Formatted report Client
1-24
Copyright © Oracle Corporation, 2001. All rights
SQL Statements Versus iSQL*Plus Commands SQL • A language • ANSI standard • Keyword cannot be abbreviated • Statements manipulate data and table definitions in the database
SQL statements 1-25
iSQL*Plus • An environment • Oracle proprietary • Keywords can be abbreviated • Commands do not allow manipulation of values in the database • Runs on a browser • Centrally loaded, does not have to be implemented on each machine iSQL*Plus commands
Copyright © Oracle Corporation, 2001. All rights
Overview of iSQL*Plus After you log into iSQL*Plus, you can:
1-26
• • • •
Describe the table structure
• •
Execute statements stored in saved files
Edit your SQL statement Execute SQL from iSQL*Plus Save SQL statements to files and append SQL statements to files Load commands from a text file into the iSQL*Plus Edit window
Copyright © Oracle Corporation, 2001. All rights
Logging In to iSQL*Plus From your Windows browser environment:
1-27
Copyright © Oracle Corporation, 2001. All rights
The iSQL*Plus Environment 10
9
8
6
7
1 2
1-28
3
Copyright © Oracle Corporation, 2001. All rights
4
5
Displaying Table Structure Use the iSQL*Plus DESCRIBE command to display the structure of a table. DESC[RIBE] tablename
1-29
Copyright © Oracle Corporation, 2001. All rights
Displaying Table Structure
DESCRIBE employees
1-30
Copyright © Oracle Corporation, 2001. All rights
Interacting with Script Files
SELECT last_name, hire_date, salary FROM employees;
1 2
1-31
Copyright © Oracle Corporation, 2001. All rights
Interacting with Script Files 1 D:\temp\emp_sql.htm
SELECT last_name, hire_date, salary FROM employees;
3
1-32
Copyright © Oracle Corporation, 2001. All rights
2
Interacting with Script Files
DESCRIBE employees SELECT first_name, last_name, job_id FROM employees;
3
1-33
2
Copyright © Oracle Corporation, 2001. All rights
1
Summary In this lesson, you should have learned 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 give descriptive column headings
Use the iSQL*Plus environment to write, save, and execute SQL statements and iSQL*Plus commands.
SELECT FROM
1-34
*|{[DISTINCT] column|expression [alias],...} table;
Copyright © Oracle Corporation, 2001. All rights
Practice 1 Overview This practice covers the following topics:
1-35
• • •
Selecting all data from different tables
•
Using iSQL*Plus
Describing the structure of tables Performing arithmetic calculations and specifying column names
Copyright © Oracle Corporation, 2001. All rights
1-36
Copyright © Oracle Corporation, 2001. All rights
1-37
Copyright © Oracle Corporation, 2001. All rights
1-38
Copyright © Oracle Corporation, 2001. All rights
1-39
Copyright © Oracle Corporation, 2001. All rights
1-40
Copyright © Oracle Corporation, 2001. All rights