SQL-FOR-BEGINER.rtf

Embed Size (px)

Citation preview

DAY 1LAB MODULE : SQL

PROCEDURE TO ENTER INTO SPUFI

1. CREATE ONE PDS AS INPUT FILE. TRNG555.DB2.INAN2. CREATE ONE SDS AS OUTPUT FILE. TRNG555.DB2.OUTAN3. FROM THE PRIMARY OPTION MENU SELECT M(MORE).4. SELECT 85. SELECT 1 ( MAKE SURE DB2 SUBSYSTEM NAME IS DB2P)6. IN SPUFI SCREEN ENTER INPUT DS NAME ALONG WITH MEMBER NAME TRNG555.DB2.INAN(PGM1)7. IN SPUFI SCREEN ENTER OUTPUT DS NAME TRNG555.DB2.OUTAN(PGM1)8. WRITE SQL QUERY (DATABASE & TABLE SPACE IS TRNGDB1.TRNGTS1) 9. RUN THE QUERY BY GIVING EDIT;EXECUTE;AUTOCOMMIT; IN COMMAND & PRESS F3.10.EXECUTION CODE - SQLCODE 00/100 MEANS PGM EXECUTED SUCCESSFULLY.

SQL 1 : CREATE TABLE

CREATE TABLE EMPLOYEE ( EMPID CHAR(5) NOT NULL, EFNAME CHAR(15) NOT NULL, ELNAME CHAR(15) NOT NULL, EMPDOB DATE NOT NULL, EMPSAL NUMERIC(7,2), EMPDEPT CHAR(5) NOT NULL, PRIMARY KEY (EMPID)) IN TRNGDB1.TRNGTS1;

Other Data types of table can beVARCHAR(20), INT, SMALLINT, DATE, TIME, TIMESTAMP, DEC(4,2), CLOB, BLOB, GRAPHICS, DBCLOB

Another way to create table

CREATE TABLE MINSERT LIKE TRNG555.EMPLOYEE1 IN TRNGDB1.TRNGTS1

OPERATORS IN DB2:------------------------------

ARITHMETIC OPERATORS : +,-,*,/COMPARISON OPERATORS : ,=,=,,IN,NOT IN,LIKE,BETWEEN...ANDLOGICAL OPERATORS : AND, OR, NOT

SQL 2 : CREATE INDEXCREATE UNIQUE INDEX IDX2 ON EMPLOYEE(EMPID);

SQL 3 : INSERTINSERT INTO EMPLOYEE (EMPID,EFNAME,ELNAME,EMPDOB,EMPSAL,EMPDEPT) VALUES('A0001','JAIKUM','PRADEEP','7/25/1977',7000,'D0001');

NOTE: INSERT BELOW 9 RECORDS GIVE DATE IN THE FORMAT MM/DD/YYYY OR 'YYYY-MM-DD');

SQL 4 : SELECT

SYNTAX:

SELECT * FROM ; - * REFERS TO ALL FIELDS.SELECT * FROM [WHERE ] [GROUPBY ] [HAVING ] [ORDER BY ];

SELECT * FROM EMPLOYEE;

OUTPUT

EMPID EFNAME ELNAME EMPDOB EMPSAL EMPDEPT ---------+---------+---------+---------+---------+---------+------+---A0001 JAIKUM PRADEEP 1977-07-25 7000.00 D0001 A0003 PRIYA PV 1897-04-05 6000.00 D0002 B0001 ANURAG GN 1997-07-05 12000.00 D0003 B0004 ABHILASH GN 1900-12-05 10000.00 D0001 E0001 PRADEEP PV 1999-11-05 15000.00 D0001 E0003 SEEMA ROY 1977-08-30 8000.00 D0005 E0005 SINI VINOD 1956-05-23 20000.00 M0001 E0007 DILEEP KUMAR 1988-07-12 8000.00 M0001 E0008 DEEP KU 1981-04-12 5000.00 E0002 E0009 MINI MA 1981-08-07 9000.00 E0002

SQL 5 : DISPLAY 2 FIELDS - SELECT

SELECT EMPID,EFNAME FROM EMPLOYEE;

OUTPUT

A0001 JAIKUM A0003 PRIYA B0001 ANURAG B0004 ABHILASH E0001 PRADEEP E0003 SEEMA E0005 SINI E0007 DILEEP E0008 DEEP E0009 MINI

SQL 6 : RETRIEVAL WITH WHERE - SELECT

SELECT * FROM EMPLOYEE WHERE EMPID='E0001';

OUTPUT

EMPID EFNAME ELNAME EMPDOB EMPSAL EMPDEPT ---------+---------+---------+-------+---------+---------+---------+---E0001 PRADEEP PV 1999-11-05 15000.00 D0001

SQL 7 : LAB 3.4 RETRIEVAL WITH WHERE - SELECT

SELECT * FROM EMPLOYEE WHERE EMPDEPT='D0001';

OUTPUT

EMPID EFNAME ELNAME EMPDOB EMPSAL EMPDEPT ------+---------+---------+---------+---------+---------+---------+----A0001 JAIKUM PRADEEP 1977-07-25 7000.00 D0001 B0004 ABHILASH GN 1900-12-05 10000.00 D0001 E0001 PRADEEP PV 1999-11-05 15000.00 D0001

SQL 8 : RETRIEVAL WITH ORDER BY - DESC - SELECT

SELECT * FROM EMPLOYEE ORDER BY EMPID DESC;

OUTPUT

EMPID EFNAME ELNAME EMPDOB EMPSAL EMPDEPT ----+---------+---------+---------+---------+---------+---------+------E0009 MINI MA 1981-08-07 9000.00 E0002 E0008 DEEP KU 1981-04-12 5000.00 E0002 E0007 DILEEP KUMAR 1988-07-12 8000.00 M0001 E0005 SINI VINOD 1956-05-23 20000.00 M0001 E0003 SEEMA ROY 1977-08-30 8000.00 D0005 E0001 PRADEEP PV 1999-11-05 15000.00 D0001 B0004 ABHILASH GN 1900-12-05 10000.00 D0001 B0001 ANURAG GN 1997-07-05 12000.00 D0003 A0003 PRIYA PV 1897-04-05 6000.00 D0002 A0001 JAIKUM PRADEEP 1977-07-25 7000.00 D0001

SQL 9 : RETRIEVAL WITH ORDER BY ASC - SELECT

SELECT * FROM EMPLOYEE ORDER BY EMPSAL ASC;

OUTPUT

---------+---------+---------+---------+---------+---------+---------+EMPID EFNAME ELNAME EMPDOB EMPSAL EMPDEPT ---------+---------+---------+---------+---------+---------+---------+E0008 DEEP KU 1981-04-12 5000.00 E0002 A0003 PRIYA PV 1897-04-05 6000.00 D0002 A0001 JAIKUM PRADEEP 1977-07-25 7000.00 D0001 E0007 DILEEP KUMAR 1988-07-12 8000.00 M0001 E0003 SEEMA ROY 1977-08-30 8000.00 D0005 E0009 MINI MA 1981-08-07 9000.00 E0002 B0004 ABHILASH GN 1900-12-05 10000.00 D0001 B0001 ANURAG GN 1997-07-05 12000.00 D0003 E0001 PRADEEP PV 1999-11-05 15000.00 D0001 E0005 SINI VINOD 1956-05-23 20000.00 M0001

SQL 10 : RETRIEVAL WITH > - SELECT

SELECT EMPID,EFNAME FROM EMPLOYEE WHERE EMPSAL>10000;

OUTPUT

EMPID EFNAME ---------+---------+---------+---------+---------+---B0001 ANURAG E0001 PRADEEP E0005 SINI

SQL 11 : RETRIEVAL WITH > AND < - SELECT

SELECT * FROM EMPLOYEE WHERE EMPSAL>5000 AND EMPSAL= AND =10000 AND EMPSAL 20000;

SQL 16 : AGGREGATE FUNCTION

SELECT AVG(EMPSAL) FROM EMPLOYEE;

SELECT COUNT(*) FROM EMPLOYEE ;

SELECT MIN(EMPSAL) AS MIMM FROM EMPLOYEE;

SELECT MAX(EMPSAL) AS MAXX FROM EMPLOYEE;

SELECT SUM(EMPSAL) AS SUMM FROM EMPLOYEE;

SELECT AVG(EMPSAL) AS AVGG FROM EMPLOYEE;

SELECT COUNT(*) AS COUNT1 FROM EMPLOYEE;

SELECT COUNT(ELNAME) AS NAMEDIS FROM EMPLOYEE;

SELECT LENGTH(EFNAME) FROM TRNG555.EMPLOYEE1;

SELECT SUBSTR(EFNAME,3,2) FROM TRNG555.EMPLOYEE;

SELECT EMPDEPT,VALUE(EMPDEPT,'IBM') FROM EMPLOYEE;

SELECT LOWER(EFNAME) FROM TRNG555.EMPLOYEE;

SELECT UPPER(EFNAME) FROM TRNG555.EMPLOYEE;

SELECT HEX(EMPSAL) FROM TRNG555.EMPLOYEE;

SELECT FLOAT(EMPSAL) FROM TRNG555.EMPLOYEE;

SELECT INTEGER(EMPSAL) FROM TRNG555.EMPLOYEE;

SELECT DECIMAL(EMPSAL) FROM TRNG555.EMPLOYEE;

SELECT DIGITS(EMPSAL) FROM EMPLOYEE;

SELECT DATE(BIRTHDATE) FROM TRNG555.EMPLOYEE;

SELECT DAY(BIRTHDATE) FROM TRNG555.EMPLOYEE;

SELECT MONTH(BIRTHDATE) FROM TRNG555.EMPLOYEE;

SELECT YEAR(HIREDATE) AS YEAR1 FROM EMPLOYEE;

SELECT DAYS(HIREDATE) AS DAYS1 FROM EMPLOYEE;

SELECT TIME1,CHAR(TIME1,USA) FROM TRNG555.EMPLOYEE;

SQL 17 : RETRIEVAL WITH LIKE (STARTS WITH 'P' OR ENDS WITH 'R')SELECT EMPSAL FROM EMPLOYEE WHERE ELNAME LIKE 'P%' OR ELNAME LIKE '%R'; OUTPUT EMPSAL 7000.00 6000.00 15000.00

NOTE:

IF WE GIVESELECT EMPSAL FROM EMPLOYEE WHERE EMPID LIKE 'E%' OR ELNAME LIKE '%3';

WILL DISPLAY CORRESPONDING FIELD STARTING WITH E AND ENDING WITH 3 IF THE FIELD CONTAINS MAXIMUM SIZE GIVEN AT THE TIME OF CREATING.

IN ORDER TO GET RESULT FOR '%R' DECLARE ELNAME WITH VARCHAR INSTEAD OF CHAR.

SQL 18 : RETRIEVAL WITH COMPUTATION

SELECT EMPSAL+500 FROM EMPLOYEE WHERE EMPDEPT='E0002';

OUTPUT 5500.00 9500.00

SQL 19 : RETRIEVAL WITH COMPUTATION

SELECT EMPID, EFNAME, ELNAME, EMPSAL-5000 AS BONUS FROM EMPLOYEE WHERE EMPDEPT LIKE 'M%';

OUTPUT 15000.00 3000.00

SQL 20 : SELECT WITH LOGICAL OPERATORS:

SELECT * FROM EMP WHERE ENO> 100 AND SAL> 5000;SELECT * FROM EMP WHERE ENO>100 OR SAL> 4000;

DAY - 2

SQL 20 : NULL RETRIEVAL

SELECT ELNAME, EFNAME FROM EMPLOYEE WHERE EMPDEPT IS NULL;

SELECT ELNAME, EFNAME FROM EMPLOYEE WHERE EMPDEPT IS NOT NULL;

SQL 21 : GROUP BY & SUM

SELECT EMPDEPT, SUM(EMPSAL) FROM EMPLOYEE GROUP BY EMPDEPT;

OUTPUT

EMPDEPT SUM(EMPSAL) IN EACH DEPT D0001 32000.00 D0002 6000.00 D0003 12000.00 D0005 8000.00 E0002 14000.00 M0001 28000.00

SQL 22 : SELECT WITH ORDER BY

SELECT * FROM EMP ORDER BY ENO DESC;SELECT * FROM EMP WHERE ENO>100 ORDER BY ENAME;

SQL 23 : GROUP BY & HAVING

SELECT EMPDEPT, MAX (EMPSAL) FROM EMPLOYEE GROUP BY EMPDEPT ;

SELECT DEPT, AVG(SAL) ,MAX(SAL),MIN(SAL) FROM EMP GROUP BY DEPT HAVING COUNT(*) > 2

SQL 24 : SELECT WITH DISTINCT:---------------- TO GET UNIQUE- TO ELIMINATE DUPLICATES

SELECT DISTINCT SAL FROM EMP;

SQL 24 : UPDATE

SYNTAX:-------------UPDATE SET = WHERE

EX:-----UPDATE EMP SET CITY='CHENNAI' WHERE ENO=101;

UPDATE EMPLOYEE SET EMPDOB='10/2/1988',EMPSAL=9999WHERE EFNAME='PRIYA';

SQL 25 : DELETE

SYNTAX:

DELETE FROM [ WHERE ]

EX:-----

DELETE FROM EMP;DELETE FROM EMP WHERE ENO=100;

DELETE FROM EMPLOYEE WHERE EFNAME='MINI';

SQL 26 : REFERENTIAL INTEGRITY

STEP1.CREATE TABLE DEPTS(DEPT_ID CHAR(4) NOT NULL, DEPT_NM CHAR(8) NOT NULL, MGR_ID CHAR(4) NOT NULL, PRIMARY KEY(DEPT_ID)) IN TRNGDB1.TRNGTS1;

STEP2.CREATE UNIQUE INDEX DEPTIDX ON DEPTS(DEPT_ID);

STEP3.CREATE TABLE EMP(EMP_ID CHAR(4) NOT NULL, EMP_NM CHAR(8) NOT NULL, SALARY DECIMAL(6,2), DEPT_ID CHAR(4) NOT NULL, PRIMARY KEY(EMP_ID), FOREIGN KEY(DEPT_ID) REFERENCES DEPTS(DEPT_ID) ON DELETE CASCADE/RESTRICT/SET NULL) IN TRNGDB1.TRNGTS1;

STEP4.CREATE UNIQUE INDEX EMPLSIDX ON EMP(EMP_ID);

NOTE: IF REFERENCES DEPTS is mentioned then by default, it refers to the primary key of the parent table, if u want to refer to UNIQUE field, then specify REFERENCES DEPTS (UNIQUE KEY FIELD NAME).

SQL 27 : SELF JOIN

Joining the table to itself.Looking table twice.IT CAN COMPARE EACH AND EVERY ROW OF ONE TABLE WITH ALL OTHER ROWS IN THE SAME TABLE

Sample tableCREATE TABLE EMPLOYEE(EMPNO CHAR(4) NOT NULL PRIMARY KEY, EMPNM CHAR(10),EMPSL DEC(4,0),MGRID CHAR(4)) IN TRNGDB1.TRNGTS1;

CREATE UNIQUE INDEX EMPLOYEES ON EMPLOYEE(EMPNO);

INSERT INTO EMPLOYEE VALUES('1001','VENKAT',5000,'1004'); INSERT INTO EMPLOYEE VALUES('1002','AJAY',2000,'1001'); INSERT INTO EMPLOYEE VALUES('1003','MADHU',6000,'1002'); INSERT INTO EMPLOYEE VALUES('1004','MILIND',7000,'1002'); INSERT INTO EMPLOYEE VALUES('1005','ANUSH',8000,'1002'); INSERT INTO EMPLOYEE VALUES('1006','MEENA',9000,'1002'); INSERT INTO EMPLOYEE VALUES('1007','ASHOK',2000,'1004'); INSERT INTO EMPLOYEE VALUES('1008','ALOK',3000,'1004'); INSERT INTO EMPLOYEE VALUES('1009','SHEEMA',4000,'1002');

SELECT A.EMPNM,B.EMPNM AS MGRNAME FROM EMPLOYEE A,EMPLOYEE B WHERE A.MGRID=B.EMPNO;

SQL 28 : SELECT CASE

1. SELECT EMPCD,EMPSL,CASE WHEN EMPSL = 1001 AND EMPSL = 2001 THEN 'ABOVE AVERAGE'END AS SALARYRANGE FROM EMPS;

2. SELECT DEPTNO,CASE SUBSTR(DEPTNO,1,1) WHEN 'A' THEN 'ADMINISTRATION' WHEN 'B' THEN 'BOOK DEPOT' WHEN 'C' THEN 'CUSTOMER CARE' WHEN 'D' THEN 'DEVELOPMENT' WHEN 'E' THEN 'ENTRY TYPE ' WHEN 'F' THEN 'FOREIGN ASSIGNMENT' END AS CATOGORY FROM TT;

SQL 29 : JOIN

- TO COMBINE COLUMNS IN DIFFERENT TABLES OR SAME TABLE- MAXIMUM NUMBER OF TABLES THAT CAN BE JOINED IS 15.

NOTE:WHEN CODING A JOIN, WE MUST TAKE EXTRA CARETO CODE PROPER MATCHING PREDICATE FOR EACHTABLE BEING JOINED. FAILURE TO DO SO CAN RESULTIN A CARTESIAN PRODUCT.STEP1CREATE TABLE EMP ( EMPNO CHAR(4) NOT NULL, EMPNAME CHAR(10) NOT NULL, DEPTNO CHAR(4), SALARY DEC(4,0), PRIMARY KEY(EMPNO) ) IN TRNGDB1.TRNGTS1;

STEP2CREATE UNIQUE INDEX IDXNM ON EMP(EMPNO);

STEP3INSERT 4 ROWS INSERT INTO EMP VALUES(E001,A,D001,12000); INSERT INTO EMP VALUES(E002,B,D002,22000); INSERT INTO EMP VALUES(E003,C,D003,32000); INSERT INTO EMP VALUES(E004,D,NULL,42000);

STEP3CREATE TABLE DEPT ( DEPTNO CHAR(4) NOT NULL, DEPNAME CHAR(10) ) IN TRNGDB1.TRNGTS1;

STEP4CREATE UNIQUE INDEX IDXNM ON EMP(EMPNO);

STEP-5INSERT 3 ROWSINSERT INTO DEPT VALUES('D001',FINANCE);INSERT INTO DEPT VALUES('D002',ACCOUNTS);INSERT INTO DEPT VALUES('D003',SALES);

STEP6DISPLAY TABLES

TABLE EMPSELECT * FROM EMP;

TABLE DEPTSELECT * FROM DEPT;

STEP7INNER JOIN ( ONLY MATCHING COLUMNS OF TABLES ARE RETRIEVED)

SELECT EMPNO, DEPTNAME FROM EMP INNER JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO;

---------+---------+------EMPNO DEPTNAME ---------+---------+------E001FINANCE E002ACCOUNTS E003FINANCE

STEP8OUTER JOIN ( MATCHING & NON-MATCHING ARE RETRIEVED)

LEFT OUTER JOINSELECT EMPNO, DEPTNAME FROM EMP LEFT OUTER JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO;

---------+---------+------EMPNO DEPTNAME ---------+---------+------E001FINANCE E002ACCOUNTS E003FINANCE E004NULL

RIGHT OUTER JOIN

SELECT EMPNO, DEPTNAME FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO;

---------+---------+------EMPNO DEPTNAME ---------+---------+------E001FINANCE E002ACCOUNTS E003FINANCE NULLSALES

FULL OUTER JOIN

SELECT EMPNO, DEPTNAME FROM EMP FULL OUTER JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO;

---------+---------+------EMPNO DEPTNAME ---------+---------+------E001FINANCE E002ACCOUNTS E003FINANCE NULLSALESE004NULL

SQL 30 : CARTESIAN JOIN OR CROSS JOIN

A Cartesian product IS THE RESULT OF A JOIN THAT DOES NOT SPECIFY A PREDICATE

SELECT EMPNO, EMPNAME, SALARY, DEPTNAME FROM EMPOYEE,DEPT;

SQL 31 : SUBQUERY

MULTILEVEL SUBQUERY - NESTING OF MORE THAN ONE SUB QUERY IN A QUERY(MAX 15)

SELECT * FROM EMPLOYEE WHERE EMPSAL > (SELECT EMPSAL FROM EMP WHERE EMPNO=E001);

SELECT * FROM EMPLOYEE WHERE EMPSAL = (SELECT MAX(EMPSAL) FROM EMPLOYEE WHERE EMPSAL < (SELECT MAX(EMPSAL) FROM EMPLOYEE))

MULTIPLE SUBQUERY - CAN NEST FROM MORE THAN TWO DIFFERENT TABLES.

SELECT EMPNO, EMPNAME FROM EMPLOYEE WHERE DEPTNO = ( SELECT DEPTNO FROM DEPT WHERE DEPTNAME=FINANCE);

SELECT * FROM EMPLOYEE1 WHERE EMPSAL = (SELECT MAX(EMPSAL1) FROM EMPLOYEE2) AND EMPNO=(SELECT MAX(BONUS) FROM EMPLOYEE3)

SQL 32 : UNION & UNION ALL

UNION(REDUNDANT DUPLICATES ARE ELIMINATED)

NOTE NO. OF COLUMNS IN EMP1 & EMP2 SHOULD BE SAME AND THEIR DATATYPE SHOULD BE COMPATIBLE

SELECT ENO FROM EMP1 UNION SELECT ENO FROM EMP2;

UNION ALL (REDUNDANT DUPLICATES ARE NOT ELIMINATED) SELECT NAME FROM EMP1 UNION ALL SELECT ENAME FROM EMP2;

SQL 33 : CREATING VIEW

CREATE VIEW EMPVIEW(EMPID,EFNAME,ELNAME,EMPDOB,EMPSAL,EMPDEPT) AS SELECT * FROM EMPLOYEE ;

DISPLAY DETAILS IN VIEW

SELECT * FROM EMPVIEW; -----+---------+---------+---------+---------+---------+---------+-----EMPID EFNAME ELNAME EMPDOB EMPSAL EMPDEPT -----+---------+---------+---------+---------+---------+---------+-----A0001 JAIKUM PRADEEP 1977-07-25 7000.00 D0001 A0003 PRIYA PV 1988-10-02 6000.00 D0002 B0001 ANURAG GN 1997-07-05 12000.00 D0003 B0004 ABHILASH GN 1900-12-05 10000.00 D0001 E0001 PRADEEP PV 1999-11-05 15000.00 D0001 E0003 SEEMA ROY 1977-08-30 8000.00 D0005

CREATE VIEW EMPVIEW(EMPID,EFNAME,ELNAME,EMPDOB,EMPSAL,EMPDEPT) AS SELECT * FROM EMPLOYEE WHERE EMPSAL > 5000;

NOT UPDATABLE VIEWS------------ VIEWS CREATED USING DISTINCT CLAUSE- VIEWS CREATED USING GROUP FUNCTIONS- VIEWS CREATED USING GROUP BY CLAUSE- VIEWS CREATED USING HAVING CLAUSE- VIEWS CREATED USING SUBQUERIES- VIEWS CREATED USING JOINS- VIEWS CREATED FROM MULTIPLE TABLES

UPDATABLE VIEWS-------- ROW COLUMN SUBSET VIEWS EXTRACTED FROM A SINGLE TABLE

SQL 34 : GRANT & REVOKE

1.GRANT SELECT ON EMPDEPT TO PUBLIC;

2.GRANT ALL ON EMPLOYEE TO KC02526 WITH GRANT OPTION;

3. GRANT SELECT, UPDATE (EMPNAME,EMPSAL) TO KC02526;

5. REVOKE SELECT ON EMP FROM KC02526;

6. REVOKE ALL ON DEPT FROM KC02526;

SQL 35 : TRIGGER

STEP1 - CREATE TRIGGER TRIG1N AFTER INSERT ON EMPX FOR EACH ROW MODE DB2SQL UPDATE EMPTX SET EMPNAME='RAHUL' WHERE EMPNO='A002';

STEP2 - CREATE TRIGGER BOOKS_AFTER_INSERT_ROW AFTER INSERT ON BOOKS FOR EACH ROW (INSERT INTO AUDIT_LOG VALUES ('BOOKS', SYSDATE));

SQL 36 : SELECTING FROM DB2-CATALOG

1.SELECT * FROM SYSIBM.SYSTABLES WHERE CREATOR='KC02526'

2.SELECT * FROM SYSIBM.SYSCOLUMNS WHERE TBNAME='EMPLOYEE';

3. SELECT COLNO,COLTYPE,LENGTH FROM SYSIBM.SYSCOLUMNS WHERE TBNAME='EMPLOYEE'

4.SELECT * FROM SYSIBM.SYSCOLUMNS WHERE TBCREATOR ='KC02526' AND TBNAME ='EMPLOYEE';

5.SELECT * FROM SYSIBM.SYSFOREIGNKEYS WHERE TBNAME='EMP' AND CREATOR='KC02526';

6.SELECT * FROM SYSIBM.SYSINDEXES WHERE CREATOR='TRNG555' AND TBNAME='EMPLOYEE';

7.SELECT * FROM SYSIBM.SYSVIEWS WHERE CREATOR='TRNG555';

8.SELECT * FROM SYSIBM.SYSSYNONYMS WHERE CREATOR = 'TRNG555';

9.SELECT DAYS(CURRENT DATE) FROM SYSIBM.SYSDUMMY1;

10.SELECT DATE(CURRENT DATE) FROM SYSIBM.SYSDUMMY1;

11.SELECT TIME(CURRENT TIMESTAMP) FROM SYSIBM.SYSDUMMY1;

12.SELECT DATE(CURRENT TIMESTAMP) FROM SYSIBM.SYSDUMMY1;

13.SELECT CURRENT TIME FROM SYSIBM.SYSDUMMY1;

14.SELECT DATE('5/31/1988') + 1 MONTH - 1 MONTH FROM SYSIBM.SYSDUMMY1;

15.SELECT DATE('5/31/1988') + 30 DAYS - 30 DAYS FROM SYSIBM.SYSDUMMY1;

SQL : 37 DROPING TABLE / VIEW / INDEX

DROP TABLE EMP;

DROP INDEX EMPIDX;

DROP VIEW VIEWNAM;

SQL : 38 RENAMING TABLE

RENAME TABLE EMPLOYEE TO NEW_EMPLOYEE;

SQL : 39 ALTERING TABLE

ALTER TABLE EMPM ADD BONUS DECIMAL(6,2);

ALTER TABLE EMPLOYEE ALTER LASTNAME SET DATA TYPE VARCHAR(30) ;

ALTER TABLE EMPLOYEE DROP PRIMARY KEY;

ALTER TABLE EMPLOYEE ADD PRIMARY KEY(EMPNO);

SQL : 40 ALIAS / SYNONYMS

SYNONYM-------

- ALTERNATE NAME FOR A TABLE OR VIEW- PRIVATE TO THE USER WHO CREATED IT- INFORMATION ABOUT SYNONYMS ARE STORED IN SYSIBM.SYSSYNONYMS

SYNTAX

- CREATE SYNONYM FOR USERID.TABLENAME / VIEWNAME

Eg.- CREATE SYNONYM S1 FOR ISAM40.EMP

- CREATE SYNONYM S2 FOR ISAM40.V1

ALIAS------ ALTERNATE NAME FOR A TABLE OR VIEW- PUBLIC TO ALL USERS- GLOBAL OBJECT- IF BASE TABLE IS DROPPED, ALIAS WILL NOT BE DROPPED- ALIAS CAN BE CREATED WITHOUT THE BASE TABLE

SYNTAX

- CREATE ALIAS FOR USERID.TABLENAME/VIEWNAME

Eg.- CREATE ALIAS AA FOR ISAM40.EMP