DBMS Unit - 2
DBMS Unit - 2
UNIT 2
Relational data Model and Language: Relational Data Model Concepts, Integrity Constraints,
Entity Integrity, Referential Integrity, Keys Constraints, Domain Constraints, Relational Algebra,
Relational Calculus, Tuple and Domain Calculus. Introduction to SQL: Characteristics of SQL,
Advantage of SQL. SQL Data Type and Literals. Types of SQL Commands. SQL Operators and their
Procedure. Tables, Views and Indexes. Queries and Sub Queries. Aggregate Functions. Insert, Update
and Delete Operations, Joins, Unions, Intersection, Minus, Cursors, Triggers, Procedures in
SQL/PL SQL
Introduction
Relational Model was proposed by E.F Codd to model data in the form of relations or tables. After
designing the conceptual model of database using ER diagram, we need to convert the conceptual
model in the relational model which can be implemented using any RDBMS (Relational Data Base
Management System) like SQL, MY SQL etc.
The relational model is very simple and elegant; a database is a collection of one or more relations,
where each relation is a table with rows and columns.
This simple tabular representation enables even new users to understand the contents of a
database, and it permits the use of simple, high-level languages to query the data.
ROLL_NO
1
Null values: The value which is not known or unavailable is called NULL VALUE. It is represented
by blank space.
Cardinality: The number of tuples are present in the relation is called as its cardinality.
Ex: The Cardinality of the STUDENT table is 3.
2
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Relation
➢ A relation is defined as a set of tuples and attributes.
➢ A relation consists of Relation schema and relation instance.
➢ Relation schema: A relation schema represents the name of the relation with its attributes.
Ex: STUDENT (ROLL_NO, NAME, ADDRESS, PHONE and AGE) is Relation schema for
STUDENT.
➢ Relation instance: The set of tuples of a relation at a particular instance of a time is called
Relation Instance.
An instance of „Employee „relation
2.4 Constraints
➢ On modeling the design of the relational data base, we can put some rules(conditions) like
what values are allowed to be inserted in the relation
➢ Constraints are the rules enforced on the data columns of a table. These are used to limit the
type of data that can go in to a table
➢ This Ensure the accuracy and reliability of the data in the database. Constraints could be
either on a column level on a table level.
3
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
1. Not Null:
• Null represents a record where data may be missing data or data for that record may be optional.
• Once not null is applied to a particular column, you cannot enter null values to that column.
• A not null constraint cannot be applied at table level.
4
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Example:
Create table EMPLOYEE (id int Not null, name varchar Not null, Age int
not null, address char (25), salary decimal (18,2), primary key(id));
➢ In the above example we have applied not null on three columns id, name and age which
means whenever a record is entered using insert statement all three columns should contain a
value other than null.
➢ We have two other columns address and salary, where not null is not applied which means
that you can leave the row as empty.
2. Unique:
Some times we need to maintain only. Unique data in the column of a database table, this is
possible by using a Unique constraint.
Example:
Create table PERSONS (id int unique, last_name varchar (25) not null,
First name varchar (25), age int);
➢ In the above example, as we have used unique constraint on ID column we are not supposed
to enter the data that is already present, simply no two ID values are same.
5
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
3. Default:
➢ When a column is specified as default with same value then all the rows will use the same
value i.e., each and every time while entering the data we need not enter that value.
➢ But default column value can be customised i.e., it can be over ridden when inserting a data
for that row based on the requirement.
Example:
Create table EMPLOYEE (id int Not null, last_name varchar (25) Not null,
first_name varchar (25), Age int, city varchar (25) Default Hyderabad);
➢ As a result, whenever you insert a new row each time you need not enter a value for this
default column that is entering a column value for a default column is optional.
4. Check:
➢ Check constraint ensures that the data entered by the user for that column is within the range
of values or possible values specified.
Example: Create table STUDENT (id int, name varchar (25), age int,
check(age>=18));
➢ As we have used a check constraint as (age>=18) which means value entered by user for this
age column while inserting the data must be less than or equal to 18.
6
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
5. Primary Key:
➢ A primary key is a constraint in a table which uniquely identifies each row record in a
database table by enabling one or more column in the table as primary key.
➢ A particular column is made as a primary key column by using the primary key keyword
followed by the column name.
Example:
Create table EMP (ID int, name varchar (20), age int, course varchar
(10), Primary key (ID));
➢ Here we have used the primary key on ID column then ID column must contain unique
values i.e., one ID cannot be used for another student.
6. Foreign Key:
➢ The foreign key constraint is a column or list of columns which points to the primary key
column of another table.
➢ The main purpose of the foreign key is only those values are allowed in the present table that
will match to the primary key column of another table.
From the above two tables, COURSE_ID is a primary key of the table STUDENT_MARKS and also
behaves as a foreign key as it is same in STUDENT_DETAILS and STUDENT_MARKS.
7
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Example:
(Reference Table)
Create table CUSTOMER1 (id int, name varchar (25), course varchar (10),
primary key (ID));
(Child table)
➢ These constraints are used to ensure the uniqueness of each record or row in the data
table.
➢ Entity Integrity constraints says that no primary key can take NULL VALUE, since
using primary key we identify each tuple uniquely in a relation.
Example:
Explanation:
➢ In the above relation, EID is made primary key, and the primary key can‟t
take NULL values but in the 3rd tuple, the primary key is NULL, so it is
violating Entity integrity constraints.
➢ The referential integrity constraint is specified between two relations or tables and used
to maintain the consistency among the tuples in two relations.
➢ This constraint is enforced through foreign key, when an attribute in the foreign key of
relation R1 have the same domain as primary key of relation R2, then the foreign key of
R1 is said to reference or refer to the primary key of relation R2.
➢ The values of the foreign key in a tuple of relation R1 can either take the values of the
primary key for some tuple in Relation R2, or can take NULL values, but can‟t be empty.
8
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Explanation:
➢ In the above, DNO of the first relation is the foreign key and DNO in the second relation is the
primary key
➢ DNO=22 in the foreign key of the first relation is not available in the second relation so, since
DNO=22 is not defined in the primary key of the second relation therefore Referential
integrity constraints is violated here.
Relational Algebra is a procedural query language. Relational algebra mainly provides a theoretical
foundation for relational databases and SQL. The main purpose of using Relational Algebra is to define
operators that transform one or more input relations into an output relation. Given that these operators
accept relations as input and produce relations as output, they can be combined and used to express
potentially complex queries that transform potentially many input relations (whose data are stored in the
database) into a single output relation (the query results). As it is pure mathematics, there is no use of
English Keywords in Relational Algebra and operators are represented using symbols.
Fundamental Operators
These are the basic/fundamental operators used in Relational Algebra.
1. Selection(σ)
2. Projection(π)
3. Union(U)
4. Set Difference(-)
5. Set Intersection(∩)
6. Rename(ρ)
7. Cartesian Product(X)
3. Union(U): Union operation in relational algebra is the same as union operation in set theory.
Example:
FRENCH
Student_Name Roll_Number
Ram 01
Mohan 02
Vivek 13
Geeta 17
GERMAN
Student_Name Roll_Number
Vivek 13
Geeta 17
Shyam 21
Rohan 25
Consider the following table of Students having different optional subjects in their course.
π(Student_Name)FRENCH U π(Student_Name)GERMAN
Student_Name
Ram
Mohan
Vivek
Geeta
Shyam
Rohan
Note: The only constraint in the union of two relations is that both relations must have the same set of
Attributes.
4. Set Difference(-): Set Difference in relational algebra is the same set difference operation as in set
theory.
Example: From the above table of FRENCH and GERMAN, Set Difference is used as follows
π(Student_Name)FRENCH - π(Student_Name)GERMAN
10
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Student_Name
Ram
Mohan
Note: The only constraint in the Set Difference between two relations is that both relations must have
the same set of Attributes.
5. Set Intersection(∩): Set Intersection in relational algebra is the same set intersection operation in set
theory.
Example: From the above table of FRENCH and GERMAN, the Set Intersection is used as follows
π(Student_Name)FRENCH ∩ π(Student_Name)GERMAN
Student_Name
Vivek
Geeta
Note: The only constraint in the Set Difference between two relations is that both relations must have
the same set of Attributes.
7. Cross Product(X): Cross-product between two relations. Let’s say A and B, so the cross product
between A X B will result in all the attributes of A followed by each attribute of B. Each record of A
will pair with every record of B.
Example:
A
Name Age Sex
Ram 14 M
Sona 15 F
Kim 20 M
B
ID Course
1 DS
2 DBMS
AXB
Name Age Sex ID Course
Ram 14 M 1 DS
Ram 14 M 2 DBMS
Sona 15 F 1 DS
Sona 15 F 2 DBMS
Kim 20 M 1 DS
Kim 20 M 2 DBMS
Note: If A has ‘n’ tuples and B has ‘m’ tuples then A X B will have ‘ n*m ‘ tuples.
11
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Relational calculus in RDBM is referring to the non-procedural query language that emphasizes on the
concept of what to for the data management rather how to do those. The relational calculus provides
descriptive information about the queries to achieve the required result by using mathematical predicates
calculus notations. It is an integral part of the relational data model. The relational calculus in DBMS uses
specific terms such as tuple and domain to describe the queries. Some of the other related common
terminologies for relational calculus are variables, constant, Comparison operators, logical connectives, and
quantifiers. It creates the expressions that are also known as formulas with unbound formal variables.
Types of Relational Calculus in DBMS
In this section, we will discuss the types of relational calculus in DBMS based on the terms and process of the
mathematical description of queries functionalities. Tuple and domain are the major components of
relational calculus. A result tuple is an assignment of constants to these
Variables that make the formula evaluate to be true. There are two types of relational calculus available in
DBMS
• Tuple relational calculus (TRC)
• Domain relational calculus (DRC)
Both the types of relational calculus are semantically similar for operating in DBMS data retrieval definitions.
We will discuss each type of relational calculus with some database table examples to represent the syntax
and its uses.
TRC
Tuple relational calculus works on filtering the tuples based on the specified conditions.TRC is the variable
range over the tuples and is a type of simple subset of the first-order logic.TRC considers tuples as equal
status as variables, and field referencing can be used to select the tuple parts. It is represented using letter ‘T’
and conditions with the pipe symbol and enclosing curly braces.
Syntax of TRC:
{T | Conditions)
The TRC syntax supports to denote the Table names or relation names, defining the tuple variables, and the
column names. It uses the ‘.’ operator symbol to specify the column names with the table name.
TRC specifies the relation names with the Tuple variable name such as ’T’. Syntax of Relation definition in
TRC:
Relation(T)
For example, if the Product is the relation name, it can be denoted as Product(T). Similarly, TRC has the
provision to specify the conditions. The condition is applicable for a particular attribute or the column.
For instance, if the data need to be represented for the particular product id of value 10, it can be denoted as
T.product_id=10, where T is the tuple variable that represents the row of the table.
Let us assume the Product table in the database as follows:
12
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
12 Existing TV Cabinet $77
Now to represent the relational calculus to return the product name that has the product id value as 10 from
the product table, it can be denoted as with the tuple variable T.
T.Product Name | Product(T) AND T.Product_id = 10
This relational calculus predicate describes what to do for getting the resultant tuple from the database. The
result of the tuple relational calculus for the Product table will be:
10 TV Unit 2
DRC
The domain regional calculus works based on the filtering of the domain and the related attributes.DRC is the
variable range over the domain elements or the filed values. It is a type of simple subset of first-order logic. It
is domain-dependent compared to TRC is tuple dependent. In DRC the formal variables are explicit for the
relational calculus representations. The domain attributes in DRC can be represented as C1, C2,…, Cn and the
condition related to the attributes can be denoted as the formula defining the condition for fetching the F(C1,
C2, …Cn )
Syntax of DRC in DBMS
{c1, c2,...,cn| F(c1, c2,... ,cn)}
Let us assume the same Product table in the database as follows:
DRC for the product name attribute from the Product table needs where the product id is 10, It will be
demoted as:
{< Product Name, Product_id> | ∈ Product ∧ Product_id> 10}
The result of the domain relational calculus for the Product table will be
10 TV Unit 2
Some of the commonly used logical operator notations for DRC are ∧ for AND,∨ for OR, and ┓ for NOT.
Similarly, the mathematical symbol ∈ refers to the relation “is an element of” or known as the set
membership.
13
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
➢ SQL stands for Structure Query Language it is used for storing and managing data in
relational database management system.
➢ It is standard language for relational database system. It enables a user to create, read, update
and delete relational databases and tables.
➢ All the RDBMS like MYSQL, Oracle, MA access and SQL Server use SQL as their standard
database language.
➢ SQL allows users to Query the database in a number of ways using statements like common
English.
Rules: SQL follows following rules
15
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
• Tables with multiple columns, and each column contains its names and datatypes.
• The given diagram is an example of a database schema it contains three tables, their
data types. This also represents the relationships between the tables and primary keys
as well as foreign keys.
SQL Commands:
SQL commands are categorized into three types.
2. Data Manipulation Language (DML): used to update, store and retrieve data from tables.
3. Data Control Language (DCL): used to control the access of database created using DDL and
DML.
Every column is required to have a name and data type in the database table.
16
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
SQL DATA
TYPES
1. BINARY DATATYPES:
There are three types of binary data types which are given below
DATA TYPE DESCRIPTION
2. NUMERIC DATATYPE:
DATA TYPE FROM TO DESCRIPTION
5. STRING DATATYPE:
DATA TYPE DESCRIPTION
17
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Char It has a maximum length of 8000 characters. It contains fixed-length non-
Unicode characters.
Varchar It has a maximum length of 8000 characters. It contains variable-length
non-Unicode characters.
Text It has a maximum length of 2,147,483,647 characters. It contains variable-
length non-Unicode characters.
1. Create table: SQL create table is used to create a table in the database. To define the table, you
should define the name of the table and also define its column and column‟s data type.
SYNTAX:
“column2” “datatype”,
….
“column N” “datatype”);
EXAMPLE:
SQL > create table employee (emp_id int, emp_name varchar (25), phone_no int,
address char (30));
• If you create the table successfully, you can verify the table by looking at the message by the
sql server. else you can use DESC command as follows
18
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
2. ALTER TABLE:
SYNTAX:
EXAMPLE:
3. DROP TABLE:
SYNTAX :
EXAMPLE:
1. Insert:
SQL insert statement is a sql query. It is used to insert a single multiple records in a table.
Syntax:
19
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
NAME ID CITY
Alekhya 501 Hyderabad
Deepti 502 Guntur
Ramya 503 Nellore
2. Update:
➢ The SQL Commands update are used to modify the data that is already in the database.
➢ SQL Update statement is used to change the data of records held by tables which rows is to
be update, it is decided by condition to specify condition, we use “WHERE” clause.
➢ The update statement can be written in following form:
Syntax:
Update table_name set column_name=expression where condition;
Example:
Let‟s take an example: here we are going to update an entry in the table.
NAME ID CITY
Alekhya 501 Hyderabad
Deepti 502 Guntur
Rasi 503 Nellore
3. Delete:
➢ The SQL delete statement is used to delete rows from a table.
➢ Generally, delete statement removes one or more records from a table.
Syntax:
Example:
20
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
NAME ID CITY
Deepti 502 Guntur
Rasi 503 Nellore
2.15 Basic SQL querying (select and project) using where clause:
➢ The following are the various SQL clauses:
SQL Clause
1. Group by:
➢ SQL group by statement is used to arrange identical data into groups.
➢ The group by statement is used with the SQL select statement.
➢ The group by statement follows the WHERE clause in a SELECT statement and precedes the
ORDER BY clause.
Syntax:
Select column from table_name where column group by column, order by
column;
Example:
➢ Select company count (*) from product group by company;
21
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Output:
Com 1 2
Com 2 3
Com 3 5
2. Having clause:
➢ Having clause is used to specify a search condition for a group or an aggregate.
Having clause is used in a group by clause, if you are not using group by clause then you can
use having function like a where clause.
Syntax:
Select column1, column2 from table_name
Where conditions
Having conditions
Example:
➢ select company count (*) from product
Group by company
Output:
Com 3 5
Com 2 2
3. Order by clause:
The order by clause sorts the result _set in ascending or descending order.
Syntax:
Where condition
Sample table:
22
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Example:
Output:
NAME ID CITY
Alekhya 501 Hyderabad
Deepti 502 Guntur
Rasi 503 Nellore
Syntax:
Select column1, column2, …………column from table_name where[condition];
= Equal to
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
<> Not equal to
SQL operators:
➢ SQL statements generally contain some reserved words or characters that are used to
perform operations such as arithmetic and logical operations etc. Their reserved words are
known as operators.
+ Addition
- Subtraction
/ Division
* Multiplication
23
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
% modulus
1. Addition (+):
It is used to perform addition operation on data items.
Sample table:
EMP_ID EMP_NAME SALARY
1 Alex 25000
2 John 55000
3 Daniel 52000
4 Sam 12312
Output:
EMP_ID EMP_NAME SALARY SALARY+100
1 Alex 25000 25100
2 John 55000 55100
3 Daniel 52000 52100
4 Sam 12312 12412
➢ Here we have done addition of 100 to each emp‟s salary.
2. Subtraction (-):
➢ It is used to perform subtraction on the data items.
Example:
Select emp_id, emp_name, salary, salary-100 as “salary-100” from
subtraction;
EMP_ID EMP_NAME SALARY SALARY-100
1 Alex 25000 24900
2 John 55000 54900
3 Daniel 52000 51900
4 Sam 90000 89900
Here we have done subtraction of 100 for each emp‟s salary.
3. Division (/):
➢ The division function is used to integer division (x is divided by y).an integer value is
returned.
Example:
➢ Select emp_id, emp_name, salary, salary/100 as “salary/100” from
division;
24
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
4. Multiplication (*):
➢ It is used to perform multiplication of data items.
➢ Select emp_id, emp_name, salary, salary*100 as “salary*100” from
multiplication;
5. Modulus (%):
➢ It is used to get remainder when one data is divided by another.
➢ Select emp_id, emp_name, salary, salary%25000 as “salary%25000” from
modulus;
Output:
EMP_ID EMP_NAME SALARY SALARY%25000
1 Alex 25000 0
2 John 55000 5000
3 Daniel 52000 2000
4 Sam 90000 15000
➢ Here we have done modulus operation to each emp‟s salary.
➢ The following example finds all employees where salaries are greater than the 5000 and less
than 7000.
➢ Select first_name, last_name, salary from employees where
salary>5000 AND salary<7000 order by salary;
Output:
FIRST_NAME LAST_NAME SALARY
John Wesley 6000
Eden Daniel 6000
Luis Popp 6900
Shanta Suji 6500
25
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
2. ALL:
The ALL operator compares a value to all values in another value set.
➢ The following example finds all employees whose salaries are greater than all salaries of
employees.
EX:
select first_name, last_name, salary from employees where salary>=ALL
(select salary from employees where department_id =8) order by salary
DESC;
Output:
FIRST_NAME LAST_NAME SALARY
Steven King 24000
John Russel 17000
Neena Kochhar 14000
3. ANY:
The ANY operator compares a value to any value in a set ascending to condition.
The following example statement finds all employees whose salaries are greater than the average
salary of every department.
EX:
select first_name, last_name, salary from employees where salary >ANY
(select avg (salary) from employees‟ group by department_id) order by
first_name, last_name;
Output:
FIRST_NAME LAST_NAME SALARY
Alexander Hunold 9000.00
Charles Johnson 6200.00
David Austin 4800.00
Eden Flip 9000.00
4. Between:
➢ The between operator searches for values that are within a set of values.
➢ For example, the following statement finds all employees where salaries are between 9000
and 12000.
EX:
Output:
FIRST_NAME LAST_NAME SALARY
Alexander Hunold 9000.00
Den Richards 10000.00
Nancy Prince 12000.00
26
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
5. IN:
➢ The IN operator compares a value to list of specified values. The IN operator return true if
compared value matches at least one value in the list.
➢ The following statement finds all employees who work in department _id 8 or 9.
EX:
Output:
FIRST_NAME LAST_NAME DEPARTMENT_ID
John Russel 8
Jack Livingstone 8
Steven King 9
Neena Kochhar 9
6. Exists:
➢ The EXISTS operator tests if a sub query contains any rows.
➢ For example, the following statement finds all employees who have dependents.
➢ select first_name, last_name from employees where EXISTS (select 1
from dependent d where d.employee_id=e.employee_id);
FIRST_NAME LAST_NAME
Steven King
Neena Kochhar
Alexander Hunold
Tables: Tables are the basic structure used to store data in a relational database.
• They consist of rows and columns, where each row represents a record and each column
represents a specific attribute or field of the data.
• Tables are defined with a schema that specifies the name of the table, the names and data
types of its columns, and any constraints or rules that apply to the data.
• Example:
CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, FirstName VARCHAR(50),
LastName VARCHAR(50), Age INT, DepartmentID INT );
Views: Views are virtual tables that are defined by a SQL query.
• They do not store data themselves but rather provide a way to present data from one or more
tables in a specific way.
• Views can be used to simplify complex queries, provide a level of security by restricting
access to certain columns or rows, or to provide a customized view of the data to different
users or applications.
• Example:
CREATE VIEW EmployeeNames AS SELECT FirstName, LastName FROM Employees;
27
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Indexes: Indexes are data structures that improve the speed of data retrieval operations on a database table.
• They are created on one or more columns of a table and store a sorted copy of the data in
those columns, along with pointers to the actual rows in the table.
• Indexes speed up SELECT queries by allowing the database to quickly locate rows based on
the values in the indexed columns.
• However, they can also slow down data modification operations (such as INSERT, UPDATE,
and DELETE) because the indexes need to be updated whenever the data in the indexed
columns changes.
• Example:
CREATE INDEX idx_LastName ON Employees(LastName);
SQL joins are used to combine rows from two or more tables based on a related column between them.
They are fundamental in database query operations and allow for the retrieval of data from multiple tables
in a single result set. Here's an overview of the main types of SQL joins:
• INNER JOIN
• LEFT JOIN
• RIGHT JOIN
• FULL JOIN
• NATURAL JOIN
Consider the two tables below as follows:
Student
StudentCourse
28
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
The simplest Join is INNER JOIN.
A. INNER JOIN
The INNER JOIN keyword selects all rows from both the tables as long as the condition is satisfied. This
keyword will create the result-set by combining all rows from both the tables where the condition satisfies
i.e value of the common field will be the same.
Syntax:
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
INNER JOIN table2
ON table1.matching_column = table2.matching_column;
B. LEFT JOIN
This join returns all the rows of the table on the left side of the join and matches rows for the table on the
right side of the join. For the rows for which there is no matching row on the right side, the result-set will
contain null. LEFT JOIN is also known as LEFT OUTER JOIN.
Syntax:
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
C. RIGHT JOIN
RIGHT JOIN is similar to LEFT JOIN. This join returns all the rows of the table on the right side of the join
and matching rows for the table on the left side of the join. For the rows for which there is no matching row
on the left side, the result-set will contain null. RIGHT JOIN is also known as RIGHT OUTER JOIN.
Syntax:
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
30
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
D. FULL JOIN
FULL JOIN creates the result-set by combining results of both LEFT JOIN and RIGHT JOIN. The result-set
will contain all the rows from both tables. For the rows for which there is no matching, the result-set will
contain NULL values.
Syntax:
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
FULL JOIN table2
ON table1.matching_column = table2.matching_column;
32
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Unions, intersections, and minus (or EXCEPT) are set operations used in SQL to combine or compare the
results of two or more queries. Here's a brief overview of each:
1. UNION:
• The UNION operator is used to combine the results of two or more SELECT statements into a
single result set.
• It removes duplicate rows from the combined result set.
• Syntax:
2. INTERSECT:
• The INTERSECT operator returns the common rows between two SELECT statements.
• It only includes rows that exist in both result sets.
• Syntax:
Cursor in SQL
In SQL, a cursor is a temporary workstation that is allocated by the database server during the execution of a
statement.
It is a database object that allows us to access data of one row at a time. This concept of SQL is useful when
the user wants to update the rows of the table one by one.
The cursor in SQL is the same as the looping technique of other programming languages. The collection of
tuples held by the cursor is known as the active set.
In SQL database systems, users define the cursor using DECLARE statement and take the SELECT statement
as the parameter, which helps in returning the set of rows.
In this SQL article, we will learn about the types of a cursor, the life cycle of a cursor, syntax of a cursor, and
the implementation of a cursor.
1. Implicit Cursor
2. Explicit Cursor
33
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Implicit Cursor
These types of cursors are generated and allocated by the SQL server when the system performs INSERT,
DELETE, and UPDATE operations on SQL queries.
An implicit cursor is also created by the system when the SELECT query selects the single row.
Explicit Cursor
These types of cursors are created by the user using the SELECT query.
An explicit cursor holds multiple records but processes a single row at a time. It uses the pointer, which
moves to another row after reading one row.
It is basically used for gaining extra control over the temporary workstation.
The life cycle of the cursor is described into the following five stages:
1. Declare a Cursor
2. Open Cursor
3. Fetch Data from Cursor
4. Close Cursor Connection
5. Deallocate cursor
1. Declare a Cursor
First, we have to declare the cursor by using the following SQL syntax:
In this syntax, we have to specify the name and data type of the cursor just after the DECLARE keyword. After
that, we have to write the SELECT statement, which defines the result set for the cursor.
2. Open Cursor
It is the second stage that opens the cursor for storing the data retrieved from the result set. We can open the
cursor by using the following SQL syntax:
1. OPEN Cursor_Name;
34
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
3. Fetch Cursor
It is the third stage in the cursor life cycle that fetches the rows for performing the insertion, deletion, and
updation operations on the currently active tuple in the cursor.
Following are the six options that are used in syntax for fetching data from the cursor:
i. FIRST: This option allows the system to access only the first record from the cursor table. The syntax for
the FIRST option is given below:
ii. LAST: This option allows the system to access only the last record from the cursor table. The syntax for the
LAST option is as follows:
iii. NEXT: This method allows the system to access the data in the forward direction from the cursor table. It
is the default option. The syntax of this method is as follows:
iv. PRIOR: This method allows the system to access the data in the backward direction from the cursor table.
The syntax of this option is as follows:
v. ABSOLUTE n: This method allows the system to access the data of the exact nth row from the cursor table.
The syntax of this option is mentioned below:
vi. RELATIVE n: This method allows the system to access the data in both incremental and decremental
processes. The syntax of this option is mentioned below:
4. Close Cursor
It is the fourth stage in the process of the cursor. When we complete the work with the cursor, we have to
close the cursor in this stage. We can close the cursor in SQL by using the following query:
CLOSE Cursor_Name;
5. Deallocate Cursor
It is the last and fifth stage of the cursor life cycle. In this part, we have to erase the definition of the cursor
and discharge all the system resources combined with the cursor.
DEALLOCATE My_Cursor_Name
35
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
DELIMITER //
CREATE PROCEDURE PrintEmployeeDetails()
BEGIN
-- Declare variables for cursor
DECLARE emp_id INT;
DECLARE emp_first_name VARCHAR(50);
DECLARE emp_department VARCHAR(50);
36
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
CALL PrintEmployeeDetails();
37
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Procedures : Procedures are stored programs in SQL/PL SQL that can contain multiple SQL and procedural
statements. They are used to group and encapsulate a series of SQL statements into a single unit, which can
then be executed on demand. Here's an overview of procedures in SQL/PL SQL:
Creating a Procedure:
In SQL, you can create procedures using the CREATE PROCEDURE statement.
Syntax:
CREATE PROCEDURE procedure_name
[ (parameter_list) ]
AS
BEGIN
-- Procedure body (SQL and procedural statements)
END;
Parameters:
Procedures can have input parameters, output parameters, or both.
Input parameters are used to pass values into the procedure.
Output parameters are used to return values from the procedure.
Syntax:
CREATE PROCEDURE procedure_name
(parameter1 datatype, parameter2 datatype, ...)
AS
BEGIN
-- Procedure body
END;
Executing a Procedure:
Once a procedure is created, it can be executed using the EXECUTE or EXEC statement.
Syntax:
EXEC procedure_name;
Example:
Below is a simple example of a procedure that takes two input parameters (a and b) and returns their sum:
CREATE PROCEDURE AddNumbers
@a INT,
@b INT
AS
BEGIN
DECLARE @sum INT;
SET @sum = @a + @b;
PRINT 'The sum is ' + CAST(@sum AS VARCHAR);
END;
DELIMITER //
DELIMITER ;
38
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
CALL GetEmployeesByDepartment('HR');
2. Stored Procedure Example 2 - Calculate Total Order Amount: This procedure calculates
the total order amount for a given order ID from the Orders table.
DELIMITER //
DELIMITER ;
39
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
• Triggers can be fired based on various events, including INSERT, UPDATE, DELETE, or even
DDL statements.,k,.m,,.m.,.,.,,.;………..
• You specify the event that triggers the execution of the trigger in the CREATE TRIGGER
statement.
4. Trigger Timing:
• Triggers can be fired either before or after the event that triggers them.
• BEFORE triggers are commonly used for validation or modification of data before it is
inserted, updated, or deleted.
• AFTER triggers are often used for logging, auditing, or other actions that occur after data
modification.
5. Trigger Body:
• The trigger body contains SQL and procedural statements that define what action should be
taken when the trigger fires.
• The trigger body can include conditionals, loops, and other procedural constructs to perform
complex logic.
6. Accessing OLD and NEW Values:
• Within the trigger body, you can access the OLD and NEW values of the affected rows.
• OLD values represent the values before the triggering event, while NEW values represent the
values after the triggering event.
7. Dropping a Trigger:
• Triggers can be dropped using the DROP TRIGGER statement.
• Syntax:
EXE:
DELIMITER //
DELIMITER ;
40
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
2.19 SQL FUNCTIONS (Date & Time, Numeric, Aggregate, String conversions):
41
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Output: 05-DEC-2021.
ADD_MONTHS: This function returns a date after adding data with specified no of months.
Output: 31-MAR-17.
Output: 05-MAR-22.
Output: 05-DEC-2021.
NEXT_DAY: This function represents both day and date and returns the day of the next given day.
Output: 07-DEC-21.
Output: 31-DEC-21.
42
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Output: -4.
ROUND: It gives the nearest value or round off value for the argument pass. (or) It returns a date
rounded to a specific unit of measure.
Output: 01-JAN-22.
TRUNC: This function returns the date with the time(co-efficient) portion of the date truncated to
the unit specified.
Output: 01-DEC-21.
TO_DATE: This function converts date which is in the character string to a date value.
Output: 01-JAN-17.
Output: 05 12 2021.
LEAST: This function displays the oldest date present in the argument list.
Output: 01-MAR-21.
GREATEST: This function displays the latest date present in the argument list.
Output: 28-DEC-21.
1. Count ()
2. Sum ()
3. Avg ()
43
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
4. Max ()
5. Min ()
From table_name
Where condition);
2. Sum (): It will add/ sum all the column values in the query.
From table_name
Where condition);
3. Avg (): Avg function used to calculate average values of the set of rows.
From table_name
Where condition);
4. Max (): This function is used to find maximum value from the set of values.
From table_name
Where condition);
5. Min (): This function is used to find minimum value from the set of values.
From table_name
Where condition);
44
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
Numeric functions are used to perform operations on numbers and return numbers.
OUTPUT: 243.5
4. CEIL (): It returns the smallest integer value that is a greater than or equal to a number.
EX: select CEIL (25.77) from dual;
OUTPUT: 26
45
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
5. FLOOR (): It returns the largest integer value that is a less than or equal to a number.
EX: select FLOOR (25.75) from dual;
OUTPUT: 25
6. TRUNCATE (): This does not work for SQL server. It returns the truncated to 2 places right of the
decimal point.
EX: select TRUNCATE (7.53635, 2) from dual;
OUTPUT: 7.53
7. MOD (): It returns the remainder when two numbers are divided.
EX: select MOD (55,2) from dual;
OUTPUT: 1.
8. ROUND (): This function rounds the given value to given number of digits of precision.
EX: select ROUND (14.5262,2) from dual;
OUTPUT: 14.53.
9. POWER (): This function gives the value of m raised to the power of n.
EX: select POWER (4,9) from dual;
OUTPUT: 262144.
10. SQRT (): This function gives the square root of the given value n.
EX: Select SQRT (576) from dual;
OUTPUT: 24.
11. LEAST (): This function returns least integer from given set of integers.
OUTPUT: 1.
12. GREATEST (): This function returns greatest integer from given set of integers.
OUTPUT: 22
46
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
String Functions are used to perform an operation on input string and return the output string.
Following are the string functions
1. CONCAT (): This function is used to add two words (or) strings.
3. LOWER (): This function is used to convert the given string into lowercase.
OUTPUT: database
4. UPPER (): This function is used to convert the lowercase string into uppercase.
OUTPUT: DATABASE
5. LPAD (): This function is used to make the given string of the given size by adding the given symbol.
OUTPUT: 00system
6. RPAD (): This function is used to make the given string as long as the given size by adding the given
symbol on the right.
OUTPUT: system00
7. LTRIM (): This function is used to cut the given substring from the original string.
47
DATABASE MANAGEMENT SYSTEMS UNIT – II : RELATIONAL MODEL & SQL
OUTPUT: base
8. RTRIM (): This function is used to cut the given substring from the original string.
OUTPUT: data.
9. INITCAP (): This function returns the string with first letter of each word starts with uppercase.
10. LENGTH (): Tis function returns the length of the given string.
OUTPUT: 11.
11. SUBSTR (): This function returns a portion of a string beginning at the character position.
OUTPUT: AM.
12. TRANSLATE (): This function returns a string after replacing some set of characters into another set.
48