0% found this document useful (0 votes)
9 views82 pages

DBMS LAB MANUAL (2)

Uploaded by

mjanani547
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views82 pages

DBMS LAB MANUAL (2)

Uploaded by

mjanani547
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 82

Query:01

Syntax for creating a table:


SQL: CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1
<DATATYPE>
(SIZE), COLUMN NAME.1 <DATATYPE> (SIZE)....

SQL> CREATE TABLE EMP( id


NUMBER,
firstname VARCHAR2(50),
lastname VARCHAR2(50),
dept VARCHAR2(50),
regno NUMBER
);
Table created.

QUERY:02
Syntax for describe the table:
SQL: DESC <TABLE NAME>;
SQL> DESC EMP;

Name NULL? TYPE

ID NUMBER
FIRSTNAME VARCHAR2(50)
LASTNAME VARCHAR2(50)
DEPT VARCHAR2(50)
REGNO NUMBER

QUERY:03
Q3. Write a query for create a from an existing table with all the
fields
Syntax For Create A from An Existing Table With AII Fieids
SQL> CREATE TABLE <TRAGET TABLE NAME> SELECT FROM
<$OURCE TABLE NAME>;
SQL> CREATE TABLE EMP1 AS SELECT FROM EMP;

Table created.
SQL> DESC EMP1
Name Null? Type

EMPNO NUMBER(4)
ENAME VARCHAR2(10)
DESIGNATIN
VARCHAR2(10) SALARY
NUMBER(8,2)

QUERY: 04
Q4. Write a query for create a from an existing table with selected
fields
Syntax For Create A from An Existing Table With Selected Fields
sQL> CREATE TABLE <TRAGET TABLE NAME> SELECT EMPNO,
ENAME FROM <SOURCE TABLE NAME>;

QUERY: 04
SQL> CREATE TABLE EMP2 AS SELECT EMPNO, ENAME FROM EMP

Table created.
SQL> DESC EMP2
Name Null? Type

EMPNO NUMBER (4)


ENAME VARCHAR2 (10)

QUERY: 05
q5. write a query for create a new table from an existing table
without any record:
Syntax for create a new table from an existing table without any
record:
SQL> CREATE TABLE <TRAGET TABLE NAME> AS SELECT FROM
<SOURCE TABLE NAME> WHERE <FALSE CONDITION>;
QUERY: 05
SQL> CREATE TABLE EMP3 AS SELECT* FROM EMP WHERE
1>2;
Table created.
SQL> DESC EMP3;
Name Null? Type

EMPNO NUMBER(4)
ENAME VARCHAR2(10)
DESIGNATIN
VARCHAR2(10) SALARY
NUMBER(8,2);
ALTER & MODIFICATION ON TABLE

QUERY: 06
Q6. Write a Query to Alter the column EMPNO NUMBER (4) TO
EMPNO NUMBER
(6).
Syntax for Alter & Modify on a Single Column:
SQL > ALTER <TABLE NAME> MODIFY <COLUMN NAME> <DATATYPE
(SIZE);
QUERY: 06

sQL>ALTER TABLE EMP MODIFY EMPNO NUMBER (6);


Table altered.
SQL> DESC
EMP;
Name Null? Type
EMPNO NUMBER(6)
ENAME VARCHAR2(10)
DESIGNATIN
VARCHAR2(10) SALARY
NUMBER(8,2) QUERY: 07
Q7. Write a Query to Aiter the table employee with multiple columns
(EMPNO,
ENAME.)
Syntax for alter table with multiple column:
SQL> ALTER <TABLE NAME> MODIFY <COLUMN NAME1>
<DATATYPE>
(SIZE), MODIFY <COLUMN NAME2> <DATATYPE>
(SIZE)...
QUERY: 07

SQL>ALTER TABLE EMP MODIFY (EMPNO NUMBER (7), ENAME


VARCHAR2(12);
Table altered.
SQL> DESC EMP;
Name Null? Type

EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2);

QUERY: 08
Q8. Write a query to add a new column in to employee
Syntax for add a new column:
SQL> ALTER TABLE <TABLE NAME> ADD (<COLUMN NAME <DATA
TYPE> <SIZE>);
QUERY: 08

SQL> ALTER TABLE EMP ADD QUALIFICATION VARCHAR2(6);


Table altered.
SQL> DESC EMP;
Name Null? Type

EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
QUALIFICATION VARCHAR2(6)
QUERY: 09
Q9. Write a query to add muitiple columns in to
employee Syntax for add a new column:
SQL> ALTER TABLE <TABLE NAME> ADD (<COLUMN NAME1>
<DATA TYPE> <SIZE>,(<COLUMN NAME2> <DATA TYPE>
<SIZE>,
QUERY: 09
SQL>ALTER TABLE EMP ADD (DOB DATE, DOJ DATE);
Table altered.
SQL> DESC
EMP:
Name Null? Type

EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
QUALIFICATION VARCHAR2(6)
DOB DATE
DOJ DATE
QUERY: 10
Q10. Write a query to drop a column from an existing table employee
Syntax for add a new column:
SQL> ALTER TABLE <TABLE NAME> DROP COLUMN <COLUMN NAME>;

QUERY: 10
SQL> ALTER TABLE EMP DROP COLUMN DOJ;
Tabie altered.
SQL> DESC EMP;
Name Null? Type

EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
QUALIFICATION VARCHAR2(6)
DOB DATE
QUERY: 11
Q11. Write a query to drop mutiple columns from employee
Syntax for add a new column:
SQL> ALTER TABLE <TABLE NAME> DROP <COLUMN
NAME1>,<COLUMN NAME2>,..
QUERY: 11
SQL> ALTER TABLE EMP DROP (DOB, QUALIFICATION):
Table altered.
SQL> DESC EMP:
Name Null? Type

EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2))
REMOVE

QUERY: 12
Q12. Write a query to rename table emp to employee
Syntax for add a new column:
SQL> ALTER TABLE RENAME <OLD NAME> TO <NEW NAME>

QUERY: 12
SQL> ALTER TABLE EMP RENAME EMP TO EMPLOYEE;
SQL> DESC EMPLOYEE;
Name Null? Type

EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
INSERT

QUERY: 13
Q13 Write a query to insert the records in to employee.
Syntax for Insert Records in to a table:
SQL :> INSERT INTO <TABLE NAME> VALUES< VAL1, VAL2',. .. ):
INSERT A RECORD FROM AN EXISTING TABLE:
sQL>INSERT INTO EMP VALUES(101,' NAGARAJAN',' LECTURER",15000);
1 row created.
SELECT
QUERY: 14
Q14.rite a query to display the records from employee.
Syntax for select Records from the table:
SQL> SELECT FROM <TABLE NAME>;

QUERY: 02
DISPLAY THE EMP TABLE:
SQL> SELECT * FROM EMP;
EMPNO ENAME DESIGNATIN SALARY
101 NAGARAJAN LECTURER 15000
INSERT A RECORD USING SUBSITUTION METHOD
QUERY: 15
Q15.rite a query to insert the records in to employee using substitution
method.
Syntax for Insert Records into the table:
SQL :> INSERT INTO <TABLE NAME> VALUES< "&column name, '&column
name 2',....
QUERY: 03
SQL> INSERT INTO EMP
VALUES(&EMPNO,'&ENAME''&DESIGNATIN,'&SALARY');
Enter value for empno: 102
Enter value for ename: SARAVANAN
Enter value for designatin:
LECTURER Enter value for salary:
15000
old 1: INSERT INTO EMP
VALUES(&EMPNO,'&ENAME''&DESIGNATIN,'&SALARY)
new 1: INSERT INTO EMP VALUES(102,'SARAVANAN,'LECTURER','15000)
1 row created.
SQL>/
Enter value for empno: 103
Enter value for ename:
PANNERSELVAM Enter value for
designatin: ASST. PROF Enter value for
salary: 20000
old 1: INSERT INTO EMP
VALUES(8&EMPNO,'&ENAME,'&DESIGNATIN",'&SALARY')
new 1: INSERT INTO EMP
VALUES(103,'PANNERSELVAM','ASST. PROF '20O000")
1 row created.
SQL>/
Enter value for empno: 104
Enter value for ename: CHINNI
Enter value for designatin: HOD, PROF
Enter value for salary: 45000
old 1: INSERT INTO EMP
VALUES(8&EMPNO, &ENAME,'&DESIGNATIN','&SALARY')
new 1: INSERT INTO EMP VALUES(104, CHINNI,'HOD, PROF','45000")
1 row created.
SQL> SELECT FROM EMP;
EMPNO ENAME DESIGNATIN SALARY
101 NAGARAJAN LECTURER 15000
102 SARAVANAN LECTURER 15000
103 PANNERSELVAM ASST. PROF 20000
104 CHINNI HOD, PROF 45000
UPDATE
QUERY: 16
Q16 Write a query to update the records from employee.
Syntax for update Records from the table:
SQL> UPDATE <<TABLE NAME> SET <COLUMNANE>=<VALUE> WHERE
<COLUMN NAME=<VALUE>;
SQL> UPDATE EMP SET SALARY=16000 WHERE EMPNO=101;
1 row updated.
SQL> SELECT * FROM EMP;
EMPNO ENAME DESIGNATIN SALARY
101 NAGARAJAN LECTURER 16000
102 SARAVANAN LECTURER 15000
103 PANNERSELVAM ASST. PROF 20000
104 CHINNI HOD, PROF
45000 UPDATE MULTIPLE
COLUMNS QUERY: 17
17.Write a query to update multiple records from employee.
Syntax for update multiple Records from the table:
SQL> UPDATE <<TABLE NAME> SET <COLUMNANE>=<VALUE> WHERE
<COLUMN NAME=<VALUE>;
SQL>UPDATE EMP SET SALARY = 16000, DESIGNATIN='ASST. PROF WHERE
EMPNO=102;
CS 3466-DBMS LAB MANUAL
SRM VALLIAMMAI ENGG.COLLEGE
1 row updated.
SQL> SELECT FROM EMP;
EMPNO ENAME DESIGNATIN SALARY
101 NAGARAJAN LECTURER 16000
102 SARAVANAN ASST. PROF 16000
103 PANNERSELVAM ASST. PROF 20000
104 CHINNI HOD, PROF 45000
DELETE
QUERY: 18
Q18.write a query to delete records from employee.
Syntax for delete Records from the table:
SQL> DELETE <TABLE NAME> WHERE <COLUMN NAME>=<VALUE>;
QUERY: 06
SQL> DELETE EMP WHERE EMPNO=103;
1 row deleted.
SQL> SELECT FROM EMP;
EMPNO ENAME DESIGNATIN SALARY
101 NAGARAJAN LECTURER 16000
102 SARAVANAN ASST. PROF 16000
104 CHINNI HÌD, PROF 45000
Column level constralnts Using Primary key
Q1. Write a query to create primary constraints with column
level Primary key
Syntax for Column level constraints Using Primary key:

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE)<TYPE OF CONSTRAINTS>, COLUMN NAME.1 <DATATYPE> (SIZE)
QUERY:13
sQL>CREATE TABLE EMPLOYEE(EMPNO NUMBER(4) PRIMARY
KEY
ENAME
VARCHAR2(10), JOB
VARCHAR2(6),
SAL NUMBER(5),
DEPTNO NUMBER(7):
Column level constraints Using Primary key with naming convention

Q2. Write a query to create primary constraints with column level with
naming
convention
Syntax for Column level constraints Using Primary key:

SQL: >CREATE <OBJ.TYPE <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE)CONSTRAINTS <NAME OF THE CONSTRAINTS> <TYPE OF THE
CONSTRAINTS>, COLUMN NAME.1 <DATATYPE> (SIZE)
QUERY:
SQL>CREATE TABLE EMPLOYEE(EMPNO NUMBER(4)
CONSTRAINT EMP_EMPNO_PK PRIMARY KEY,
ENAME
VARCHAR2(10), JOB
VARCHAR2(6),
SAL NUMBER(5),
DEPTNO NUMBER(7));

sQL: >CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1


<DATATYPE> (S1ZE), COLUMN NAME.1 <DATATYPE> (SIZE),
CONSTRAINTS <NAME OF THE CONSTRAINTS> <TYPE OF THE
CONSTRAINTS>);
QUERY: 03

SQL>CREATE TABLE EMPLOYEE (EMPNO NUMBER(6),


ENAME VARCHAR2(20),
JOB VARCHAR2(6),
SAL NUMBER(7),
DEPTNO NUMBER(5),
CONSTRAINT EMP_EMPNO_PK PRIMARY
KEY(EMPNO);:
Table level constraint with alter command (primary key):
Q04. Writea query to create primary constraints with alter command
Syntax for Column level constraints Using Primary key:

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE), COLUMN NAME.1 <DATATYPE> (SIZE) ):
sQL> ALTER TABLE <TABLE NAME> ADD CONSTRAINTS <NAME OF THE
CONSTRAINTS> <TYPE OF THE CONSTRAINTS> <COLUMN NAME>);
QUERY: 04
sQL>CREATE TABLE EMPLOYEE(EMPNO NUMBER(S),
ENAME VARCHAR2(6),
JOB VARCHAR2(6),
SAL NUMBER(6),
DEPTNO NUMBER(6):
SQL>ALTER TABLE EMP3 ADD CONSTRAINT EMP3_EMPNO_PK
PRIMARY KEY (EMPNO):
Reference /foreign key constraint
Column level foreign key constraint:
Q05. Write a query to create foreign key constraints with column level
Parent Table:
Syntax for Column level constraints Using Primary key:

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE)<TYPE OF CONSTRAINTS>, COLUMN NAME.1 <DATATYPE> (SIZE)
......
Child Table:
Syntax for Column level constraints Using foreign key:
SQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1
<DATATYPE> (SIZE), COLUMN NAME2 <DATATYPE (SIZE) REFERENCES
<TABLE NAME> (COLUMN NAME>
QUERY: 05

SQL>CREATE TABLE DEPT(DEPTNO NUMBER(2) PRIMARY


KEY,
DNAME VARCHAR2(20),
LOCATION VARCHAR2(15);
SQL>CREATE TABLE EMP4
(EMPNO NUMBER(3),
DEPTNO NUMBER(2) REFERENCES DEPT(DEPTNO),
DESIGN VARCHAR2(10);
Column level foreign key constraint with naming conversions:
Parent Table:
Syntax for Column level constraints Using Primary key:
Q.06. Write a query to create foreign key constraints with column level

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE)<TYPE OF CONSTRAINTS> , COLUMN NAME.1 <DATATYPE> (SIZE)
Child Table:
Syntax for Column level constraints using foreign key:

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE), COLUMN NAME2 <DATATYPE> (SIZE) CONSTRAINT <CONST.
NAME> REFERENCES <TABLE NAME> (COLUMN NAME>
QUERY:06

SQL>CREATE TABLE DEPT(DEPTNO NUMBER(2) PRIMARY


KEY,
...);
DNAME VARCHAR2(20),
LOCATION VARCHAR2(15);
SQL>CREATE TABLE EMP4A
(EMPNO NUMBER(3),
DEPTNO NUMBER(2)CONSTRAINT EMP4A_DEPTNO_FK
REFERENCES DEPT(DEPTNO),
DESIGN VARCHAR2(10)):
Table Leel Foreign Key Constraints
Q.07. Write a query to create foreign key constraints with Table
level Parent Table:

sQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE)<TYPE OF CONSTRAINTS>, COLUMN NAME.1 <DATATYPE> (SIZE)
Child Table:
Syntax for Table level constraints using foreign key:

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE), COLUMN NAME2 <DATATYPE> (SIZE), CONSTRANT <CONST.
NAME> REFERENCES <TABLE NAME> (COLUMN NAME> ):

QUERY: 07

SQL>CREATE TABLE DEPT


(DEPTNO NUMBER(2) PRIMARY KEY,
DNAME VARCHAR2(20),
LOCATION VARCHAR2(15));
SQL>CREATE TABLE EMPS
(EMPNO NUMBER(3),
DEPTNO NUMBER(2),
DESIGN VARCHAR2(10)CONSTRAINT ENP2_DEPTNO_FK FOREIGN
KEY(DEPT NO)REFERENCESDEPT(DEPTNO):

Table Level Foreign Key Constraints with Alter command


Q.08. Write a query to create foreign key constraints with Table level
with alter
command.
Parent
Table:

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME (COLUMN NAME.1 <DATATYPE>


(SIZE)<TYPE OF CONSTRAINTS>, COLUMN NAME.1 <DATATYPE> (SIZE)
Child Table:
....
Syntax for Table level constraints using foreign key:

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME (COLUMN NAME.1 <DATATYPE>


(SIZE), COLUMN NAME2 <DATATYPE> (SIZE):
SQL> ALTER TABLE <TABLE NAME> ADD CONSTRAINT <CONST. NAME>
REFERENCES <TABLE NAME> (COLUMN NAME>);
QUERY:08

SQL>CREATE TABLE DEPT


(DEPTNO NUMBER(2) PRIMARY KEY,
DNAME VARCHAR2(20),
LOCATION VARCHAR2(15));:
SQL>CREATE TABLE EMP5
(EMPNO NUMBER(3),
DEPTNO NUMBER(2),
DESIGN VARCHAR2(10);
SQ>ALTER TABLE EMP6 ADD CONSTRAINT EMP6_DEPTNO FK FOREIGN
KEY(DEPTNO)REFERENCES DEPT(DEPTNO);
Check constraint
Column Level Check Constraint
Q.09. Write a query to create Check constraints with column
level Syntax for clumn level constraints using Check:

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE) CONSTRAINT <CONSTRAINTS NAME> <TYPE OF CONSTRAINTS>
(CONSTRAITNS CRITERIA), COLUMN NAME2 <DATATYPE> (SIZE)):
QUERY:09

SQL>CREATE TABLE EMPZ(EMPNO NUMBER(3),


ENAME VARCHAR2(20),
DESIGN VARCHAR2(15),
SAL NUMBER(5)CONSTRAINT EMP7_SAL_CK CHECK(SAL>500 AND
SAL<10001),
DEPTNO NUMBER(2);
Table Level Check Constraint:
Q.10. Write a query to create Check constraints with table
level Syntax for Table level constraints using Check:

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE), (COLUMN NAME2 <DATATYPE> (SIZE), CONSTRAINT
<CONSTRAINTS NAME> <TYPE OF CONSTRAINTS>
(CONSTRAITNS CRITERIA)) :
QUERY:10

SQL>CREATE TABLE EMP8(EMPNO NUMBER(3),


ENAME VARCHAR2(20),
DESIGN VARCHAR2(15),
SAL NUMBER(5), DEPTNO NUMBER(2),
CONSTRAINTS EMP8_SAL_CK CHECK(SAL>500 AND
SAL<10001):
Check Constraint with Ater Command
Q.11. Write a query to create Check constraints with table level using
alter command.
Syntax for Table level constraints using Check:

SQL:>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE), (COLUMN NAME2 <DATATYPE> (SIZE), CONSTRAINT
<CONSTRAINTS NAME> <TYPE OF CONSTRAINTS>
(CONSTRAITNS CRITERIA));
QUERY:13

SQL>CREATE TABLE EMP9(EMPNO NUMBER,


ENAME VARCHAR2(20),
DESIGN
VARCHAR2(15), SAL
NUMBER(5);
SQL>ALTER TABLE EMP9 ADD CONSTRAINTS EMP9 SAL_CK
CHECK(SAL>500 AND SAL<10001);
Unique Constraint
Column Level Constraint
Q.12. Write a query to create unique constraints with column
level Syntax for Column level constraints with Unique:

SQL :> CREATE <OBJ.TYPE> <OBJ.NAME> (<COLUMN NAME.1>


<DATATYPE> (SIZE) CONSTRAINT <NAME OF CONSTRAINTS>
<CONSTRAINT TYPE>, (COLUMN NAME2 <DATATYPE> (SIZE));
QUERY:12

SQL>CREATE TABLE EMP10(EMPNO NUMBER(3),


ENAME VARCHAR2(20),
DESGIN VARCHAR2(15)CONSTRAINT EMP10_DESIGN_UK UNIQUE,
SAL NUMBER(S);
Table Level Constraint
Q,13. Write a query to create unique constraints with table level
Syntax for Table level constraints with Unique:

SQL :> CREATE <OBJ.TYPE> <OBJ.NAME> (<COLUMN NAME.1>


<DATATYPE> (SIZE), (COLUMN NAME2 <DATATYPE> (SIZE), CONSTRAINT
<NAME OF CONSTRAINTS> <CONSTRAINT TYPE>(COLUMN NAME):):
QUERY:12

SQL>CREATE TABLE EMP11(EMPNO NUMBER(3),


ENAME VARCHAR2(20),
DESIGN VARCHAR2(15),
SAL NUMBER(S),CONSTRAINT EMP11_DESIGN_UK UNIGUE(DESIGN);
Table Level Constraint Alter Command
Q.14. Write a query to create unique constraints with table
level Syntax for Table level constraints with Check Using Alter

SQL :> CREATE <OBJ.TYPE> <0BJ.NAME> (<COLUMN NAME.1>


<DATATYPE> (SIZE), (COLUMN NAME2 <DATATYPE> (SIZE));
SQL> ALTER TABLE ADD <CONSTRAINTS> <CONSTRAINTS NAME>
<CONSTRAINTS TYPE>{COLUMN NAME);
QUERY:14

SQL>CREATE TABLE
EMP12 (EMPNO
NUMBER(3), ENAME
VARCHAR2(20), DESIGN
VARCHAR2(15), SAL
NUMBER(S);
SQL>ALTER TABLE EMP12 ADD CONSTRAINT EMP12_DESIGN_UK
UNIQUE(DESING);
Not NulI
Column Level Constraint
Q.15. Write a query to create Not Null constraints with column
level Syntax for Column level constraints with Not Null:

SQL :> CREATE <OBJ.TYPE> <OBJ.NAME> (<COLUMN NAME.1>


<DATATYPE> (SIZE) CONSTRAINT <NAME OF CONSTRAINTS>
<CONSTRAINT TYPE>, (COLUMN NAME2 <DATATYPE> (SIZE)) ;
QUERY: 15

SQL>CREATE TABLE
EMP13 (EMPNO
NUMBER(4),
ENAME VARCHAR2(20) CONSTRAINT EMP13 ENAME NN NOT
NULL, DESIGN VARCHAR2(20),
SAL NUMBER(3):
Null
Column Level Constraint
Q.16. Write a query to create Null constraints with column
level Syntax for Column level constraints with Null:

SQL:> CREATE <OBJ.TYPE> <OBJ.NAME> (<COLUMN NAME.1>


<DATATYPE> (SIZE) CONSTRAINT <NAME OF CONSTRAINTS>
<CONSTRAINT TYPE>, (COLUMN NAME2 <DATATYPE> (SIZE) :
QUERY:16

SQL>CREATE TABLE
EMP13 (EMPNO
NUMBER(4),
ENAME VARCHAR2(20) CONSTRAINT EMP13_ENAME_NN NULL,
DESIGN VARCHAR2(20),
SAL NUMBER(3));
Constraint Disable\Enable
Constraint Disable
Q.17. Write a query to disable the constraints
Syntax for disabling a singie constraint in a
table:
SQL>ALTER TABLE <TABLE-NAME> DISABLE CONSTRAINT <CONSTRAINTNAME>
Constraint Enable
QUERY:17

SQL>ALTER TABLE EMP13 DISABLE CONSTRAINT EMP13 ENAME NN NULL;


TABLE ALTERED
Q.18. Write a query to enable the constraints

Syntax for disabling a single constraint in a tabie:


SQL>ALTER TABLE <TABLE-NAME> DISABLE CONSTRAINT <CONSTRAINTNAME>
QUERY:18

SQL>ALTER TABLE EMP13 ENABLE CONSTRAINT EMP13_ENAME NN NULL;


TABLE ALTERED
SQL FOREIGN KEY on CREATE TABLE
Syntax
CREATE TABLE TABLE_NAME(
Column 1 datatype,
Column 2 datatype,
Column 3 datatype FOREIGN KEY REFERENCES Table_name(Column name),
..
Column n )

SQL FOREIGN KEY on ALTER TABLE


The syntax to add a foreign key with ALTER TABLE statement is:

ALTER TABLE table_name


ADD CONSTRAINT fk_constraint_name FOREIGN KEY (column1, column2,
…)
REFERENCES parent_table(column1, column2, …);
To create a FOREIGN KEY constraint on the "PersonID" column

ALTER TABLE Orders


ADD FOREIGN KEY (PersonID) REFERENCES
Persons(PersonID);

Implementing Foreign Key

Creating a Table with a Foreign Key

Create the Customer Table


In order to create the following table, we use the following command
CREATE TABLE
Customer( Customer_id int
primary key, Customer_name
varchar(20),
Customer_Address
varchar(20),
Insert the values into the Customer Table

After creating the above table, we can use the following SQL INSERT
INTO statement:

INSERT INTO Customer (Customer_id, Customer_name, Customer_address)


VALUES (101, 'Geek 1', 'Chennai'),
(102, 'Geek 2', 'Delhi'),
(103, 'Geek 3', 'Bombay'),
(104, 'Geek 4', 'Pune'),
(105, 'Geek 5', 'Nashik');

Output

Customer_id Customer_name Customer_Address

101 Geek 1 Chennai

102 Geek 2 Delhi

103 Geek 3 Bombay

104 Geek 4 Pune

105 Geek 5 Nashik

Create the Sales Table with a Foreign key

CREATE TABLE Sales (


Sale_id INT PRIMARY KEY,
Customer_id INT,
Item_id INT,
Payment_mode VARCHAR(20),
FOREIGN KEY (Customer_id) REFERENCES Customer(Customer_id)
);
Insert the values into the Sales Table

After creating the above table, we can use the following SQL INSERT
INTO statement:

INSERT INTO Sales (Customer_id, Item_id,


Payment_Mode) VALUES
(101, 1334151, 'COD'),
(101, 16652, 'Debit Card'),
(104, 1009, 'Paypal'),
(102, 14543, 'COD');

Verify the Data and Foreign Key Relationship

To verify that the foreign key relationship works, use


the DESCRIBE command:

DESCRIBE Sales;

Output

Customer_id Item_Id Payment_Mode

101 1334151 COD

101 16652 Debit Card

104 1009 Paypal

102 14543 COD


Query:

CREATE TABLE SALES(


Customer_id int, Item_id int,
Payment_Mode varchar(20),
CONSTRAINT FK_Sales FOREIGN KEY
(Customer_id)REFERENCES Customer(Customer_id)
)

Output

Customer_id Item_Id Payment_Mode

101 1334151 COD

101 16652 Debit Card

104 1009 Paypal

102 14543 COD

Query:

Customer_id INT PRIMARY KEY, Item_id


INT,
Payment_Modevarchar(20),
Payment_id INT,

CONSTRAINT customer_payment_id FOREIGN


KEY (customerId, paymentId)
REFERENCES Customer(customerId, paymentId)
);

Output

Customer_id Customer_name Customer_Address Payment_id

101 Geek 1 Chennai P100

102 Geek 2 Delhi P200

103 Geek 3 Bombay P300

Customer_id Item_Id Payment_Mode Payment_id

101 1334151 COD P100

101 16652 Debit Card P200

SQL FOREIGN KEY ON ALTER TABLE

Foreign key can also be added in the existing table using the ALTER TABLE
statement. The following method will illustrate the same.

Query:

ALTER TABLE Retailer


ADD FOREIGN KEY (Retailer_id)
REFERENCES Customer(Customer_id);

Output

Retailer_id Order_Purchased

101 Item1

102 Item2
Retailer_id Order_Purchased

103 Item3

 .
DROP Foreign Key Constraint
ALTER TABLE table_name
DROP FOREIGN KEY foreign_key_name;

PostgreSQL/ SQL Server


ALTER TABLE table_name
DROP CONSTRAINT foreign_key_name;
Table -1

SYNTAX FOR CREATING A TABLE:

SQL: CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>


(SIZE), COLUMN NAME.1 <DATATYPE> (SIZE)
..................................................................................................................)
;

Query:

SQL> CREATE TABLE EMP2(EMPNO NUMBER(5),

ENAME VARCHAR2(20),

JOB VARCHAR2(20),

SAL NUMBER(6),

MGRNO NUMBER(4),

DEPTNONUMBER(3));

SYNTAX FOR INSERT RECORDS IN TO A TABLE:

SQL :> INSERT INTO <TABLE NAME> VALUES< VAL1, ‘VAL2’,....);

INSERTION

SQL> INSERT INTO EMP2 VALUES(1001,'MAHESH','PROGRAMMER',15000,1560,200);

1 ROW CREATED.

SQL> INSERT INTO EMP2 VALUES(1002,'MANOJ','TESTER',12000,1560,200);

1 ROW CREATED.

SQL> INSERT INTO EMP2 VALUES(1003,'KARTHIK','PROGRAMMER',13000,1400,201);


1 ROW CREATED.

SQL> INSERT INTO EMP2

VALUES(1004,'NARESH','CLERK',1400,1400,201); 1 ROW CREATED.

SQL> INSERT INTO EMP2 VALUES(1005,'MANI','TESTER',13000,1400,200);

1 ROW CREATED.

SQL> INSERT INTO EMP2 VALUES(1006,'VIKI','DESIGNER',12500,1560,201);

1 ROW CREATED.

SQL> INSERT INTO EMP2 VALUES(1007,'MOHAN','DESIGNER',14000,1560,201);

1 ROW CREATED.

SQL> INSERT INTO EMP2 VALUES(1008,'NAVEEN','CREATION',20000,1400,201);


1 ROW CREATED.

SQL> INSERT INTO EMP2

VALUES(1009,'PRASAD','DIR',20000,1560,202); 1 ROW CREATED.

SQL> INSERT INTO EMP2

VALUES(1010,'AGNESH','DIR',15000,1400,200); 1 ROW CREATED.

SYNTAX FOR SELECT RECORDS FROM THE TABLE:

SQL> SELECT * FROM <TABLE NAME>;

Query:

SQL> SELECT *FROM EMP2;

EMPNO ENAME JOB SAL MGRNO DPTNO

1001 MAHESH PROGRAMMER 15000 1560 200

1002 MANOJ TESTER 12000 1560 200

1003 KARTHIK PROGRAMMER 13000 1400 201

1004 NARESH CLERK 1400 1400 201

1005 MANI TESTER 13000 1400 200

1006 VIKI DESIGNER 12500 1560 201

1007 MOHAN DESIGNER 14000 1560 201

1008 NAVEEN CREATION 20000 1400 201

1009 PRASAD DIR 20000 1560 202

1010 AGNESH DIR 15000 1400 200

TABLE- 2

SYNTAX FOR CREATING A TABLE:

SQL: CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE>

(SIZE), COLUMN NAME.1 <DATATYPE> (SIZE)

..................................................................................................................)

;
Query:

SQL> CREATE TABLE DEPT2(DEPTNO NUMBER(3),

DEPTNAME VARCHAR2(10),

LOCATION VARCHAR2(15));

Table created.

SYNTAX FOR INSERT RECORDS IN TO A TABLE:

SQL :> INSERT INTO <TABLE NAME> VALUES< VAL1, ‘VAL2’,…..);

INSERTION

SQL> INSERT INTO DEPT2 VALUES(107,'DEVELOP','ADYAR');


1 ROW CREATED.

SQL> INSERT INTO DEPT2

VALUES(201,'DEBUG','UK'); 1 ROW CREATED.

SQL> INSERT INTO DEPT2

VALUES(200,'TEST','US'); 1 ROW CREATED.

SQL> INSERT INTO DEPT2

VALUES(201,'TEST','USSR'); 1 ROW CREATED.

SQL> INSERT INTO DEPT2 VALUES(108,'DEBUG','ADYAR');

1 ROW CREATED.

SQL> INSERT INTO DEPT2

VALUES(109,'BUILD','POTHERI'); 1 ROW CREATED.

SYNTAX FOR SELECT RECORDS FROM THE TABLE:

SQL> SELECT * FROM <TABLE

NAME>; SQL> SELECT *FROM DEPT2;

DEPTNO DEPTNAME LOCATION

107 DEVELOP ADYAR

201 DEBUG UK
200 TEST US

201 TEST USSR

108 DEBUG ADYAR

109 BUILD POTHERI

6 rows selected.

GENERAL SYNTAX FOR NESTED QUERY:

SELECT

"COLUMN_NAME1" FROM

"TABLE_NAME1"

WHERE "COLUMN_NAME2" [COMPARISON

OPERATOR] (SELECT "COLUMN_NAME3"

FROM

"TABLE_NAME2"

WHERE [CONDITION])

SYNTAX NESTED QUERY STATEMENT:

SQL> SELECT <COLUMN_NAME> FROM FRORM <TABLE _1> WHERE

<COLUMN_NAME> <RELATIONAL _OPERATION> ‘VALUE’

(SELECT (AGGRECATE FUNCTION) FROM <TABLE_1> WHERE <COLUMN

NAME> = ‘VALUE’

(SELECT <COLUMN_NAME> FROM <TABLE_2> WHERE

<COLUMN_NAME= ‘VALUE’));

NESTED QUERY STATEMENT:

SQL> SELECT ENAME FROM EMP2 WHERE SAL>

(SELECT MIN(SAL) FROM EMP2 WHERE DPTNO=

(SELECT DEPTNO FROM DEPT2 WHERE LOCATION='UK'));

Nested Query Output:

ENAME
MAHESH
MANOJ

KARTHIK

MANI

VIKI

MOHAN

NAVEEN

PRASAD

AGNESH

SQL Operators for Nested Queries

IN OPERATOR

SELECT S_NAME FROM STUDENT


WHERE S_ID IN (
SELECT S_ID FROM STUDENT_COURSE
WHERE C_ID IN (
SELECT C_ID FROM COURSE WHERE C_NAME IN ('DSA', 'DBMS')
);

NOT IN OPERATOR

SELECT S_ID FROM STUDENT


WHERE S_ID NOT IN (
SELECT S_ID FROM STUDENT_COURSE
WHERE C_ID IN (
SELECT C_ID FROM COURSE WHERE C_NAME IN ('DSA', 'DBMS')
);

OUTPUT:

S_ID

S3

EXISTS

SELECT S_NAME FROM STUDENT S


WHERE EXISTS (
SELECT 1 FROM STUDENT_COURSE SC
WHERE S.S_ID = SC.S_ID AND SC.C_ID = 'C1'
);
ANY AND ALL

SELECT S_NAME FROM


STUDENT WHERE S_AGE > ALL (
SELECT S_AGE FROM STUDENT WHERE S_ADDRESS = 'DELHI'
);
LEFT JOIN or LEFT OUTTER

JOIN Table:1 - ORDERS

SQL> CREATE table orders(O_Id

number(5), Orderno number(5),

P_Id

number(3));

Table created.

SQL> DESC

orders; Name

Null? Type

O_ID NUMBER(5)

ORDERNO NUMBER(5)

P_ID NUMBER(3)

INSERTING VALUES INTO ORDERS

SQL> INSERT into orders

values(&O_Id,&Orderno,&P_Id); Enter value for o_id: 1

Enter value for orderno: 77895

Enter value for p_id: 3

old 1: INSERT into orders values(&O_Id,&Orderno,&P_Id)


new 1: INSERT into orders values(1,77895,3)

1 row created.

SQL> INSERT into orders

values(&O_Id,&Orderno,&P_Id); Enter value for o_id: 2

Enter value for orderno: 44678

Enter value for p_id: 3

old 1: INSERT into orders values(&O_Id,&Orderno,&P_Id)


new 1: INSERT into orders values(2,44678,3)
1 row created.

SQL> INSERT into orders

values(&O_Id,&Orderno,&P_Id); Enter value for o_id: 3

Enter value for orderno: 22456

Enter value for p_id: 1

old 1: INSERT into orders values(&O_Id,&Orderno,&P_Id)

new 1: INSERT into orders values(3,22456,1)

1 row created.

SQL> INSERT into orders

values(&O_Id,&Orderno,&P_Id); Enter value for o_id: 4

Enter value for orderno: 24562

Enter value for p_id: 1

old 1: INSERT into orders values(&O_Id,&Orderno,&P_Id)

new 1: INSERT into orders values(4,24562,1)

1 row created.

SQL> INSERT into orders

values(&O_Id,&Orderno,&P_Id); Enter value for o_id: 5

Enter value for orderno: 34764

Enter value for p_id: 15

old 1: INSERT into orders values(&O_Id,&Orderno,&P_Id)

new 1: INSERT into orders values(5,34764,15)

1 row created.

TABLE SECTION:

SQL> SELECT * FROM orders;


O_ID ORDERNO P_ID
1 77895 3

2 44678 3

3 22456 1

4 24562 1

5 34764 15

TABLE -2: PERSONS

SQL> CREATE table persons(p_Id

number(5), LASTNAME varchar2(10),

Firstname varchar2(15), Address varchar2(20),

city varchar2(10));

Table created.

SQL> INSERT into persons values(&p_Id,'&Lastname','&firstname','&Address','&city');

Enter value for p_id: 1

Enter value for lastname:

Hansen Enter value for

firstname: Ola

Enter value for address: Timoteivn

10 Enter value for city: sadnes

old 1: INSERT into persons

values(&p_Id,'&Lastname','&firstname','&Address','&city') new 1: INSERT into

persons values(1,'Hansen','Ola','Timoteivn 10','sadnes')

1 row created.

SQL> INSERT into persons values(&p_Id,'&Lastname','&firstname','&Address','&city');

Enter value for p_id: 2

Enter value for lastname:

Svendson Enter value for

firstname: Tove Enter value for

address: Borgn 23 Enter value for

city: Sandnes
old 1: INSERT into persons

values(&p_Id,'&Lastname','&firstname','&Address','&city') new 1: INSERT into

persons values(2,'Svendson','Tove','Borgn 23','Sandnes')

1 row created.

SQL> INSERT into persons values(&p_Id,'&Lastname','&firstname','&Address','&city');

Enter value for p_id: 3

Enter value for lastname:

Pettersen Enter value for

firstname: Kari Enter value for

address: Storgt 20 Enter value for

city: Stavanger

old 1: INSERT into persons

values(&p_Id,'&Lastname','&firstname','&Address','&city') new 1: INSERT into

persons values(3,'Pettersen','Kari','Storgt 20','Stavanger')

1 row created.

SQL> SELECT * FROM persons;

P_ID LASTNAME FIRSTNAME ADDRESS CITY

1 Hansen Ola Timoteivn 10 sandnes

2 Svendson Tove Borgn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

LEFT JOIN SYNTAX

SQL> SELECT

column_name(s) FROM

table_name1

LEFT JOIN table_name2

ON table_name1.column_name=table_name2.column_name

LEFT JOIN EXAMPLE


SQL> SELECT persons.lastname,persons.firstname,orders.orderno
FROM persons

LEFT JOIN

orders

ON persons.p_Id = orders.p_Id

ORDER BY persons.lastname;

OUTPUT

LASTNAME FIRSTNAME ORDERNO

Hansen Ola 22456

Hansen Ola 24562

Pettersen Kari 77895

Pettersen Kari

44678 Svendson

Tove

FULL OUTTER JOIN

SQL> SELECT * FROM persons;

P_ID LASTNAME FIRSTNAME ADDRESS CITY

1 Hansen Ola Timoteivn 10 sandnes

2 Svendson Tove Borgn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

SQL> SELECT * FROM orders;

O_ID ORDERNO P_ID

1 77895 3
2 44678 3

3 22456 1

4 24562 1

5 34764 15
FULL OUTER JOIN SYNTAX

SQL>SELECT column_name(s)
FROM table_name1

FULL JOIN table_name2

ON table_name1.column_name=table_name2.column_name

FULL OUTER JOIN EXAMPLE

SQL> SELECT persons.lastname,persons.firstname,orders.orderno

FROM persons

FULL OUTER JOIN orders

ON persons.p_Id = orders.p_Id

ORDER BY persons.lastname;

RIGHT OUTTER JOIN

RIGHT OUTTER JOIN SYNTAX

SQL>SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

FROM Persons

RIGHT JOIN Orders

ON Persons.P_Id=Orders.P_Id

ORDER BY Persons.LastName

RIGHT OUTTER JOIN EXAMPLE

SQL> SELECT persons.lastname,persons.firstname,orders.orderno

FROM persons

RIGHT OUTER JOIN orders

ON persons.p_Id = orders.p_Id
ORDER BY persons.lastname;
LASTNAME FIRSTNAME ORDERNO

Hansen Ola 24562

Hansen Ola 22456

Pettersen Kari 44678

Pettersen Kari 77895

INNER JOIN

INNER JOIN SYNTAX

SQL>SELECT

column_name(s) FROM

table_name1

INNER JOIN table_name2

ON table_name1.column_name=table_name2.column_name

INNER JOIN EXAMPLE

SQL> SELECT persons.lastname,persons.firstname,orders.orderno

2 FROM persons

3 INNER JOIN orders

4 ON persons.p_Id = orders.p_Id

5 ORDER BY persons.lastname;

LASTNAME FIRSTNAME

ORDERNO

Hansen Ola 22456

Hansen Ola 24562

Pettersen Kari 77895

Pettersen Kari 44678


SETTING SERVEROUTPUT ON:

SQL> SET SERVEROUTPUT ON

I) PROGRAM:

PROCEDURE USING POSITIONAL PARAMETERS:

SQL> SET SERVEROUTPUT ON

SQL> CREATE OR REPLACE PROCEDURE PROC1 AS

2 BEGIN

3 DBMS_OUTPUT.PUT_LINE('Hello from procedure...');

4 END;

5/

Output:

Procedure created.

SQL> EXECUTE PROC1

Hello from procedure..

PL/SQL procedure successfully completed

II) PROGRAM:

PROCEDURE USING NOTATIONAL PARAMETERS:

SQL> CREATE OR REPLACE PROCEDURE PROC2

2 (N1 IN NUMBER,N2 IN NUMBER,TOT OUT NUMBER) IS

3 BEGIN

4 TOT := N1 + N2;

5 END;

6/

Output:

Procedure created.
SQL> VARIABLE T NUMBER SQL> EXEC PROC2(33,66,:T)
PL/SQL procedure successfully

completed. SQL> PRINT T

PROCEDURE FOR GCD NUMBERS

III) PROGRAM:

SQL> create or replace procedure pro


is

a number(3);

b number(3);

c number(3);

number(3);

begin

a:=&a;

b:=&b;

if(a>b) then

c:=mod(a,b);

if(c=0) then

dbms_output.put_line('GCD is');

dbms_output.put_line(b);

else

dbms_output.put_line('GCD is');

dbms_output.put_line(c);

end if;

else

d:=mod(b,a);
if(d=0) then

dbms_output.put_line('GCD is');

dbms_output.put_line(a);

else

dbms_output.put_line('GCD is');

dbms_output.put_line(d);

end if;

end if;

end;

OUTPUT:

Enter value for a: 8

old 8: a:=&a;

new 8: a:=8;

Enter value for b:

16 old 9: b:=&b;

new 9: b:=16;

Procedure created.

SQL> set serveroutput

on; SQL> execute pro;

GCD is 8

PL/SQL procedure successfully completed.

PROCEDURE FOR CURSOR IMPLEMENATION

IV) PROGRAM:

SQL> create table student(regno number(4),name varchar2)20),mark1 number(3), mark2

number(3), mark3 number(3), mark4 number(3), mark5 number(3));

Table created
SQL> insert into student values (101,'priya', 78,

88,77,60,89); 1 row created.

SQL> insert into student values (102,'surya', 99,77,69,81,99);

1 row created.

SQL> insert into student values (103,'suryapriya', 100,90,97,89,91);

1 row created.

SQL> select * from student;

Regno name mark1 mark2 mark3 mark4 mark5

101 priya 78 88 77 60 89
102 surya 99 77 69 81 99
103 suryapriya 100 90 97 89 91

SQL> declare

ave

number(5,2); tot

number(3);

cursor c_mark is select*from student where mark1>=40 and mark2>=40 and mark3>=40 and
mark4>=40 and mark5>=40;
begin

dbms_output.put_line('regno name mark1 mark2 mark3 mark4 mark4 mark5 total average');

dbms_output.put_line(' ');

for studentin

c_mark loop

tot:=student.mark1+student.mark2+student.mark3+student.mark4+student.mark5;

ave:=tot/5;

dbms_output.put_line(student.regno||rpad(student.name,15)||rpad(student.mark1,6)||rpad(stud
ent.mark2,6)||rpad(student.mark3,6)||rpad(student.mark4,6)||rpad(student.mark5,6)||rpad(tot,8
)||rpad(ave,5));

end loop;

end;
OUTPUT

Regno name mark1 mark2 mark3 mark4 mark5 total average


101 priya 78 88 77 60 89 393 79

102 surya 99 77 69 81 99 425 85


103 suryapriya 100 90 97 89 91 467 93

PL/SQL procedure successfully completed.

EXPLICIT CURSORS AND EXPLICIT CURSORS

IMPLEMENTATION CREATING A TABLE EMP IN ORACLE

V) PROGRAM

SQL> select * from EMP;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


7369 SMITH CLERK 7902 17-DEC-80 800 20

7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30

7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

7566 JONES MANAGER 7839 02-APR-81 2975 20

7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30


7698 BLAKE MANAGER 7839 01-MAY-81 2850 30

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

7782 CLARK MANAGER 7839 09-JUN-81 2450 10

7788 SCOTT ANALYST 7566 09-DEC-82 3000 20

7839 KING PRESIDENT 17-NOV-81 5000 10

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30

7876 ADAMS CLERK 7788 12-JAN-83 1100 20

7900 JAMES CLERK 7698 03-DEC-81 950 30


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

7902 FORD ANALYST 7566 03-DEC-81 3000 20

7934 MILLER CLERK 7782 23-JAN-82 1300 10

14 rows selected.

Implicit curscors:

SQL> DECLARE

2 ena EMP.ENAME%TYPE;

3 esa EMP.SAL%TYPE;

4 BEGIN

5 SELECT ENAME,SAL INTO ENA,ESA FROM EMP

6 WHERE EMPNO = &EMPNO;

7 DBMS_OUTPUT.PUT_LINE('NAME :' || ENA);

8 DBMS_OUTPUT.PUT_LINE('SALARY :' || ESA);

10 EXCEPTION

11 WHEN NO_DATA_FOUND THEN

12 DBMS_OUTPUT.PUT_LINE('Employee no does not exits');

13 END;

14 /

Output:

Enter value for empno: 7844

old 6: WHERE EMPNO = &EMPNO;

new 6: WHERE EMPNO = 7844;

PL/SQL procedure successfully completed.

Explicit Cursors:

SQL> DECLARE

2 ena EMP.ENAME%TYPE;

3 esa EMP.SAL%TYPE;
4 CURSOR c1 IS SELECT ename,sal FROM EMP;

5 BEGIN

6 OPEN c1;

7 FETCH c1 INTO ena,esa;

8 DBMS_OUTPUT.PUT_LINE(ena || ' salry is $ ' || esa);

10 FETCH c1 INTO ena,esa;

11 DBMS_OUTPUT.PUT_LINE(ena || ' salry is $ ' || esa);

12

13 FETCH c1 INTO ena,esa;

14 DBMS_OUTPUT.PUT_LINE(ena || ' salry is $ ' || esa);

15 CLOSE c1;

16 END;

17 /

Output:

SMITH salry is $ 800

ALLEN salry is $

1600 WARD salry is

$ 1250
IMPLEMENTATION OF FACTORIAL USING FUNCTION

I) PROGRAM:

SQL>create function fnfact(n number)

return number is

number;

begin

b:=1;

for i in

1..n loop

b:=b*i;

end loop;

return b;

end;

SQL>Declare

number:=&n; y

number; begin

y:=fnfact(n);

dbms_output.put_line(y);

end;

/
Function created.

Output

Enter value for n: 5

old 2: n number:=&n;

new 2: n number:=5;

120

PL/SQL procedure successfully completed.


II) PROGRAM

SQL> create table phonebook (phone_no number (6) primary key,username varchar2(30),doorno

varchar2(10),

street varchar2(30),place varchar2(30),pincode char(6));

Table created.

SQL> insert into phonebook values(20312,'vijay','120/5D','bharathi

street','NGO colony','629002');

1 row created.
SQL> insert into phonebook values(29467,'vasanth','39D4','RK bhavan','sarakkal

vilai','629002'); 1 row created.

SQL> select * from phonebook;

PHONE_NO USERNAME DOORNO STREET PLACE PINCODE


20312 vijay 120/50 bharathi street NGO colony 629002
29467 vasanth 39D4 RK bhavan sarakkal vilai 629002

SQL> create or replace function findAddress(phone in number) return varchar2 as

address varchar2(100);

begin

select username||','||doorno ||','||street ||','||place||','||pincode into address from

phonebook where phone_no=phone;

return

address;

exception

when no_data_found then return 'address not

found'; end;

/
Function created.
SQL>declare

2 address varchar2(100);

3 begin

4 address:=findaddress(20312);

5 dbms_output.put_line(address);

6 end;

7/

OUTPUT 1:

Vijay,120/5D,bharathi street,NGO colony,629002


PL/SQL procedure successfully

completed. SQL> declare

2 address varchar2(100);

3 begin

4 address:=findaddress(23556);

5 dbms_output.put_line(address);

6 end;

7 /

OUTPUT2:

Address not found

PL/SQL procedure successfully completed.


DCL (DATA CONTROL LANGUAGE)

CREATING A USER

SQL>CONNECT SYSTEM/MANAGER;

SQL>CREATE USER "USERNAME" IDENTIFIED BY

"PASSWORD" EXAMPLE

CREATING A USER

SQL>CONNECT SYSTEM/MANAGER; SQL>CREATE USER CSE2 IDENTIFIED BY CSECSE; SQL>GRANT DBA


TO CSE2;

SQL>CONNECT CSE2/CSECSE;

SQL>REVOKE DBA FROM CSE2;

DRL-DATA RETRIEVAL IMPLEMENTING ON SELECT COMMANDS

SQL> select * from emp;

EMPNO ENAME JOB MGR HIREDATE SAL DEPTNO

7369 SMITH CLERK 7902 17-DEC-80 800 2000

7499 ALLEN SALESMAN 7698 20-FEB-81 1600 3000

7521 WARD SALESMAN 7698 22-FEB-81 1250 5000

7566 JONES MANAGER 7839 02-APR-81 2975 2000


4 rows selected.

SQL> select empno,ename,sal from emp;

EMPNO ENAME SAL


7369 SMITH 800
7499 ALLEN 1600
7521 WARD 1250

SQL>select ename,job,sal,deptno from emp where sal not between 1500 and 5000;
ENAME JOB SAL DEPTNO

SMITH CLERK 800 20


WARD SALESMAN 1250 30

MARTIN SALESMAN 1250 30

ADAMS CLERK 1100 20

JAMES CLERK 950 30


MILLER CLERK 1300 10

6 rows selected

SQL> select empno,ename,sal from emp where sal in (800,5000);

EMPNO ENAME SAL


7369 SMITH 800
7839 KING 5000

SQL> select empno,ename,sal from emp where comm is

null; EMPNO ENAME SAL

7369 SMITH 800


7566 JONES 2975

7698 BLAKE 2850

7782 CLARK 2450

7788 SCOTT 3000


7839 KING 5000

7876 ADAMS 1100

7900 JAMES 950

7902 FORD 3000


7934 MILLER 1300

10 rows selected.
SQL> select empno,ename,sal from emp where comm is not
null; EMPNO ENAME SAL
7499 ALLEN 1600
7521 WARD 1250

7654 MARTIN 1250


7844 TURNER 1500

SQL> select empno,ename,job,sal from emp where ename like'S%';

EMPNO ENAME JOB SAL


7369 SMITH CLERK 800
7788 SCOTT ANALYST 3000

SQL> select empno,ename,job,sal from emp where job not like'S

%'; EMPNO ENAME JOB SAL

7369 SMITH CLERK 800


7566 JONES MANAGER 2975

7698 BLAKE MANAGER 2850

7782 CLARK MANAGER 2450


7788 SCOTT ANALYST 3000

SQL> select ename,job,sal from emp where

sal>2500; ENAME JOB SAL

JONES MANAGER 2975


BLAKE MANAGER 2850

SCOTT ANALYST 3000

KING PRESIDENT 5000


FORD ANALYST 3000

SQL> select ename,job,sal from emp where sal<2500;

ENAME JOB SAL

SMITH CLERK 800


ALLEN SALESMAN 1600
WARD SALESMAN 1250
MARTIN SALESMAN 1250
CLARK MANAGER 2450

TURNER SALESMAN 1500


ADAMS CLERK 1100

9 rows selected

SQL> select empno,ename,job,sal from emp order by

sal; EMPNO ENAME JOB SAL

7369 SMITH CLERK 800


7900 JAMES CLERK 950

7876 ADAMS CLERK 1100

7521 WARD SALESMAN 1250

7654 MARTIN SALESMAN 1250

7934 MILLER CLERK 1300

7844 TURNER SALESMAN 1500

7499 ALLEN SALESMAN 1600

7782 CLARK MANAGER 2450

7698 BLAKE MANAGER 2850


7566 JONES MANAGER 2975

EMPNO ENAME JOB SAL


7788 SCOTT ANALYST 3000
7902 FORD ANALYST 3000
7839 KING PRESIDENT 5000

14 rows selected.

SQL> select empno,ename,job,sal from emp order by sal

desc; EMPNO ENAME JOB SAL

7839 KING PRESIDENT 5000


7788 SCOTT ANALYST 3000
7902 FORD ANALYST 3000

7566 JONES MANAGER 2975


7698 BLAKE MANAGER 2850

7782 CLARK MANAGER 2450

7499 ALLEN SALESMAN 1600

7844 TURNER SALESMAN 1500

7934 MILLER CLERK 1300

7521 WARD SALESMAN 1250


7654 MARTIN SALESMAN 1250

EMPNO ENAME JOB SAL

7876 ADAMS CLERK 1100


7900 JAMES CLERK 950

7369 SMITH CLERK 800


14 rows selected.

TCL(TRNSACTION CONTROL LANGUAGE)

SAVEPOINT:

QUERY: 01

Q1. Write a query to implement the save point.

Syntax for save point:

SQL> SAVEPOINT <SAVE POINT NAME>;

QUERY: 01

SQL> SAVEPOINT S1;

Savepoint created.

SQL> SELECT * FROM EMP;

EMPNO ENAME DESIGNATIN SALARY


101 NAGARAJAN LECTURER 16000

102 SARAVANAN ASST. PROF 16000


104 CHINNI HOD, PROF 45000

SQL> INSERT INTO EMP VALUES(105,'PARTHASAR','STUDENT',100);

1 row created.

SQL> SELECT * FROM EMP;

EMPNO ENAMEDESIGNATIN SALARY

105 PARTHASAR STUDENT 100


101 NAGARAJAN LECTURER 16000

102 SARAVANAN ASST. PROF 16000

104 CHINNI HOD, PROF 45000

SAVEPOINT SP1;
Savepoint created.

DELETE FROM EMP WHERE


SALARY=100;
deleted

SAVEPOINT SP2;
Savepoint created.

ROLL BACK

QUERY: 02

Q2. Write a query to implement the Rollback.

Syntax for save point:

SQL> ROLL BACK <SAVE POINT NAME>;


QUERY: 02

SQL> ROLL BACK S1;

Rollback complete.

SQL> SELECT * FROM EMP;

EMPNO ENAMEDESIGNATIN SALARY

105 PARTHASAR STUDENT 100


101 NAGARAJAN LECTURER 16000

102 SARAVANAN ASST. PROF 16000


104 CHINNI HOD, PROF 45000

COMMIT

QUERY: 03

Q3. Write a query to implement the Rollback.

Syntax for commit:

SQL> COMMIT;

QUERY

SQL> COMMIT;

Commit complete.
Create a Trigger to pop-up the DML operations

SQL> create table empa(id number(3),name varchar2(10),income number(4),expence


number(3),savings number(3));

Table created.

SQL> insert into empa values(2,'kumar',2500,150,650);

1 row created.

SQL> insert into empa values(3,'venky',5000,900,950);

1 row created.

SQL> insert into empa values(4,'anish',9999,999,999);

1 row created.

SQL> select * from empa;

ID NAME INCOME EXPENCE SAVINGS

2 kumar 2500 150 650


3 venky 5000 900 950
4 anish 9999 999 999

TYPE 1- TRIGGER AFTER UPDATE

SQL> CREATE OR REPLACE TRIGGER VIJAY

AFTER UPDATE OR INSERT OR DELETE ON EMP


FOR EACH ROW

BEGIN

IF UPDATING THEN

DBMS_OUTPUT.PUT_LINE('TABLE IS UPDATED');

ELSIF INSERTING THEN

DBMS_OUTPUT.PUT_LINE('TABLE IS INSERTED')

; ELSIF DELETING THEN

DBMS_OUTPUT.PUT_LINE('TABLE IS DELETED'); END

IF; END;

/ Trigger created.
SQL> update emp set income =900 where empname='kumar';

TABLE IS UPDATED

1 row updated.

SQL> insert into emp values ( 4,'Chandru',700,250,80);

TABLE IS INSERTED

1 row created.SQL> DELETE FROM EMP WHERE EMPID = 4;

TABLE IS DELETED

1 row deleted.

SQL> select * from emp;

EMPID EMPNAME INCOME EXPENSE SAVINGS

2 vivek 830 150 100


3 kumar 5000 550 50
9 vasanth 987 6554 644

TYPE 2 - TRIGGER BEFORE UPDATE

SQL> CREATE OR REPLACE TRIGGER VASANTH

BEFORE UPDATE OR INSERT OR DELETE ON EMPLOYEE

FOR EACH ROW


BEGIN

IF UPDATING THEN

DBMS_OUTPUT.PUT_LINE('TABLE IS UPDATED');

ELSIF INSERTING THEN

DBMS_OUTPUT.PUT_LINE('TABLE IS INSERTED');

ELSIF DELETING THEN

DBMS_OUTPUT.PUT_LINE('TABLE IS DELETED');

END IF;

END;

Trigger created.
SQL> INSERT INTO EMP VALUES (4,'SANKAR',700,98,564); TABLE IS INSERTED

1 row created.

SQL> UPDATE EMP SET EMPID = 5 WHERE EMPNAME = 'SANKAR'; TABLE IS UPDATED

1 row updated.

SQL> DELETE EMP WHERE EMPNAME='SANKAR'; TABLE IS DELETED

1 row deleted.

1. Create a Trigger to check the age valid or not Using Message Alert

SQL> CREATE TABLE TRIG(NAME CHAR(10),AGE NUMBER(3));

SQL> DESC TRIG;

Table created.

Name Null? Type


NAME CHAR(10)

AGE NUMBER(3)

PROGRAM:

SQL> SET SERVEROUTPUT ON;

SQL> CREATE TRIGGER TRIGNEW

AFTER INSERT OR UPDATE OF AGE ON TRIG

FOR EACH ROW

BEGIN

IF(:NEW.AGE<0) THEN

DBMS_OUTPUT.PUT_LINE('INVALID AGE');

ELSE

DBMS_OUTPUT.PUT_LINE('VALID AGE');

END IF;

END;

Trigger created.
SQL> insert into trig values('abc',15);

Valid age

1 row created.

SQL> insert into trig values('xyz',-12); I

nvalid age

1 row created.

NAME AGE

abc 15

xyz -12

2. Create a Trigger to check the age valid and Raise appropriate error code and error message

SQL> create table data(name char(10),age number(3));

Table created.

SQL> desc data;

Name null Type

4. NAME CHAR(10)

AGE NUMBER(3)

SQL> CREATE TRIGGER DATACHECK

AFTER INSERT OR UPDATE OF AGE ON


DATA
FOR EACH ROW

BEGIN

IF(:NEW.AGE<0) THEN

RAISE_APPLICATION_ERROR(-20000,'NO NEGATIVE AGE ALLOWED');

END IF;

END;

/
Trigger created.

SQL> INSERT INTO DATA VALUES('ABC',10); 1 ROW


CREATED.
SQL> INSERT INTO DATA VALUES ('DEF',-15)

* ERROR at line 1:

ORA-20000: No negative age allowed

ORA-06512: at "4039.DATACHECK", line 3

ORA-04088: error during execution of trigger '4039.DATACHECK'

NAME AGE

abc 10

Create a Trigger for EMP table it will update another table SALARY while inserting values.

SQL> CREATE TABLE SRM_EMP2(INAME VARCHAR2(10),

IID NUMBER(5), SALARY NUMBER(10));

Table created.

SQL> CREATE TABLE SRM_SAL2(INAME VARCHAR2(10),

TOTALEMP NUMBER(5), TOTALSAL NUMBER(10));

Table created.

SQL> CREATE OR REPLACE TRIGGER EMPTRIGR22 AFTER INSERT ON SRM_EMP2

FOR EACH ROW

DECLARE

A VARCHAR2(10);

BEGIN

A:=:NEW.INAME;

UPDATE SRM_SAL2 SET

TOTALSAL=TOTALSAL+:NEW.SALARY,TOTALEMP=TOTALEMP+1 WHERE INAME=A;


END;
/

Trigger created.

SQL> INSERT INTO SRM_SAL2 VALUES('VEC',0,0);

1 row created.

SQL> INSERT INTO SRM_SAL2 VALUES('SRM',0,0);

1 row created.

SQL> INSERT INTO SRM_EMP2 VALUES('VEC',100,1000);

1 row created.

SQL> SELECT * FROM SRM_SAL2;

NAME TOTALEMP TOTALSAL

VEC 1 1000
SRM 0 0

SQL> INSERT INTO SRM_EMP2 VALUES('SRM',200,3000);

1 row created.

SQL> SELECT * FROM SRM_SAL2;

NAME TOTALEMP TOTALSAL


VEC 1 1000
SRM 1 3000

SQL> INSERT INTO SRM_EMP2 VALUES('VEC',100,5000);

1 row created.

SQL> SELECT * FROM SRM_SAL2;

NAME TOTALEMP TOTALSAL

VEC 2 6000
SRM 1 3000

SQL> INSERT INTO SRM_EMP2 VALUES('VEC',100,2000);


1 row created.

SQL> SELECT * FROM SRM_SAL2;

NAME TOTALEMP TOTALSAL

VEC 3 8000
SRM 1 3000

SQL> INSERT INTO SRM_EMP2 VALUES('SRM',200,8000);

1 row created.

SQL> SELECT * FROM

SRM_SAL2; NAME TOTALEMP

TOTALSAL

VEC 3 8000
SRM 2 11000
COMMANDS EXECUTION

CREATION OF TABLE

--------------------------------

SQL> CREATE TABLE EMPLOYEE (

EMPLOYEE_NAMEVARCHAR2(10), EMPLOYEE_NONUMBER(8), DEPT_NAME VARCHAR2(10)


DEPT_NO NUMBER (5),DATE_OF_JOIN DATE);

Table created.

TABLE DESCRIPTION

SQL> DESC EMPLOYEE;

NAME NULL? TYPE

EMPLOYEE_NAME VARCHAR2(10)

EMPLOYEE_NO NUMBER(8)

DEPT_NAME VARCHAR2(10)

DEPT_NO NUMBER(5)

DATE_OF_JOIN DATE

SYNTAX FOR CREATION OF VIEW

SQL> CREATE <VIEW> <VIEW NAME> AS SELECT

<COLUMN_NAME_1>, <COLUMN_NAME_2> FROM <TABLE NAME>;

CREATION OF VIEW

SQL> CREATE VIEW EMPVIEW AS SELECT


EMPLOYEE_NAME,EMPLOYEE_NO,DEPT_NAME,DEPT_NO,DATE_OF_JOIN FROM EMPLOYEE;
VIEW CREATED.

DESCRIPTION OF VIEW

SQL> DESC EMPVIEW;

NAME NULL? TYPE

EMPLOYEE_NAME VARCHAR2(10)

EMPLOYEE_NO NUMBER(8)

DEPT_NAME VARCHAR2(10)

DEPT_NO NUMBER(5)

DISPLAY VIEW:

----------------------

SQL> SELECT * FROM EMPVIEW;

EMPLOYEE_N EMPLOYEE_NO DEPT_NAME DEPT_NO


RAVI 124 ECE 89
VIJAY 345 CSE 21

RAJ 98 IT 22
GIRI 100 CSE 67

INSERTION INTO VIEW

INSERT STATEMENT:

SYNTAX:

SQL> INSERT INTO <VIEW_NAME> (COLUMN NAME1,………) VALUES(VALUE1,….);

SQL> INSERT INTO EMPVIEW VALUES ('SRI', 120,'CSE', 67,'16-NOV-1981');

1 ROW CREATED.

SQL> SELECT * FROM EMPVIEW;

EMPLOYEE_N EMPLOYEE_NO DEPT_NAME DEPT_NO

RAVI 124 ECE 89


VIJAY 345 CSE 21

RAJ 98 IT 22

GIRI 100 CSE 67


SRI 120 CSE 67

SQL> SELECT * FROM EMPLOYEE;

EMPLOYEE_N EMPLOYEE_NO DEPT_NAME DEPT_NO DATE_OF_J


RAVI 124 ECE 89 15-JUN-05
VIJAY 345 CSE 21 21-JUN-06

RAJ 98 IT 22 30-SEP-06

GIRI 100 CSE 67 14-NOV-81


SRI 120 CSE 67 16-NOV-81

DELETION OF VIEW:

DELETE STATEMENT: SYNTAX:


SQL> DELETE <VIEW_NMAE>WHERE <COLUMN NMAE> =’VALUE’; SQL> DELETE FROM EMPVIEW
WHERE EMPLOYEE_NAME='SRI';

1 ROW DELETED.

SQL> SELECT * FROM EMPVIEW;

EMPLOYEE_N EMPLOYEE_NO DEPT_NAME DEPT_NO

RAVI 124 ECE 89

VIJAY 345 CSE 21

RAJ 98 IT 22
GIRI 100 CSE 67

UPDATE STATEMENT:

SYNTAX:

AQL>UPDATE <VIEW_NAME> SET< COLUMN NAME> = <COLUMN NAME> +<VIEW> WHERE


<COLUMNNAME>=VALUE;

SQL> UPDATE EMPKAVIVIEW SET EMPLOYEE_NAME='KAVI' WHERE


EMPLOYEE_NAME='RAVI'; 1 ROW UPDATED.

SQL> SELECT * FROM EMPKAVIVIEW;

EMPLOYEE_N EMPLOYEE_NO DEPT_NAME DEPT_NO

RAVI 124 ECE 89

VIJAY 345 CSE 21

RAJ 98 IT 22
GIRI 100 CSE 67

DROP A VIEW:

SYNTAX:

SQL> DROP VIEW <VIEW_NAME>

EXAMPLE

SQL>DROP VIEW EMPVIEW;

VIEW DROPED

CREATE A VIEW WITH SELECTED FIELDS:

SYNTAX
SQL>CREATE [OR REPLACE] VIEW <VIEW NAME>AS SELECT <COLUMN NAME1>…..FROM <TABLE
ANME>;

EXAMPLE-2:

SQL> CREATE OR REPLACE VIEW EMPL_VIEW1 AS SELECT EMPNO, ENAME, SALARY FROM EMPL;

SQL> SELECT * FROM EMPL_VIEW1;

EXAMPLE-3:

SQL> CREATE OR REPLACE VIEW EMPL_VIEW2 AS SELECT * FROM EMPL WHERE DEPTNO=10;

SQL> SELECT * FROM EMPL_VIEW2;

Note:

àReplace is the keyboard to avoid the error “ora_0095:name is already used by an existing abject”.

CHANGING THE COLUMN(S) NAME M THE VIEW DURING AS SELECT STATEMENT:

TYPE-1:

SQL> CREATE OR REPLACE VIEW EMP_TOTSAL(EID,NAME,SAL) AS SELECT EMPNO,ENAME,SALARY


FROM EMPL;

View created.

EMPNO ENAME SALARY


7369 SMITH 1000
7499 MARK 1050

7565 WILL 1500

7678 JOHN 1800

7578 TOM 1500


7548 TURNER 1500

6 rows selected.

View created.

EMPNO ENAME SALARY MGRNO DEPTNO

7578 TOM 1500 7298 10


7548 TURNER 1500 7298 10

View created.

SQL> SELECT * FROM EMP_TOTSAL;


TYPE-2:

SQL> CREATE OR REPLACE VIEW EMP_TOTSAL AS SELECT EMPNO "EID",ENAME "NAME",SALARY


"SAL" FROM EMPL;

SQL> SELECT * FROM EMP_TOTSAL;

EXAMPLE FOR JOIN VIEW: TYPE-3:

SQL> CREATE OR REPLACE VIEW DEPT_EMP AS SELECT A.EMPNO "EID",A.ENAME


"EMPNAME",A.DEPTNO "DNO",B.DNAME "D_NAME",B.LOC "D_LOC" FROM EMPL A,DEPMT B
WHERE A.DEPTNO=B.DEPTNO;

SQL> SELECT * FROM

DEPT_EMP; EID NAME

SAL

7369 SMITH 1000


7499 MARK 1050

7565 WILL 1500

7678 JOHN 1800

7578 TOM 1500


7548 TURNER 1500

6 rows selected.

View created.

EID NAME SAL

7369 SMITH 1000


7499 MARK 1050

7565 WILL 1500

7678 JOHN 1800

7578 TOM 1500


7548 TURNER 1500

6 rows selected

View created.
EID EMPNAME DNO D_NAME D_LOC

7578 TOM 10 ACCOUNT NEW YORK


7548 TURNER 10 ACCOUNT NEW YORK

7369 SMITH 20 SALES CHICAGO

7678 JOHN 20 SALES CHICAGO

7499 MARK 30 RESEARCH ZURICH


7565 WILL 30 RESEARCH ZURICH

VIEW READ ONLY AND CHECK OPTION:

READ ONLY CLAUSE:

You can create a view with read only option which enable other to only query .no dml operation
can be performed to this type of a view.

EXAMPLE-4:

SQL>CREATE OR REPLACE VIEW EMP_NO_DML AS SELECT * FROM EMPL WITH READ ONLY;

WITH CHECK OPTION CLAUSE

EXAMPLE-4:

SQL> CREATE OR REPLACE VIEW EMP_CK_OPTION AS SELECT EMPNO,ENAME,SALARY,DEPTNO


FROM EMPL WHERE DEPTNO=10 WITH CHECK OPTION;

SQL> SELECT * FROM EMP_CK_OPTION;

JOIN VIEW:

EXAMPLE-5:

SQL> CREATE OR REPLACE VIEW DEPT_EMP_VIEW AS SELECT A.EMPNO, A.ENAME, A.DEPTNO,


B.DNAME, B.LOC FROM EMPL

A,DEPMT B WHERE A.DEPTNO=B.DEPTNO;

SQL> SELECT * FROM DEPT_EMP_VIEW;

View created.

EMPNO ENAME SALARY DEPTNO


7578 TOM 1500 10
7548 TURNER 1500 10

View created.

EMPNO ENAME DEPTNO DNAME LOC


7578 TOM 10 ACCOUNT NEW YORK
7548 TURNER 10 ACCOUNT NEW YORK

7369 SMITH 20 SALES CHICAGO

7678 JOHN 20 SALES CHICAGO

7499 MARK 30 RESEARCH ZURICH

7565 WILL 30 RESEARCH ZURICH


6 rows selected.

FORCE VIEW

EXAMPLE-6:

SQL> CREATE OR REPLACE FORCE VIEW MYVIEW AS SELECT * FROM XYZ;

SQL> SELECT * FROM MYVIEW;

SQL> CREATE TABLE XYZ AS SELECT EMPNO,ENAME,SALARY,DEPTNO FROM EMPL;

SQL> SELECT * FROM XYZ;

SQL> CREATE OR REPLACE FORCE VIEW MYVIEW AS SELECT * FROM XYZ; SQL> SELECT * FROM
MYVIEW;

Warning: View created with compilation

errors. SELECT * FROM MYVIEW

* ERROR at line 1:

ORA-04063: view "4039.MYVIEW" has

errors Table created.

EMPNO ENAME SALARY DEPTNO

7369 SMITH 1000 20


7499 MARK 1050 30

7565 WILL 1500 30

7678 JOHN 1800 20

7578 TOM 1500 10


7548 TURNER 1500 10

6 rows selected.

View created.
EMPNO ENAME SALARY DEPTNO

7369 SMITH 1000 20


7499 MARK 1050 30

7565 WILL 1500 30

7678 JOHN 1800 20

7578 TOM 1500 10


7548 TURNER 1500 10

6 rows selected

COMPILING A VIEW

SYNTAX:

ALTER VIEW <VIEW_NAME> COMPILE;

EXAMPLE:

SQL> ALTER VIEW MYVIEW COMPILE;

You might also like