Introduction to SQL Minus
Minus is one of the four important set operators in standard query language (SQL). Set operators are used to combine the results obtained from two or more queries into a single result. The queries which contain two or more subqueries are known as compounded queries. The MINUS set operator is used to combine all the results of two or more SELECT statements. It returns only those records that are present exclusively in the first table.
The generic syntax for working with SQL MINUS operators is as follows:
SELECT column_name FROM table_name_1 MINUS SELECT column_name FROM table_name_2 MINUS SELECT column_name FROM table_name_3 . . .
The different parameters used in the syntax are:
- column_name: Mention the column name on which you want to perform the set operation and want in the result set
- FROM table_name_1: Mention the first table name from which the column has to be fetched
- FROM table_name_2: Mention the second table name from which the column has to be fetched
Of the above-mentioned parameters, all the parameters are mandatory. You may use WHERE GROUP BY and HAVING clauses based on your requirement.
SQL Minus Set Operator
Here is a list of few points which we should be kept in mind while working with SQL MINUS or EXCEPT operator:
- The number of columns in the SELECT statement on which we have applied SQL set operators must be the same.
- The selected columns must have the same data type.
- The order of the columns must be in the same order as mentioned in the SELECT statement.
Going ahead we will be discussing the above mentioned SQL MINUS set operator in great detail.
In order to illustrate the same, let us first create two tables “skills” and “skills_updated”. The former contains the old skills of an employee and the later contains the updated skills of an employee along with skill id, employee id, and proficiency. Both tables have the same structure. We can use the following code snippet to create the above-mentioned tables.
create table skills( id number not null constraint skills_id_pk primary key, employee_id number constraint skills_employee_id_fk references employees on delete cascade, skill varchar2(255), proficiency number constraint skills_proficiency_cc check (proficiency in (1,2,3,4,5)) ); create table skills_updated ( id number not null constraint skills_id primary key, employee_id number constraint skills_employee_id references employees on delete cascade, skill varchar2(255), proficiency number constraint skills_proficiency check (proficiency in (1,2,3,4,5)) );
After performing some random insert operations, the data in the “skills” table looks something like this.
The inserted data in the “skills_updated” table looks as follows.
Examples to Implement SQL Minus
Below are some examples to implement SQL Minus:
Find the skills that are new and added only after skill upgradation exercise.
select skill from skills_updated MINUS select skill from skills;
Find the skills that are not mentioned in the skill up-gradation table.
select skill from skills MINUS select skill from skills_updated;
Find the employees who have not updated their skills in the upgradation table.
select employee_id from skills MINUS select employee_id from skills_updated;
Find the employees or employee_ids in particular who were not present in the old skills table.
select employee_id from skills_updated MINUS select employee_id from skills;
Find the skills and proficiencies having proficiency scores more than 1 which are present in the old skills table.
select skill, proficiency from skills where proficiency > 1 MINUS select skill,proficiency from skills_updated order by skill desc;
Illustrate the use of EXCEPT Operator:
Consider two tables named “customers_jan” and “customers_dec” for demonstration purposes only. The data in them looks something like this :
|1||Rahul Vyas||new Delhi|
|2||Sneha Srivastava||new Delhi|
|8||Aditya Awasthi||new Delhi|
|1||Akshay Gupta||New Delhi|
|9||Avni Mukherjee||new Delhi|
Find the details of customers who shopped only in December but not January.
SELECT name, city FROM customers_dec EXCEPT SELECT name, city FROM customers_jan;
So in this article, we have learned about SQL MINUS set operators which are very useful in checking membership of data. It returns the results which are exclusively present in the first table. It also helps in summarizing and understanding the patterns in a huge dataset.
We hope that this EDUCBA information on “SQL Minus” was beneficial to you. You can view EDUCBA’s recommended articles for more information.