Set-13
Fri Jun 07 2024 18:58:26 GMT+0000 (Coordinated Universal Time)
Saved by @exam123
1. PL/SQL Program to demonstrate Strings:
DECLARE
str1 VARCHAR2(50) := 'Hello';
str2 VARCHAR2(50) := 'World';
concatenated_str VARCHAR2(100);
BEGIN
-- Concatenation
concatenated_str := str1 || ' ' || str2;
DBMS_OUTPUT.PUT_LINE('Concatenated String: ' || concatenated_str);
-- Length
DBMS_OUTPUT.PUT_LINE('Length of str1: ' || LENGTH(str1));
-- Substring
DBMS_OUTPUT.PUT_LINE('Substring of concatenated_str: ' || SUBSTR(concatenated_str, 4, 5));
-- Uppercase
DBMS_OUTPUT.PUT_LINE('Uppercase of str1: ' || UPPER(str1));
-- Lowercase
DBMS_OUTPUT.PUT_LINE('Lowercase of str2: ' || LOWER(str2));
END;
2. DML Commands:
//INSERT: Adds new records to a table.
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
//UPDATE: Modifies existing records in a table.
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
//DELETE: Removes existing records from a table.
DELETE FROM table_name
WHERE condition;
//SELECT: Retrieves data from one or more tables.
SELECT column1, column2, ...
FROM table_name
WHERE condition;
3. Solutions for the provided relations and queries:
-- i. Create the given relations and insert at least 5 records into each relation
CREATE TABLE Employees (
EmployeeID NUMBER PRIMARY KEY,
FirstName VARCHAR2(50),
LastName VARCHAR2(50),
ProjectID NUMBER,
Salary NUMBER,
CONSTRAINT fk_projects FOREIGN KEY (ProjectID) REFERENCES Projects(ProjectID)
);
CREATE TABLE Projects (
ProjectID NUMBER PRIMARY KEY,
ProjectName VARCHAR2(50),
StartDate DATE,
EndDate DATE,
ManagerID NUMBER,
CONSTRAINT fk_employees FOREIGN KEY (ManagerID) REFERENCES Employees(EmployeeID)
);
-- ii. Find projects managed by employees in a specific department. (using nested queries)
SELECT *
FROM Projects
WHERE ManagerID IN (
SELECT EmployeeID
FROM Employees
WHERE DepartmentID = 'specific_department_id'
);
-- iii. Find projects where the manager's salary is higher than the overall average salary.
SELECT *
FROM Projects
WHERE ManagerID IN (
SELECT EmployeeID
FROM Employees
WHERE Salary > (SELECT AVG(Salary) FROM Employees)
);
-- iv. List all employees their names concatenating both FirstName & LastName
SELECT EmployeeID, FirstName || ' ' || LastName AS FullName
FROM Employees;
-- v. List employee First names contains at least 5 characters.
SELECT *
FROM Employees
WHERE LENGTH(FirstName) >= 5;
-- vi. Reallocate to another project whose salary is greater than 20K.
UPDATE Employees
SET ProjectID = 'new_project_id'
WHERE Salary > 20000;



Comments