MAINFRAMES
DB2 – IBM Data Base
NAGARAJU DOMALA
DB2
“SQL-DDL “
Session 3
Nagaraju Domala
Session 3 - Objectives
On completion of this session the learner will be able to:
Write DDL statements using SQL
Nagaraju Domala
Introduction to SQL
SQL
(Structure Query Language)
Nagaraju Domala
SQL PROGRAM VARIATIONS
ENVIRONMENT HOST LANGUAGE
TSO COBOL, PL/I
IMS/VS ASSEMBLER
CICS/VS FORTRAN
BATCH C
HANDLING OF SQL
STATIC
DYNAMIC
Nagaraju Domala
SQL
REQUESTS ARE MADE TO DB2 IN
STRUCTURED QUERY LANGUAGE
----- WHICH INCLUDES
DATA MANIPULATION LANGUAGE
DATA DEFINITION LANGUAGE
DATA CONTROL LANGUAGE
Nagaraju Domala
SQL - examples
DDL Ex.1. DML Ex. 1.
CREATE TABLE SELECT S#
CREATE VIEW FROM SP
CREATE INDEX WHERE P#=‘P2’;
DROP TABLE Ex. 2.
DROP VIEW
DROP INDEX UPDATE S
SET STATUS=‘2*STATUS’
WHERE CITY=‘London’;
Nagaraju Domala
BASIC OBJECTS & OPERATORS
1. Scalar Objects Numeric
2. Scalar Data Types String
Date /Time
3. Scalar Values.
4. Literals.
5. Scalar Operators.
6. Scalar Functions - Official.
7. Special Registers.
8. Scalar Expressions.
9. Data Types ‘Compatibility’.
10. Representation of Unknown Info.
Nagaraju Domala
LITERALS (EXAMPLES)
INTEGER :
4 -85 +3690 0
DECIMAL :
4 -57.9 +301.02 0.001
FLOAT : [xEy = x* (10**y)]
4E2 -49.5E5 +364E-5 0.2E1
CHARACTER STRING :
‘123 CRANBERRY ST. ‘
‘AUTO’
X’F1F2F340F5D4’
DATE :
‘1/18/1955’ ‘12/12/1994’
TIME :
‘10:00 AM’ ‘9:30PM’
TIMESTAMP :‘1990-4-28-12.00’
Nagaraju Domala
SCALAR OPERATORS AND
FUNCTIONS
NUMERIC OPERATORS : +, - , *, /
CONCATENATION : ||
CHAR MICROSOUND
DATE MINUTE
DAY MONTH
DAYS SECOND
DECIMAL SUBSTR
DIGITS TIME
FLOAT TIMESTAMP
HEX VALUE
INTEGER VARGRAPHIC
LENGTH YEAR
Nagaraju Domala
NUMERICAL DATA TYPES
INTEGER - signed four byte binary integer
SMALLINT - signed two byte binary integer
DECIMAL(p,q) - packed decimal integer ‘p’ digits and
sign(0<p<32) with assumed decimal point
‘q’ digits from the right (0<=q<=p)
FLOAT(p) - Floating point number n=f*(16**e)
where ‘f’ is a binary fraction of ‘p’ binary
digits precision(-1<f<+1,0<p<54) and
‘e’ is a binary integer exponent (-64<e<+64)
If p<22 - n is single precision - 4 bytes
If p>=22 - n is double precision - 8 bytes
Nagaraju Domala
STRING DATA TYPES
CHARACTER (n) - Fixed length string of exactly n 8-bit characters
(0<n<255)
VARCHAR (n) - Varying length string of up to n 8-bit characters
(0<n<page-size of table space)
GRAPHIC (n) - Fixed length string of exactly n 16-bit characters
(0<n<128)
VARGRAPHIC (n) - Varying length string of up to n 16-bit characters
(0<n< 1/2 page size of table space)
Nagaraju Domala
DATE/TIME DATA
DATE - 8 unsigned packed decimal digits
(yyyymmdd)
TIME - 6 unsigned packed decimal digits
(hhmmss)
TIMESTAMP - 20unsigned packed decimal digits
(yyyymmdd hhmmss nnnnnn)
Nagaraju Domala
ALTERNATIVE SPELLINGS
INT FOR INTEGER
DECIMAL(P) FOR DECIMAL(P,O)
DECIMAL FOR DECIMAL(5)
DEC FOR DECIMAL
NUMERIC FOR DECIMAL
FLOAT FOR FLOAT(53)
REAL FOR FLOAT(21)
DOUBLE
PRECISION FOR FLOAT(53)
CHARACTER FOR CHARACTER(1)
CHAR FOR CHARACTER
LONG
VARCHAR FOR VARCHAR(n)
GRAPHIC FOR GRAPHIC(1)
LONG
VARGRAPHIC FOR VARGRAPHIC(n)
Nagaraju Domala
DATA TYPES
EVERY COLUMN IS ASSIGNED A SPECIFIC TYPE AND SIZE
OF DATA
CATEGORIES OF DATA TYPES
NUMERIC
CHARACTER
GRAPHICS
DATE/TIME
Nagaraju Domala
NUMERIC FORMATS
SMALLINT --> + 32768 (2 BYTES) HALFWORD BINARY
INTEGER --> + 2GB (4 BYTES) FULLWORD BINARY
DECIMAL(X,Y)
REAL - SINGLE FLOAT
FLOAT - DOUBLE FLOAT
Nagaraju Domala
CHARACTER STRING FORMATS
CHAR (X)
VARCHAR (X)
LONG VARCHAR
Nagaraju Domala
GRAPHIC STRING FORMATS
GRAPHIC
VARGRAPHIC
LONG VARGRAPHIC
Nagaraju Domala
DATE/TIME FORMATS
DATE YYYYMMDD
TIME HHMMSS
TIMESTAMP YYYYMMDDHHMMSSNNNNNN
Nagaraju Domala
COMPATABILITY OF
DATA TYPES
Bin Dec Float char graphic Date Time TS
Bin Y Y Y N N N N N
Dec Y Y Y N N N N N
Float Y Y Y N N N N N
char N N N Y N * * *
Graphic N N N N Y N N N
Date N N N Y N
N * N
Time N N N * N N Y N
Time stamp N N N * N N N Y
* Compatibility of Date Time values is limited to
Assignments and comparisons.
Nagaraju Domala
DATA DEFINITION
BASE TABLES
CREATE (DEFINES A NEW OBJECT)
DROP (REMOVES AN OBJECT)
ALTER (CHANGES ITS DESCRIPTION)
INDEXES
CREATE
DROP
NO ROW ORDERING
COLUMN ORDERING - LEFT TO RIGHT
Nagaraju Domala
CREATE TABLE - FORMAT 1
CREATE TABLE table-name
(column_name column_type,
column_name column_type
. .
. .
[,PRIMARY KEY ( List_of_columns)]
[,FOREIGN KEY (List_of_columns)
REFERENCES table_name
ON DELETE CASCADE] )
in database_name tablespace_name;
where column_type takes the form
data_type [ NOT NULL [ WITH DEFAULT/UNIQUE]]
Nagaraju Domala
EXAMPLE FOR FORMAT 1
CREATE TABLE POLICY
( POLICY_NO CHAR(10) NOT NULL,
POLICY_TERM SMALLINT NOT NULL,
STATUS CHAR(01) NOT NULL,
INSURED_NAMECHAR(20) NOT NULL,
ADDRESS CHAR(40) NOT NULL,
PROCESS_DATE DATE NOT NULL
WITH DEFAULT,
PRIMARY KEY (POLICY_NO, POLICY_TERM) );
Nagaraju Domala
CREATE TABLE -
FORMAT 2
CREATE TABLE table_name
LIKE table_name
IN database_name, table_space_name;
Example
CREATE TABLE TRN_POLICY
LIKE POLICY
IN DINSSYS.SPOLSET;
* TRN_POLICY inherits only column definitions
and nothing else.
* It doesn’t inherit any primary, alternate or foreign key
definitions from POLICY_table.
Nagaraju Domala
ALTER
Format :
ALTER TABLE table_name
ADD column data_type [ NOT NULL WITH DEFAULT]
Example :
ALTER TABLE POLICY
ADD ENTRY_DATE DATE;
ALTER TABLE POLICY
ADD EFF_DATE DATE NOT NULL WITH DEFAULT;
* ALTER TABLE allows addition or deletion of primary
and foreign key (but not alternate key) specifications
for a given table
* Doesn’t support change to the width or data_type of an
existing column
* Doesn’t support removal of an existing column
Nagaraju Domala
DROP
DROP TABLE table_name;
Example :
1. DROP TABLE POLICY;
2. ALTER TABLE table_name
[ADD] primary_key_definition;
3. ALTER TABLE table_name
DROP PRIMARY KEY;
4. ALTER TABLE table_name1
ADD FOREIGN KEY K1(List_of_columns)
REFERENCES table_name2;
Nagaraju Domala
INDEXES
CREATE_INDEX-FORMAT :
CREATE[UNIQUE] INDEX index_name
ON table_name
(column[order][,column[order]]...)
Example :
CREATE INDEX POL X ON POLICY
(POLICY_NO ASC, POLICY_TERM DESC);
DROP INDEX index-name;
Nagaraju Domala
MAJOR STORAGE OBJECTS
OF DB2
View View View
TS Table Table Table
Catalog
Table
TS
.
TS ........ .
.
TS Table .
IS
Index
IS Index
User Database User Database Catalog Database
Storage group I Storage group 2
Nagaraju Domala
TABLE STRUCTURE - ROW
ONE ROW FOR EVERY OCCURRENCE OF THE ENTITY
TABLE: EMP
EMP NO LAST NAME WORK DEPT JOB
-------------------------------------------------------------------------
-
250 SMITH D21 CLK
030 KWAN C01 MGR
EVERY ROW IN A TABLE HAS THE SAME COLUMNS
Nagaraju Domala
NAMES
EVERY TABLE AND EVERY COLUMN MUST BE NAMED
FIRST CHARACTER : ALPHA
OTHERS: ALPHANUMERIC
MAXIMUM: 18 CHARACTERS
TABLE NAME UNIQUE FOR OWNER
COLUMN NAME UNIQUE FOR TABLE
Nagaraju Domala
TABLE NAMES
-Construction-
TABLE CREATOR ASSIGNED
NAME
PAYRL EMPL
FULL TABLE NAME
PAYRL.EMPL
Nagaraju Domala
COLUMN NAMES
-Construction-
TABLE NAME
ASSIGNED
NAME COLUMN NAME
EMPL NAME
QUALIFIED
COLUMN NAME
EMPL.NAME
Nagaraju Domala
NULLS
EVERY COLUMN HAS A NULL CHARACTERSTIC ( RULE
FOR WHEN A VALUE IS NOT AVAILABLE )
NOT NULL
ALLOW NULL
NOT NULL WITH DEFAULT
Nagaraju Domala
NULLS
A - - - NOT NULL
VALUE MUST BE GIVEN
B/C - ALLOW NULL
IF VALUE IS NOT GIVEN,
IT IS MARKED UNKNOWN
D - - - NOT NULL WITH DEFAULT
IF VALUE NOT GIVEN, DB2 FILLS IN
DEFAULT VALUE
Nagaraju Domala
NOT NULL WITH DEFAULT
WHEN NO VALUE IS PRESENT
NUMERIC BECOMES ZERO
FIXED BECOMES BLANKS
VARIABLE BECOMES ZERO LENGTH
Nagaraju Domala
NOT NULL WITH DEFAULT
WHEN NO VALUE IS INSERTED
DATE BECOMES CURRENT DATE
TIME BECOMES CURRENT TIME
TIMESTAMP BECOMES
CURRENT TIMESTAMP
Nagaraju Domala
PRIMARY KEY IDENTIFIER
ONE OR MORE COLUMNS CAN QUALIFY A SPECIFIC ENTITY
OCCURRENCE (PRIMARY KEY)
TABLE: EMP
EMP NO LAST NAME WORK DEPT JOB
---------------------------------------------------------------------------------
----
250 SMITH D21 CLK
030 KWAN C01 MGR
UNIQUE VALUES
Nagaraju Domala
KEYS
• KEY IDENTIFIES A ROW OF DATA
• PRIMARY KEY IDENTIFIES ITS OWN ROW
• FOREIGN KEY IDENTIFIES A ROW OF RELATED DATA
Nagaraju Domala
RELATED TABLES
D DEPT NO DEPT NAME MGRNO . . .
E
P C01 INFO 030
T D21 ADMIN 070
PRIMARY KEY FOREIGN KEY
E EMP NO LAST NAME WORK DEPT JOB
M 250 SMITH D21 CLK
P 030 KWAN C01 MGR
Nagaraju Domala
ADDITIONAL TABLES
ONE TABLE PER ENTITY
MANY- TO - MANY RELATIONSHIPS NEEDS AN
ASSOCIATION TABLE
REPEATING GROUP
NEEDS A SEPARATE TABLE
Nagaraju Domala
ASSOCIATION TABLE
ONE TABLE PER MANY-TO-MANY ASSOCIATION
EMP ASSIGNMENT PROJ
EMP LAST EMP PROJ PROJ PROJ
NO NAME NO NO NO NAME
------------------------- ----------------------------- ------------------------
1 SMITH 1 C1 C1 SUPPORT
2 JONES 1 C3 C3 WORKSHOP
3 BOWN 1 C4 C4 DESIGN
2 C3
2 C3
5 C1
5 C3
Nagaraju Domala
ASSOCIATION TABLE
AN ASSOCIATION TABLE IS A NORMAL DB2 TABLE
PRIMARY KEY -------------------
EMP PROJ PER
NO NO CENT
---------------------------------------------
1 C1 50
2 C3 40
FOREIGN KEYS
Nagaraju Domala
PRIMARY KEY
VALUES
A PRIMARY KEY VALUE MUST BE UNIQUE
(AND CANNOT BE NULL)
Nagaraju Domala
FOREIGN KEY VALUES
A FOREIGN KEY VALUE MUST MATCH
A PRIMARY KEY VALUE ( OR BE NULL )
Nagaraju Domala
TERMS
REFERENTIAL CONSTRAINT
THE LIMITING OF A SET OF FOREIGN KEY VALUES TO
A SET OF PRIMARY KEY VALUES
REFERENTIAL INTEGRITY
THE AUTOMATIC ENFORCEMENT OF REFERENTIAL
CONSTRAINTS
Nagaraju Domala
PROCESSING RULES
REFERENTIAL INTEGRITY MAINTAINS DATA VALIDITY
BY ENFORCING RULES DURING PROCESSING , SO
THAT
- EVERY PRIMARY KEY VALUE IS UNIQUE (AND
NOT NULL)
- EVERY FOREIGN KEY VALUE MATCHES A
PRIMARY KEY
Nagaraju Domala
DELETE RULES
WHEN A ROW WITH A PRIMARY KEY IS DELETED---
WHAT SHOULD BE DONE ABOUT THE ROWS WITH
MATCHING FOREIGN KEYS ?
DESIGNER CHOOSES ONE OF:
- CASCADE
- SET NULL
- RESTRICT
Nagaraju Domala
DATA MANAGEMENT OBJECTS
EVERY TABLE RESIDES IN A TABLE SPACE
EVERY TABLE SPACE (AND ITS CONTENTS) BELONGS TO
SOME DATABASE
A DATABASE IS A GROUPING OF TABLES AND THE SPACES
THEY OCCUPY
Nagaraju Domala