RDBMS Lab Record-IV Sem-1
RDBMS Lab Record-IV Sem-1
2023 -2024
Name:
Class:
Subject:
Dr. SNS RAJALAKSHMI COLLEGE OF ARTS & SCIENCE
(AUTONOMOUS)
Re-accredited with ‘A+’ Grade by NAAC,
Recognized by UGC & Approved by AICTE, New Delhi and
Affilicated to Bharathiar University,
COIMBATORE-641049
Mr./Ms.
Register Number: -
Submitted for B.Sc CS(AI & DS) Degree Fourth Semester Practical
Examination heldon:_______________
3 Aggregate Functions
4 Functions
5 SQL Joins
6 Sub Queries
9 Exception Handling
10 Triggers
ExNo:1(A)
1. DDL Commands
Date:
AIM:
ALGORITHM:
1. DDL Commands
PROGRAM:
--Create Table
SQL> CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, FirstName
VARCHAR(50), LastName VARCHAR(50), Age INT, Department
VARCHAR(50));
Table created.
--Insert Data into Table
SQL> INSERT INTO Employees (EmployeeID, FirstName, LastName, Age,
Department)VALUES (1, 'John', 'Doe', 30, 'HR');
1 row created.
1 row created.
1 row created.
OUTPUT:
EmployeeID FirstName LastName Age Department
1 John Doe 30 HR
2 Jane Smith 28 IT
3 Bob Johnson 35 Finance
--Table Alter
SQL> ALTER TABLE Employees ADD Email VARCHAR(100);
Table altered.
SQL> SELECT * FROM Employees;
---TRUNCATE TABLE
SQL> TRUNCATE TABLE Employees;
Table truncated.
no rows selected
Table dropped.
ExNo:1(B)
2. DML Commands
Date:
AIM:
ALGORITHM:
1. DML Commands
PROGRAM:
--Create Table
Table created.
1 row created.
1 row created.
SQL> INSERT INTO Students (StudentID, FirstName, LastName, Age, Grade) values
(3, 'Charlie', 'Brown', 21, 'C');
1 row created.
1 Alice Johnson 20 A
2 Bob Smith 22 B
3 Charlie Brown 21 C
--Update Table
SQL> UPDATE Students
2 SET Grade = 'A'
3 WHERE StudentID = 2;
1 row updated.
SQL> SELECT * FROM Students;
1 Alice Johnson 20 A
2 Bob Smith 22 A
3 Charlie Brown 21 C
1 row created.
1 Alice Johnson 20 A
2 Bob Smith 22 A
3 Charlie Brown 21 C
4 David Williams 23 B
-- DELETE
SQL> DELETE FROM Students
2 WHERE StudentID = 3;
1 row deleted.
1 Alice Johnson 20 A
2 Bob Smith 22 A
4 David Williams 23 B
SQL> UPDATE Students
2 SET AGE = 25
3 WHERE StudentID = 1;
1 row updated.
1 Alice Johnson 25 A
2 Bob Smith 22 A
4 David Williams 23 B
ExNo:2
SQL SPECIAL
Date: OPERATORS
AIM:
ALGORITHM:
2. SQL SPECIAL OPERATORS
PROGRAM:
--Create Table
Table created.
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
-
- SELECT using IN operator
SQL> SELECT * FROM Products WHERE Price BETWEEN 100.00 AND 500.00;
no rows selected
AIM:
ALGORITHM:
3. AGGREGATE FUNCTIONS
PROGRAM:
-- CREATE TABLE
SQL> CREATE TABLE Sales ( SaleID INT PRIMARY KEY, ProductName
VARCHAR(50), Quantity INT, Price DECIMAL(8, 2));
Table created.
-- INSERT INTO
SQL> INSERT INTO Sales (SaleID, ProductName, Quantity, Price)
2 VALUES (1, 'Laptop', 2, 1200.00);
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
TOTALSALES
TOTALQUANTITY TOTALREVENUE
13 2430
AVERAGEPRICE
486
MINPRICE
80
MAXPRICE
1200
ExNo:4
Date: FUNCTIONS
AIM:
ALGORITHM:
4. FUNCTIONS
PROGRAM:
-- CREATE TABLE
SQL> CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY,
FirstName VARCHAR(50), LastName VARCHAR(50), Salary DECIMAL(10, 2));
Table created.
-- INSERT INTO
SQL> INSERT INTO Employees (EmployeeID, FirstName, LastName, Salary)
VALUES (1, 'John', 'Doe', 50000.50);
1 row created.
1 row created.
1 row created.
1 row created.
ROUNDEDSALARY ABSOLUTESALARY
50000.5 50000.5
60000.7 60000.75
75000.2 75000.25
90000.2 90000.25
-- SELECT with custom function using CASE
SQL> SELECT FirstName, LastName, Salary, CASE
WHEN Salary < 60000 THEN 'Low' WHEN Salary >= 60000 AND Salary < 80000
THEN 'Medium' ELSE 'High' END AS SalaryCategory FROM Employees;
AIM:
ALGORITHM:
5. SQL JOINS
PROGRAM:
--Table Create
SQL> CREATE TABLE States ( StateID INT PRIMARY KEY, StateName
VARCHAR(50) );
Table created.
Table created.
1 row created.
1 row created.
SQL> INSERT INTO States (StateID, StateName) VALUES (3, 'Tamil Nadu');
1 row created.
SQL> INSERT INTO Cities (CityID, CityName, StateID) VALUES (101, 'Mumbai', 1);
1 row created.
SQL> INSERT INTO Cities (CityID, CityName, StateID) VALUES (102, 'Pune', 1);
1 row created.
SQL> INSERT INTO Cities (CityID, CityName, StateID) VALUES (103, 'Ahmedabad', 2);
1 row created.
SQL> INSERT INTO Cities (CityID, CityName, StateID) VALUES (104, 'Surat', 2);
1 row created.
SQL> INSERT INTO Cities (CityID, CityName, StateID) VALUES (105, 'Chennai', 3);
1 row created.
SQL> INSERT INTO Cities (CityID, CityName, StateID) VALUES (106, 'Coimbatore', 3);
1 row created.
-- INNER JOIN
SQL> SELECT Cities.CityName, States.StateName FROM Cities INNER JOIN States
ON Cities.StateID = States.StateID;
CITYNAME STATENAME
- -
Mumbai Maharashtra
Pune Maharashtra
Ahmedabad Gujarat
Surat Gujarat
6 rows selected.
-- LEFT JOIN
SQL> SELECT Cities.CityName, States.StateName FROM Cities LEFT JOIN States ON
Cities.StateID = States.StateID;
CITYNAME STATENAME
-
Mumbai Maharashtra
Pune Maharashtra
Ahmedabad Gujarat
Surat Gujarat
CITYNAME STATENAME
Mumbai Maharashtra
Pune Maharashtra
Ahmedabad Gujarat
Surat Gujarat
6 rows selected.
CITYNAME STATENAME
-
Mumbai Maharashtra
Pune Maharashtra
Ahmedabad Gujarat
Surat Gujarat
6 rows selected.
ExpNo:6
SUB QUERIES
Date:
AIM:
ALGORITHM:
6. SUB QUERIES
PROGRAM
-- CREATE TABLES
SQL> CREATE TABLE Countries ( CountryID INT PRIMARY KEY, CountryName
VARCHAR(50) );
SQL> CREATE TABLE Cities ( CityID INT PRIMARY KEY, CityName VARCHAR(50),
CountryID INT, Population INT, FOREIGN KEY (CountryID) REFERENCES
Countries(CountryID) );
1 row created.
SQL> INSERT INTO Countries (CountryID, CountryName) VALUES (2, 'United Kingdom');
1 row created.
1 row created.
1 row created.
1 row created.
1 row created.
SQL> INSERT INTO Cities (CityID, CityName, CountryID, Population) VALUES
(104, 'Los Angeles', 1, 3980000);
1 row created.
1 row created.
1 row created.
SQL> select * from Countries;
COUNTRYID COUNTRYNAME
1 United States
2 United Kingdom
3 India
COUNTRYNAME
-
India
ExpNo:7(A)
DCL & TCL
Date: COMMANDS
AIM:
ALGORITHM:
7. DCL COMMANDS
PROGRAM:
Table created.
-- INSERT DATA
SQL> INSERT INTO Students (StudentID, FirstName, LastName, Age, GPA)
VALUES (1, 'John', 'Doe', 20, 3.5);
1 row created.
1 row created.
1 row created.
--COMMAND:GRANT
SQL>GRANT SELECT ON employees TO username;
--INPUT:
SELECT * FROM employees;
--OUTPUT:
employee_id | employee_name | salary
+- -+
1 | John Doe | 50000.00
2 | Jane Smith | 60000.00
3 | Bob Johnson | 75000.00
--COMMAND:REVOKE
REVOKE SELECT ON employees FROM username;
ExpNo:7(B)
TCL COMMANDS
Date:
AIM:
ALGORITHM:
7. TCL COMMANDS
PROGRAM:
--Create TABLE:
SQL>CREATE TABLE products ( product_id INT PRIMARY KEY, product_name
VARCHAR(50), price DECIMAL(8, 2) );
SQL> BEGIN;
--INSERT VALUE:
SQL>INSERT INTO products (product_id, product_name, price) VALUES
(1, 'Laptop', 1200.00);
1 row created.
1 row created.
1 row created.
INPUT:
SQL> SELECT * FROM products;
SQL> COMMIT;
OUTPUT:
product_id product_name price
1 Laptop 1200
2 Smartphone 500
ExpNo:8
SEQUENCES AND VIEWS
Date:
AIM:
ALGORITHM:
8. SEQUENCES AND VIEWS
PROGRAM:
--Create Table
Table created.
1 row created.
1 row created.
1 row created.
--Sequence command
SQL> CREATE SEQUENCE emp_sequence
START WITH 1001 INCREMENT BY 1 NOCACHE NOCYCLE;
Sequence created.
1 row created.
View created.
SQL> SELECT * FROM EmployeeSummary;
AIM:
ALGORITHM:
9. EXCEPTION HANDLING
PROGRAM:
DECLARE
citizen citizen.id%type;
citizen_name citizen.name%type;
citizen_age citizen.age%type :=14;
firstexception EXCEPTION;
j NUMBER;
BEGIN
SELECT id, name INTO citizen_id, citizen_name
FROM citizen
WHERE age = citizen_age;
DBMS_OUTPUT.PUT_LINE ('Citizen id is: "|| citizen_id);
DBMS_OUTPUT.PUT_LINE ('Citizen name is: '|| citizen_name);
FOR j IN (SELECT * FROM CITIZEN) LOOP
IF j.ID = 8 THEN
RAISE firstexception;
END IF;
END LOOP;
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line ('No citizen detail found');
WHEN firstexception THEN
dbms_output.put_line ('Citizen with ID 8 already exist in table.');
WHEN others THEN
dbms_output.put_line ('Errors');
END;
/
Output:
No citizen detail
PL/SQL Procedure Successfully completed
Output:
Citizen id is: 1
Citizen name is: ZAKS
Citizen with ID 8 already exist in table.
PL/SQL Procedure Successfully completed
ExNo:10
TRIGGERS
Date:
AIM:
ALGORITHM:
10. TRIGGERS
PROGRAM:
Creating a Trigger:
CREATE OR REPLACE TRIGGER display_salary_changes
BEFORE DELETE OR INSERT OR UPDATE ON customers
FOR EACH ROW
WHEN (NEW.ID > 0)
DECLARE
sal_diff number;
BEGIN
sal_diff :=:NEW.salary - :OLD.salary;
dbms_output.put_line('Old salary: ' || :OLD.salary);
dbms_output.put_line(‘New salary: ' || :NEW.salary):
dbms_output.put_line(‘Salary difference: ' || sal_diff);
END;
/
Output:
Trigger created.
Triggering a Trigger
INSERT INTO CUSTOMERS (ID,NAME.AGE,ADDRESS,SALARY)
VALUES (7, 'Kriti', 22, 'HP’, 7500.00 );
Output:
Old salary:
New salary: 7500
Salary difference:
UPDATE customers
SET salary = salary + 500
WHERE id = 2;
Output:
Old salary: 1500
New salary: 2000
Salary difference: 500