Sunday, December 25, 2011

REVISED ACADEMIC CALENDER FOR MBA I,II SEM 2011-12

I Unit of Instructions

13.02.2012

14.04.2012 (9W)

05.03.12 to 28.04.12 (8w)

I Mid Examinations

16.04.2012

21.04.2012 (1W)

30.04.12 to 05.05.12 (1w)

II Unit of Instructions

23.04.2012

05.05.2012 (2W)

Summer Vacation

06.05.2012

10.06.2012 (5W)

06.05.12 to 03.06.12 (4w)

II Unit of Instructions Continued

11.06.2012

21.07.2012 (6W)

04.06.12 to 28.07.12 (8w)

II Mid Examinations

23.07.2012

28.07.2012 (1W)

30.07.12 to 04.08.12 (1w)

Preparation and Practical Examinations

30.07.2012

04.08.2012 (1W)

06.08.12 to 11.08.12 (1w)

End Semester Examinations

06.08.2012

18.08.2012 (2W)

13.08.12 to 25.08.12 (2w)

Commencement of Class Work for III Semester

20.08.2012

---

27.08.12

REVISED ACADEMIC CALENDER FOR MBA I,II SEM 2011-12

Original Schedule

Revised schedule

Orientation Programme

08.09.2011

09.09.2011 (2days)

I Unit of Instructions

12.09.2011

05.11.2011 (8W)

12.09.11 to 17.09.11 (1W)

17.10.11 to 03.12.11 (7W)

I Mid Examinations

07.11.2011

12.11.2011 (1W)

05.12.11 to 10.12.11 (1W)

II Unit of Instructions

14.11.2011

07.01.2012 (8W)

12.12.11 to 04.02.12 (8W)

II Mid Examinations

09.01.2012

17.01.2012 (1W)

06.02.12 to 11.02.12 (1W)

Preparation and Practical Examinations

18.01.2012

28.01.2012 (2W)

13.02.12 to 18.02.12 (1W)

End Semester Examinations

30.01.2012

11.02.2012 (2W)

20.02.12 to 03.03.12 (2W)

Commencement of Class Work for II Semester

13.02.2012

----

05.03.12

Get JNTU-HYDERABAD Updates to your mobile directly at free of cost

Subscribe through your mobile by sending an sms from your mobile as

ON JNTU-HYD to 9870807070

Your Registration is over by doing this.U will get sms about the jntu updates here after to your mobile directly.

MBA I SEM LAST DATE FOR REGISTRATION OF UNIVERSITY EXAMS IS 02-0FEB-20121-2011

LAST DATE FOR REGISTRATION WITHOUT FINE IS 02-01-2011
LAST DATE FOR REGISTRATION WITH FINE 100/- IS 05-01-2011
LAST DATE FOR REGISTRATION WITH FINE 1000/- IS 09-01-2011
REGISTRATION IS DONE IN COLLEGE EXAMINATION BRANCH PLEASE CONTACT IMMEDIATELY

Friday, December 23, 2011

JNTUH MBA I SEM RM&ST QP-FEB -2010

CODE NO: R7-21003/MBA
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY HYDERABAD
MBA-I Semester Regular Examinations February -2010
RESEARCH METHODOLOGY AND STATISTICAL TOOLS
Time:3hours Max.Marks:60
Answer any Five questions
All questions carry equal marks
- - -
1. Advice each of the following persons on specific research study that he or she might find useful. Classify each proposed study as reporting, descriptive, explanatory or predictive.
(i) Manger of a restaurant
(ii) Plant manager of a shoe factory
(iii) Human Resource manager at university
(iv) Office manager for a pediatrician
(v) Head of an academic department committee.
2.a) Explain the role of SPSS in the data presentation and tabulation.
b) Explain the following.
(i) Questionnaire (ii) Stratified sampling (iii) Gauss method.
3.a) Discuss the relative merits and problems with:
(i) Rating and ranking scales
(ii) Likert and differential scale.
b) Distinguish between the following.
(i) Descriptive and cansval studies.
(ii) Experimental and ex-post factor research designs.
4 Research reports often contain statistical materials of great importance that are presented poorly. Find examples of research reports, annual reports, or government reports that illustrate this point and devise ways to improve their presentation.
5. The cross classification of marks obtained by 105 students in statistical and finance are as given below.
Marks in statistics
50-54
50-59
60-64
65-74
Total
50-59
4
6
8
7
25
60-69
-
10
12
13
35
70-79
16
9
20
-
45
80-89
-
-
-
-
-
Total
20
25
40
20
105
CONT…2

CODE NO: R7-21003/MBA ::2::
Find the following
a) Number of students obtaining more than 54 marks in statistics and those obtaining less than 70 marks in finance and
b) Co-efficient of correlation between the marks obtained in the two subjects.
6. The following is a record of number of bricks laid each day by two masons A and B :
A: 700, 675, 725, 675, 800, 650, 675, 625, 700 and 650
B: 600, 625, 675, 575, 650, 625, 600, 625, 550 and 700
Calculate the co-efficient of variation in each case and discuss the relative consistency of the two masons. If the figures for A where in every case 20 more and those of B in every case 10 more than the figures given above, how would the answer be affected?
7.a) You are given the annual profit figures for a certain firm for the years 2000-2006. Fit a straight line trend to the data and estimate the expected profit for the year 2010
Year : 2000 2001 2002 2003 2004 2005 2006
Profit (Rs. Lakhs) : 60 72 75 95 80 85 95
b) Ten persons were appointed in officer cadre in an office. Their performance was evaluated by giving a test and the marks were recorded out of 100. They were given two months training and another test was held and marks were recorded out of 100.
Employees
A
B
C
D
E
Before Training
80
76
92
60
70
After Training
84
70
96
80
70
By applying the T-test, can it be concluded that the employees have benefited by the training? Use 5% level of significance.
8 The following data has been constructed on the basis of 220 companies classified by the changes in earning and different stock exchanges. Examine whether they are independent or not?
Changes in Earnings
Stock exchanges
S1
S2
S3
Total
Large decrease
02
17
24
43
Moderate decrease
09
10
14
33
Small change
11
11
41
63
Moderate increase
06
17
23
46
Large increase
06
20
09
35
Total
34
75
111
220
Also examine the degree of dependence / independence.

JNTUH MBA I SEM ME QP-FEB-2010

CODE NO: R9-12/MBA
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY HYDERABAD
MBA-I Semester Regular Examinations February -2010
MANAGERIAL ECONOMICS
Time:3hours Max.Marks:60
Answer any Five questions
All questions carry equal marks
- - -
1. Define managerial economics, its relationship with other areas and specify the
role of managerial economist
2. Examine the firm objectives and explain the managerial theories of firm
3. What are the fundamental concepts of managerial economics and discuss in detail
about marginalism
4. State the law of demand, how would you explain it with substitution effect and
income effect? Are there any exceptions to this law?
5. What are increasing returns to scale? Show them on an isoquant map; explain the
causes of increasing returns to scale.
6. Derive long-run total cost curve form expansion path. How are average cost curve
and marginal cost curve derived from total cost curve.
7. What is meant by pricing, explain different pricing strategies in the markets?
8. Explain CVP analysis, how it support for managerial decisions

JNTUH MBA I SEM MOB QP-FEB-2010

Code No: R9-11MBA
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY HYDERABAD
MBA-I Semester Regular Examinations February -2010
MANAGEMENT AND ORGANIZATIONAL BEHAVIOUR
Time:3hours Max.Marks:60
Answer any Five questions
All questions carry equal marks
- - -
1. Discuss how barriers and breakdowns in communication can overcome in global
business environment comprised of different languages, culture and etiquette.
2. What is Herzberg’s two-factor approach to job satisfaction and dissatisfaction?
Why has this approach been criticized?
3.a) How does leadership differ from management?
b) Why are charismatic leaders sometimes dangerous?
4. What environmental factors influenced the development of these schools of
management theory: Scientific management, Classical organization theory,
Behavioral and management science?
5. Describe the four basic stages in the rational models of decision making and
problem solving.
6. What is informal organizational structure? Under what conditions would a matrix
structure be most suitable? What are its advantages and disadvantages?
7. What is perception? How does external and internal factor influence perception?
8.a) Discuss critically the Johari window model.
b) Explain behaviour modification and how it is useful in context of OB.
****

JNTUH MBA I SEM BC&SS QP-FEB-2011

CODE NO: R9-14/MBA
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY HYDERABAD
MBA-I Semester Regular Examinations February -2010
BUSINESS COMMUNICATION AND SOFT SKILLS
Time:3hours Max.Marks:60
Answer any Five questions
All questions carry equal marks
- - -
1.a) Why is communication so pertinent for good relationship and effective management?
b) Indicate the critical difference between successful and ineffective communication.
2.a) Describe the elements of a technical report.
b) Write a report to be submitted to the Chief Executive Officer, Corporation of Hyderabad on the enhancement and development of parks in Hyderabad.
3.a) What elements constitute the structure of a business letter? Discuss briefly each one of them.
b) Write a complaint letter on the hold-up in the delivery of goods. You may devise the details.
4.a) It is essential in preparing for any formal interview that the preparation is done at an early stage, and the objects (s) of the examination is clearly identified. Elucidate on this statement.
b) Elaborate on the importance of body language while attending an interview.
5.a) Answer the following questions
(i) What is meant by “readability”
(ii) What are the qualities of a well-written paragraph?
b) Write short notes on :
(i) Interpretive reports
(ii) Organization of the material of a report.
6.a) What is the importance of written communication in an organization?
b) Analyse the difference between written and oral communication. Do you agree that communication skills are an essential job requirement? Substantiate.
7.a) The content of a technical presentation is very important. How do you make it impressive and organized?
b) What is meant by videoconferencing? Discuss on the technology uses in videoconferencing.
8.A) Correct the following sentences.:
(i) It feels very coldly in this room.
(ii) We should choose an economical, flexible, plan.
(iii) The price of the new products were reasonable.
(iv) Expecting a large crowd, extra chairs were provided by the management.
(v) The man liked meeting and to talk to people.

CODE NO: R9-14/MBA ::2::
B) Insert preposition or prepositional phrases:
(i) Always be prepared ----------------------- the worst,
(ii) Why do you stare me------------------ the face? It is bad manners to stare-------------
one in that manner.
(iii)I am vexed ---------him------what he has done,
(iv) Ratan is impressed---------- that nation and he desires to impress it --------me..
(v) The river --------- which I went to my brother’s house abound ---------fish.
C.) Write the correct form of the verb in the blanks.
i) No one can stop me from -------------------- what is right. ( do )
ii) We ------------ (surprise ) at finding you father there.
iii) On hearing the news, the meeting------------------------- (postponed)
iv) She was congratulated on-----------------(win) the gold medal.
v) I was afraid of ------------------------------(bit) by the cobra.
D) Find out the meanings for the idioms in the bold.
1. He was all ears when his boss talked.
a) Had big ears b) Listen carefully c) Deaf.
2. He is a chip off the old block.
a) like his father b) Very unlike anybody c) hard as a block.
3. He is thick in the head
a) Like thick hair b) very intelligent c) Stupid
4. The bank robbers were armed to the teeth.
a) cowards b) heavily armed c) exhausted.
5. His comments threw a wet blanket on the discussion.
a) encouraged b) discouraged c) covered up.

JNTUH MBA I SEM BLR QP-FEB-2010

Code No: R9-16/MBA
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY HYDERABAD
MBA-I Semester Regular Examinations February -2010
BUSINESS LAW AND REGULATION
Time:3hours Max.Marks:60
Answer any Five questions
All questions carry equal marks
- - -
1. What is coercion? Explain its effects on the contract? Give three examples of
coercion?
2. What are the available remedies to injured party in case of breach of contract?
Explain the answer by giving certain examples.
3. List and explain various modes of Performing and discharge of contracts?
4. How partnership can be dissolved? What are the rights and liabilities of partners
during dissolution?
5. Define NI Act. How parties are discharged from their contracts of Negotiable
instruments.
6. Define different types of companies. What are different types of meetings held in
company. Explain their essence.
7. Who is an assesee and deemed assesee? What is an assessment year? Explain the
assessment procedure in India?
8. Explain the role of CETA? Discuss the functioning of CETA in today’s dynamic
business environment.

jntu mba cab manual

SQL

SQL is a standard language for accessing and manipulating databases. SQL stands for Structured Query Language. SQL lets you access and manipulate databases. SQL is an ANSI (American National Standards Institute) standard. SQL is not case sensitive.

What Can SQL do?

· SQL can execute queries against a database

· SQL can retrieve data from a database

· SQL can insert records in a database

· SQL can update records in a database

· SQL can delete records from a database

· SQL can create new databases

· SQL can create new tables in a database

· SQL can create stored procedures in a database

· SQL can create views in a database

· SQL can set permissions on tables, procedures, and views

SQL DML and DDL

SQL can be divided into two parts: The Data Manipulation Language (DML) and the Data Definition Language (DDL).

The query and update commands form the DML part of SQL:

· SELECT - extracts data from a database

· UPDATE - updates data in a database

· DELETE - deletes data from a database

· INSERT INTO - inserts new data into a database

The DDL part of SQL permits database tables to be created or deleted. It also define indexes (keys), specify links between tables, and impose constraints between tables. The most important DDL statements in SQL are:

· CREATE TABLE - creates a new table

· ALTER TABLE - modifies a table

· DROP TABLE - deletes a table

SQL STATEMENTS

The SELECT Statement

The SELECT statement is used to select data from a database. The result is stored in a result table, called the result-set.

SQL SELECT Syntax

SELECT column_name(s) FROM table_name

And

SELECT * FROM table_name

An SQL SELECT Example

The "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

Now we want to select the content of the columns named "LastName" and "FirstName" from the table above.

We use the following SELECT statement:

SELECT LastName,FirstName FROM Persons

The result-set will look like this:

LastName

FirstName

Hansen

Ola

Svendson

Tove

Pettersen

Kari

SELECT * Example

Now we want to select all the columns from the "Persons" table.

We use the following SELECT statement:

SELECT * FROM Persons

The INSERT INTO Statement

The INSERT INTO statement is used to insert a new row in a table.

SQL INSERT INTO Syntax

INSERT INTO table_name VALUES (value1, value2, value3,...)

And

INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)

SQL INSERT INTO Example

We have the following "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

Now we want to insert a new row in the "Persons" table. We use the following SQL statement:

INSERT INTO Persons VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')

The "Persons" table will now look like this:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

4

Nilsen

Johan

Bakken 2

Stavanger

Insert Data Only in Specified Columns

It is also possible to only add data in specific columns.

The following SQL statement will add a new row, but only add data in the "P_Id", "LastName" and the "FirstName" columns:

INSERT INTO Persons (P_Id, LastName, FirstName) VALUES (5, 'Tjessem', 'Jakob')

The "Persons" table will now look like this:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

4

Nilsen

Johan

Bakken 2

Stavanger

5

Tjessem

Jakob

The UPDATE Statement

The UPDATE statement is used to update existing records in a table.

SQL UPDATE Syntax

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

Note: Notice the WHERE clause in the UPDATE syntax. The WHERE clause specifies which record or records that should be updated. If you omit the WHERE clause, all records will be updated!

SQL UPDATE Example

The "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

4

Nilsen

Johan

Bakken 2

Stavanger

5

Tjessem

Jakob

Now we want to update the person "Tjessem, Jakob" in the "Persons" table.

We use the following SQL statement:

UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
WHERE LastName='Tjessem' AND FirstName='Jakob'

The "Persons" table will now look like this:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

4

Nilsen

Johan

Bakken 2

Stavanger

5

Tjessem

Jakob

Nissestien 67

Sandnes

SQL UPDATE Warning

Be careful when updating records. If we had omitted the WHERE clause in the example above, like this:

UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'

The "Persons" table would have looked like this:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Nissestien 67

Sandnes

2

Svendson

Tove

Nissestien 67

Sandnes

3

Pettersen

Kari

Nissestien 67

Sandnes

4

Nilsen

Johan

Nissestien 67

Sandnes

5

Tjessem

Jakob

Nissestien 67

Sandnes

The DELETE Statement

The DELETE statement is used to delete rows in a table.

SQL DELETE Syntax

DELETE FROM table_name
WHERE some_column=some_value

Note: Notice the WHERE clause in the DELETE syntax. The WHERE clause specifies which record or records that should be deleted. If you omit the WHERE clause, all records will be deleted!

SQL DELETE Example

The "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

4

Nilsen

Johan

Bakken 2

Stavanger

5

Tjessem

Jakob

Nissestien 67

Sandnes

Now we want to delete the person "Tjessem, Jakob" in the "Persons" table.

We use the following SQL statement:

DELETE FROM Persons
WHERE LastName='Tjessem' AND FirstName='Jakob'

The "Persons" table will now look like this:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

4

Nilsen

Johan

Bakken 2

Stavanger

Delete All Rows

It is possible to delete all rows in a table without deleting the table. This means that the table structure, attributes, and indexes will be intact:

DELETE FROM table_name

or

DELETE * FROM table_name

The CREATE TABLE Statement

The CREATE TABLE statement is used to create a table in a database.

SQL CREATE TABLE Syntax

CREATE TABLE table_name(column_name1 data_type,column_name2 data_type,column_name3 data_type,....)

CREATE TABLE Example

Now we want to create a table called "Persons" that contains five columns: P_Id, LastName, FirstName, Address, and City.

We use the following CREATE TABLE statement:

CREATE TABLE Persons(P_Id int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255))

The P_Id column is of type int and will hold a number. The LastName, FirstName, Address, and City columns are of type varchar with a maximum length of 255 characters.

The empty "Persons" table will now look like this:

P_Id

LastName

FirstName

Address

City

The empty table can be filled with data with the INSERT INTO statement.

The ALTER TABLE Statement

The ALTER TABLE statement is used to add, delete, or modify columns in an existing table.

SQL ALTER TABLE Syntax

To add a column in a table, use the following syntax:

ALTER TABLE table_name
ADD column_name datatype

To delete a column in a table, use the following syntax (notice that some database systems don't allow deleting a column):

ALTER TABLE table_name
DROP COLUMN column_name

To change the data type of a column in a table, use the following syntax:

ALTER TABLE table_name
ALTER COLUMN column_name datatype

SQL ALTER TABLE Example

Look at the "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

Now we want to add a column named "DateOfBirth" in the "Persons" table.

We use the following SQL statement:

ALTER TABLE Persons
ADD DateOfBirth date

Notice that the new column, "DateOfBirth", is of type date and is going to hold a date. The data type specifies what type of data the column can holdThe "Persons" table will now like this:

P_Id

LastName

FirstName

Address

City

DateOfBirth

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

Change Data Type Example

Now we want to change the data type of the column named "DateOfBirth" in the "Persons" table.

We use the following SQL statement:

ALTER TABLE Persons
ALTER COLUMN DateOfBirth year

Notice that the "DateOfBirth" column is now of type year and is going to hold a year in a two-digit or four-digit format.

DROP COLUMN Example

Next, we want to delete the column named "DateOfBirth" in the "Persons" table.

We use the following SQL statement:

ALTER TABLE Persons
DROP COLUMN DateOfBirth

The "Persons" table will now like this:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

The DROP TABLE Statement

The DROP TABLE statement is used to delete a table.

DROP TABLE table_name

The TRUNCATE TABLE Statement

What if we only want to delete the data inside the table, and not the table itself?

Then, use the TRUNCATE TABLE statement:

TRUNCATE TABLE table_name

SQL VIEWS

A view is a virtual table.

This chapter shows how to create, update, and delete a view.

SQL CREATE VIEW Statement

In SQL, a view is a virtual table based on the result-set of an SQL statement.

A view contains rows and columns, just like a real table. The fields in a view are fields from one or more real tables in the database.

You can add SQL functions, WHERE, and JOIN statements to a view and present the data as if the data were coming from one single table.

SQL CREATE VIEW Syntax

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

SQL CREATE VIEW Examples

If you have the Northwind database you can see that it has several views installed by default.

The view "Current Product List" lists all active products (products that are not discontinued) from the "Products" table. The view is created with the following SQL:

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

We can query the view above as follows:

SELECT * FROM [Current Product List]

Another view in the Northwind sample database selects every product in the "Products" table with a unit price higher than the average unit price:

CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

We can query the view above as follows:

SELECT * FROM [Products Above Average Price]

SQL Updating a View

You can update a view by using the following syntax:

SQL CREATE OR REPLACE VIEW Syntax

CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

Now we want to add the "Category" column to the "Current Product List" view. We will update the view with the following SQL:

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

SQL Dropping a View

You can delete a view with the DROP VIEW command.

SQL DROP VIEW Syntax

DROP VIEW view_name

SQL JOINS

The JOIN keyword is used in an SQL statement to query data from two or more tables, based on a relationship between certain columns in these tables.

Tables in a database are often related to each other with keys.

A primary key is a column (or a combination of columns) with a unique value for each row. Each primary key value must be unique within the table. The purpose is to bind data together, across tables, without repeating all of the data in every table.

Look at the "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

Note that the "P_Id" column is the primary key in the "Persons" table. This means that no two rows can have the same P_Id. The P_Id distinguishes two persons even if they have the same name.

Next, we have the "Orders" table:

O_Id

OrderNo

P_Id

1

77895

3

2

44678

3

3

22456

1

4

24562

1

5

34764

15

Note that the "O_Id" column is the primary key in the "Orders" table and that the "P_Id" column refers to the persons in the "Persons" table without using their names.

Notice that the relationship between the two tables above is the "P_Id" column.

Different SQL JOINs:

Before we continue with examples, we will list the types of JOINs & the differences between them.

  • JOIN: Return rows when there is at least one match in both tables
  • LEFT JOIN: Return all rows from the left table, even if there are no matches in the right table
  • RIGHT JOIN: Return all rows from the right table, even if there are no matches in the left table
  • FULL JOIN: Return rows when there is a match in one of the tables

SQL INNER JOIN Keyword

The INNER JOIN keyword return rows when there is at least one match in both tables.

SQL INNER JOIN Syntax

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

SQL INNER JOIN Example

The "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

The "Orders" table:

O_Id

OrderNo

P_Id

1

77895

3

2

44678

3

3

22456

1

4

24562

1

5

34764

15

Now we want to list all the persons with any orders.

We use the following SELECT statement:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

LastName

FirstName

OrderNo

Hansen

Ola

22456

Hansen

Ola

24562

Pettersen

Kari

77895

Pettersen

Kari

44678

The INNER JOIN keyword return rows when there is at least one match in both tables. If there are rows in "Persons" that do not have matches in "Orders", those rows will NOT be listed.

SQL LEFT JOIN Keyword

The LEFT JOIN keyword returns all rows from the left table (table_name1), even if there are no matches in the right table (table_name2).

SQL LEFT JOIN Syntax

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

SQL LEFT JOIN Example

The "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

The "Orders" table:

O_Id

OrderNo

P_Id

1

77895

3

2

44678

3

3

22456

1

4

24562

1

5

34764

15

Now we want to list all the persons and their orders - if any, from the tables above.

We use the following SELECT statement:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

The result-set will look like this:

LastName

FirstName

OrderNo

Hansen

Ola

22456

Hansen

Ola

24562

Pettersen

Kari

77895

Pettersen

Kari

44678

Svendson

Tove

The LEFT JOIN keyword returns all the rows from the left table (Persons), even if there are no matches in the right table (Orders).

SQL RIGHT JOIN Keyword

The RIGHT JOIN keyword Return all rows from the right table (table_name2), even if there are no matches in the left table (table_name1).

SQL RIGHT JOIN Syntax

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

SQL RIGHT JOIN Example

The "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

The "Orders" table:

O_Id

OrderNo

P_Id

1

77895

3

2

44678

3

3

22456

1

4

24562

1

5

34764

15

We use the following SELECT statement:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

LastName

FirstName

OrderNo

Hansen

Ola

22456

Hansen

Ola

24562

Pettersen

Kari

77895

Pettersen

Kari

44678

34764

The RIGHT JOIN keyword returns all the rows from the right table (Orders), even if there are no matches in the left table (Persons).

SQL FULL JOIN Keyword

The FULL JOIN keyword return rows when there is a match in one of the tables.

SQL FULL JOIN Syntax

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

SQL FULL JOIN Example

The "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

The "Orders" table:

O_Id

OrderNo

P_Id

1

77895

3

2

44678

3

3

22456

1

4

24562

1

5

34764

15

Now we want to list all the persons and their orders, and all the orders with their persons.

We use the following SELECT statement:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

LastName

FirstName

OrderNo

Hansen

Ola

22456

Hansen

Ola

24562

Pettersen

Kari

77895

Pettersen

Kari

44678

Svendson

Tove

34764

The FULL JOIN keyword returns all the rows from the left table (Persons), and all the rows from the right table (Orders). If there are rows in "Persons" that do not have matches in "Orders", or if there are rows in "Orders" that do not have matches in "Persons", those rows will be listed as well.

SQL CONSTRAINTS

Constraints are used to limit the type of data that can go into a table.

Constraints can be specified when a table is created (with the CREATE TABLE statement) or after the table is created (with the ALTER TABLE statement).

We will focus on the following constraints:

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
  • DEFAULT

SQL NOT NULL Constraint

The NOT NULL constraint enforces a column to NOT accept NULL values.

The NOT NULL constraint enforces a field to always contain a value. This means that you cannot insert a new record, or update a record without adding a value to this field.

The following SQL enforces the "P_Id" column and the "LastName" column to not accept NULL values:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

SQL UNIQUE Constraint

The UNIQUE constraint uniquely identifies each record in a database table.The UNIQUE and PRIMARY KEY constraints both provide a guarantee for uniqueness for a column or set of columns.

A PRIMARY KEY constraint automatically has a UNIQUE constraint defined on it.Note that you can have many UNIQUE constraints per table, but only one PRIMARY KEY constraint per table.

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)

SQL PRIMARY KEY Constraint

The PRIMARY KEY constraint uniquely identifies each record in a database table.

Primary keys must contain unique values.

A primary key column cannot contain NULL values.

Each table should have a primary key, and each table can have only ONE primary key.

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

SQL FOREIGN KEY Constraint

A FOREIGN KEY in one table points to a PRIMARY KEY in another table.

The "Persons" table:

P_Id

LastName

FirstName

Address

City

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson

Tove

Borgvn 23

Sandnes

3

Pettersen

Kari

Storgt 20

Stavanger

The "Orders" table:

O_Id

OrderNo

P_Id

1

77895

3

2

44678

3

3

22456

2

4

24562

1

Note that the "P_Id" column in the "Orders" table points to the "P_Id" column in the "Persons" table.The "P_Id" column in the "Persons" table is the PRIMARY KEY in the "Persons" table.The "P_Id" column in the "Orders" table is a FOREIGN KEY in the "Orders" table.

The FOREIGN KEY constraint is used to prevent actions that would destroy links between tables.

The FOREIGN KEY constraint also prevents that invalid data form being inserted into the foreign key column, because it has to be one of the values contained in the table it points to.

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

SQL CHECK Constraint

The CHECK constraint is used to limit the value range that can be placed in a column.If you define a CHECK constraint on a single column it allows only certain values for this column.If you define a CHECK constraint on a table it can limit the values in certain columns based on values in other columns in the row.

The following SQL creates a CHECK constraint on the "P_Id" column when the "Persons" table is created. The CHECK constraint specifies that the column "P_Id" must only include integers greater than 0.

CREATE TABLE Persons(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0))

SQL DEFAULT Constraint

The DEFAULT constraint is used to insert a default value into a column.The default value will be added to all new records, if no other value is specified.

The following SQL creates a DEFAULT constraint on the "City" column when the "Persons" table is:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)

SQL INDEXES

An index can be created in a table to find data more quickly and efficiently.

The users cannot see the indexes, they are just used to speed up searches/queries.

Note: Updating a table with indexes takes more time than updating a table without (because the indexes also need an update). So you should only create indexes on columns (and tables) that will be frequently searched against.

SQL CREATE INDEX Syntax

Creates an index on a table. Duplicate values are allowed:

CREATE INDEX index_name
ON table_name (column_name)

SQL CREATE UNIQUE INDEX Syntax

Creates a unique index on a table. Duplicate values are not allowed:

CREATE UNIQUE INDEX index_name
ON table_name (column_name)

Note: The syntax for creating indexes varies amongst different databases. Therefore: Check the syntax for creating indexes in your database.

CREATE INDEX Example

SQL statement below creates an index named "PIndex" on "LastName" column in "Persons" table:

CREATE INDEX PIndex
ON Persons (LastName)

If you want to create an index on a combination of columns, you can list the column names within the parentheses, separated by commas:

CREATE INDEX PIndex
ON Persons (LastName, FirstName)

SQL FUNCTIONS

SQL has many built-in functions for performing calculations on data.

SQL Aggregate Functions

SQL aggregate functions return a single value, calculated from values in a column.

Useful aggregate functions:

  • AVG() - Returns the average value
  • COUNT() - Returns the number of rows
  • FIRST() - Returns the first value
  • LAST() - Returns the last value
  • MAX() - Returns the largest value
  • MIN() - Returns the smallest value
  • SUM() - Returns the sum

SQL Scalar functions

SQL scalar functions return a single value, based on the input value.

Useful scalar functions:

  • UCASE() - Converts a field to upper case
  • LCASE() - Converts a field to lower case
  • MID() - Extract characters from a text field
  • LEN() - Returns the length of a text field
  • ROUND() - Rounds a numeric field to the number of decimals specified
  • NOW() - Returns the current system date and time
  • FORMAT() - Formats how a field is to be displayed

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

A simple PL/SQL Block consists of three sections:

  • The Declaration section (optional).
  • The Execution section (mandatory).
  • The Exception (or Error) Handling section (optional).

Declaration Section:

The Declaration section of a PL/SQL Block starts with the reserved keyword DECLARE. This section is optional and is used to declare any placeholders like variables, constants, records and cursors, which are used to manipulate data in the execution section. Placeholders may be any of Variables, Constants and Records, which stores data temporarily. Cursors are also declared in this section.

Execution Section:

The Execution section of a PL/SQL Block starts with the reserved keyword BEGIN and ends with END. This is a mandatory section and is the section where the program logic is written to perform any task. The programmatic constructs like loops, conditional statement and SQL statements from the part of execution section.

Exception Section:

The Exception section of a PL/SQL Block starts with the reserved keyword EXCEPTION. This section is optional. Any errors in the program can be handled in this section, so that the PL/SQL Blocks terminates gracefully. If the PL/SQL Block contains exceptions that cannot be handled, the Block terminates abruptly with errors. Every statement in the above three sections must end with a semicolon ; . PL/SQL blocks can be nested within other PL/SQL blocks. Comments can be used to document code.

DECLARE
Variable declaration
BEGIN
Program Execution
EXCEPTION
Exception handling
END;

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.

The General Syntax to declare a variable is:

variable_name datatype [NOT NULL := value ]; 
  • variable_name is the name of the variable.
  • datatype is a valid PL/SQL datatype.
  • NOT NULL is an optional specification on the variable.
  • value or DEFAULT valueis also an optional specification, where you can initialize a variable.
  • Each variable declaration is a separate statement and must be terminated by a semicolon.

For example, if you want to store the current salary of an employee, you can use a variable.

DECLARE
salary  number (6);

* “salary” is a variable of datatype number and of length 6.
When a variable is specified as NOT NULL, you must initialize the variable when it is declared.
For example: The below example declares two variables, one of which is a not null.

DECLARE
salary number(4);
dept varchar2(10) NOT NULL := “HR Dept”;

The value of a variable can change in the execution or exception section of the PL/SQL Block. We can assign values to variables in the two ways given below.

1) We can directly assign values to variables. The General Syntax is:

  variable_name:=  value;

2) We can assign values to variables directly from the database columns by using a SELECT.. INTO statement. The General Syntax is:

SELECT column_name
INTO variable_name 
FROM table_name 

[WHERE condition];

Example: The below program will get the salary of an employee with id ‘1116’ & display it on screen

DECLARE 
 var_salary number(6); 
 var_emp_id number(6) = 1116; 
BEGIN
 SELECT salary 
 INTO var_salary 
 FROM employee 
 WHERE emp_id = var_emp_id; 
 dbms_output.put_line(var_salary); 
 dbms_output.put_line('The employee ' 
               || var_emp_id || ' has  salary  ' || var_salary); 
END; 
/

NOTE: The backward slash '/' in the above program indicates to execute the above PL/SQL Block.

Scope of Variables

PL/SQL allows the nesting of Blocks within Blocks i.e, the Execution section of an outer block can contain inner blocks. Therefore, a variable which is accessible to an outer Block is also accessible to all nested inner Blocks. The variables declared in the inner blocks are not accessible to outer blocks. Based on their declaration we can classify variables into two types.

  • Local variables - These are declared in a inner block and cannot be referenced by outside Blocks.
  • Global variables - These are declared in a outer block and can be referenced by its itself and by its inner blocks.

For Example: In the below example we are creating two variables in the outer block and assigning thier product to the third variable created in the inner block. The variable 'var_mult' is declared in the inner block, so cannot be accessed in the outer block i.e. it cannot be accessed after line 11. The variables 'var_num1' and 'var_num2' can be accessed anywhere in the block.

1> DECLARE
2>  var_num1 number; 
3>  var_num2 number; 
4> BEGIN 
5>  var_num1 := 100; 
6>  var_num2 := 200; 
7>  DECLARE 
8>   var_mult number; 
9>   BEGIN 
10>    var_mult := var_num1 * var_num2; 
11>   END; 
12> END; 

13> /

PL/SQL Constants

As the name implies a constant is a value used in a PL/SQL Block that remains unchanged throughout the program. A constant is a user-defined literal value. You can declare a constant and use it instead of actual value.

For example: If you want to write a program which will increase the salary of the employees by 25%, you can declare a constant and use it throughout the program. Next time when you want to increase the salary again you can change the value of the constant which will be easier than changing the actual value throughout the program.

The General Syntax to declare a constant is:

constant_name CONSTANT datatype := VALUE; 
  • constant_name is the name of the constant i.e. similar to a variable name.
  • The word CONSTANT is a reserved word and ensures that the value does not change.
  • VALUE - It is a value which must be assigned to a constant when it is declared. You cannot assign a value later.

For example, to declare salary_increase, you can write code as follows:

DECLARE 
salary_increase CONSTANT number (3) := 10; 

You must assign a value to a constant at the time you declare it. If you do not assign a value to a constant while declaring it and try to assign a value in the execution section, you will get a error. If you execute the below Pl/SQL block you will get error.

DECLARE 
 salary_increase CONSTANT number(3); 
BEGIN 
 salary_increase := 100; 
 dbms_output.put_line (salary_increase); 
END;
 

PL/SQL Records

Records are another type of datatypes which oracle allows to be defined as a placeholder. Records are composite datatypes, which means it is a combination of different scalar datatypes like char, varchar, number etc. Each scalar data types in the record holds a value. A record can be visualized as a row of data. It can contain all the contents of a row.

Declaring a record:

To declare a record, you must first define a composite datatype; then declare a record for that type.

The General Syntax to define a composite datatype is:

TYPE record_type_name IS RECORD 
(first_col_name column_datatype, 
second_col_name column_datatype, ...);   
  • record_type_name – it is the name of the composite type you want to define.
  • first_col_name, second_col_name, etc.,- it is the names the fields/columns within the record.
  • column_datatype defines the scalar datatype of the fields.

There are different ways you can declare the datatype of the fields.

1) You can declare the field in the same way as you declare the fieds while creating the table.
2) If a field is based on a column from database table, you can define the field_type as follows:

col_name table_name.column_name%type;

By declaring the field datatype in the above method, the datatype of the column is dynamically applied to the field. This method is useful when you are altering the column specification of the table, because you do not need to change the code again.

The General Syntax to declare a record of a uer-defined datatype is:

record_name record_type_name;

The following code shows how to declare a record called employee_rec based on user-defined type.

DECLARE 
TYPE employee_type IS RECORD 
(employee_id number(5), 
 employee_first_name varchar2(25), 
 employee_last_name employee.last_name%type, 
 employee_dept employee.dept%type); 
 employee_salary employee.salary%type;

employee_rec employee_type;)

 

PL/SQL 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. 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:

Implicit cursors:

These are created by default when DML statements like, INSERT, UPDATE, and DELETE statements are executed. They are also created when a SELECT statement that returns just one row is executed.

Explicit cursors:

They must be created when you are executing a SELECT statement that returns more than one row. Even though the cursor stores multiple records, only one record can be processed at a time, which is called as current row. When you fetch a row the current row position moves to next row.

Both implicit and explicit cursors have the same functionality, but they differ in the way they are accessed.

 

PL/SQL STORED PROCEDURES

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.

General Syntax to create a procedure is:

CREATE [OR REPLACE] PROCEDURE proc_name [list of parameters] 
IS    
   Declaration section 
BEGIN    
   Execution section 
EXCEPTION    
  Exception section 
END; 

IS - marks the beginning of the body of the procedure and is similar to DECLARE in anonymous PL/SQL Blocks. The code between IS and BEGIN forms the Declaration section.

The syntax within the brackets [ ] indicate they are optional. By using CREATE OR REPLACE together the procedure is created if no other procedure with the same name exists or the existing procedure is replaced with the current code.

The below example creates a procedure ‘employer_details’ which gives the details of the employee.

1> CREATE OR REPLACE PROCEDURE employer_details
2> IS 
3>  CURSOR emp_cur IS 
4>  SELECT first_name, last_name, salary FROM emp_tbl;
5>  emp_rec emp_cur%rowtype;
6> BEGIN 
7>  FOR emp_rec in sales_cur 
8>  LOOP 
9>  dbms_output.put_line(emp_cur.first_name || ' ' ||emp_cur.last_name
10>    || ' ' ||emp_cur.salary);
11> END LOOP;
12>END;
13> /

How to execute a Stored Procedure?

There are two ways to execute a procedure.

1) From the SQL prompt.

 EXECUTE [or EXEC] procedure_name; 

2) Within another procedure – simply use the procedure name.

  procedure_name;

PL/SQL FUNCTIONS

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.

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

For ex, let’s create a frunction called ''employer_details_func' similar to the 1 created in stored proc

1> CREATE OR REPLACE FUNCTION employer_details_func
2>    RETURN VARCHAR(20);
3> IS 
5>    emp_name VARCHAR(20); 
6> BEGIN 
7>          SELECT first_name INTO emp_name
8>          FROM emp_tbl WHERE empID = '100';
9>          RETURN emp_name;
10> END;
11> / 

In the example we are retrieving the ‘first_name’ of employee with empID 100 to variable ‘emp_name’.

The return type of the function is VARCHAR which is declared in line no 2.
The function returns the 'emp_name' which is of type VARCHAR as the return value in line no 9.

How to execute a PL/SQL Function?

A function can be executed in the following ways.

1) Since a function returns a value we can assign it to a variable.

employee_name :=  employer_details_func;

If ‘employee_name’ is of datatype varchar we can store the name of the employee by assigning the return type of the function to it.

2) As a part of a SELECT statement

SELECT employer_details_func FROM dual;

3) In a PL/SQL Statements like,

dbms_output.put_line(employer_details_func);

This line displays the value returned by the function.

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

By Handling the exceptions we can ensure a PL/SQL block does not exit abruptly.

2) Structure of Exception Handling.

The General Syntax for coding the exception section

 DECLARE
   Declaration section 
 BEGIN 
   Exception section 
 EXCEPTION 
 WHEN ex_name1 THEN 
    -Error handling statements 
 WHEN ex_name2 THEN 
    -Error handling statements 
 WHEN Others THEN 
   -Error handling statements 
END; 

General PL/SQL statments can be used in the Exception Block.

When an exception is raised, Oracle searches for an appropriate exception handler in the exception section. For example in the above example, if the error raised is 'ex_name1 ', then the error is handled according to the statements under it. Since, it is not possible to determine all the possible runtime errors during testing fo the code, the 'WHEN Others' exception is used to manage the exceptions that are not explicitly handled. Only one exception can be raised in a Block and the control does not return to the Execution Section after the error is handled.

If there are nested PL/SQL blocks like this.

 DELCARE
   Declaration section 
 BEGIN
    DECLARE
      Declaration section 
    BEGIN 
      Execution section 
    EXCEPTION 
      Exception section 
    END; 
 EXCEPTION
   Exception section 
 END; 

In the above case, if the exception is raised in the inner block it should be handled in the exception block of the inner PL/SQL block else the control moves to the Exception block of the next upper PL/SQL Block. If none of the blocks handle the exception the program ends abruptly with an error.

3) Types of Exception.

There are 3 types of Exceptions.
a) Named System Exceptions
b) Unnamed System Exceptions
c) User-defined Exceptions

PL/SQL TRIGGERS

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


The Syntax for creating a trigger is:

 CREATE [OR REPLACE ] TRIGGER trigger_name 
 {BEFORE | AFTER | INSTEAD OF } 
 {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; 
  • CREATE [OR REPLACE ] TRIGGER trigger_name - This clause creates a trigger with the given name or overwrites an existing trigger with the same name.
  • {BEFORE | AFTER | INSTEAD OF } - This clause indicates at what time should the trigger get fired. i.e for example: before or after updating a table. INSTEAD OF is used to create a trigger on a view. before and after cannot be used to create a trigger on a view.
  • {INSERT [OR] | UPDATE [OR] | DELETE} - This clause determines the triggering event. More than one triggering events can be used together separated by OR keyword. The trigger gets fired at all the specified triggering event.
  • [OF col_name] - This clause is used with update triggers. This clause is used when you want to trigger an event only when a specific column is updated.
  • CREATE [OR REPLACE ] TRIGGER trigger_name - This clause creates a trigger with the given name or overwrites an existing trigger with the same name.
  • [ON table_name] - This clause identifies the name of the table or view to which the trigger is associated.
  • [REFERENCING OLD AS o NEW AS n] - This clause is used to reference the old and new values of the data being changed. By default, you reference the values as :old.column_name or :new.column_name. The reference names can also be changed from old (or new) to any other user-defined name. You cannot reference old values when inserting a record, or new values when deleting a record, because they do not exist.
  • [FOR EACH ROW] - This clause is used to determine whether a trigger must fire when each row gets affected ( i.e. a Row Level Trigger) or just once when the entire sql statement is executed(i.e.statement level Trigger).
  • WHEN (condition) - This clause is valid only for row level triggers. The trigger is fired only for rows that satisfy the condition specified.

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.
Error Handling: PL/SQL handles errors or exceptions effectively during the execution of a PL/SQL program. Once an exception is caught, specific actions can be taken depending upon the type of the exception or it can be displayed to the user with a message