0% found this document useful (0 votes)
10 views

DBMS LAB

The document is a lab manual for a Database Management System course at P.S.V College of Engineering and Technology, outlining the vision and mission of the Information Technology department. It includes a detailed index of experiments related to SQL commands, database table creation, constraints, and various operations like querying and modifying tables. The manual serves as a guide for students to learn practical skills in database management through structured experiments.

Uploaded by

Divya
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)
10 views

DBMS LAB

The document is a lab manual for a Database Management System course at P.S.V College of Engineering and Technology, outlining the vision and mission of the Information Technology department. It includes a detailed index of experiments related to SQL commands, database table creation, constraints, and various operations like querying and modifying tables. The manual serves as a guide for students to learn practical skills in database management through structured experiments.

Uploaded by

Divya
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/ 61

P.S.

V COLLEGE OF ENGINEERIN AND TECHNOLOGY


KRISHNAGIRI-635108

DEPARTMENT OF INFORMATION TECHNOLOGY

LAB MANUAL

DATABASE MANAGEMENT SYSTEM- LABORATORY

SUBJECT CODE : CS3481

YEAR\SEM : II\IV

REGULATION : 2021

1
Vision:

To facilitate technical education with high quality and ethics

for developing professionals to fit into the competitive

atmosphere in the global market.

Mission:

M1: To provide a learning ambience to enhance innovations,

problem solving skills managerial qualities, team-spirit and

ethical responsibilities.

M2: To provide exposure to latest tools and technologies in the

area of Information Technology M3: To support society by

participating in and encouraging technology transfer

M4: To undertake collaborative learning which offers opportunities

for long term interaction with academia and industry

2
INDEX

EX.NO NAME OF THE EXPRIMENTS


REMARKS

CREATE A DATABASE TABLE, ADD CONSTRAINTS (PRIMARY KEY,


1 UNIQUE, CHECK, NOT NULL), INSERT ROWS,UPDATE AND DELETE
ROWS USING SQL DDL AND DML COMMANDS.

CREATE A SET OF TABLES, ADD FOREIGN KEY CONSTRAINTS AND


2 INCORPORATE REFERENTIAL INTEGRITY.

3 QUERY THE DATABASE TABLES USING DIFFERENT ‘WHERE’ CLAUSE


CONDITIONS AND ALSO IMPLEMENT AGGREGATE FUNCTIONS

4 QUERY THE DATABASE TABLES AND EXPLORE SUB QUERIES

5 QUERY THE DATABASE TABLES AND EXPLORE NATURAL EQUI AND


OUTER JOIN

6 WRITE USER DEFINED FUNCTIONS AND STORED PROCEDURES IN SQL.

7 EXECUTE COMPLEX TRANSACTIONS AND REALIZE DCL AND


TCL COMMANDS.

WRITE SQL TRIGGERS FOR INSERT, DELETE, AND UPDATE


8 OPERATIONS IN A DATABASE TABLE

9 CREATE VIEW AND INDEX FOR DATABASE TABLES WITH A


LARGE NUMBER OF RECORDS.

3
EX.NO : 1 CREATE A DATABASE TABLE, ADD CONSTRAINTS (PRIMARY
KEY, UNIQUE, CHECK, NOT NULL), INSERT ROWS,UPDATE
AND DELETE ROWS USING SQL DDL AND DML COMMANDS.

AIM:

To create a database and write SQL queries to retrieve information from the database.

ALOGRITHM:

STEP 1: Start

STEP 2: Create the table with its essential attributes.

STEP 3: Execute different Commands and extract information from the table.

STEP 4: Stop

QUERY: 01

Q1. Query to create a table employee with empno, ename, designation, and salary.

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 EMP (EMPNO NUMBER (4),ENAME VARCHAR2 (10),DESIGNATIN


VARCHAR2 (10),SALARY NUMBER (8));

Table created.

QUERY: 02

Q2. Query to display the column name and data type of the table employee.

4
Syntax for describe the table:

SQL: DESC <TABLE NAME>;

SQL> DESC EMP;

Name Null? Type


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

QUERY: 03

Q3. Query for create a from an existing table with all the fields

Syntax For Create A from An Existing Table With All Fields

SQL> CREATE TABLE <TRAGET TABLE NAME> SELECT * FROM <SOURCE TABLE
NAME>;

QUERY:

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. Query for create a from an existing table with selected fields

Syntax For Create A from An Existing Table With Selected Fields

5
SQL> CREATE TABLE <TRAGET TABLE NAME> SELECT EMPNO, ENAME FROM
<SOURCE TABLE NAME>;

QUERY:

SQL> CREATE TABLE EMP2 AS SELECT EMPNO, ENAME FROM EMP;

Table created.

SQL> DESC EMP2

Name Null? Type


----------------------------------------- -------- ----------------------
EMPNO NUMBER (4)
ENAME VARCHAR2 (10)

ALTER & MODIFICATION ON TABLE

QUERY: 01

Q1. 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:

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

Table altered.

SQL> DESC EMP;

Name Null? Type


----------------------------------------- -------- ----------------------------
EMPNO NUMBER(6)
ENAME VARCHAR2(10)

6
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)

QUERY: 02

Q2. Query to Alter 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:

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: 03

Q3. 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:

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

Table altered.

7
SQL> DESC EMP;

Name Null? Type


----------------------------------------- -------- ----------------------------
EMPNO NUMBER(7)
ENAME VARCHAR2(12)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
QUALIFICATION VARCHAR2(6)

QUERY: 4

Q4. Query to add multiple 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:

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

REMOVE / DROP

8
QUERY: 5

Q5. 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:

SQL> ALTER TABLE EMP DROP COLUMN DOJ;

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
QUERY: 6

Q6. Query to drop multiple columns from employee

Syntax for add a new column:

SQL> ALTER TABLE <TABLE NAME> DROP <COLUMN NAME1>,<COLUMN NAME2>,


…………………………….. ;

QUERY:

SQL> ALTER TABLE EMP DROP (DOB, QUALIFICATION);

Table altered.

SQL> DESC EMP;

Name Null? Type


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

REMOVE

QUERY: 7

Q7. Query to rename table emp to employee

Syntax for add a new column:

SQL> ALTER TABLE RENAME <OLD NAME> TO <NEW NAME>

QUERY:

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)

TYPES OF CONSTRAINTS:

 Primary key
 Foreign key/references
 Check
 Unique
 Not null
 Null
 Default

CONSTRAINTS CAN BE CREATED IN THREE WAYS:


10
 Column level constraints

 Table level constraints

 Using DDL statements-alter table command

OPERATION ON CONSTRAINT:

 ENABLE

 DISABLE

 DROP

Column level constraints Using Primary key

Q1. 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:1

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. 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:2

11
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));

Table Level Primary Key Constraints

Q3. Query to create primary constraints with table level with naming convention

Syntax for Table level constraints Using Primary key:

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


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

QUERY: 3

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):

Q4. 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: 4

SQL>CREATE TABLE EMPLOYEE (EMPNO NUMBER(5), ENAME VARCHAR2(6),JOB


VARCHAR2(6),SAL NUMBER(6), DEPTNO NUMBER(6));

12
SQL>ALTER TABLE EMP3 ADD CONSTRAINT EMP3_EMPNO_PK PRIMARY KEY
(EMPNO);

CHECK CONSTRAINT

Column Level Check Constraint

Q.10. 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:10

SQL>CREATE TABLE EMP7(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.11. 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:11

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 Alter Command

13
Q.12. 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:12

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.13. 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:13

SQL>CREATE TABLE EMP10(EMPNO NUMBER(3), ENAME VARCHAR2(20), DESGIN


VARCHAR2(15)CONSTRAINT EMP10_DESIGN_UK UNIQUE, SAL NUMBER(5));

Table Level Constraint

Q.14. Query to create unique constraints with table level

14
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:14

SQL>CREATE TABLE EMP11(EMPNO NUMBER(3),ENAME ARCHAR2(20), DESIGN


VARCHAR2(15), SAL NUMBER(5),CONSTRAINT EMP11_DESIGN_UK UNIGUE(DESIGN));

Table Level Constraint Alter Command

Q.15. Query to create unique constraints with table level

Syntax for Table level constraints with Check Using Alter

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


(COLUMN NAME2 <DATATYPE> (SIZE)) ;

SQL> ALTER TABLE ADD <CONSTRAINTS> <CONSTRAINTS NAME> <CONSTRAINTS


TYPE>(COLUMN NAME);

QUERY:15

SQL>CREATE TABLE EMP12 (EMPNO NUMBER(3),ENAMEVARCHAR2(20), DESIGN


VARCHAR2(15), SAL NUMBER(5));

SQL>ALTER TABLE EMP12 ADD CONSTRAINT EMP12_DESIGN_UK UNIQUE(DESING);

NOT NULL

Column Level Constraint

Q.16. Query to create Not Null constraints with column level

Syntax for Column level constraints with Not Null:

15
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 NOT NULL,DESIGN VARCHAR2(20),SAL NUMBER(3));

NULL

Column Level Constraint

Q.17. 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:17

SQL>CREATE TABLE EMP13(EMPNO NUMBER(4),ENAME VARCHAR2(20) CONSTRAINT


EMP13_ENAME_NN NULL, DESIGN VARCHAR2(20),SAL NUMBER(3));

16
EX.NO : 2
CREATE A SET OF TABLES, ADD FOREIGN KEY CONSTRAINTS
AND INCORPORATE REFERENTIAL INTEGRITY.

AIM:

To create a database and write SQL queries to retrieve information from the database.

ALOGRITHM:

STEP 1: Start

STEP 2: Create the table with its essential attributes.

STEP 3: Execute different Commands and extract information from the table.

STEP 4: Stop

REFERENCE /FOREIGN KEY CONSTRAINT

Column level foreign key constraint:

Q.5 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:

17
SQL>CREATE <OBJ.TYPE> <OBJ.NAME> (COLUMN NAME.1 <DATATYPE> (SIZE),
COLUMN NAME2 <DATATYPE> (SIZE) REFERENCES <TABLE NAME> (COLUMN NAME>
……………………………);

QUERY: 5

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.6. 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:6

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));

18
Table Level Foreign Key Constraints

Q.7. 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), CONSTRAINT <CONST. NAME> REFERENCES
<TABLE NAME> (COLUMN NAME> );

QUERY: 7

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)CONSTRAINT ENP2_DEPTNO_FK FOREIGN KEY(DEPT
NO)REFERENCESDEPT(DEPTNO));

Table Level Foreign Key Constraints with Alter command

Q.8. 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:

19
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:9

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));

SQL>ALTER TABLE EMP6 ADD CONSTRAINT EMP6_DEPTNO_FK FOREIGN KEY(DEPTNO)


REFERENCES DEPT(DEPTNO);

20
EX.NO : 3 .QUERY THE DATABASE TABLES USING DIFFERENT ‘WHERE’
CLAUSE CONDITIONS AND ALSO IMPLEMENT AGGREGATE
FUNCTIONS

AIM:

To create a database tables using different ‘where’ clause conditions and also implement
aggregate functions.

ALOGRITHM:

STEP 1: Start

STEP 2: Create the table with its essential attributes.

STEP 3: Execute different Commands and extract information from the table.

STEP 4: Stop

Where Clause Conditon


SQL>create table book(isbn number(10),title varchar(15),pubyear number(10),unitprice number(6),

Authorname varchar(10),pubname varchar(10));

SQL>select title from book where pubyear=’2004’;

SQL> select title from book where unitprice between 300 and 400;

Aggregate functions

Average : avg

Minimum: min

Maximum: max

Total:sum

Count:count

SQL>select avg(unitprice) “avergage price” from book;


21
avergage price

359.8

SQL>select min(unitprice) “minimum”from book;

Minimum

250

SQL>select max(unitprice) “maximum”from book;

Maximum

450
SQL>select sum(unitprice) “total”from book;

Total

450

SQL>select count(title) “no of books” f rom book;

no of books

22
EX.NO : 4
. QUERY THE DATABASE TABLES AND EXPLORE SUB QUERIES

AIM:

To create a database tables and explore sub queries.

ALOGRITHM:

STEP 1: Start

STEP 2: Create the table with its essential attributes.

STEP 3: Execute different Commands and extract information from the table.

STEP 4: Stop

SQL uses in and not in contructs for set membership tests.

SQL>SELECT TITLE,AUTHORNAME,PUBLISHERNAME,PUBYEAR FROM BOOK WHERE


PUBYEAR IN (‘2000’,’2002’,’2004’);

SQL>SELECT TITLE,AUTHORNAME,PUBLISHERNAME,PUBYEAR FROM BOOK WHERE


PUBYEAR IN (‘2002’,’2004’,’2005’);

SQL>SELECT TITLE FROM BOOK WHERE AUTHORNAME NOT IN (SELECT


AUTHORNAME FROM AUTHOR WHERE COUNTRY=’INDIA’);

23
EX.NO : 5
. QUERY THE DATABASE TABLES AND EXPLORE NATURAL
EQUI AND OUTER JOIN

AIM:

To create a database tables and explore natural equi and outerjoin

ALOGRITHM:

STEP 1: Start

STEP 2: Create the table with its essential attributes.

STEP 3: Execute different Commands and extract information from the table.

STEP 4: Stop

JOIN

INNER JOIN

OUTER JOIN

NATURAL JOIN

INNER JOIN

i)Employee (Empname,city)

ii) Employeesalary (Empname,Department,Salary)

SQL>SELECT EMPLOYEE.EMPNAME,EMPLOYEEASALARY.SALARY FROM EMPLOYEE


INNER JOIN EMPLOYEE SALARY ON EMPLOYEE.EMPNAME = EMPLOYEEASALARY.
EMPNAME;

24
SQL> SELECT * FROM EMPLOYEE INNER JOIN EMPLOYEESALARY ON
EMPLOYEE.EMPNAME = EMPLOYEEASALARY. EMPNAME;

OUTER JOIN

SQL> SELECT EMPLOYEE.EMPNAME, SALARY FROM EMPLOYEE LEFT OUTER JOIN


EMPLOYEESALARY ON EMPLOYEE.EMPNAME = EMPLOYEEASALARY. EMPNAME;

SQL> SELECT EMPLOYEE.EMPNAME, CITY,SALARY FROM EMPLOYEE RIGHT OUTER


JOIN EMPLOYEESALARY ON EMPLOYEE.EMPNAME = EMPLOYEEASALARY.
EMPNAME;

25
EX.NO : 6
. WRITE USER DEFINED FUNCTIONS AND STORED PROCEDURES IN SQL.

AIM:

To study of PL/SQL block.

PL/SQL:

PL/SQL stands for Procedural Language extension of SQL.PL/SQL is a combination of


SQL along with the procedural features of programming languages. It was developed by Oracle
Corporation in the early 90’s to enhance the capabilities of SQL.

THE PL/SQL ENGINE:

Oracle uses a PL/SQL engine to processes the PL/SQL statements. A PL/SQL code can be
stored in the client system (client-side) or in the database (server-side).

ADVANTAGES OF PL/SQL:

These are the Advantages of PL/SQL

 Block Structures: PL SQL consists of blocks of code, which can be nested within each
other. Each block forms a unit of a task or a logical module. PL/SQL Blocks can be stored in
the database and reused.

 Procedural Language Capability: PL SQL consists of procedural language constructs such


as conditional statements (if else statements) and loops like (FOR loops).

 Better Performance: PL SQL engine processes multiple SQL statements simultaneously as


a single block, thereby reducing network traffic.

26
PL/SQL PLACEHOLDERS:

Placeholders are temporary storage area. Placeholders can be any of Variables, Constants
and Records. Oracle defines placeholders to store data temporarily, which are used to manipulate
data during the execution of a PL SQL block.

Depending on the kind of data you want to store, you can define placeholders with a name and a
datatype. Few of the datatypes used to define placeholders are as given below.
Number (n,m) , Char (n) , Varchar2 (n) , Date , Long , Long raw, Raw, Blob, Clob, Nclob, Bfile.

PL/SQL VARIABLES:

These are placeholders that store the values that can change through the PL/SQL Block.

CONDITIONAL STATEMENTS IN PL/SQL

As the name implies, PL/SQL supports programming language features like conditional
statements, iterative statements.

The programming constructs are similar to how you use in programming languages like Java
and C++.

ITERATIVE STATEMENTS IN PL/SQL

Iterative control Statements are used when we want to repeat the execution of one or more
statements for specified number of times.

There are three types of loops in PL/SQL:


• Simple Loop
• While Loop
• For Loop

What are Cursors?

A cursor is a temporary work area created in the system memory when a SQL statement is
executed. A cursor contains information on a select statement and the rows of data accessed by it.

27
This temporary work area is used to store the data retrieved from the database, and
manipulate this data. A cursor can hold more than one row, but can process only one row at a time.
The set of rows the cursor holds is called the active set.

There are two types of cursors in PL/SQL:


 Explicit Cursors
 Implicit Cursors

STORED PROCEDURES

What is a Stored Procedure?

A stored procedure or in simple a proc is a named PL/SQL block which performs one or
more specific task. This is similar to a procedure in other programming languages.

A procedure has a header and a body. The header consists of the name of the procedure and
the parameters or variables passed to the procedure. The body consists or declaration section,
execution section and exception section similar to a general PL/SQL Block.

A procedure is similar to an anonymous PL/SQL Block but it is named for repeated usage.

We can pass parameters to procedures in three ways.

1) IN-parameters
2) OUT-parameters
3) IN OUT-parameters

A procedure may or may not return any value.

28
PL/SQL FUNCTIONS

What is a Function in PL/SQL?

A function is a named PL/SQL Block which is similar to a procedure. The major difference
between a procedure and a function is, a function must always return a value, but a procedure may
or may not return a value.

General Syntax to create a function is

CREATE [OR REPLACE] FUNCTION function_name [parameters]

RETURN return_datatype;

IS

Declaration_section

BEGIN

Execution_section

Return return_variable;

EXCEPTION

exception section

Return return_variable;

END;

1) Return Type: The header section defines the return type of the function. The return datatype can
be any of the oracle datatype like varchar, number etc.

2) The execution and exception section both should return a value which is of the datatype defined
in the header section.

PARAMETERS IN PROCEDURE AND FUNCTIONS

How to pass parameters to Procedures and Functions in PL/SQL?

In PL/SQL, we can pass parameters to procedures and functions in three ways.


29
1) IN type parameter: These types of parameters are used to send values to stored procedures.
2) OUT type parameter: These types of parameters are used to get values from stored procedures.
This is similar to a return type in functions.
3) IN OUT parameter: These types of parameters are used to send values and get values from
stored procedures.

EXCEPTION HANDLING

In this section we will discuss about the following,

1) What is Exception Handling.


2) Structure of Exception Handling.
3) Types of Exception Handling.

1) What is Exception Handling?

PL/SQL provides a feature to handle the Exceptions which occur in a PL/SQL Block known as
exception Handling. Using Exception Handling we can test the code and avoid it from exiting
abruptly.

When an exception occurs a messages which explains its cause is recieved.


PL/SQL Exception message consists of three parts.

1) Type of Exception

2) An Error Code

3) A message

What is a Trigger?

A trigger is a pl/sql block structure which is fired when a DML statements like Insert, Delete,
Update is executed on a database table. A trigger is triggered automatically when an associated DML
statement is executed.

Syntax of Triggers

Syntax for Creating a Trigger

CREATE [OR REPLACE ] TRIGGER trigger_name

{BEFORE | AFTER | INSTEAD OF }

30
{INSERT [OR] | UPDATE [OR] | DELETE}

[OF col_name]

ON table_name

[REFERENCING OLD AS o NEW AS n]

[FOR EACH ROW]

WHEN (condition)

BEGIN

--- sql statements

END;

PL/ SQL GENERAL SYNTAX FOR IF CONDITION:

SQL> DECLARE

<VARIABLE DECLARATION>;

BEGIN

IF(CONDITION)THEN

<EXECUTABLE STATEMENT >;

END;

Program for If Statement:

DECLARE

b number;

c number;

BEGIN

B:=10;

C:=20;

if(C>B) THEN

dbms_output.put_line('C is maximum');
31
end if;

end;

OUTPUT:

C is maximum

PL/ SQL GENERAL SYNTAX FOR IF AND ELSECONDITION:

SQL> DECLARE

<VARIABLE DECLARATION>;

BEGIN

IF (TEST CONDITION) THEN

<STATEMENTS>;

ELSE

<STATEMENTS>;

ENDIF;

END;

******************Less then or Greater Using IF ELSE ****************

SQL> declare

n number;

begin

dbms_output. put_line('enter a number');

n:=&number;

if n<5 then

dbms_output.put_line('entered number is less than 5');

else

dbms_output.put_line('entered number is greater than 5');

end if;

32
end;

Input

Enter value for number: 2

old 5: n:=&number;

new 5: n:=2;

Output:

entered number is less than 5

PL/SQL ALOGRITHM successfully completed.

PL/ SQL GENERAL SYNTAX FOR NESTED IF:

SQL> DECLARE

<VARIABLE DECLARATION>;

BEGIN

IF (TEST CONDITION) THEN

<STATEMENTS>;

ELSEIF (TEST CONDITION) THEN

<STATEMENTS>;

ELSE

<STATEMENTS>;

ENDIF;

END;

********** GREATEST OF THREE NUMBERS USING IF ***********

SQL> declare

a number;

b number;
33
c number;

d number;

begin

a:=&a;

b:=&b;

c:=&b;

if(a>b)and(a>c) then

dbms_output.put_line('A is maximum');

elsif(b>a)and(b>c)then

dbms_output.put_line('B is maximum');

else

dbms_output.put_line('C is maximum');

end if;

end;

INPUT:

Enter value for a: 21

old 7: a:=&a;

new 7: a:=21;

Enter value for b: 12

old 8: b:=&b;

new 8: b:=12;

Enter value for b: 45

old 9: c:=&b;

new 9: c:=45;

OUTPUT:
34
C is maximum

PL/SQL ALOGRITHM successfully completed.

SETTING SERVEROUTPUT ON:

SQL> SET SERVEROUTPUT ON

I) PROGRAM:

ALOGRITHM USING POSITIONAL PARAMETERS:

SQL> SET SERVEROUTPUT ON

SQL> CREATE OR REPLACE PROCEDURE PROC1 AS

2 BEGIN

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

4 END;

5 /

OUTPUT:

ALOGRITHM 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;

35
5 END;

6 /

OUTPUT:

PROCEDURE created.

SQL> VARIABLE T NUMBER

SQL> EXEC PROC2(33,66,:T)

PL/SQL PROCEDURE successfully completed.

SQL> PRINT T

----------

99

IMPLEMENTATION OF FACTORIAL USING FUNCTION

I) PROGRAM:

SQL>create function fnfact(n number)

return number is

b number;

begin

b:=1;

for i in 1..n

loop

b:=b*i;

end loop;

return b;

end;

36
/SQL>Declare

n number:=&n;

y number;

begin

y:=fnfact(n);

dbms_output.put_line(y);

end;

Function created.

Enter value for n: 5

old 2: n number:=&n;

new 2: n number:=5;

120

PL/SQL ALOGRITHM 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;

37
PHONE_NO USERNAME DOORNO STREET PLACE PINCODE
------------------------------- ------------- ---------------- --------------------
20312 vijay 120/5D 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 ALOGRITHM successfully completed.

38
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 ALOGRITHM successfully completed.

EX.NO : 7 EXECUTE COMPLEX TRANSACTIONS AND REALIZE DCL

39
AND TCL COMMANDS.

AIM:

To satisfy some conditions by accepting the input from the user

ALOGRITHM

STEP 1: Start

STEP 2: Initialize the necessary variables.

STEP 3: invoke the if condition.

STEP 4: Execute the statements.

STEP 5: Stop

DATA CONTROL STATEMENT(DCL)

1.GRANT-Used to allow specified users to perform specified tasks

GRANT SELECT,UPDATE ON employee TO user1,user2

GRANT ALL PRIVILEGES ON employee TO user1,user2

2.REVOKE-Used to cancel previously granted or denied permission

REVOKE ALL ON TABLE employee FROM user1

REVOKE UPDATE,INSERT ON TABLE employee FROM user1

TRANSACTION CONTROL LANGUAGE

40
1.COMMIT command

The commit command saves all transaction to all database since the last COMMIT or ROLLBACK
command

SQL>delete from emp where empage>60;

SQL>commit work;

2.ROLLBACK

The transaction control command used to undo transactions that have not already been saved to the
database.

SQL>rollback work;

41
EX.NO : 8 WRITE SQL TRIGGERS FOR INSERT, DELETE, AND UPDATE
OPERATIONS IN A DATABASE TABLE

AIM:

To develop and execute a Trigger for Before and After update, Delete, Insert operations on a table.

ALOGRITHM:

STEP 1: Start

STEP 2: Initialize the trigger with specific table id.

STEP 3:Specify the operations (update, delete, insert) for which the trigger has to be executed.

STEP 4: Execute the Trigger ALOGRITHM for both Before and After sequences

STEP 5: Carryout the operation on the table to check for Trigger execution.

STEP 6: Stop

EXECUTION

1. 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;
42
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.

43
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.

44
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);
Invalid age
1 row created.
NAME AGE
---------- ----------
abc 15
xyz -12
45
2. 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
----------------------------------------- -------- ------------------------
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

46
3. 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;
INAME TOTALEMP TOTALSAL
---------- ---------- ---------
VEC 1 1000
SRM 0 0

47
SQL> INSERT INTO SRM_EMP2 VALUES('SRM',200,3000);
1 row created.

SQL> SELECT * FROM SRM_SAL2;


INAME 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;
INAME 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;


INAME 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;
INAME TOTALEMP TOTALSAL
---------- ---------- ----------
VEC 3 8000
SRM 2 11000

RESULT:

48
EX.NO :9
CREATE VIEW AND INDEX FOR DATABASE TABLES WITH A LARGE
NUMBER OF RECORDS.

AIM:

To create views, synonyms, sequence, indexes and Save point.

OBJECTIVE:

 Views Helps to encapsulate complex query and make it reusable.

 Provides user security on each view - it depends on your data policy security.

 Using view to convert units - if you have a financial data in US currency, you can create
view to convert them into Euro for viewing in Euro currency.

ALOGRITHM

STEP 1: Start

STEP 2: Create the table with its essential attributes.

STEP 3: Insert attribute values into the table.

STEP 4: Create the view from the above created table.

STEP 5: Execute different Commands and extract information from the View.

STEP 6: Stop

49
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;

50
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_NAME EMPLOYEE_NO DEPT_NAME DEPT_NO


---------- ----------- ---------- ----------
KARTHIK 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_NAME 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_NAME EMPLOYEE_NO DEPT_NAME DEPT_NO DATE_OF_J


---------- ----------- ---------- ---------- ---------
51
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;

52
EMPLOYEE_N EMPLOYEE_NO DEPT_NAME DEPT_NO
---------- ----------- ---------- ----------
KAVI 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

53
CREATE A VIEW WITH SELECTED FIELDS:

SYNTAX:

SQL>CREATE [OR REPLACE] VIEW <VIEW NAME>AS SELECT <COLUMN


NAME1>…..FROM <TABLE ANME>;

CHANGING THE COLUMN(S) NAME OF 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:

54
SQL> CREATE OR REPLACE VIEW EMP_TOTSAL AS SELECT EMPNO "EID",ENAME
"NAME",SALARY "SAL" FROM EMPL;

SQL> SELECT * FROM EMP_TOTSAL;

TYPE-3:

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


"EMPNAME",A.DEPTNO "DNO",B.DNAM

E "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
55
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

JOIN VIEW:

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

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;


56
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

SYNONYM

SYNTAX:

CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema .] synonym_name

57
FOR [schema .] object_name [@ dblink];

CREATE:

1. CREATE PUBLIC SYNONYM suppliers FOR app.suppliers;

2. SELECT * FROM suppliers;

3. CREATE OR REPLACE PUBLIC SYNONYM suppliers FOR app.suppliers;

DROP:
1. DROP [PUBLIC] SYNONYM [schema .] synonym_name [force];
2. DROP PUBLIC SYNONYM suppliers;

SEQUENCE

SYNTAX

CREATE SEQUENCE [schema_name . ] sequence_name

[ AS [ built_in_integer_type | user-defined_integer_type ] ]

[ START WITH <constant> ]

[ INCREMENT BY <constant> ]

[ { MINVALUE [ <constant> ] } | { NO MINVALUE } ]

[ { MAXVALUE [ <constant> ] } | { NO MAXVALUE } ]

[ CYCLE | { NO CYCLE } ]

[ { CACHE [ <constant> ] } | { NO CACHE } ]

[;]

-- CREATE SCHEMA Test ;

GO

58
A. Creating a sequence that increases by 1

CREATE SEQUENCE Test.CountBy1

START WITH 1

INCREMENT BY 1 ;

GO

B. Creating a sequence that decreases by 1

CREATE SEQUENCE Test.CountByNeg1

START WITH 0

INCREMENT BY -1 ;

GO

C. Creating a sequence that increases by 5

CREATE SEQUENCE Test.CountBy1

START WITH 5

INCREMENT BY 5 ;

GO

D. Creating a sequence that starts with a designated number

CREATE SEQUENCE Test.ID_Seq

START WITH 24329

INCREMENT BY 1 ;

GO
59
E. Creating a sequence using default values

CREATE SEQUENCE Test.TestSequence ;

F. Creating a sequence with a specific data type

CREATE SEQUENCE SmallSeq

AS smallint ;

G. Creating a sequence using all arguments

CREATE SEQUENCE Test.DecSeq

AS decimal(3,0)

START WITH 125

INCREMENT BY 25

MINVALUE 100

MAXVALUE 200

CYCLE

CACHE 3

INDEX

SYNTAX:

CREATE INDEX index_name ON table_name (column_name)

SQL CREATE UNIQUE INDEX SYNTAX:

CREATE UNIQUE INDEX index_name ON table_name (column_name)

EXAMPLE:

60
CREATE INDEX PIndex
ON Persons (LastName)

CREATE INDEX PIndex


ON Persons (LastName, FirstName)

DROP INDEX

DROP INDEX index_name ON table_name

61

You might also like