Vous êtes sur la page 1sur 52

Chapter 2

Connecting to Oracle 11g


and
Basic SQL SELECT Statements
Jason C.H. Chen, Ph.D.
Professor of MIS
School of Business, Gonzaga University
Spokane, WA 99258 USA
chen@jepson.gonzaga.edu

Dr. Chen, Business Database Systems (Oracle)

Objectives
Learn how to connect to Oracle 11g (client/server and
Personal)
Create the initial database
Learn database objects and SQL commands and components
Identify keywords, mandatory clauses, and optional clauses in
a SELECT statement
Select and view one/all columns of a table
Display multiple columns of a table
Use a column alias to clarify the contents of a particular
column
Perform basic arithmetic operations in the SELECT clause
Remove duplicate lists using either the DISTINCT or
UNIQUE keyword
Use concatenation to combine fields, literals, and other data
Dr. Chen, Business Database Systems (Oracle)

Connect to Oracle 11g


There are two ways connecting to and working
with Oracle 11g
SQL Plus
a command driven facility
SQL Developer
a GUI facility
Indicate the following link to include java.exe (use Browse):
c:\program Files\java\jdk1.6.0\bin\java.exe

Dr. Chen, Business Database Systems (Oracle)

Connect to Oracle 11g using


SQL Plus

type exit
to quit the
system

Figure 2-1 SQL*Plus Interface

Dr. Chen, Business Database Systems (Oracle)

Connect to Oracle 11g using


SQL Developer for the first time

When asked if you


like to migrate
settings, You click on
No

Dr. Chen, Business Database Systems (Oracle)

Connect to Oracle 11g using


SQL Developer for the first time
Sometimes you need to do the following
(also available on the Installation Guide on Bb)
Now run SQL Developer. You will be prompted to enter
the pathname for your newly installed Java JDK program.
If the program was installed in C and you run a 64-bit
version of Windows, the destination will be as follows:
C:\Program Files (x86)\Java\jdk1.6.0_26\bin\java.exe. If
not you click Browse and find the Java program yourself,
just make sure you point to the JDK version not the JRE.

Dr. Chen, Business Database Systems (Oracle)

Connect to Oracle 11g using


SQL Developer

Dr. Chen, Business Database Systems (Oracle)

Figure 2-2 SQL Developer Interface

Connect to Oracle 11g using


SQL Developer

click on

Dr. Chen, Business Database Systems (Oracle)

Complete the information on the Database Connection Screen

jepson-oracle
#1

sbaora11
#2

Dr. Chen, Business Database Systems (Oracle)

Connect to Oracle 11g using


Personal SQL Developer

click on TNS

(password is created during the Oracle installation)


Dr. Chen, Business Database Systems (Oracle)

Complete the information on the Database Connection Screen


(Personal Oracle 11g)

Dr. Chen, Business Database Systems (Oracle)

YOUR TURN
How to Access Your Oracle11g Account
User Name: <your lastname>
Password: <> <BMIS441> [case sensitive]

jepson-oracle
sbaora11

Dr. Chen, Business Database Systems (Oracle)

12

drag, if output screen


not displayed

Dr. Chen, Business Database Systems (Oracle)

Database Objects and Queries


An Oracle database consists of multiple user accounts
Each user account owns database objects

Tables
Views
Stored programs, etc.

Query: command to perform operation on database


object
Structured Query Language (SQL)
Industry standard query language for most of relational
databases
Consists of about 30 commands

Dr. Chen, Business Database Systems (Oracle)

14

Basic SQL Concepts and Commands


SQL (Structured Query Language) is used to
manipulate the database.

There are two basic types of SQL commands:


Data Definition Language (DDL)

Data Manipulation Language (DML)

DDL commands work with the structure of the objects


(tables, indexes, views) in the database.

DML commands work with the data in the database


(i.e.,manipulate the data).
Reserved words - SQL command words
Dr. Chen, Business Database Systems (Oracle)

SQL Components
ORACLE
(SQL Components)
DDL
DML

D.B.

DCL
(Create Table structure
and insert database)
Dr. Chen, Business Database Systems (Oracle)

16

DDL Commands
Used to create and modify the structure of
database objects

CREATE
ALTER
DROP
GRANT
REVOKE

DDL commands execute as soon as they are


issued, and do not need to be explicitly saved

Dr. Chen, Business Database Systems (Oracle)

17

DML Commands
Used to insert, view, and modify database data

INSERT
UPDATE
DELETE
SELECT

DML commands need to be explicitly saved or


rolled back
COMMIT
ROLLBACK
SAVEPOINT

Dr. Chen, Business Database Systems (Oracle)

18

Create the JustLee Database


Use the provided script to create the
database so you can follow the chapter
examples
Verify table contents (structure) using the
DESCRIBE command

Dr. Chen, Business Database Systems (Oracle)

19

Scripts
Scripts are simply files that contain a sequence of
SQL and/or PL/SQL commands that can be
executed in SQL*Plus.
Note:
SQL and PL/SQL(to be introduced) are two
languages Oracle uses.
SQL*Plus is the tool we use to access Oracle.
SQL*Plus can execute both SQL and PL/SQL
commands plus it has its own commands.

Dr. Chen, Business Database Systems (Oracle)

20

Class Exercise
Create a new folder on c:\ as follows:
c:\oradata\chapter2
Download all files in chapter 2 from Bb (under
Course Documents) into c:\oradata\chapter2\
Logon to SQL*Plus and type the following
command (not on SQL Developer)
SQL> start c:\oradata\chapter2\JLDB_Build.sql
or,
SQL> @ c:\oradata\chapter2\JLDB_Build.sql
SQL> SELECT * FROM publisher;
Dr. Chen, Business Database Systems (Oracle)

21

Class Exercise (continued)


A table name only can be created once and
saved in the current database. Therefore, if
you re-do the previous start command you
will receive error message.
To avoid the problem, you need DROP the
tables from the database before those tables
(using the same names) are recreated.
Type the following command for
SQL> start c:\oradata\chapter2\JLDB_Drop.sql
SQL> SELECT * FROM publisher;
Dr. Chen, Business Database Systems (Oracle)

22

Installing Personal Oracle11g


I created a Discussion Questions on the Bb for you to
share (or post question) your experience on installation of
Oracle 11g. Please participate and it will be also your
part of class performance.

Please note that if your computer with 64-bit operating


system such as Windows 7, you cant use the bundled
DVD to install Oracle since it is for 32-bit OS. Rather
you need to download 64-bit Oracle 11g from the Oracle
site (www.oracle.com) or type in keyword search of
Oracle 11g download.

Dr. Chen, Business Database Systems (Oracle)

23

How to verify Created Tables and their Structure?

Figure 2-3 List of existing (created) tables

Figure 2-3 List the structure of the BOOKS table

Also try to type the same commands on SQL>


Dr. Chen, Business Database Systems (Oracle)

SELECT Statement Syntax


SELECT statements are used to retrieve data from
the database
A SELECT statement is referred to as a query
Syntax gives the basic structure, or rules, for a
command
Optional clauses and keywords are shown in
brackets

Dr. Chen, Business Database Systems (Oracle)

25

SELECT Statement Syntax (continued)

Figure 2-5 Syntax for the SELECT statement

SELECT and FROM clauses are required


SELECT clause identifies column(s)
FROM clause identifies table(s)
Each clause begins with a keyword

Dr. Chen, Business Database Systems (Oracle)

Selecting All Data in a Table


Substitute an asterisk for the column names in a
SELECT clause

Figure 2-6 Command to select all data in a table


Dr. Chen, Business Database Systems (Oracle)

Selecting One Column from a Table


Enter column name in SELECT clause
-- CASE is not sensitive
-- chapter 2, Figure 2-8; p. 34
SELECT TITLE FROM BOOKS;
SELECT title from books;
SELECT title FROM books;
SELECT TITLE
FROM BOOKS;

Figure 2-7 Command to select in a single column


Dr. Chen, Business Database Systems (Oracle)

Selecting Multiple Columns from a Table


Separate column names with a comma
-- chapter 2, Figure 2-10; p. 36
SELECT pubdate, title
FROM books;
Figure 2-10 Reversed column sequence in the
SELECT clause

Figure 2-9 Command to select multiple columns from a table


Dr. Chen, Business Database Systems (Oracle)

Operations within the SELECT Statement

Column alias can be used for column headings


Perform arithmetic operations
Suppress duplicates
Concatenate data

List the alias after the column heading


AS keyword is optional
Enclose in double quotation marks:
If it contains blank space(s)
If it contains special symbol(s)
To retain case
Dr. Chen, Business Database Systems (Oracle)

30

Column Alias Example

Figure 2-11 Using a column alias


Dr. Chen, Business Database Systems (Oracle)

Figure 2-12 Using a column alias without


the AS keyword

31

Using Arithmetic Operations


Arithmetic operations

Executed left to right


Multiplication and division are solved first
Addition and subtraction are solved last
Override order with parentheses

Dr. Chen, Business Database Systems (Oracle)

32

Example Arithmetic Operation with


Column Alias

Figure 2-13 Using a column alias for an arithmetic expression


Dr. Chen, Business Database Systems (Oracle)

33

Figure 2-14 NULL values in the Discount column

Dr. Chen, Business Database Systems (Oracle)

The following output is from SQL>


SQL> select * from books;
ISBN
TITLE
PUBDATE
PUBID
COST
---------- ------------------------------ --------- ---------- ---------RETAIL DISCOUNT CATEGORY
---------- ---------- -----------1059831198 BODYBUILD IN 10 MINUTES A DAY 21-JAN-05
30.95
FITNESS
0401140733 REVENGE OF MICKEY
22
FAMILY LIFE

14-DEC-05

18.75

14.2

4981341710 BUILDING A CAR WITH TOOTHPICKS 18-MAR-06


59.95
3 CHILDREN

37.8

8843172113 DATABASE IMPLEMENTATION


55.95
COMPUTER

04-JUN-03

31.4

3437212490 COOKING WITH MUSHROOMS


19.95
COOKING

28-FEB-04

12.5

3957136468 HOLY GRAIL OF ORACLE


75.95
3.8 COMPUTER

31-DEC-05

47.25

Question: How can we improve the output?


(see chapter 2, Figure 2-14(b) on Ch2Queries.sql)
We will learn it later and more in the later chapters.
Dr. Chen, Business Database Systems (Oracle)

Using DISTINCT and UNIQUE


Enter DISTINCT or UNIQUE after SELECT keyword to suppress duplicates
-- chapter 2, Figure 2-16; p. 43
-- without DISTINCT
SELECT state
FROM customers;
SQL> SELECT state FROM customers;
ST
-FL
CA
FL
ID
WA
NY
TX
WY
CA
GA
IL
MA
FL
WY
FL
CA
MI
GA
NJ
NJ
20 rows selected.
Dr. Chen, Business Database Systems (Oracle)

Figure 2-16 List of unduplicated states for customers

More example
-- chapter 2, Figure 2-17; p. 44
SELECT DISTINCT state, city
FROM customers;

Figure 2-17 Unduplicated list of cities for customers


Dr. Chen, Business Database Systems (Oracle)

Using Concatenation
You can combine data
with a string literal
Use the concatenation
operator, ||
It allows the use of
column aliases

Dr. Chen, Business Database Systems (Oracle)

Figure 2-18 Concatenation of two columns

38

Concatenation Examples with Alternate name

Figure 2-219 Using a string literal in concatenation


Dr. Chen, Business Database Systems (Oracle)

Figure 2-20 Using a column alias for concatenated values


39

The following output is from SQL>


SQL> select * from books;
ISBN
TITLE
PUBDATE
PUBID
COST
---------- ------------------------------ --------- ---------- ---------RETAIL DISCOUNT CATEGORY
---------- ---------- -----------1059831198 BODYBUILD IN 10 MINUTES A DAY 21-JAN-05
30.95
FITNESS
0401140733 REVENGE OF MICKEY
22
FAMILY LIFE

14-DEC-05

18.75

14.2

4981341710 BUILDING A CAR WITH TOOTHPICKS 18-MAR-06


59.95
3 CHILDREN

37.8

8843172113 DATABASE IMPLEMENTATION


55.95
COMPUTER

04-JUN-03

31.4

3437212490 COOKING WITH MUSHROOMS


19.95
COOKING

28-FEB-04

12.5

3957136468 HOLY GRAIL OF ORACLE


75.95
3.8 COMPUTER

31-DEC-05

47.25

Question: How can we produce a readable output format?


Dr. Chen, Business Database Systems (Oracle)

Formatting Output in SQL*Plus


To change default column headings:
Specify alternate column headings: SELECT fieldname1
"heading1_text", fieldname2 "heading2_text", ...
Use an alias for column headings: SELECT fieldname1 AS
alias_name1...
Use column statement
To change SQL*Plus line and page size settings
Select Options/Environment on menu bar
Modify linesize and pagesize to desired values
You may also type the following commands at SQL>
SQL> SET LINESIZE 80
SQL> SET PAGESIZE 45

Please download chapter 14 (pdf file on Bb) for more


commands on formatting output.
Dr. Chen, Business Database Systems (Oracle)

41

Advanced SQL Commands


clear screen;
column <fieldname> format a15 wrap
column <fieldname> format a15 word
column <fieldname> format a20 heading description for the field
column <fieldname> format a15 truncate
column <fieldname> format $999.99
-- note: default is wrap
-- formatting output (try it on the SQL>)
-- chapter 2, Figure 2-14(b); p. 41
clear screen
SET LINESIZE 80
SET PAGESIZE 45
column title format a12 heading 'Book Title' WORD
column PubID format 99 heading 'ID'
column Cost format $999.99
column retail format $999.99
SELECT *
FROM books;
Dr. Chen, Business Database Systems (Oracle)

Here is a better output after formatting output:


ISBN
Book Title
---------- -----------1059831198 BODYBUILD IN
10 MINUTES
A DAY
0401140733 REVENGE OF M
ICKEY
4981341710 BUILDING A C
AR WITH TOOT
HPICKS
8843172113 DATABASE IMP
LEMENTATION
3437212490 COOKING WITH
MUSHROOMS
3957136468 HOLY GRAIL O
F ORACLE
1915762492 HANDCRANKED
COMPUTERS
9959789321 E-BUSINESS T
HE EASY WAY
2491748320 PAINLESS CHI
LD-REARING
0299282519 THE WOK WAY
TO COOK
8117949391 BIG BEAR AND
LITTLE DOVE
0132149871 HOW TO GET F
ASTER PIZZA
9247381001 HOW TO MANAG
E THE MANAGE
R
ISBN
Book Title
---------- -----------2147428890 SHORTEST POE
MS

PUBDATE
ID
COST
RETAIL
DISCOUNT CATEGORY
--------- --- -------- -------- ---------- -----------21-JAN-05
4
$18.75
$30.95
FITNESS

14-DEC-05

$14.20

$22.00

FAMILY LIFE

18-MAR-06

$37.80

$59.95

3 CHILDREN

04-JUN-03

$31.40

$55.95

COMPUTER

28-FEB-04

$12.50

$19.95

COOKING

31-DEC-05

$47.25

$75.95

3.8 COMPUTER

21-JAN-05

$21.80

$25.00

COMPUTER

01-MAR-06

$37.90

$54.50

COMPUTER

17-JUL-04

$48.00

$89.95

4.5 FAMILY LIFE

11-SEP-04

$19.00

$28.75

COOKING

08-NOV-05

$5.32

$8.95

11-NOV-06

$17.85

$29.95

09-MAY-03

$15.40

$31.95

CHILDREN
1.5 SELF HELP
BUSINESS

PUBDATE
ID
COST
RETAIL
DISCOUNT CATEGORY
--------- --- -------- -------- ---------- -----------01-MAY-05
5
$21.85
$39.95
LITERATURE

14 rows selected.

Dr. Chen, Business Database Systems (Oracle)

Instruction on Creating a Script file and save as *.sql file


Step 1. Create SQL commands using Notepad

Step 2. Click File then Save As..

Dr. Chen, Business Database Systems (Oracle)

Instruction on Creating a Script file and save as *.sql file (cont.)


Step 3. Save AS Screen

Step 4. Change from Text Document ( *.txt) to


All Files (*.*) on Save as type box

Dr. Chen, Business Database Systems (Oracle)

Instruction on Creating a Script file and save as *.sql file (cont.)


Step 5. Enter a right file name (Oracle_Ch2_Chen_Jason.sql)

Then spool it onto the file of Oracle_ch2_Spool_Chen_Jason.txt


How?
See next
Dr. Chen, Business Database Systems (Oracle)

Break !
Hands-On Assignments
In class exercise (p.54)
- #2
- see spool instruction on the next slide
HW
(Odd numbers only (pp.54-55), but do #1 at the end as it will affect the
rest of problems)
- run the following two commands:
Start c:\oradata\chapter2\JLDB_Drop.sql
Start c:\oradata\chapter2\JLDB_Build.sql
Output should be formatted in a very good manner.
Scripting file name: Oracle_ch2_Lname_Fname.sql
Spooled file name: Oracle_ch2_Spool_Lname_Fname.txt

Email me with the spooled file using attachment to:


chen@jepson.gonzaga.edu
with subject title of
bmis441_Oracle_ch2
Dr. Chen, Business Database Systems (Oracle)

Homework - Hands-On Assignments


Email me with one attachment
(Oracle_ch2_Spool_Lname_Fname.) to:
chen@jepson.gonzaga.edu
with subject title of
bmis441_Oracle_ch2
Read and Practice all examples on Chapters 2
1. Run two script files: JLDB_Drop.sql and
JLDB_Build.sql
2. Read Oracle assignment and create a script file
Oracle_ch2_Lname_Fname.sql for odd number
questions on Hands-on Assignments. Use appropriate
COLUMN statements to produce readable outputs
3. Execute and test one problem a time (do #1 at the
end, why?) and make sure they are all running
successfully. Include class and personal information.
4. When you done, spool the script files (see next slide
for spooling instructions) and email the file
(Oracle_ch2_Spool_Lname_Fname.txt) to me by the
midnight before the next class. Turn in a hardcopy to
me in the class.
Dr. Chen, Business Database Systems (Oracle)

How to Spool your Script and Output Files


After you tested the script file of Oracle_ch2_Lname_Fname.sql successfully,
follow the instructions below to spool both script and output files:
Step 0. Run the following two script files from SQL*Plus (since you have
created JLDB tables)
Start c:\oradata\chapter2\JLDB_Drop.sql
Start c:\oradata\chapter2\JLDB_Build.sql

1. type the following on SQL>


Spool c:\oradata\Oracle_ch2_Spool_Lname_Fname.txt (make sure your name is entered)

2. open Oracle_ch2_Lname_Fname.sql that you already tested


3. copy and paste all the SQL commands (including all comments) to the
SQL*PLUS
4. type Spool Off on the SQL>
The output should contain your personal information, all SQL commands and
their solution on the .txt file and saved in C: drive (oradata\ folder)
Email me the spooled file (.txt) with attachment to:
chen@jepson.gonzaga.edu
with subject title of
bmis441_Oracle_ch2
Dr. Chen, Business Database Systems (Oracle)

49

Summary
A basic query in Oracle 11g SQL includes the
SELECT and FROM clauses, the only mandatory
clauses in a SELECT statement
To view all columns in the table, specify an
asterisk (*) or list all of the column names
individually in the SELECT clause
To display a specific column or set of columns,
list the column names in the SELECT clause (in
the order in which you want them to appear)
When listing column names in the SELECT
clause, a comma must separate column names
Dr. Chen, Business Database Systems (Oracle)

50

Summary (continued)
A column alias can be used to clarify the contents
of a particular column; if the alias contains
spaces or special symbols, or if you want to
display the column with any lowercase letters,
you must enclose the column alias in double
quotation marks (" ")
Indicate the table name following the FROM
keyword
Basic arithmetic operations can be performed in
the SELECT clause
NULL values indicate an absence of a value
Dr. Chen, Business Database Systems (Oracle)

51

Summary (continued)
To remove duplicate listings, include either the
DISTINCT or UNIQUE keyword
To specify which table contains the desired
columns, you must list the name of the table after
the keyword FROM

Use vertical bars (||) to combine, or


concatenate, fields, literals, and other data

52
Dr. Chen, Business Database Systems (Oracle)

52

Vous aimerez peut-être aussi