0% found this document useful (0 votes)
8 views44 pages

DBMS Manual

The document provides a comprehensive guide on creating and manipulating database objects using SQL, including commands for creating tables, altering structures, inserting, updating, and deleting data. It covers various SQL functions for data retrieval, sorting, and applying constraints like primary and foreign keys. Additionally, it includes practical examples for each command and function to illustrate their usage.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views44 pages

DBMS Manual

The document provides a comprehensive guide on creating and manipulating database objects using SQL, including commands for creating tables, altering structures, inserting, updating, and deleting data. It covers various SQL functions for data retrieval, sorting, and applying constraints like primary and foreign keys. Additionally, it includes practical examples for each command and function to illustrate their usage.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 44

DBMS

VSITR-IT
PRACTICAL-1

Creating and Manipulating Database objects and Applying


Constraints(DDL)
How to Create a Table:

Syntax:
CREATE TABLE table_name(
column_1 data_type(size),
column_2 data_type(size),
column_3 data_type(size),
column_3 data_type(size)
);

Example:
CREATE TABLE Student(
S_ID int;
S_FirstName varchar(25),
S_LastName varchar(25),
S_Semester int,
S_Department varchar(5),
S_PhoneNumber varchar(10),
S_Email_ID varchar(30),
S_City varchar(15),
S_State varchar(15)
);

To Check if the Table is Properly Created, we use DESCRIBE command:

Syntax: DESC table_name;

Example: DESC Student;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT

To make Changes in the Structure of the Table, we use ALTER command:

To Add a Column in the Table:

Syntax: ALTER TABLE table_name


ADD column_name data_type;

Example: ALTER TABLE Student


ADD S_Pincode int;

To Rename the Table:

Syntax:
ALTER TABLE table_name
RENAME TO new_table_name;

To Change the Datatype of a Column, we use MODIFY command:

Syntax: ALTER TABLE table_name


MODIFY column_name data_type;

Example: ALTER TABLE Student


MODIFY S_Pincode varchar(6);

To Rename a Column in the Table:

Syntax:
ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;

Example:
ALTER TABLE Student
RENAME COLUMN S_Pincode TO S_PCode;

To Drop a Column in the Table:

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
Syntax:
ALTER TABLE table_name
DROP COLUMN column_name;

Example:
ALTER TABLE Student
DROP COLUMN S_PCode;

To Delete All the Records from the Table, we use TRUNCATE command:

Syntax: TRUNCATE TABLE table_name;

Example: TRUNCATE TABLE Student;

NOTE : This will not Affect the Structure of the Table i.e., Table and its Columns will not be Deleted only the data
inside it will get Deleted.

To Delete the Table, we use DROP command:

Syntax: DROP TABLE table_name;

Example: DROP TABLE Student;

NOTE : This will Delete the whole Table along with its Columns and Data containing it.

To Create the PRIMARY_KEY on a Column when Creating the Table:

Syntax:
CREATE TABLE Student(
S_ID int PRIMARY KEY;
S_FirstName varchar(25),

S_LastName varchar(25),
S_Semester int,
S_Department varchar(5),
S_PhoneNumber int,
S_Email_ID varchar(20),
S_City varchar(10),
S_State varchar(10),

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
S_PCode varchar(6)
);

OR
Example:
CREATE TABLE Student(
S_ID int ;
S_FirstName varchar(25),
S_LastName varchar(25),
S_Semester int,

S_Department varchar(5),
S_PhoneNumber int,
S_Email_ID varchar(20),
S_City varchar(10),
S_State varchar(10),
PRIMARY KEY (S_ID)
);

To Create the PRIMARY_KEY on a column Using ALTER command:

Syntax:
ALTER TABLE table_name
ADD PRIMARY KEY (column_name);

Example:
ALTER TABLE Student
ADD PRIMARY KEY (S_ID);

To Create the FOREIGN_KEY on a column when Creating the Table:

Example:
CREATE TABLE Parents_Detail(
S_ID int,
S_FatherName varchar(25),
S_MotherName varchar(25),
F_PhoneNumber int,
M_PhoneNumber int,
FOREIGN KEY (S_ID) REFERENCES Student(S_ID)

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT

);

To Create the FOREIGN_KEY on a column Using ALTER command:

Syntax: ALTER TABLE table_name


ADD FOREIGN KEY (column_name)
REFERENCES parent_table(column_name);
Example: ALTER TABLE Parents_Detail
ADD FOREIGN KEY (S_ID)
REFERENCES Student (S_ID)
PRACTICAL-2

Manipulating Data with Database Objects (DML)


To Fetch Data from the Table, we use SELECT command:

Syntax:
SELECT column1,column2, .... FROM table_name;
OR
SELECT * FROM table_name;

NOTE: Here '*' indicates the All Columns of the Table.

Example:
SELECT S_ID, S_FirstName, S_LastName FROM Student;
OR
SELECT * FROM Student;

To Insert the Data into the Table:

To Insert the Data into the Specified Columns:

Syntax: INSERT INTO table_name


(column1,column2,column3, .....)
VALUES(value1,value2,value3, .....);

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
Example: INSERT INTO Student
(S_ID,S_FirstName,S_Lastname)
VALUES(1,'Jenish','Sorathiya');

To Insert the Data in All the Columns:

Syntax:
INSERT INTO table_name
VALUES(value1,value2,value3, .....);

Example:

INSERT INTO Student


VALUES (1,'Jenish','Sorathiya',3,'IT',90991588778,'[email protected]','Ahmedabad','Gujarat',382524),
(2,'Smit','Patadiya',1,'CE',9857416788,'[email protected]','Sarkhej','Maharashtra',387224),
(3,'Ayush','Maru',5,'CE',9099158877,'[email protected]','Ahmedabad','Gujarat',382524) ,
(4,'Manthan','Trivedi',3,'CSE',8098458417,'[email protected]','Gandhinagar','Gujarat',784291),
(5,'Ansh','Makwana',4,'IT',7999151457,'[email protected]','Vijapur','Gujarat',784198),
(6,'Raghav','Joshi',2,'CE',9854793279,'[email protected]','Rajkot','Tamil Nadu',748952),
(7,'Tushar','Surani',6,'CSE',7489145237,'[email protected]','Surat','Rajasthan',784196),
(8,'Om','Patel',7,'IT',8488814795,'[email protected]','Kalol','Orissa',741298),
(9,'Kavya','Suthar',7,'CE',7451892422,'[email protected]','Nagpur','Madhya Pradesh',621479),
(10,'Dev','Limbachiya',3,'CE',7841259644,'[email protected]','Sarghasan','Gandhinagar',382524);

To Modify the Specific Records/Rows of the Table, we use UPDATE command:

Syntax: UPDATE table_name


SET column1 = value1, column2 = value2, .....
WHERE condition;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
Example: UPDATE Student
SET S_FirstName= 'Vyom ' , S_lastName = 'Patel' , S_State = 'Goa'

WHERE S_ID= 10;

To Delete Records/Rows from the Table:

To Delete All Records From the Table:

Syntax: DELETE FROM table_name;

Example: DELETE FROM Student;

To Delete Specific Records/Rows from the Table:

Syntax:

DELETE FROM table_name


WHERE condition;

Example:

DELETE FROM Student


WHERE S_ID=10;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT

PRACTICAL-3

Retrieving, Restricting and Sorting Data (DRL)


To Extract only those Records/rows that Matches the specified conditions, we use
WHERE Clause:

Syntax: SELECT * FROM table_name


WHERE condition;
OR
SELECT column1,column2, ....
FROM table_name
WHERE condition;

Example: SELECT * FROM Student


WHERE S_ID=5;
OR
SELECT S_FirstName, S_LastName
FROM Student
WHERE S_ID=5;

WHERE clause With AND operator:

Syntax: SELECT column1, column2, .....

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
FROM table_name
WHERE condition1 AND condition2.....;

Example: SELECT S_FirstName, S_LastName, S_Email_ID


FROM Student
WHERE S_State='Gujarat' AND S_Department='IT';

WHERE clause With OR operator:

Syntax: SELECT column1, column2, ......


FROM table_name
WHERE condition1 OR condtion2......;

Example: SELECT S_FirstName, S_LastName, S_Email_ID


FROM Student
WHERE S_State='Gujarat' OR S_Department='IT';
WHERE clause With AND and OR operator:

Syntax: SELECT column1, column2, ......


FROM table_name
WHERE condition1 OR condtion2......;

Example: SELECT S_FirstName,S_LastName,S_Email_ID


FROM Student
WHERE S_State='Gujarat'
OR
(S_Semester='3' AND S_Department='IT');

To Sort the Result_Table in Ascending or descending order, we use ORDER BY clause:

To Sort in Ascending order:

Syntax: SELECT column1, column2, ...


FROM table_name
ORDER BY column1, column2, ... ASC;

Example: SELECT S_ID, S_FirstName, S_Department, S_State


FROM Student
ORDER BY S_ID ASC;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
To Sort in Descending order:

Syntax: SELECT column1, column2, ...


FROM table_name
ORDER BY column1, column2, ... DESC;

Example: SELECT S_ID, S_FirstName, S_Department, S_State


FROM Student
ORDER BY S_ID DESC;

To Return the No. of Rows that Matches a Specified Criterion, we use COUNT()
function:
Syntax: SELECT COUNT(column_name) FROM table_name;

Example: SELECT COUNT(S_ID) FROM Student;


To give the Table or a Column a Temporary Name, we use ALIASES:

Syntax: SELECT column_name(s) AS alias_name


FROM table_name;

Example: SELECT S_ID AS ENR_NO, S_FirstName, S_LastName


FROM Student;

To Group Rows that have the same values, we use GROUP BY clause:

Syntax: SELECT column_name(s)


FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);

Example: SELECT COUNT(S_ID) AS Common, S_State


FROM Student
GROUP BY S_State;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
To Extract only those Records/rows that Matches the specified conditions, we use
HAVING Clause:

NOTE: The HAVING clause was added because the WHERE keyword cannot be used with aggregate functions.

Syntax: SELECT column_name(s)


FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

Example: SELECT COUNT(S_ID) AS Common, S_State


FROM Student
GROUP BY S_State
HAVING COUNT(S_ID) > 1;

PRACTICAL-4

SQL Single Row Functions


Case Conversion Functions:

UPPER() Function:

Syntax: SELECT UPPER(column_name) AS alias_name FROM table_name;

Example: SELECT UPPER(S_FirstName) AS FirstName FROM Student;

lower() Function:

Syntax: SELECT LOWER(column_name) AS alias_name FROM table_name;

Example: SELECT LOWER(S_FirstName) AS FirstName FROM Student;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
String Functions:

CONCAT() Function:

Syntax: SELECT CONCAT(column1,column2, ......) FROM table_name;

Example: SELECT CONCAT(S_City, ' ,', S_State, ' ,',S_PCode) AS S_Address


FROM Student;

LENGTH() Function:

Syntax:
SELECT LENGTH(column_name) FROM table_name;

Example:
SELECT FirstName, LENGTH(S_FirstName) AS Len_FirstName
FROM Student;

SUBSTR() Function:

Syntax: SELECT SUBSTR(column_name, index_position, extract_char)


FROM table_name;

Example: SELECT S_FirstName, SUBSTR(S_FirstName,1,3) AS Sub_String


FROM Student;

INSTR() Function:

Syntax: SELECT INSTR(column_name, char_to_search)


FROM table_name;

Example: SELECT S_FirstName, INSTR(S_FirstName, 's') AS S_At_Index


FROM Student;

LPAD() Function:

Syntax: SELECT LPAD(column_name, total_string_length, string_to_pad)


SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT
FROM table_name;

Example: SELECT S_Firstname, LPAD(S_FirstName, 9, 'num') AS LeftPad_num


FROM Student;

RPAD() Function:

Syntax: SELECT RPAD(column_name, total_string_length, string_to_pad)


FROM table_name;

Example: SELECT S_Firstname, RPAD(S_FirstName, 9, 'num') AS ReftPad_num


FROM Student;

REPLACE() Function:

Syntax: SELECT REPLACE(column_name, substring_to_replace, new_substring)


FROM table_name;

Example: SELECT S_FirstName, REPLACE(S_FirstName, 's', ' ') AS New_String


FROM Student;
Date Functions:

Demo table Date_Time:

CREATE TABLE Date_Time(


SR_NO INT(3) PRIMARY KEY,
Cust_Name varchar(25),
Order_DateTime timestamp
);

INSERT INTO Date_Time


VALUES(1,'Jenish','2024-08-29 23:45:38'),
(2,'Smit','2019-02-10 03:57:21'),
(3,'Ayush','2023-04-15 21:07:19'),
(4,'Manthan','2014-12-25 17:34:24'),
(5,'Om','2021-09-12 01:31:54');

CURDATE() Function:

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
Syntax: SELECT CURDATE();

CURTIME() Function:

Syntax: SELECT CURTIME();

DATE() Function:

Syntax: SELECT DATE(column_name) FROM table_name;

Example: SELECT Order_DateTime, DATE(Order_DateTime)


AS Order_Date FROM Student;

EXTRACT() Function:

Syntax: SELECT EXTRACT(unit FROM column_name)


FROM table_name;

Example: SELECT Order_DateTime, EXTRACT(SECOND FROM Order_DateTime)


AS SECONDS FROM Date_Time;

NOTE: UNITS can be MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc.

DATE_ADD() Function:

Syntax: SELECT DATE_ADD(column_name, INTERVAL value addunit)


FROM table_name;

Example: SELECT Order_DateTime, DATE_ADD(Order_DateTime, INTERVAL 1 YEAR)


AS New_Date FROM Date_Time;

NOTE: UNITS can be MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc.

DATEDIFF() Function:

Syntax: SELECT DATEDIFF(date1,date2);

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
Example: SELECT DATEDIFF('2024-08-12','2024-08-01') AS DateDiff;

Math Functions:

POWER() Function:

Syntax: SELECT POWER(5,3);

LOG() Function:

Syntax: SELECT LOG(5,6);

ABSOLUTE() Function:

Syntax: SELECT ABS(-50);

SQUARE_ROOT() Function:

Syntax: SELECT SQRT(25);

SINE() Function:

Syntax: SELECT SIN(85);

COSINE() Function:

Syntax: SELECT COS(85);

MODULO() Function:

Syntax: SELECT MOD(10,3);

CEIL() Function:

Syntax: SELECT CEIL(12.99);

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
FLOOR() Function:

Syntax: SELECT FLOOR(12.99);

Exponenent() Function:

Syntax: SELECT EXP(5);

GREATEST() Function:

Syntax: SELECT GREATEST(2,78,92,12);

LEASR() Function:

Syntax: SELECT LEAST(2,78,92,12);

TRUNCATE() Function:

Syntax: SELECT TRUNCATE(45.2178,2);

PRACTICAL-5

SQL Multiple Row Functions (Aggregate Function)


Demo Table Beverages:

CREATE TABLE Beverages(


ID int(3) PRIMARY KEY,
Product_Name varchar(15),
Inventory int(3),
Price int(4)
);

INSERT INTO Beverages


VALUES(1,'Water',20,5),

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
(2,'Lemonade',15,25),
(3,'Soda',45,50),
(4,'Energy Drinks',34,90),
(5,'Milk',28,60);

SUM() Function:

Syntax: SELECT SUM(column_name) FROM table_name;

Example: SELECT SUM(Price) AS Total_Price FROM Beverages;

AVERAGE() Function:
Syntax: SELECT AVG(column_name) FROM table_name;

Example: SELECT AVG(Price) AS Avg_Price FROM Beverages;

MIN() Function:

Syntax: SELECT MIN(column_name) FROM table_name;

Example: SELECT MIN(Price) AS Min_Price FROM Beverages;

MAX() Function:

Syntax: SELECT MAX(column_name) FROM table_name;

Example: SELECT MAX(Price) AS Max_Price FROM Beverages;


PRACTICAL-6

Displaying Data from Multiple Tables (Join)

INNER JOIN:
SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT

The INNER JOIN selects records that have matching values in both tables.

Syntax: SELECT column(s)


FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

Example: SELECT S.S_ID, S.S_FirstName, S.S_Semester, P.S_FatherName,P.S_MotherName,P.F_PhoneNumber


FROM Student AS S
INNER JOIN Parents_Detail AS P
ON S.S_ID = P.S_ID;

LEFT JOIN:

The LEFT JOIN returns all records from the left table (table1), and the matching records from the
right table (table2). The result is 0 records from the right side, if there is no match.

Syntax: SELECT column(s)


FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

Example: SELECT S.S_ID, S.S_FirstName, S.S_Semester, P.S_FatherName,P.S_MotherName,P.F_PhoneNumber


FROM Student AS S
LEFT JOIN Parents_Detail AS P
ON S.S_ID = P.S_ID;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT

RIGHT JOIN:

The RIGHT JOIN returns all records from the right table (table2), and the matching records from
the left table (table1). The result is 0 records from the left side, if there is no match.

Syntax: SELECT column(s)


FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

Example: SELECT S.S_ID, S.S_FirstName, S.S_Semester, P.S_FatherName,P.S_MotherName,P.F_PhoneNumber


FROM Student AS S
RIGHT JOIN Parents_Detail AS P
ON S.S_ID = P.S_ID;

SELF JOIN:

A SELF JOIN is a regular join, but the table is joined with itself.

Syntax: SELECT column_name(s)


FROM table1 T1, table1 T2
WHERE condition;

Example: SELECT A.S_FirstName AS Student1, B.S_FirstName AS Student2, A.S_Department


FROM Student A, Student B
WHERE A.S_ID <> B.S_ID
AND
A.S_Department = B.S_Department
AND
(A.S_Firstname like ('S%')
SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT
OR
A.S_FirstName like ('J%'));

PRACTICAL-7

Using Commit and Rollback show Transaction


ACID Property
SET TRANSACTION:

 Starts a new transaction.

Syntax: START TRANSACTION;


OR
SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT
BEGIN;

COMMIT:

 Commits the current transaction, making all changes permanent.

Syntax: COMMIT;

SAVEPOINT:

 Creates a savepoint within the transaction, allowing a partial rollback to this point.

Syntax: SAVEPOINT savepoint_name;

ROLLBACK:

 Rolls back the current transaction, undoing all changes made since the last COMMIT or
ROLLBACK.

Syntax: ROLLBACK;

ROLLBACK TO SAVEPOINT:
 Rolls back the transaction to the specified savepoint, undoing changes made after the
savepoint was set.
Syntax: ROLLBACK;
Example: START TRANSACTION;
SAVEPOINT S1;
UPDATE Student SET S_FirstName = 'Meet' WHERE S_ID = 1;
SELECT * FROM Student WHERE S_FirstName Like ('M%');
COMMIT;

Example: START TRANSACTION;


SAVEPOINT S1;
UPDATE Student SET S_FirstName = 'Meet' WHERE S_ID = 1;
ROLLBACK TO SAVEPOINT S1;
SELECT * FROM Student WHERE S_FirstName Like ('M%');
SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT
COMMIT;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
PRACTICAL-8

Securing data using Views and Controlling User


Access (DCL)
How to create a View:

Syntax: CREATE VIEW view_name AS


SELECT column1, column2, …
FROM table_name
WHERE condition;

Example: CREATE VIEW Student_Contact AS


SELECT S_ID, S_PhoneNumber, S_Email_ID
FROM Student;

To Update the View, we use CREATE OR REPLACE VIEW command:

Syntax: CREATE OR REPLACE VIEW view_name


SELECT column1, column2, …
FROM table_name
WHERE condition;

Example: CREATE OR REPLACE VIEW Student_Contact


SELECT S_PhoneNumber, S_Email_ID
FROM Student
WHERE S_ID BETWEEN 1 AND 5;

To Delete the View, we use DROP VIEW command:

Syntax: DROP VIEW view_name;

Example: DROP VIEW Student_Contact;

Controlling User Access (DCL) Commands:


SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT

To Give Privileges to the Users, we use GRANT command:

Syntax: GRANT privilege_type ON object


TO ‘username’@‘host’ [WITH GRANT OPTION];

 privilege_type: The type of permission you want to grant, such as SELECT, INSERT, UPDATE, etc.
 object: The table, view, or database on which the privilege is being granted.
 user: The user or role to whom the permission is granted.
 WITH GRANT OPTION: (Optional) Allows the user to grant this privilege to others.

Example: GRANT SELECT, INSERT ON Student TO ‘Jenish’@‘localhost’;

To Give All Privileges to the Users:

Example: GRANT ALL PRIVILEGES ON Student TO ‘Jenish’@‘localhost’;

To Remove Privileges From the Users, we use REVOKE command:

Syntax: REVOKE privilege_type ON object FROM ‘username’@‘host’;

Example: REVOKE SELECT, INSERT ON Student FROM ‘Jenish’@‘localhost’;

To Remove All Privileges From the Users:

Syntax: REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘username’@‘host’;

Example: REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘Jenish’@‘localhost’;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
PRACTICAL-9

Database SET Operations


BTech_Students BSc_Students

UNION Operator:

Syntax: SELECT column_name(s) FROM table1


UNION
SELECT column_name(s) FROM table2;

Example: SELECT * FROM BTech_Students


UNION
SELECT * FROM BSc_Students;

NOTE: The UNION operator selects only Distinct values, use UNION ALL operator to also select Duplicate values.

UNION ALL Operator:

Syntax: SELECT column_name(s) FROM table1


UNION ALL
SELECT column_name(s) FROM table2;

Example: SELECT * FROM BTech_Students


UNION ALL
SELECT * FROM BSc_Students;

INTERSECT Operator:

Syntax: SELECT column_name(s) FROM table1


INTERSECT
SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT
SELECT column_name(s) FROM table2;

Example: SELECT * FROM BTech_Students


INTERSECT
SELECT * FROM BSc_Students;

EXCEPT(MINUS) Operator:

Syntax: SELECT column_name(s) FROM table1


EXCEPT
SELECT column_name(s) FROM table2;

Example: SELECT * FROM BTech_Students


EXCEPT
SELECT * FROM BSc_Students;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT

PRACTICAL-10

Write a Join Query Based on Two Tables And


Analyze the Query Using Action Plan
BTech_Students BTech_Mentors

 Identify Tables Involved:

 The first step in performing a join query is to clearly define the tables that will participate in
the join operation.

 For example, we are using two tables in this case:

 BTech_Students: Contains student information such as S_ID, Name, M_Name, and Favorite_Subject.
 BTech_Mentors: Contains mentor details such as S_ID, M_Name, Department, and Phone_Number.

 Determine the Join Condition:

 The next step is to identify how the tables are related by finding the common column.

 In our case, Both BTech_Students and BTech_Mentors share the S_ID column. The join
condition will specify that rows from the BTech_Students table should match rows from
the BTech_Mentors table where the S_ID values are the same.

 Select the Type of Join:

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
 There are different types of SQL joins, each with a specific purpose. We need to choose the
right join type based on the requirement.(INNER JOIN/RIGHT OUTER JOIN/LEFT OUTER
JOIN/FULL OUTER JOIN).

 For our case, we’ll use an INNER JOIN since we only want to return records that exist in both
the BTech_Students and BTech_Mentors tables.

 Choose the Columns to Display:

 Determine which specific columns you want to include in the final result. This helps in
retrieving only the necessary data from each table, making the output more concise and
focused.

 In our case, the selected columns are:

 From BTech_Students: S_ID and Name


 From BTech_Mentors: M_Name and Department

 Construct the SQL Query:

 Now, combine all the components to form the final SQL query that will join the two tables
and display the desired columns.

 According to our case, the Final Query:

SELECT Stu.S_ID, Stu.Name, Men.M_Name, Men.Department


FROM BTech_Students AS Stu
INNER JOIN BTech_Mentors AS Men
ON Stu.S_ID = Men.S_ID;

 Optimize the Query for Performance:

 For large datasets, it’s important to optimize the query.

 Considering our case, using indexes on the S_ID column in both tables will enhance
performance.

CREATE INDEX idx_btech_s_id ON BTech_Students(S_ID);

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
CREATE INDEX idx_mentor_s_id ON BTech_Mentors(S_ID);

 This ensures that the database efficiently searches for matching rows between the two
tables.

 Analyze the Query Using EXPLAIN command:

 Use the EXPLAIN command to analyze how the SQL query will be executed. This provides
insights into the database's execution plan, such as which indexes are used and how the
tables are accessed.

EXPLAIN SELECT Stu.S_ID, Stu.Name, Men.M_Name, Men.Department


FROM BTech_Students AS Stu
INNER JOIN BTech_Mentors AS Men
ON Stu.S_ID = Men.S_ID;

 Execute the Query and Verify the Results:

 Finally, execute the query and verify that the results are correct, confirming that the join
operation was successful and the data was retrieved as expected.

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
PRACTICAL-11

PL/SQL Block Syntax and DML Operation


Through PL/SQL Block
PL/SQL Block:

Syntax: DECLARE BTech_Students


-- Variable Declarations Statements (optional);
BEGIN
-- Executable Statements
EXCEPTION
-- Exception Handling Statements (optional)
END;

DML operations through PL/SQL block:

NOTE: MySQL doesn’t directly support PL/SQL, which is used for the procedural programming for the oracle
databases.

 INSERT Operation:

Example: DECLARE
v_name VARCHAR2(50) := 'Jenish';
BEGIN
INSERT INTO BTech_Students
VALUES (106, v_name, 'Mr. Shah', 'Mathematics');
COMMIT;

DBMS_OUTPUT.PUT_LINE('Record inserted successfully.');


EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE('An error occurred during insertion.');
END;
SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT

 UPDATE Operation:

Example: BEGIN

UPDATE BTech_Students
SET Favorite_Subject = 'Physics'
WHERE S_ID = 101;
COMMIT;
DBMS_OUTPUT.PUT_LINE('Record updated successfully.');
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE('An error occurred during update.');
END;

 DELETE Operation:

Example: BEGIN

DELETE FROM BTech_Students


WHERE S_ID = 105;
COMMIT;
DBMS_OUTPUT.PUT_LINE('Record deleted successfully.');
EXCEPTION

WHEN OTHERS THEN


ROLLBACK;
DBMS_OUTPUT.PUT_LINE('An error occurred during deletion.');
END;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
PRACTICAL-12

Control Structures in PL/SQL


Control structures in PL/SQL allow you to control the flow of execution within your
PL/SQL blocks. These include conditional statements, loops, and exception handling.

BTech_Students

Conditional Control: IF-Then-Else Statements

Syntax: BEGIN
IF condition THEN
-- Statements
ELSIF condition THEN
-- Statements
ELSE
-- Statements
END IF;
END;

Example: DECLARE
student_subject VARCHAR(50);
BEGIN
DBMS_OUTPUT.PUT_LINE('All_Student_Names');
SELECT Favorite_Subject INTO student_subject
FROM BTech_Students
WHERE S_ID = 101;

IF student_subject = 'Mathematics' THEN


DBMS_OUTPUT.PUT_LINE('Jenish’s favourite subject is Mathematics.');
ELSE
DBMS_OUTPUT.PUT_LINE('Jenish has a different favourite subject.');
END IF;
SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT
END;

Iterative Control: Loops

 Simple Loop:

Syntax: BEGIN
LOOP
-- statements
EXIT WHEN condition;
END LOOP;
END;

Example: DECLARE
student_name BTech_Students.Name%TYPE;
student_id BTech_Students.S_ID%TYPE := 101;
BEGIN
DBMS_OUTPUT.PUT_LINE('All_Student_Names');
LOOP
SELECT Name INTO student_name FROM BTech_Students WHERE S_ID = student_id;
DBMS_OUTPUT.PUT_LINE('S_ID: ' || student_id || ' Student Name: ' || student_name);

student_id := student_id + 1;
EXIT WHEN student_id > 105;
END LOOP;
END;

 WHILE Loop:

Syntax: BEGIN
WHILE condition LOOP
-- statements
END LOOP;
END;

Example: DECLARE
student_name BTech_Students.Name%TYPE;
student_id BTech_Students.S_ID%TYPE := 101;
BEGIN
DBMS_OUTPUT.PUT_LINE('All_Student_Names');
WHILE student_id < 104 LOOP
SELECT Name INTO student_name FROM BTech_Students WHERE S_ID = student_id;
DBMS_OUTPUT.PUT_LINE('S_ID: ' || student_id || ' Student Name: ' || student_name);
student_id := student_id + 1;
SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT
END LOOP;
END;

 FOR Loop:

Syntax: BEGIN
FOR counter IN start_value .. end_value LOOP
-- statements
END LOOP;
END;

Example: DECLARE
student_name BTech_Students.Name%TYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE('All_Student_Names');
FOR student_id IN 101..104 LOOP
SELECT Name INTO student_name FROM BTech_Students WHERE S_ID = student_id;
DBMS_OUTPUT.PUT_LINE('S_ID: ' || student_id || ' Student Name: ' || student_name);
END LOOP;
END;

Sequential Control: GOTO Statement:

Syntax: BEGIN
<<label>> -- label definition
-- statements
GOTO label; -- jumping to the label
END;

Example: DECLARE
student_name BTech_Students.Name%TYPE;
student_id BTech_Students.S_ID%TYPE := 101;
BEGIN
DBMS_OUTPUT.PUT_LINE('All_Student_Names');
<<start_loop>>
LOOP
IF student_id = 103 THEN
GOTO skip_student;
END IF;

SELECT Name INTO student_name FROM BTech_Students WHERE S_ID = student_id;


DBMS_OUTPUT.PUT_LINE('S_ID: ' || student_id || ' Student Name: ' || student_name);

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
student_id := student_id + 1;
EXIT WHEN student_id > 105;
END LOOP;

<<skip_student>>
DBMS_OUTPUT.PUT_LINE('Skipped student with ID 103');
END;

Conditional Control: CASE Expression

Syntax: BEGIN
CASE expression
WHEN value1 THEN
-- statements
WHEN value2 THEN
-- statements
...
[ELSE
-- statements]
END CASE;
END;

Example: DECLARE
student_subject VARCHAR(50);
BEGIN
DBMS_OUTPUT.PUT_LINE('Favourite_Subject');
SELECT Favorite_Subject INTO student_subject
FROM BTech_Students
WHERE S_ID = 101;

CASE student_subject
WHEN 'Mathematics' THEN
DBMS_OUTPUT.PUT_LINE('The student likes Mathematics.');
WHEN 'Computer Science' THEN
DBMS_OUTPUT.PUT_LINE('The student likes Computer Science.');
WHEN 'Biology' THEN
DBMS_OUTPUT.PUT_LINE('The student likes Biology.');
ELSE
DBMS_OUTPUT.PUT_LINE('The student has a different favourite subject.');
END CASE;
END;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT

PRACTICAL-13

Working With The Cursors


In PL/SQL, a cursor is a database object used to retrieve, manipulate, and navigate
through a result set row by row. Cursors are especially useful when dealing with
multiple rows returned by a query.
Books

Implicit Cursors:

Implicit cursors are automatically created by PL/SQL when a SQL statement is executed. You
don't need to declare them explicitly.

Syntax: DECLARE
variable_name datatype;
BEGIN
SELECT column_name INTO variable_name
FROM table_name
WHERE condition;
END;

Example: DECLARE
v_title VARCHAR(100);
v_author VARCHAR(100);
BEGIN
DBMS_OUTPUT.PUT_LINE('Book_Info');

SELECT Title, Author INTO v_title, v_author


FROM Books
WHERE Book_ID = 1;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
DBMS_OUTPUT.PUT_LINE('Title: ' || v_title || ', Author: ' || v_author);
END;

Explicit Cursors:

Explicit cursors are declared explicitly by the programmer when you need to process multiple
rows.

Syntax: DECLARE
CURSOR cursor_name IS
SELECT column_list FROM table_name WHERE condition;

-- Record variable to hold fetched data


record_variable cursor_name%ROWTYPE;
BEGIN
OPEN cursor_name; -- Open the cursor

LOOP
FETCH cursor_name INTO record_variable; -- Fetch data into record
EXIT WHEN cursor_name%NOTFOUND; -- Exit when no more rows

-- Process each row


DBMS_OUTPUT.PUT_LINE(record_variable.column_name);
END LOOP;

CLOSE cursor_name; -- Close the cursor


END;

Example: DECLARE
v_title VARCHAR(100);
v_author VARCHAR(100);
v_result TEXT DEFAULT '';

CURSOR c_books IS
SELECT Title, Author FROM Books;

CONTINUE HANDLER FOR NOT FOUND SET v_title = NULL;

BEGIN
DBMS_OUTPUT.PUT_LINE('Book_Info');
OPEN c_books;

LOOP
SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT
FETCH c_books INTO v_title, v_author;
IF v_title IS NULL THEN
EXIT;
END IF;
SET v_result = CONCAT(v_result, 'Title: ', v_title, ',\nAuthor: ', v_author, '\n\n');
END LOOP;

CLOSE c_books;

DBMS_OUTPUT.PUT_LINE(v_result);
END;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
PRACTICAL-14

Creating Procedures And Functions in PL/SQL


In PL/SQL, a procedure is a named block of PL/SQL code that performs a specific task. It can
accept parameters, execute a set of instructions, and optionally return values using output
parameters, but it does not return a value like a function.

Books

How to Create A Procedure:

Syntax: CREATE [OR REPLACE] PROCEDURE procedure_name


(
parameter1 [IN | OUT | IN OUT] datatype,
parameter2 [IN | OUT | IN OUT] datatype
)
IS
-- Declarations
BEGIN
-- Executable statements
-- Optional logic for output parameters
EXCEPTION
-- Exception-handling code
END procedure_name;

Example: CREATE OR REPLACE PROCEDURE Increase_Price(p_book_id IN NUMBER, p_increase_amount IN


OUT NUMBER)
IS
v_current_price NUMBER;
BEGIN
SELECT Price INTO v_current_price FROM Books WHERE Book_ID = p_book_id;
p_increase_amount := v_current_price + p_increase_amount;

UPDATE Books
SET Price = p_increase_amount
WHERE Book_ID = p_book_id;
SORATHIYA JENISH 23BEIT54020
DBMS
VSITR-IT
END Increase_Price;

 Calling the Procedure:

DECLARE
v_increase_amount NUMBER := 5;
BEGIN
DBMS_OUTPUT.PUT_LINE('Updated_Price');
Increase_Price(1, v_increase_amount);
DBMS_OUTPUT.PUT_LINE('New Price: $' || v_increase_amount);
END;

How to Create a Function:

In PL/SQL, a function allows you to encapsulate a piece of logic that can return a single value or a
table of values. Functions are similar to stored procedures, but they are designed to return a value
and can be used in SQL statements.

Syntax: CREATE OR REPLACE FUNCTION function_name (parameter_list)


RETURN return_datatype
IS
-- Variable declarations
BEGIN
-- Function logic
RETURN value; -- Return a value
END function_name;

Example: CREATE OR REPLACE FUNCTION Get_Discounted_Price(p_book_id INT, p_discount_percentage


DECIMAL(5, 2))
RETURN DECIMAL(10, 2)
IS
v_price DECIMAL(10, 2);
v_discounted_price DECIMAL(10, 2);
BEGIN
SELECT Price INTO v_price
FROM Books
WHERE Book_ID = p_book_id;

v_discounted_price := v_price - (v_price * p_discount_percentage / 100);

RETURN v_discounted_price;
END Get_Discounted_Price;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT

 Calling the Function:

DECLARE
v_discounted_price DECIMAL(10, 2);
BEGIN
v_discounted_price := Get_Discounted_Price(1, 10);

DBMS_OUTPUT.PUT_LINE('Discounted Price');
DBMS_OUTPUT.PUT_LINE(v_discounted_price);

END;

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT

PRACTICAL-15

Creating Database Triggers


Triggers are special stored procedures that automatically execute in response to specific events
on a particular table, such as INSERT, UPDATE, or DELETE.

How to Create a Trigger:

Syntax: CREATE TRIGGER trigger_name


{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
FOR EACH ROW
BEGIN
-- Trigger logic here
END;

 Create the Books and Books_Log Tables:

CREATE TABLE Books (


Book_ID INT PRIMARY KEY,
Title VARCHAR(100),
Author VARCHAR(100),
Price DECIMAL(10, 2)
);

CREATE TABLE Books_Log (


Log_ID INT AUTO_INCREMENT PRIMARY KEY,
Book_ID INT REFERENCES Books(Book_ID),
Action VARCHAR(10),
Action_Time DATETIME
);

Now we want to create a trigger that logs changes to a separate Books_Log table every time a new book is inserted
into the Books table, then:

 Create the Trigger:

Example: DELIMITER $$

SORATHIYA JENISH 23BEIT54020


DBMS
VSITR-IT
CREATE TRIGGER log_book_insert
AFTER INSERT ON Books
FOR EACH ROW
BEGIN
INSERT INTO Books_Log (Book_ID, Action, Action_Time)
VALUES (NEW.Book_ID, 'INSERT', NOW());
END$$

DELIMITER ;

 Trigger Logic:

 After creating the trigger, whenever you insert a new record into the Books table, the Books_Log table
will automatically get a new entry.

 The INSERT INTO Books_Log statement records the Book_ID, the action (INSERT), and the current
timestamp (NOW()) whenever a new book is added.

How to Drop a Trigger:

Syntax: DROP TRIGGER IF EXISTS trigger_name;

Example: DROP TRIGGER IF EXISTS log_book_insert;

SORATHIYA JENISH 23BEIT54020

You might also like