[go: up one dir, main page]

0% found this document useful (0 votes)
4 views35 pages

Dbms Prac Ans

The document contains SQL commands for creating and managing various database tables such as 'dept', 'emp', 'proj', and 'workson', along with inserting data into these tables. It also includes triggers, procedures, and views for handling data operations and calculations. The document is structured in sections, each focusing on different aspects of database management.

Uploaded by

swarajyadav0618
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views35 pages

Dbms Prac Ans

The document contains SQL commands for creating and managing various database tables such as 'dept', 'emp', 'proj', and 'workson', along with inserting data into these tables. It also includes triggers, procedures, and views for handling data operations and calculations. The document is structured in sections, each focusing on different aspects of database management.

Uploaded by

swarajyadav0618
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

S1)

1.

2.

3.

4.
5.

S2)

1.

2.

3.
4.

5.
S3)

1.

2.

3.
4.

5.

S5)

1.
2.

3.

4.
5.

S6)

-- Creating the 'dept' table

CREATE TABLE dept (

deptno INT PRIMARY KEY,

dname VARCHAR(50),

mgreno INT

);

-- Creating the 'emp' table

CREATE TABLE emp (

eno INT PRIMARY KEY,

ename VARCHAR(50),

bdate DATE,

title VARCHAR(50),

salary DECIMAL(10,2),

deptno INT,

FOREIGN KEY (deptno) REFERENCES dept(deptno)

);

-- Creating the 'proj' table

CREATE TABLE proj (


pno INT PRIMARY KEY,

pname VARCHAR(50),

budget DECIMAL(10,2),

deptno INT,

FOREIGN KEY (deptno) REFERENCES dept(deptno)

);

-- Creating the 'workson' table

CREATE TABLE workson (

eno INT,

pno INT,

responsibility VARCHAR(50),

hours INT,

FOREIGN KEY (eno) REFERENCES emp(eno),

FOREIGN KEY (pno) REFERENCES proj(pno)

);

-- Inserting values into 'dept' table

INSERT INTO dept (deptno, dname, mgreno) VALUES

(1, 'D1', 100),

(2, 'D2', 200),

(3, 'D3', 300);

-- Inserting values into 'emp' table

INSERT INTO emp (eno, ename, bdate, title, salary, deptno) VALUES

(1, 'John', '1990-05-15', 'EE', 40000, 1),

(2, 'Jane', '1995-10-20', 'SA', 45000, 1),

(3, 'Mike', '1992-08-08', 'EE', 55000, 2),

(4, 'Sarah', '1998-03-01', 'Manager', 60000, 2),

(5, 'David', '1993-06-25', 'SA', 38000, 3),

(6, 'Emily', '1997-12-12', 'Manager', 70000, 3);


-- Inserting values into 'proj' table

INSERT INTO proj (pno, pname, budget, deptno) VALUES

(1, 'Project A', 150000, 1),

(2, 'Project B', 90000, 2),

(3, 'Project C', 120000, 2),

(4, 'Project D', 80000, 3),

(5, 'Project E', 200000, 3);

-- Inserting values into 'workson' table

INSERT INTO workson (eno, pno, responsibility, hours) VALUES

(1, 1, 'Developer', 40),

(2, 1, 'Manager', 30),

(3, 2, 'Developer', 20),

(4, 3, 'Manager', 25),

(5, 4, 'Developer', 15),

(6, 5, 'Manager', 35);

1.
2.

3.

4.
5.

S7}

CREATE TABLE dept (

dno INT PRIMARY KEY,

dname VARCHAR(50),

mgreno INT

);

CREATE TABLE emp (

eno INT PRIMARY KEY,

ename VARCHAR(50),

bdate DATE,

title VARCHAR(50),

salary DECIMAL(10, 2),

dno INT,

FOREIGN KEY (dno) REFERENCES dept(dno)

);

CREATE TABLE proj (

pno INT PRIMARY KEY,

pname VARCHAR(50),
budget DECIMAL(10, 2),

dno INT,

FOREIGN KEY (dno) REFERENCES dept(dno)

);

CREATE TABLE workson (

eno INT,

pno INT,

responsibility VARCHAR(50),

hours INT,

FOREIGN KEY (eno) REFERENCES emp(eno),

FOREIGN KEY (pno) REFERENCES proj(pno)

);

INSERT INTO dept (dno, dname, mgreno) VALUES

(1, 'Department A', 1001),

(2, 'Department B', 1002),

(3, 'Department C', 1003);

INSERT INTO emp (eno, ename, bdate, title, salary, dno) VALUES

(10001, 'John Doe', '1990-01-01', 'Manager', 5000, 1),

(10002, 'Jane Smith', '1995-05-10', 'Developer', 3000, 1),

(10003, 'Michael Johnson', '1992-08-15', 'Analyst', 4000, 2),

(10004, 'Emily Davis', '1997-03-20', 'Designer', 3500, 2),

(10005, 'Robert Brown', '1988-12-05', 'Tester', 3200, 3);

INSERT INTO proj (pno, pname, budget, dno) VALUES

(1, 'Project X', 80000, 1),

(2, 'Project Y', 60000, 2),

(3, 'Project Z', 40000, 3);


INSERT INTO workson (eno, pno, responsibility, hours) VALUES

(10002, 1, 'Coding', 20),

(10003, 1, 'Testing', 15),

(10004, 2, 'Designing', 10),

(10005, 2, 'Documentation', 8),

(10001, 3, 'Management', 40);

1.

2.

3.
4.

5.

S8)

-- Create the 'emp' table

CREATE TABLE emp (

eno INT PRIMARY KEY,

ename VARCHAR(50),

bdate DATE,
title VARCHAR(50),

salary DECIMAL(10, 2),

dno INT,

FOREIGN KEY (dno) REFERENCES dept(dno)

);

-- Create the 'proj' table

CREATE TABLE proj (

pno INT PRIMARY KEY,

pname VARCHAR(50),

budget DECIMAL(10, 2),

dno INT,

FOREIGN KEY (dno) REFERENCES dept(dno)

);

-- Create the 'dept' table

CREATE TABLE dept (

dno INT PRIMARY KEY,

dname VARCHAR(50),

mgreno INT

);

-- Create the 'workson' table

CREATE TABLE workson (

eno INT,

pno INT,

resp VARCHAR(50),

hours INT,

FOREIGN KEY (eno) REFERENCES emp(eno),

FOREIGN KEY (pno) REFERENCES proj(pno)

);
-- Insert values into 'emp' table

INSERT INTO emp (eno, ename, bdate, title, salary, dno)

VALUES

(1, 'John Doe', '1990-05-10', 'Manager', 5000.00, 1),

(2, 'Jane Smith', '1995-02-15', 'Consultant', 4000.00, 1),

(3, 'Michael Johnson', '1988-09-20', 'Analyst', 3000.00, 2),

(4, 'Emily Brown', '1992-11-30', 'Consultant', 4500.00, 2);

-- Insert values into 'proj' table

INSERT INTO proj (pno, pname, budget, dno)

VALUES

(1, 'Project A', 10000.00, 1),

(2, 'Project B', 15000.00, 2);

-- Insert values into 'dept' table

INSERT INTO dept (dno, dname, mgreno)

VALUES

(1, 'Consulting', 1),

(2, 'Production', 2);

-- Insert values into 'workson' table

INSERT INTO workson (eno, pno, resp, hours)

VALUES

(1, 1, 'Lead', 40),

(2, 1, 'Developer', 30),

(3, 2, 'Designer', 20),

(4, 2, 'Tester', 35);


1.

2.

3.
4.

5.

SELECT emp.*

FROM emp

JOIN workson ON emp.eno = workson.eno

JOIN proj ON workson.pno = proj.pno

JOIN dept ON proj.dno = dept.dno

WHERE proj.pname = 'Banking' AND dept.dname = 'Production' AND workson.hours = 120;

S9)

CREATE TABLE Employee (

employee_name VARCHAR(50) PRIMARY KEY,

street VARCHAR(100),

city VARCHAR(100)

);

CREATE TABLE Company (

company_name VARCHAR(100) PRIMARY KEY,

city VARCHAR(100)

);

CREATE TABLE Works (

employee_name VARCHAR(50),

company_name VARCHAR(100),

salary DECIMAL(10, 2),


FOREIGN KEY (employee_name) REFERENCES Employee(employee_name),

FOREIGN KEY (company_name) REFERENCES Company(company_name)

);

CREATE TABLE Manages (

employee_name VARCHAR(50),

manager_name VARCHAR(50),

FOREIGN KEY (employee_name) REFERENCES Employee(employee_name),

FOREIGN KEY (manager_name) REFERENCES Employee(employee_name)

);

1.

2.
3,

4.

5.

S10)

1.
2.

3.

5.
4.

S11)

-- 1) Create the Employee table

CREATE TABLE Employee (

EmployerId INT,

Lastname VARCHAR(50),

Firstname VARCHAR(50),

Middlename VARCHAR(50),

JobId INT,

ManagerId INT,

Hiredate DATE,

Salary INT,

DepartmentId INT

);

-- 2) Insert the records into the Employee table

INSERT INTO Employee (EmployerId, Lastname, Firstname, Middlename, JobId, ManagerId, Hiredate,
Salary, DepartmentId)

VALUES
(7369, 'Smith', 'Jon', 'Q', 667, 7902, '2021-12-17', 800, 10),

(7499, 'Allen', 'Kevin', '1', 670, 7698, '2022-02-20', 1600, 20),

(7505, 'Doyle', 'Jean', 'K', 671, 7839, '2023-04-04', 2850, 20),

(7505, 'Doyle', 'Lynn', 'S', 671, 7839, '2023-05-15', 2750, 30),

(7505, 'Doyle', 'Leslie', 'D', 671, 7839, '2023-06-10', 2200, 40),

(7505, 'Doyle', 'Cynthia', 'D', 670, 7698, '2022-02-22', 1250, 10),

(7506, 'Dennis', 'Baker', NULL, 7521, NULL, NULL, NULL, NULL);

1)

2.

3.
4.

CREATE VIEW Salary_Increment_View AS

SELECT EmployerId, Lastname, Firstname, Middlename, JobJd, ManagerJd, Hiredate, Salar * 1.1 AS
Salar, Department_id

FROM Employee;

5.

S12)

1. CREATE TABLE Animal (

id INT AUTO_INCREMENT,

name VARCHAR(50),

PRIMARY KEY (id)

);

INSERT INTO Animal (name) VALUES ('Cat'), ('Dog'), ('Elephant'), ('Lion');

2.
3.

4.

5.

S13)

Location (Location_Id, Regional_Group)

Department (Department_Id, Name, Location_Id)

Job (Job_Id, Function)

Employee (Employee_Id, Lastname, Firstname, Middlename, Job_Id, Manager_Id, Hiredate,


Salary, Department_Id)
1.

2.

3.

4.

5.
S14)

-- Create 'product' table

CREATE TABLE product (

product_id INT PRIMARY KEY,

product_name VARCHAR(255),

supplier_name VARCHAR(255),

unit_price DECIMAL(10, 2)

);

-- Create 'product_price_history' table

CREATE TABLE product_price_history (

product_id INT,

product_name VARCHAR(255),

supplier_name VARCHAR(255),

unit_price DECIMAL(10, 2),

updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

-- Create trigger to update 'product_price_history' table

CREATE TRIGGER update_price_history

AFTER UPDATE ON product

FOR EACH ROW

BEGIN

INSERT INTO product_price_history (product_id, product_name, supplier_name, unit_price)

VALUES (NEW.product_id, NEW.product_name, NEW.supplier_name, NEW.unit_price);

END;
S15)

create a table called "account" with columns "accno" and "amount" in SQL:

create a trigger on the "account" table that will check the new inserted amount before an
update and perform certain actions based on its value:

CREATE TRIGGER before_account_update

BEFORE UPDATE ON account

FOR EACH ROW

BEGIN

IF NEW.amount < 0 THEN

SET NEW.amount = 0;

ELSEIF NEW.amount > 100 THEN

SET NEW.amount = 100;

END IF;

END;

S16)

Procedure to find the maximum number from given three numbers:

PROCEDURE FindMaximumNumber(num1 INT, num2 INT, num3 INT)

BEGIN

DECLARE maxNum INT;

IF num1 >= num2 AND num1 >= num3 THEN

SET maxNum = num1;

ELSEIF num2 >= num1 AND num2 >= num3 THEN

SET maxNum = num2;

ELSE
SET maxNum = num3;

END IF;

SELECT maxNum AS MaximumNumber;

END;

create a table and insert values:

CREATE TABLE studentdata (

mark1 INT,

mark2 INT,

mark3 INT,

mark4 INT,

student_name VARCHAR(50)

);

INSERT INTO studentdata (mark1, mark2, mark3, mark4, student_name)

VALUES

(90, 85, 95, 92, 'John Doe'),

(78, 82, 80, 85, 'Jane Smith'),

(88, 90, 92, 87, 'Alice Johnson');

To list the average marks of each student, you can use the following query:

SELECT student_name, CalculateAverageMarks(mark1, mark2, mark3, mark4) AS


average_marks

FROM studentdata;
Function to calculate the average of marks:

S17)

-- Create a table to store student information

CREATE TABLE students (

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(50),

marks INT

);

-- Insert sample data

INSERT INTO students (name, marks) VALUES

('John', 85),

('Alice', 92),

('Bob', 78),

('Emily', 68),

('David', 95),
('Sarah', 87),

('Michael', 72),

('Emma', 90),

('Daniel', 83),

('Olivia', 79);

-- Create a procedure to calculate the grade

DELIMITER //

CREATE PROCEDURE calculate_grade()

BEGIN

DECLARE done INT DEFAULT FALSE;

DECLARE student_id INT;

DECLARE student_name VARCHAR(50);

DECLARE student_marks INT;

DECLARE cur CURSOR FOR SELECT id, name, marks FROM students;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN cur;

read_loop: LOOP

FETCH cur INTO student_id, student_name, student_marks;

IF done THEN

LEAVE read_loop;

END IF;

-- Calculate the grade based on marks

DECLARE student_grade CHAR(1);

IF student_marks >= 90 THEN

SET student_grade = 'A';

ELSEIF student_marks >= 80 THEN


SET student_grade = 'B';

ELSEIF student_marks >= 70 THEN

SET student_grade = 'C';

ELSEIF student_marks >= 60 THEN

SET student_grade = 'D';

ELSE

SET student_grade = 'F';

END IF;

-- Display the grade for each student

SELECT CONCAT('Student Name: ', student_name, ', Grade: ', student_grade) AS result;

END LOOP;

CLOSE cur;

END //

DELIMITER ;

-- Call the procedure to calculate grades

CALL calculate_grade();

S18)

-- Create the student table

CREATE TABLE student (

RollNo INT,

mark1 INT,

mark2 INT,

mark3 INT,

mark4 INT

);
-- Insert sample values

INSERT INTO student (RollNo, mark1, mark2, mark3, mark4)

VALUES (1, 80, 90, 75, 85),

(2, 70, 65, 80, 90),

(3, 85, 95, 70, 80);

-- Create the procedure

DELIMITER //

CREATE PROCEDURE CalculateAverage()

BEGIN

DECLARE done INT DEFAULT 0;

DECLARE rollNo INT;

DECLARE m1, m2, m3, m4 INT;

DECLARE cur CURSOR FOR SELECT RollNo, mark1, mark2, mark3, mark4 FROM student;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

OPEN cur;

read_loop: LOOP

FETCH cur INTO rollNo, m1, m2, m3, m4;

IF done = 1 THEN

LEAVE read_loop;

END IF;

-- Calculate average marks

DECLARE average DECIMAL(5,2);

SET average = (m1 + m2 + m3 + m4) / 4;

-- Display the result

SELECT CONCAT('Roll No: ', rollNo, ', Average Marks: ', average) AS Result;

END LOOP;
CLOSE cur;

END //

DELIMITER ;

-- Call the procedure

CALL CalculateAverage();

S20)

1. Create a stored procedure:


DELIMITER //

CREATE PROCEDURE FindOddEven(IN num INT)

BEGIN

DECLARE result VARCHAR(10);

IF num % 2 = 0 THEN

SET result = 'Even';

ELSE

SET result = 'Odd';

END IF;

SELECT result AS `Number Type`;

END //

DELIMITER ;

2. Call the stored procedure:


3. Create a function:
DELIMITER //

CREATE FUNCTION IsEven(num INT) RETURNS VARCHAR(10)

BEGIN

DECLARE result VARCHAR(10);

IF num % 2 = 0 THEN

SET result = 'Even';

ELSE

SET result = 'Odd';

END IF;

RETURN result;

END //

DELIMITER ;

You might also like