In PL/SQL(Procedural Language/Structured Query Language), the DELETE statement is the powerful command used to remove one or more records from the database table. It is an essential part of database management and enables the users to efficiently manage and maintain the data integrity by selectively removing data that is no longer needed or that meets specific criteria.
PL/SQL DELETE Statement
The DELETE statement in the PL/SQL is designed to remove records from a specified table based on the condition defined in the WHERE clause. An operation targets only those rows that satisfy the condition and leaves the rest of the table intact.
If no condition is used, all the rows in the table will be deleted. This statement is the fundamental tool in PL/SQL for managing the lifecycle of the data within the database. The correct usage of the DELETE statement ensures that the database remains clean, well-organized, and consistent.
Syntax:
DELETE FROM table_name
WHERE condition;
Key terms:
- table_name is the name of the table from which we want to delete the records.
- condition specifies which row needs to be deleted. If the condition is not used, all rows in table will deleted.
Employee Table
- In the below code, CREATE TABLE statement is used to create the employeeDetails table with respective columns.
- INSERT INTO statement is used to insert the rows into the employeeDetails table, the values are correspond to the employee_id, name and department columns.
Query:
CREATE TABLE employeeDetails (
employee_id NUMBER(10) PRIMARY KEY,
name VARCHAR2(10),
department VARCHAR2(20)
);
-- Insert a single row
INSERT INTO employeeDetails (employee_id, name, department)
VALUES (101, 'John Smith', 'HR');
-- Insert another row
INSERT INTO employeeDetails (employee_id, name, department)
VALUES (102, 'Jane Doe', 'IT');
-- Insert a third row
INSERT INTO employeeDetails (employee_id, name, department)
VALUES (103, 'Mike Brown', 'Finance');
-- Insert a fourth row
INSERT INTO employeeDetails (employee_id, name, department)
VALUES (104, 'Lisa Wong', 'HR');
--Insert a fifth row
INSERT INTO employeeDetails (employee_id, name, department)
VALUES (105, 'Alice Grey', 'Marketing');
Output:
employee_id | name | department |
---|
101 | John Smith | HR |
102 | Jane Doe | IT |
103 | Mike Brown | Finance |
104 | Lisa Wong | HR |
105 | Alice Grey | Marketing |
Department Table
- In the below code, CREATE TABLE statement is used to create the department table with respective columns.
- INSERT INTO statement is used to insert the rows into the department table, the values are corresponded to the department, and name columns.
Query:
CREATE TABLE department (
department VARCHAR2(20),
name VARCHAR2(10)
);
--Insert a single row
INSERT INTO department (department, name)
VALUES ('HR', 'John Smith');
--Insert another row
INSERT INTO department (department, name)
VALUES ('Finance', 'Mike Brown');
--Insert third row
INSERT INTO department (department, name)
VALUES ('IT', 'Jane Doe');
Output:
department | name |
---|
HR | John Smith |
Finance | Mike Brown |
IT | Jane Doe |
Example 1: Using One Condition in the DELETE Statement
Let us explore the example of using the DELETE statement with the single condition to remove specific rows from employeeDetails table. Suppose we want to delete the record of employee whose department is IT. We can achieve this with the help of DELETE statement with the condition on department column.
Query:
DELETE FROM employeeDetails
WHERE department = 'IT';
Output:
employee_id | name | department |
---|
101 | John Smith | HR |
103 | Mike Brown | Finance |
104 | Lisa Wong | HR |
105 | Alice Grey | Marketing |
Explanation:
- DELETE FROM employeeDetails: This part of statement is specify that we are delete rows from employeeDetails table.
- WHERE department = 'IT': This condition target only the rows where department is IT. In above employeeDetails table, this condition matches the row for the employee with the employee_id = 102 (Jane Doe).
- Hence, the row for Jane Doe, whose department was IT, is deleted. The rest of the rows in employeeDetails table remain unchanged.
Example 2: Using Two Conditions in the DELETE Statement
In this example, we will see the how to use DELETE statement with the multiple conditions to remove the specific rows from employeeDetails table. Suppose we want to delete the record of employee who works in HR department and has employee_id of 101. This is done with the help of DELETE statement with the two conditions combined with the AND operator.
Query:
DELETE FROM employeeDetails
WHERE department = 'HR' AND employee_id = 101;
Output:
employee_id | name | department |
---|
102 | Jane Doe | IT |
103 | Mike Brown | Finance |
104 | Lisa Wong | HR |
105 | Alice Grey | Marketing |
Explanation:
- In the above code, DELETE FROM employeeDetails: This part of the statement is specify that deletion is to be performed on employeeDetails table.
- WHERE department = 'HR' AND employee_id = 101: This condition is ensure that only row where department is HR and the employee_id is 101 will deleted from the employeeDetails table.
- The role for John Smith, who is worked in HR department and he had employee_id = 101 is deleted. Other rows, including those are in the HR department but it was in different employee_id values, remains unchanged.
Example 3: Using EXISTS Clause
The EXISTS clause in the SQL (Structured Query Language) is used to check the existence of the rows in the subquery. When the DELETE statement is used with a JOIN or subquery, it allows for the deletion of rows from a table based on the presence of related rows in another table or even within the same table.
This is useful for enforcing relationships between tables or conditions within a single table. Suppose we want to delete the employees from the employeeDetails table who are work in the departments that has no longer exist in department table.
Query:
DELETE FROM employeeDetails e
WHERE EXISTS (
SELECT 1 FROM department d
WHERE d.department = e.department
);
Output:
employee_id | name | department |
---|
105 | Alice Grey | Marketing |
Explanation:
- In the above code, DELETE FROM employeeDetails e: specifies that the decision is to perform on employeeDetails table with e as its alias.
- WHERE EXISTS: The EXISTS clause is used to check the subquery and return any rows. If the subquery return any rows, then condition is true, and the corresponding rows in the employeeDetails will be deleted.
- Hence, the DELETE statement removes all the employees whose departments exist in department table i.e. HR, IT, Finance. The remaining row is Alice Grey, which is in Marketing department. It does not exist in department table.
Conclusion:
In conclusion, DELETE statement in the PL/SQL is the fundamental tool for the managing the data within the relational database. It allows for the precise removal of the records based on the certain conditions and it as essential part of the database maintenance and the data management.
By the understanding of the DELETE statement effectively, we can ensure that the our database remain accurate, efficient and free of outdated data or unnecessary data.
Similar Reads
PL/SQL Tutorial Explore this PL/SQL tutorial to effortlessly learn PL/SQL â It is perfect for beginners and experienced ones. Whether you're new to it or diving deep, this interactive guide simplifies database programming.Learn hands-on with practical examples, making your journey fun and effective. Learn PL/SQL's
8 min read
PL/SQL Fundamentals
PL/SQL Control & Loops
Decision Making in PL/SQLPL/SQL (Procedural Language/Structured Query Language) is Oracle's extension to SQL that allows for procedural programming within databases. It features various conditional statements to control the flow of execution based on specific conditions.In this article, We will learn about the various PL/SQ
5 min read
PL/SQL LoopsPL/SQL stands for Procedural Language Extension to the Structured Query Language and it is designed specifically for Oracle databases it extends Structured Query Language (SQL) capabilities by allowing the creation of stored procedures, functions, and triggers. It is a block-structured language that
5 min read
PL/SQL For LoopPL/SQL stands for Procedural Language/ Structured Query Language. It has block structure programming features. With PL/SQL, you can fetch data from the table, add data to the table, make decisions, perform repetitive tasks, and handle errors.PL/SQL supports SQL queries. To fetch records, process dat
4 min read
PL/SQL While LoopOracle PL/SQL provides various loop structures that help developers execute a block of code multiple times based on certain conditions. The main loop structures include LOOP ... END LOOP, WHILE ... END LOOP, and FOR ... END LOOP. In this article, we will explore the WHILE loop in detail, including i
5 min read
PL/SQL Queries & Clauses
PL/SQL SELECT INTO Existing TablePL/SQL is a programming language that is used alongside SQL for writing procedural code such as stored procedures, functions, triggers, and packages within the Oracle Database. It was developed by Oracle Corporation and is widely used in database programming.PL/SQL is a programming language that has
5 min read
PL/SQL INSERT StatementThe PL/SQL INSERT statement is vital for adding new records to a database table. By specifying the table's name and providing values for its columns, users can populate their database with essential information. This functionality enables efficient data entry and ensures the completeness of datasets
3 min read
PL/SQL UPDATE StatementThe UPDATE statement in the PL/SQL(Procedural Language/ Structural Query Language) is the powerful SQL (Structured Query Language) command used to modify the existing data in the database table. In this article, we will explain the PL/SQL UPDATE Statement, its syntax, and examples in detail.PL/SQL U
6 min read
PL/SQL DELETE StatementIn PL/SQL(Procedural Language/Structured Query Language), the DELETE statement is the powerful command used to remove one or more records from the database table. It is an essential part of database management and enables the users to efficiently manage and maintain the data integrity by selectively
6 min read
PL/SQL WHERE ClauseThe WHERE clause in PL/SQL is essential for filtering records based on specified conditions. It is used in SELECT, UPDATE, and DELETE statements to limit the rows affected or retrieved, allowing precise control over data manipulation and retrieval.In this article, We will learn about the WHERE Claus
3 min read
PL/SQL ORDER BY ClauseIn PL/SQL, the ORDER BY clause is a vital tool that allows for the sorting of query results by one or more columns, either in ascending or descending order. In this article, We will learn about ORDER BY clause in PL/SQL, its syntax, functionality, and practical usage through examples.Understanding O
7 min read
PL/SQL GROUP BY ClauseThe GROUP BY clause in PL/SQL is a powerful tool used to organize data into aggregated groups based on one or more columns. It is essential for performing summary operations on large datasets, enabling efficient data analysis by grouping rows that share common values.In this article, We will learn a
7 min read
PL/SQL Operators
PLSQL : || OperatorThe string in PL/SQL is actually a sequence of characters with an optional size specification. The characters could be numeric, letters, blank, special characters or a combination of all. The || Operator in PLSQL is used to concatenate 2 or more strings together. The result of concatenating two char
2 min read
PL/SQL AND OperatorThe PL/SQL AND operator is used to combine multiple conditions in a WHERE clause of an SQL query. It allows you to refine your query by ensuring that all specified conditions are met. AND queries which help in filtering data more precisely and can be crucial for retrieving accurate results from a da
7 min read
PL/SQL LIKE OperatorThe PL/SQL LIKE operator is a powerful tool used in SQL queries to search for patterns in character data. It allows you to match strings based on specific patterns defined by wildcards. This operator is commonly used in SELECT, UPDATE, and DELETE statements to filter records based on partial or comp
6 min read
PL/SQL NOT OperatorPL/SQL, an extension of SQL in Oracle, offers various operators that allow us to perform logical operations on data. One such operator is the NOT operator, which is used to negate a condition, meaning it will return true if the condition is false and vice versa.The NOT operator is commonly used in c
6 min read
PL/SQL IS NULL OperatorThe IS NULL operator is a fundamental tool in PL/SQL used to determine the presence of NULL values in database columns. Understanding how to effectively use the IS NULL operator is crucial for database management, as it allows developers and analysts to identify and handle records with missing or un
4 min read
PL/SQL CASE StatementPL/SQL stands for Procedural Language Extension to the Structured Query Language and it is designed specifically for Oracle databases it extends Structured Query Language (SQL) capabilities by allowing the creation of stored procedures, functions, and triggers. The PL/SQL CASE statement is a powerfu
4 min read
PL/SQL Program Units
PL/SQL Data Structures & Error Handling
Index in PL/SQLPL/SQL, Oracle's extension to SQL, combines SQL with procedural programming features like loops, conditionals, and exception handling. It enables developers to create stored procedures, functions, triggers, and other database applications. As a block-structured language, PL/SQL allows seamless integ
5 min read
Exception Handling in PL/SQLAn exception is an error which disrupts the normal flow of program instructions. PL/SQL provides us the exception block which raises the exception thus helping the programmer to find out the fault and resolve it. There are two types of exceptions defined in PL/SQL User defined exception. System defi
7 min read
PL/SQL RecordsPL/SQL stands for Procedural Language/Structured Query Language. It is an extension of the Structured Query Language (SQL). A core feature of PL/SQL is its ability to work with complex data types, including PL/SQL records. PL/SQL records enable developers to group related data elements, creating a s
10 min read
Cursors in PL/SQLA Cursor in PL/SQL is a pointer to a context area that stores the result set of a query. PL/SQL CursorsThe cursor is used to retrieve data one row at a time from the results set, unlike other SQL commands that operate on all rows at once. Cursors update table records in a singleton or row-by-row man
3 min read