Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

Oracle Database Quick Start

Topic List Collapse All Topics Hide All Images Print

Overview

Purpose

In this tutorial, you learn about Oracle Database and how to perform simple operations on tables.

Time to Complete

Approximately 1 hour and 45 minutes:

45 minutes to complete the prerequisites (Note: The time to download Oracle Database software to your local machine depends on the network. Therefore, it is not included in the time specified to complete the prerequisites.)
1 hour to complete this Oracle by Example (OBE)

Introduction

In general, a database is a collection of data treated as a unit. A database management system (DBMS) stores, manages and retrieves a large amount of data in a multi-user environment so that many users can access the same data
concurrently.

Oracle Database is a robust object relational database that provides efficient and effective solutions for database users such as delivering high performance, protecting users from unauthorized access, and enabling fast failure
recovery.

Hardware and Software Requirements

The following is a list of hardware and software needed to install Oracle Database:

Minimum of 1 GB of physical memory


Sufficient paging space
Appropriate service packs and patches
Appropriate file system format

Prerequisites

Before starting this tutorial, you should install Oracle Database.

Complete the OBE entitled Installing Oracle Database Software and Creating a Database.
Complete the OBE entitled Getting Started with Oracle Enterprise Manager Express.
If you have problems connecting to the listener, complete the OBE entitled Using the Listener Control Utility to Manage the Listener.

Understanding the HR Sample Schema

A database schema is a collection of metadata that describes the relationship between the data in a database. A schema can be simply described as the "layout" of a database or the blueprint that outlines how data is organized into
tables.

Schema objects are database objects that contain data or that govern or perform operations on data. By definition, each schema object belongs to a specific schema. The following are commonly used schema objects:

Tables: Basic units of data storage in an Oracle database. Here, data is stored in rows and columns. You define a table with a table name and a set of columns.
Indexes: Performance-tuning methods for allowing faster retrieval of records.
Views: Representations of SQL statements that are stored in memory so that they can be reused.

The Human Resources (HR) schema is part of the Oracle Sample Schemas that you can install with Oracle Database. The following is the entity-relationship diagram of the HR schema:

The schema contains the following tables:

The REGIONS table contains rows that represent a region such as the Americas or Asia.
The COUNTRIES table contains rows for countries, each of which is associated with a region.
The LOCATIONS table contains the specific addresses for the offices, warehouses, or production sites of a company in a particular country.
The DEPARTMENTS table contains details about the departments in which employees work. Each department may have a relationship representing the department manager in the EMPLOYEES table.
The EMPLOYEES table contains details about each employee who works in a department. Some employees may not be assigned to a department.
The JOBS table contains the job types that an employee can hold.
The JOB_HISTORY table contains an employee's job history.

Connecting to the HR Schema

In this section, you connect to Oracle Database by using the SQL*Plus utility, and you unlock the HR schema.

1. Open a terminal window and execute the oraenv command to set the environment variables.

. oraenv

2. Execute the following statement to connect to the database as a system administrator:

sqlplus sys/<password> as sysdba;

3. By default, the HR schema is locked. Execute the following statement to unlock the HR schema.

ALTER USER hr IDENTIFIED BY hr ACCOUNT UNLOCK;

4. Execute the following command to connect to the HR schema:

CONNECT hr/hr;

5. The DESCRIBE command provides a description of a specified table or view. The description for tables and views contains the following information:

Column names
Whether null values are allowed (NULL or NOT NULL) for each column
Data type of columns, such as DATE, NUMBER, VARCHAR2
Precision of columns, such as VARCHAR2(50)

Syntax: DESC[RIBE] <table>

Execute the following command to view the description of the EMPLOYEES table:

DESCRIBE EMPLOYEES;

Querying the HR Schema

In this section, you execute the SELECT statement to query tables in the HR schema. You also use the ORDER BY and WHERE clauses within the SELECT statement to sort and restrict data in the result set.

Querying Tables
In this section, you execute the SELECT statement to retrieve data from tables and views. You can select rows and columns that you want to return in the output. In its simplest form, a SELECT statement must contain the following:

A SELECT clause, which specifies columns containing the values to be matched


A FROM clause, which specifies the table containing the columns listed in the SELECT clause

Syntax: SELECT {*|[DISTINCT] column|expression [alias],...}


FROM <table>;

1. You can display all columns of data in a table by entering an asterisk (*) after the SELECT keyword. Execute the following statement to view all rows and columns in the DEPARTMENTS table:

SELECT *
FROM departments;

2. You can display specific columns of data in a table by specifying the column names in the SELECT statement. Execute the following statement to view the JOB_ID and JOB_TITLE columns in the JOBS table:

SELECT job_id, job_title


FROM jobs;

Restricting Data
In this section, you use the WHERE clause to restrict the rows that are returned from the SELECT query. A WHERE clause contains a condition that must be met. It directly follows the FROM clause. If the condition is true, the row that
meets the condition is returned.

1. Modify the SELECT statement. Execute the following query to restrict the number of rows to DEPARTMENT_ID 60:

SELECT *
FROM departments
WHERE department_id=60;

Sorting Data
In this section, you use the ORDER BY clause to sort the rows that are retrieved from the SELECT statement. You specify the column based on the rows that must be sorted. You also specify the ASC keyword to display rows in
ascending order (default), and you specify the DESC keyword to display rows in descending order.

1. Execute the following SELECT statement to retrieve the LAST_NAME, JOB_ID, and HIRE_DATE columns of employees who belong to the SA_REP job ID. Sort the rows in ascending order based on the HIRE_DATE column.

SELECT last_name, job_id, hire_date


FROM employees
WHERE job_id='SA_REP'
ORDER BY hire_date;

2. Modify the SELECT statement to display rows in descending order. Use the DESC keyword.

SELECT last_name, job_id, hire_date


FROM employees
WHERE job_id='SA_REP'
ORDER BY hire_date DESC;

Creating a Schema

In this section, you create a schema named ONLINE_SHOPPE. This schema portrays an online store that operates with a customer base and commodities. Information about customers is stored in the CUSTOMERS table, information abo
commodities is stored in the COMMODITIES table and order details are stored in the ORDERS table.

Creating a User
Database administrators perform many tasks. One of their more common tasks is creating database users and assigning them unique usernames. After users log in to the database with their username and password, they can
issue database SQL statements to create objects, query objects, and manage the database.

Creating a user is a way to create a schema. In this section, you execute the CREATE USER statement to create and configure a database user.

Syntax: CREATE USER <USER> IDENTIFIED BY <password>;

1. Execute the following statements to connect to the database as an administrator and create a user named ONLINE_SHOPPE.

CONNECT sys/<password> as sysdba;


CREATE USER online_shoppe IDENTIFIED BY online;

A schema named ONLINE_SHOPPE was created in Oracle Database.

Assigning Privileges
When multiple users access database objects, you can control the authorization of the objects with privileges. Privileges control whether a user can modify an object that is owned by another user. They are granted or revoked
either by:

The instance administrator


A user with ADMIN privileges
The object's owner

In general, there are two types of privileges:

System privilege: The right to perform a particular action on any object, such as, tables, views and indexes. Only the instance administrator or a user with the ADMIN privilege can assign or revoke system privileges.
Object privilege: The right to perform a particular action on an object or to access another user's object. An object's owner has all object privileges for that object and can assign object privileges for that object to other
database users.

Here are a few of the basic system and object privileges:

System privileges:

Create a table, a view, or an index that is owned by any user in the database
Alter a table, a view, or an index in the database
Drop a table, a view, or an index in the database

Object privileges:

Insert values into a table


Create a foreign key dependency for a table
Select from a table
Update a table

You use the GRANT statement to assign privileges to users and roles. To assign privileges, you must have been assigned either the ADMIN OPTION or the GRANT ANY PRIVILEGE system privilege.

Syntax: GRANT <grant_privilege> TO <user>;

1. When you create a user with the CREATE USER statement, the user's privilege domain is empty by default. The administrator assigns privileges to the user based on the tasks that the user may perform in the future. In
this tutorial, the ONLINE_SHOPPE user establishes a session, creates a table, and writes DML statements against tables. Execute the following statements to assign the required privileges to the ONLINE_SHOPPE user:

GRANT CREATE SESSION to online_shoppe;


GRANT CREATE TABLE to online_shoppe;
GRANT UNLIMITED TABLESPACE to online_shoppe;
GRANT SELECT ANY TABLE to online_shoppe;
GRANT UPDATE ANY TABLE to online_shoppe;
GRANT INSERT ANY TABLE to online_shoppe;
GRANT DROP ANY TABLE to online_shoppe;

Creating Tables
Before creating tables in the ONLINE_SHOPPE schema, you should understand the concepts of tables and integrity constraints.

Table: Basic unit of data storage in a database. Within a table, data is stored in rows and columns. You define a table with a table name, a set of columns, a data type, and a width.

Integrity constraints: Rules for columns in a table. You specify these rules to enforce data integrity within the columns for which they are defined. Basic constraints on Oracle Database include the following:

In this section, you execute the CREATE TABLE statement to create tables.

Syntax: CREATE TABLE [schema.]table


(column datatype [DEFAULT expr][, ...]);

Perform the following steps to create the CUSTOMERS, COMMODITIES, and ORDERS tables in the schema.

1. Connect to the ONLINE_SHOPPE schema and create the CUSTOMERS table with the CUSTOMER_ID column as the primary key.

CONNECT online_shoppe/online;

CREATE TABLE customers(


customer_id VARCHAR2(4),
customer_name VARCHAR2(20),
address VARCHAR2(60),
contact VARCHAR2(20),
CONSTRAINT cust_id_pk PRIMARY KEY(customer_id) );

2. Create the COMMODITIES table with the COMMODITY_ID column as the primary key and the UNIT_PRICE column as a non-null column.

CREATE TABLE commodities(


commodity_id VARCHAR2(4),
commodity_name VARCHAR2(20),
unit_price NUMBER(8,2) NOT NULL,
CONSTRAINT comm_id_pk PRIMARY KEY(commodity_id) );

3. Create the ORDERS table with:

ORDER_ID column as the primary key

COMMODITY_ID and CUSTOMER_ID as foreign keys

UNITS and TOTAL_COST as NOT NULL values

CHECK constraint on numeric columns to accept values greater than zero

CREATE TABLE orders(


order_id VARCHAR2(4),
customer_id VARCHAR2(4),
commodity_id VARCHAR2(4),
units NUMBER(8,2) NOT NULL,
total_cost NUMBER(8,2) NOT NULL,
CONSTRAINT ordr_id_pk PRIMARY KEY(order_id),
CONSTRAINT ordr_cust_fk FOREIGN KEY (customer_id)REFERENCES customers(customer_id),
CONSTRAINT ordr_comm_fk FOREIGN KEY (commodity_id)REFERENCES commodities(commodity_id),
CONSTRAINT check_unit CHECK(units > 0),
CONSTRAINT check_totl CHECK(total_cost > 0) );

Inserting, Modifying, and Deleting Records


In this section, you manipulate the records in the tables that you created.

1. Inserting data: You execute the INSERT statement to add rows of data to a database table.

Syntax: INSERT INTO table [(column [, column...])]


VALUES (value [, value...]);

Execute the following statements to insert data into the CUSTOMERS, COMMODITIES, and ORDERS tables.

INSERT INTO customers VALUES ('C001', 'BDAVIS', 'Boston', '650.551.4876');


INSERT INTO customers VALUES ('C002', 'SSTEPHEN', 'ST.Louis', '650.501.9321');
INSERT INTO customers VALUES ('C003', 'DCARTER', 'California', '650.507.6632');

INSERT INTO commodities VALUES ('M001', 'DVD Player', 109);


INSERT INTO commodities VALUES ('M002', 'Cereal', 03);
INSERT INTO commodities VALUES ('M003', 'Scrabble', 29);

INSERT INTO orders VALUES ('R001', 'C003', 'M002', 50, 150);


INSERT INTO orders VALUES ('R002', 'C001', 'M003', 30, 87);
INSERT INTO orders VALUES ('R003', 'C003', 'M001', 6, 654);

2. Modifying data: You use the UPDATE statement to modify rows of data in a database table. Execute the following statement to change the unit price of the DVD player from $109 to $129:

UPDATE commodities SET unit_price = 129 WHERE commodity_name = 'DVD Player';

3. Deleting data: You use the DELETE statement to delete rows of data from a database table. Execute the following statement to delete the first record in the ORDERS table:

DELETE FROM orders WHERE order_id = 'R001';

Undoing and Saving Records


In this section, you use the COMMIT and ROLLBACK statements to change data permanently. You use the ROLLBACK statement to undo the work that was performed in your current transaction and you use the COMMIT statement to
save the work that was performed in your current transaction.

1. Execute the COMMIT statement to save the data manipulation transactions that you performed in the previous section.

COMMIT;

2. Execute the following statements to delete the row whose order ID is R002 and to query the ORDERS table to ensure that the record was deleted.

DELETE FROM orders WHERE order_id = 'R002';


SELECT * FROM orders;

The output shows that the record was deleted successfully.

3. Execute the following statements to undo deletion of the row whose order ID is R002 and to query the table to display the records:.

ROLLBACK;
SELECT * FROM orders;

The previous DELETE statement was rolled back.

Note: You cannot undo transactions after you save them permanently with the COMMIT statement.

Removing Tables
In this section, you execute the DROP TABLE statement to remove a table and its data from the database.

Syntax: DROP TABLE <table>;

1. Execute the DROP TABLE statement to remove the CUSTOMERS table.

DROP TABLE customers;

An error message is displayed because of the referential integrity constraint on the CUSTOMER_ID column.

2. Include the CASCADE CONSTRAINTS clause to remove the table and its referential integrity constraints..

DROP TABLE customers CASCADE CONSTRAINTS;

Revoking Privileges
In this section, you execute the REVOKE statement to revoke user and role system privileges. To revoke a system privilege or a role, you must be assigned the privilege with the ADMIN OPTION.

Syntax: REVOKE <revoke_privilege> FROM <user>;

1. Connect to the database as the SYS user and revoke the CREATE SESSION privilege for ONLINE_SHOPPE.

CONNECT sys/<password> as sysdba;


REVOKE CREATE SESSION FROM online_shoppe;

2. Connect to the database as the ONLINE_SHOPPE.

CONNECT online_shoppe/online;

You cannot connect because you do not have the CREATE SESSION privilege.

Summary

In this tutorial, you learned how to:

Connect to the HR schema


Query, restrict and sort data in the HR schema
Create a schema
Create and delete tables
Insert, modify, and delete records in a table
Assign and revoke privileges

Resources

To learn more about Oracle Database, refer to:

The course entitled Oracle Database: SQL Workshop I


The documentation entitled Oracle Database Concepts

Credits

Lead Curriculum Developer: Supriya Ananth


Other Contributors: Nancy Greenberg, Swarnapriya Shridhar

Help OLL About Oracle Contact Us Terms of Use

You might also like