1 creating and modifying database objects. 2 an oracle database consists of multiple user accounts...

63
1 Database Systems Database Systems Creating and Modifying Database Objects

Upload: sibyl-wade

Post on 13-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

1

Database SystemsDatabase Systems

Creating and Modifying

Database Objects

Page 2: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

2

Database Objects An Oracle database consists of

multiple user accounts Each user account owns database

objects Tables Views Stored programs Etc.

Page 3: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 4: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 5: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 6: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 7: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 8: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 9: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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 #

Page 10: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

10

Creating New User Accounts Done by DBA Syntax:CREATE username IDENTIFIED BY password;

Page 11: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

11

Example Oracle System Privileges

Privilege Level

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

Page 12: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

12

Granting System Privileges Done by DBA Syntax:

GRANT privilege1, privilege2, … TO username;

Page 13: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 14: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

14

Creating Roles Syntax:CREATE ROLE role_name;

Page 15: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

15

Assigning Privileges to a Role Syntax:GRANT privilege1, privilege2, …

TO role_name;

Page 16: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

16

Assigning a Role to a User Syntax:GRANT role_name TO user_name;

Page 17: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

17

Revoking System Privileges Syntax:REVOKE privilege1, privilege2, …

FROM username;

Page 18: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 19: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

19

To create a table, you must specify: Table name Field names Field data types Field sizes Constraints

Defining Database Tables

Page 20: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 21: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 22: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 23: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 24: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

24

NCHAR Supports 16-digit binary

character codes Used for alternate alphabets

Character Data Types

Page 25: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

25

NUMBER stores values between 10-130 and 10126

General declaration format:variable_name NUMBER(precision, scale)

Number Data Type

Page 26: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 27: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 28: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 29: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

29

Contain a variable number of decimal places

Precision and scale are omitted

Sample declaration:s_GPA NUMBER

Floating Point Numbers

Page 30: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 31: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 32: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 33: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

33

Declaring LOB Data Fields Item size is not specified

Examples:item_image BLOB

item_image BFILE

Page 34: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

34

Syntax:CREATE TABLE table_name

( fieldname1 datatype, fieldname2 datatype, …); Example:CREATE TABLE my_students( s_id NUMBER(6),

s_name VARCHAR2(30), s_dob DATE, s_class CHAR(2));

Creating a Database Table

Page 35: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 36: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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’

Page 37: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 38: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 39: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

39

Table-level Defining a primary key:

CONSTRAINT constraint_name PRIMARY KEY

Example:s_id NUMBER(6)

CONSTRAINT student_s_id_pk PRIMARY KEY

Primary Key Constraints

Page 40: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

40

Can be defined when field is declared

Primary Key Constraints

Page 41: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

41

Can also be defined after all table field definitions are completed

Primary Key Constraints

Page 42: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

42

Syntax:CONSTRAINT constraint_name

PRIMARY KEY (field1, field2)

Must be defined after fields that compose key are defined

Composite Primary Keys

Page 43: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 44: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

44

Can be defined when field is declared

Foreign Key Constraints

Page 45: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

45

Can also be defined after all table field definitions are completed

Foreign Key Constraints

Page 46: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 47: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

47

Check condition: restricts to specific values Example: s_gender (M or F)CONSTRAINT my_students_s_gender_ccCHECK (s_gender = ‘M’) OR (s_gender = ‘F’)

Not NULL: specifies that a field cannot be NULL Example: CONSTRAINT my_students_s_dob_nnNOT NULL

Types of Value Constraints

Page 48: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 49: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

49

Oracle SQL command line utility for issuing SQL commands

Starting SQL*Plus

SQL*Plus

Page 50: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 51: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

51

Type exit at SQL> promptor

Click Close button on SQL*Plus window

Exiting SQL*Plus

Page 52: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

52

Ora.hlp file Oracle Technology Network

(OTN) http://otn.oracle.com

Oracle Help Resources

Page 53: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

53

Viewing a table’s structureDESCRIBE table_name;

Viewing Table Information

Page 54: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 55: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 56: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

56

Querying the Data Dictionary Views Syntax:SELECT field1, field2, …

FROM privilege_viewname;

Page 57: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

57

Summary of Oracle Data Dictionary ViewsOBJECTS 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_CONSTRAINTS

Table columns that have constraints

IND_COLUMNS Indexed columns

TAB_COLUMNS All table columns

Page 58: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

58

Unrestricted actions Renaming tables Adding new columns Increasing column sizes Dropping columns Dropping constraints

Modifying Tables

Page 59: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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

Page 60: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

60

Altering Tables Adding a new field:ALTER TABLE tablename

ADD (fieldname field_specification);

Page 61: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

61

Altering Tables Modifying an existing field:ALTER TABLE tablename

MODIFY (fieldname new_field_specification);

Page 62: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

62

Altering Tables Deleting an existing field:ALTER TABLE tablename

DROP COLUMN fieldname;

Page 63: 1 Creating and Modifying Database Objects. 2 An Oracle database consists of multiple user accounts Each user account owns database objects Tables Views

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;