+ All Categories
Home > Documents > Lab # 2 Data Definition Language (DDL) Eng. Alaa O...

Lab # 2 Data Definition Language (DDL) Eng. Alaa O...

Date post: 21-May-2020
Category:
Upload: others
View: 14 times
Download: 0 times
Share this document with a friend
23
The Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4113: Database Lab Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October, 2015
Transcript
Page 1: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

The Islamic University of Gaza

Faculty of Engineering

Department of Computer Engineering

ECOM 4113: Database Lab

Lab # 2

Data Definition Language (DDL)

Eng. Alaa O Shama

October, 2015

Page 2: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Objective

To be familiar with SQL Language especially with Data Definition

Language(DDL).

Relational Database (RDB)

Relational Database means data stored in relations. Relation is esse-

ntially a mathematical term for table.

Each table is a named collection of rows (tuples). Each row of a given table has the same set of named Columns (attributes), and each column is of a sp-ecific data type.

Database Keys

A key is a logical way to access a record in a table. There are many types

of key in RDB:

Candidate Key

A candidate key is any field, or combination of fields, that uniquely identifies a record. The field/s of the candidate key must contain unique values, and can't

contain a null value.

Primary Key (PK)

A primary key is the candidate key that has been chosen to identify unique records in a particular table.

Foreign Key (FK)

A relationship between two tables is created by creating a common field to the two tables. The common field must be a primary key to the one table.

Page 3: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

SQL Language

SQL is presently expanded as Structured Query Language. Originally, SQL

was called SEQUEL.

SQL is now the standard language for commercial relational DBMSs.

SQL Statements

SQL has insensitive statements for data definitions, queries, and

updates. SQL commands are grouped into major categories depending

on their functionality:

Data Definition Language (DDL): These SQL commands are used

for creating,modifying, and dropping the structure of database objects. It also defines keys, specify links between tables, and impose constraints between tables.

The commands are ALTER, ANALYZE, AUDIT, COMMENT, CREATE

,DROP,FLASHBACK, GRANT, PURGE, RENAME, REVOKE and TRUNCATE.

Data Manipulation Language (DML): These SQL commands are used for storing, retrieving, modifying, and deleting data. These Data Manipulation Language commands are CALL, DELETE, EXPLAIN,INSERT, LOCK TABLE, MERGE, SELECT and UPDATE.

Transaction Control Language (TCL): These SQL commands are used for managing changes affecting the data.

These commands are COMMIT, ROLLBACK, and SAVEPOINT.

In this lab, we will concentrate on DDL.

Schema Creating

To create a new schema in default XE database, we have to create a new

user and the Oracle creates a schema for that user with the same name.

Page 4: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

To create a new user, you have to follow the next steps:

1- Connect to XE database by SYSTEM user.

2- Expand the connection and R-click on other users >> Create User.

3- User tab >> enter user name and password and choose the default

and temporary table spaces.

Page 5: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

4- System Privileges tab >> Grant the necessary privileges for the user.

Granted Privileges:

Create session: to be able to connect to XE database by the new user

Create table/ view/ procedure/ synonym/ sequence/ trigger/

type/materialized view: to be able to create tables, views, procedure

,synonyms, sequences, user defined data types and materialized views

respectively inside the new schema.

Unlimited tablespace: to permit a user to use an unlimited amount

of any tablespace in the database.

Alter session: to set or modify any of the conditions or parameters

that affect your connection to the database.

5- Apply

Page 6: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

6- You can create a new user by SQL commands.

Create User

Create User user_name identified by password

Default tablespace “tablespace”

Temporary tablespace “tablespace”;

Privileges

Grant Privilige To user_name ;

On the worksheet of SYSTEM connection, write the following statements and execute them.

Page 7: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

7- After user creation, Connect to XE database by the new user.

8- Now you can issue SQL statements for the new schema.

Page 8: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Table Creating

DATA TYPES

NUMERIC TYPES

Name Description Range

Number [(p[, s])] User-specified precision, scale.

The precision is the number of digits to both

sides of the decimal point.

The positive scale is the count of decimal

digits in the fractional part, to the right of

the decimal point.

If the scale of a value to be stored is greater

than the declared scale of the column, the

system will round the value to the specified

number of fractional digits.

When the scale is positive and the number

of digits to the left of the decimal point

exceeds (p-s), an error is raised.

Number(p) = Number(p,0) s=0.

Number: specifies the maximum range and

precision for an Oracle number.

The precision p can range

from 1 to 38.

The scale s can range from

-84 to 127.

A NUMBER value requires

from 1 to 22 bytes.

Integer

INT

Number (32) -2 ^31 – (2 ^31)-1

Page 9: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

CHARACTER TYPES

DATE/TIME DATA TYPES

Definition Description Notes

char A single character.

To specify a value to

character data types,

it is placed between

single quotation

marks (‘), and it is a

case sensitive, e.g.,

‘Hello’.

Use concatenation

operator (||) to

concatenate two

strings, e.g. ‘abc’ ||

‘def’ results ‘abcdef’.

Char

(n[byte|char])

A set of characters exactly n characters in

length, padded with spaces.

If you attempt to store a string that is too

long, an error will be generated.

NCHAR[(n)] A fixed length Unicode character string

having maximum length n characters.

Default and minimum n is 1 character.

VARCHAR2(n

[byte|char])

A Variable length character string having

maximum length n bytes or characters.

You must specify size for VARCHAR2.

Minimum size is 1 byte or 1 character.

NVARCHAR2(n) A Variable length Unicode character string

having maximum length n characters.

You must specify size for NVARCHAR2.

Name Description Notes Example

Date

Date Only.

Its components are YEAR,

MONTH, and DAY.

The default format is:

DD-MON-YY.

SYSDATE: special value

that is current system

date.

To specify a value to Date

types, you can:

Place the value between

single quotation marks

in DD-MON-YY/YYYY

format.

Use Date keyword and

YY/YYYY-MM-DD

Format.

To specify a value for

Timestamps DataType, you

can:

Place the value in (‘) mark

In

DD-MON-YY

HH:MM:SS.p [AM/PM]

‘31-MAY-02’

’31-MAY-2002’

Date ‘2002-05-31’

Date ’02-05-31’

timestamp

[(p)]

Includes the DATE and

TIME fields, with a blank

space between two fields.

The Default format is:

DD-MON-YY HH.MM.SS.p

AM/PM

’31-MAY-02

10:30:56’

’31-MAY-02

10:30:56 PM’

Timestamp ‘2002-

05-02 10:30:56.25’

Page 10: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Default Values

A column can be assigned a default value. When a new row is created and no

values are specified for some of the columns, those columns will be filled

with their respective default values.

If no default value is declared explicitly, the default value is the null value.

In a table definition, default values are listed after the column data type.

CREATE TABLE EMPLOYEE ( .. Salary number (6,2) Default 2000, …. );

Constraints

SQL allows you to define constraints on columns and tables. Constraints give you

as much control over the data in your tables as you wish.

If a user attempts to store data in column that would violate a constraint, an

error is raised.

Timestamp

[(p)] with

time zone

Timestamp with time

zone displacement value.

The Default format is:

DD-MON-YY HH.MM.SS.p

AM/PM +/- HH:MM/time

zone

[+/-HH:MM/time zone]

Format.

Hour from (1-12).

+/-HH:MM/time zone

for timestamp with time

zone data type.

AM/PM required for

timestamp with time

zone data type.

If you don’t specify

AM/PM for timestamp

and timestamp with

local time zone data

types the default is AM.

’31-MAY-03

10:30:56 AM

+08:00’

'04-Jul-05 4:5:6 PM

ASIA/JERUSALEM'

Timestamp ‘2002-

05-02 15:30:56.36 -

07:00’

Timestamp ‘2002-

05-02 15:30:56.36

ASIA/JERUSALEM'

Page 11: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Constraints Types:

NOT NULL: prohibits a database value from being null.

Unique:prohibits multiple rows from having the same value in the

same column or combination of columns but allows some values to

be null.

Primary key:combines a NOT NULL constraint and a unique constraint in a si

ngle declaration. It prohibits multiple rows from having the

same value in the same column or combination of columns and

prohibits values from being null.

Check: requires a value in the database to comply with a specified

condition.

Foreign key: requires values in one table to match values in another

table.

You can define constraints syntactically in two ways:

As a part of the definition of an individual column or attribute. This is

called in-line specification.

As a part of the table definition. This is called out-of-line specification.

Notes:

NOT NULL constraints must be declared inline. All other constraints

can be declared either inline or out of line.

The constraint on a combination of columns must be declared out of line.

You cannot designate the same column or combination of columns

as both a primary key and a unique key.

In Line Specification

[Constraint const_name] const_type [const_specifications]

key foreign for specified doesn’t const_type specification this In Note:

constraint.

Out Of Line Specification

[Constraint const_name] const_type (column[s]) [const_specifications]

Page 12: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Constraint const_name specifies a name for the constraint.

If you omit this identifier, then Oracle Database generates a name.

Constraint name clarifies error messages and allows you to refer to the constraint when you need to change it.

Not Null Constraint

It must be declared in line.

In Line Specification

[Constraint const_name] Not Null

Unique Constraint In Line Specification

[Constraint const_name] Unique

Out of Line Specification

[Constraint const_name] Unique (Column[s])

Primary Key Constraint

In Line Specification

[Constraint const_name] Primary Key

Out of Line Specification

[Constraint const_name] Primary Key (Column[s])

Check Constraint

In Line & Out Of Line Specifications

[Constraint const_name] ckeck (Boolean Expression)

Page 13: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Foreign Key Constraint

A foreign key constraint specifies that the values in a column (or a group of

columns) must match the values appearing in some row of another table.

This maintains the referential integrity between two related tables.

When Deleting or updating a referenced row, Oracle allows you to handle that

as well.

There are two options:

CASCADE if you want Oracle to remove/update dependent foreign key

values.

SET NULL if you want Oracle to convert dependent foreign key values to

NULL.

In Line Specification

[Constraint const_name] references ReferencedTable (ReferencedCol)

[ON Delete set Null | CASCADE]

[ON UPDATE set NULL | CASCADE]

Out Of Line Specification

[Constraint const_name] foreign key (Column[s]) references ReferencedTable

(ReferencedCol[s]) [ON Delete set Null | CASCADE]

[ON UPDATE set NULL | CASCADE]

If you omit ON DELETE or ON UPDATE clause, then Oracle does not allow you to

delete or update referenced key values in the parent table that have

dependent rows in the child table.

Note: Foreign key column data type must be as same as referenced column.

Page 14: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Example:

Modifying Tables

Alter Table command allow you to alter the definition, or structure, of the table, such you can:

Add columns.

Remove columns.

Add constraints.

Remove constraints.

Change default values.

Change column data types.

Rename columns.

Rename tables.

Page 15: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Add Columns

ALTER TABLE TName

ADD(

Col1Name DataType [Default value] [Constraints],

Col2Name DataType [Default value] [Constraints]

… );

Change Column Data Type

ALTER TABLE TName

MODIFY ColName newDataType;

Note: You can change the data type of any column if all rows of the column

contain nulls.

Specify Column Default Value

ALTER TABLE TName

MODIFY ColName DEFAULT DefValue;

To discontinue previously specified default values,so that they are no

longer automatically inserted into newly added rows, replace the values with

NULL.

Remove Default Value

ALTER TABLE TName

MODIFY ColName DEFAULT NULL;

Rename Column

ALTER TABLE TName

Rename Column oldName to newName;

Page 16: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Remove Column

ALTER TABLE TName

Drop Column ColName [CASCADE];

CASCADE: if you want to drop everything that depends on the column.

Add Out Of Line Constraint

ALTER TABLE TName

Add OutOfLineConstraint ;

To add a not null constraint, which cannot be written as out of line constraint

use this syntax:

Add Not Null Constraint

ALTER TABLE TName

Modify ColName Not Null;

Rename Constraint

ALTER TABLE TName

RENAME CONSTRAINT OldName TO NewName;

Remove Constraint

ALTER TABLE TName

DROP CONSTRAINT name [CASCADE];

Remove Not Null Constraint

ALTER TABLE TName

MODIFY ColName NULL;

Page 17: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

ReName Table

ALTER TABLE TName

RENAME TO NewName;

Remove Table

DROP TABLE TName [CASCADE];

Notes:

SQL Statements are executed sequentially.

To run a statement,put the cursor on the statement and press Ctrl+Enter

or click

To run more than one statement sequentially, select them then click on

icon.

You can run all statements in the worksheet, put the cursor on the first

statement and press F5. Or click on icon .

Example:

You have the following COMPANY Schema, create it on Oracle.

Page 18: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Solution:

Note: Dno is a foreign key references the Department table but we haven’tcreated DEPARTMENT table yet, so we can’t add foreign constraint here, and we need to alter EMPLOYEE table to add the foreign constraint after DEPARTMENT creating.

Page 19: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,
Page 20: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,
Page 21: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,
Page 22: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Exercise: 1. Create the following Library schema.

Page 23: Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shamasite.iugaza.edu.ps/alaashama/files/2015/09/DBLab2.pdf · Lab # 2 Data Definition Language (DDL) Eng. Alaa O Shama October,

Homework : Create Mail Order Schema.


Recommended