An Oracle database consists of objects like tables, views, and stored programs owned by user accounts. Users can query and modify database objects using SQL commands, which are divided into DDL commands that define and modify object structures and DML commands that manipulate data. The document outlines how to create user accounts, define tables with fields, constraints, and data types, and use SQL*Plus to issue SQL statements and view metadata in the Oracle data dictionary.
2. 2
Database Objects
An Oracle database consists of multiple
user accounts
Each user account owns database
objects
Tables
Views
Stored programs
Etc.
3. 3
Query: command to perform
operation on database object
Create
Modify
View
Delete
Structured Query Language (SQL)
Standard query language for
relational databases
Database Queries
4. 4
SQL Command Types
Data Definition Language (DDL)
Used to create and modify the structure of
database objects
Data Manipulation Language (DML)
Used to insert, update, delete, and view
database data
5. 5
DDL Commands
Used to create and modify the structure
of database objects
CREATE
ALTER
DROP
DDL commands execute as soon as
they are issued, and do not need to be
explicitly saved
6. 6
DML Commands
Used to insert, view, and modify database
data
INSERT
UPDATE
DELETE
SELECT
DDL commands need to be explicitly saved or
rolled back
COMMIT
ROLLBACK
7. 7
User Accounts
Each Oracle database user has a user
schema
Area in the database where the user’s
database objects are stored
Identified by a unique username and
protected by a password
Each user schema is granted specific
privileges
8. 8
Types of Database Privileges
System Privileges
Control the operations that the user can perform
within the database
Connecting to the database, creating new tables,
shutting down the database, etc.
Object Privileges
Granted on individual database objects
Controls operations that a user can perform on a
specific object (insert data, delete data, etc.)
When you create an object in your user schema,
you can then grant object privileges on that object
to other database users
9. 9
Oracle Naming Standard
Oracle database objects must adhere to
the Oracle Naming Standard
1 to 30 characters long
Must begin with a character
Can contain characters, numbers, and the
symbols $, _, and #
10. 10
Creating New User Accounts
Done by DBA
Syntax:
CREATE username IDENTIFIED BY password;
11. 11
Example Oracle System
Privileges
Privilege Leve
l
Purpose
CREATE SESSION User Connecting to database
CREATE TABLE User Creating tables in current user schema
DROP TABLE User Dropping tables in current user
schema
UNLIMITED
TABLESPACE
User Allows user to create schema objects
using as much space as needed
CREATE USER DBA Creating new users
GRANT ANY PRIVILEGE DBA Granting system privileges to users
CREATE ANY TABLE DBA Creating tables in any user schema
DROP ANY TABLE DBA Dropping tables in any user schema
13. 13
Database Roles
Role is a database object that can be
assigned system privileges
Role is then assigned to a user, and the
user inherits the role’s privileges
Used to easily assign groups of related
privileges to users
18. 18
Administering System
Privileges
To be able to grant system privileges to
other users, a user account must have
been granted the privilege WITH
ADMIN OPTION
19. 19
To create a table, you must
specify:
Table name
Field names
Field data types
Field sizes
Constraints
Defining Database Tables
20. 20
Must follow the Oracle Naming
Standard
Each table in a user schema must
have a unique name within that
user schema
Each field in a table must have a
unique name within that table
Table and Field Names
21. 21
Data type: specifies type of data
stored in a field
Date, character, number, etc.
Uses
Error checking
Efficient use of storage space
Oracle Data Types
22. 22
VARCHAR2
Variable-length character strings
Maximum of 4,000 characters
Must specify maximum width
allowed
No trailing blank spaces are added
Example declaration:
student_name VARCHAR2(30)
Oracle Character Data Types
23. 23
CHAR
Fixed-length character data
Maximum size 2000 characters
Must specify maximum width allowed
Adds trailing blank spaces to pad width
Example declaration:
student_gender CHAR(1)
Character Data Types
24. 24
NCHAR
Supports 16-digit binary character
codes
Used for alternate alphabets
Character Data Types
25. 25
NUMBER
stores values between 10-130
and 10126
General declaration format:
variable_name NUMBER(precision, scale)
Number Data Type
26. 26
Number type (integer, fixed point,
floating point) specified by
precision and scale
Precision: total number of digits on
either side of the decimal point
Scale: number of digits to right of
decimal point
NUMBER Data Types
27. 27
Whole number with no digits to
right of decimal point
Precision is maximum width
Scale is omitted
Sample declaration:
s_age NUMBER (2)
Integer Numbers
28. 28
Contain a specific number of
decimal places
Precision is maximum width
Scale is number of decimal places
Sample declaration:
item_price NUMBER(5, 2)
Fixed Point Numbers
29. 29
Contain a variable number of
decimal places
Precision and scale are omitted
Sample declaration:
s_GPA NUMBER
Floating Point Numbers
30. 30
DATE
Stores dates from 1/1/4712 BC to
12/31/4712 AD
Stores both a date and time component
Default date format:
DD-MON-YY HH:MI:SS AM
example: 05-JUN-03 12:00:00 AM
Sample declaration:
s_dob DATE
Date Date Type
31. 31
If no time value is given when a
new date is inserted, default value
is 12:00:00 AM
If no date value is given when a
new time is inserted, default date
is first day of current month
Specifying Date and Time
Values
32. 32
Large Object (LOB) Data
Types
Binary Large Object (BLOB)
Stores up to 4 GB of binary data
Character Large Object (CLOB)
Stores up to 4 GB of character data
BFILE
Stores a reference to a binary file maintained in
the operating system
NCLOB
Character LOB that supports 16-bit character code
33. 33
Declaring LOB Data Fields
Item size is not specified
Examples:
item_image BLOB
item_image BFILE
35. 35
Constraints
Rules that restrict the values that can
be inserted into a field
Types of constraints
Integrity: define primary and foreign keys
Value: specify values or ranges of values
that can be inserted
36. 36
Constraint Levels
Table constraint
Restricts the value of a field with respect to
all other table records
Example: primary key value must be
unique for each record
Column constraint
Restricts values in a specific column
Example: values in an S_GENDER field
must be ‘M’ or ‘F’
37. 37
Internal name used by DBMS to identify the
constraint
Each constraint name in a user schema
must be unique
If you do not name a constraint, the system
will automatically generate an unintuitive
name
Constraint Names
38. 38
Constraint naming convention:
tablename_fieldname_constraintID
Constraint ID values:
Primary key: pk
Foreign key: fk
Check condition: cc
Not NULL: nn
Unique: uk
Example constraint name:
my_students_s_id_pk
Constraint Names
43. 43
Table-level
Can only be defined after field is defined as a
primary key in another table
Syntax:
CONSTRAINT constraint_name
REFERENCES primary_key_table_name
(field_name)
Foreign Key Constraints
44. 44
Can be defined when field is declared
Foreign Key Constraints
45. 45
Can also be defined after all table field
definitions are completed
Foreign Key Constraints
46. 46
Column-level
Restricts data values that can be inserted
in a field
In general, avoid value constraints
because they make the database very
inflexible
Value Constraints
47. 47
Check condition: restricts to specific values
Example: s_gender (M or F)
CONSTRAINT my_students_s_gender_cc
CHECK (s_gender = ‘M’) OR (s_gender = ‘F’)
Not NULL: specifies that a field cannot be
NULL
Example:
CONSTRAINT my_students_s_dob_nn
NOT NULL
Types of Value Constraints
48. 48
Default: specifies a default value that is inserted
automatically
Example:
s_state CHAR(2) DEFAULT ‘WI’
Unique
Table constraint
Specifies that a non-primary key field must have a unique
value
CONSTRAINT consultant_c_email_uk UNIQUE (c_email)
Types of Value Constraints
49. 49
Oracle SQL command line utility for
issuing SQL commands
Starting SQL*Plus
SQL*Plus
50. 50
All commands must be terminated
with a semicolon
Use a text editor and copy and
paste commands
Character data is case sensitive
and must be in single quotes
‘M’
‘Sarah’
Using SQL*Plus
51. 51
Type exit at SQL> prompt
or
Click Close button on SQL*Plus
window
Exiting SQL*Plus
53. 53
Viewing a table’s structure
DESCRIBE table_name;
Viewing Table Information
54. 54
Oracle Data Dictionary
Contains tables that describe the database
structure
Is in the SYSTEM user schema
Is automatically updated as users create and
modify tables
Cannot be updated directly
Contains views that allow users to retrieve
information about the database structure
55. 55
Data Dictionary Views
Views present data in different formats
depending on the privileges of the user
USER: shows all objects belonging to the
current user
ALL: shows all objects belonging to the
current user, as well as objects current
user has privileges to manipulate
DBA: allows users with DBA privileges to
view objects of all database users
56. 56
Querying the Data Dictionary
Views
Syntax:
SELECT field1, field2, …
FROM privilege_viewname;
57. 57
Summary of Oracle
Data Dictionary Views
OBJECTS All database objects
TABLES Database tables
INDEXES Table indexes created to improve query
performance
VIEWS Database views
SEQUENCES Sequences created to automatically
generate surrogate key values
USERS Database users
CONSTRAINTS Table constraints
CONS_CONSTRAINT
S
Table columns that have constraints
IND_COLUMNS Indexed columns
TAB_COLUMNS All table columns
59. 59
Restricted actions
Dropping tables
Only allowed if table does not contain any fields that
are referenced as foreign keys, or if foreign key
constraints are dropped
Changing a column’s data specification
Only allowed if existing data is compatible with new
data specification
Decreasing column sizes
Only allowed if column does not contain any data
Adding constraints
Only allowed if existing data meets requirements of
new constraint
Modifying Tables
63. 63
Deleting Tables
Syntax to delete table if no table fields
are referenced as foreign keys:
DROP TABLE tablename;
Syntax to delete table and constraints if
table contains fields that are referenced
as foreign keys:
DROP TABLE tablename CASCADE CONSTRAINTS;