Difference Between UNION and UNION ALL

November 2022 ยท 5 minute read

The SQL operators, UNION and UNION ALL, are used to merge or link two or more sets of results. SQL stands for Structured Query Language, a language for databases. It is a programming language precisely devised for storing, retrieving, managing, or manipulating data. It allows handling information using tables, too.

UNION vs UNION ALL

The main difference between UNION and UNION ALL is that UNION retains only the unique records and removes the duplicate ones while concatenating the data. In contrast, UNION ALL maintains all of the records from the original set, including the duplicate records.

The UNION operator in SQL acts as one of the SET operators. It is generated to combine the results of multiple tables or multiple SQL queries. The operator merges the tables and gives a single result set. The UNION command can combine the set of two or more selected statements.

The UNION ALL command also helps in combining more than two statements. But this one is different from the former. UNION ALL allows duplicate values in the result set. It does not filter out the same statements and merges all the values in the result set.

Comparison Table Between UNION and UNION ALL

Parameters of ComparisonUNIONUNION ALL
FunctionalityIt does not work with columns that have Text Data Types.It works with all the data type columns.
FunctionCombines multiple statements and provides results in distinct values.Combines multiple statements and provides results containing all the values.
FeatureIt has a feature to eliminate identical statements from the result.It does not have any feature to eliminate the same statements.
PerformanceIts performance is slow as it takes time to identify and remove duplicate statements.It is comparatively fast.
PreferenceUsers tend to favor this operator.Users generally do not incline to use this operator.

What is UNION?

UNION is a type of SET operator in SQL, and it is used to combine multiple SQL statements. The UNION combines the results generated by multiple tables and turns them into a single result. The resultant set contains all the rows, but the duplicate ones are removed.

To use the UNION operator, the selected statements must have the same number of columns. And, the data in these columns must be compatible with the operator. The order of columns must also be examined and be kept the same.

The UNION operator can be used on two or more tables. However, its functioning does take time as it eliminates duplicate statements. Even so, the UNION operator is the preferred one among users as it helps in eliminating the duplicates from the resultant set.

The column name selected in the different SELECT queries must be in the same order for the proper functioning of the operator. However, the column name of the first selected query would be the name of the result.

The UNION operator merges the tables vertically. For the operator to function, the basic need is that SELECT fields must have the same number of fields, and their data type must be similar too. Due to its features, the UNION operator is more preferred by the users.

What is UNION ALL?

UNION ALL is also used to concatenate the data of two different SQL sets. It is one of the four SQL SET operators and is primarily used to combine the resultant set of two or more SQL sets. It is very similar to the UNION operator, but there are nuanced differences too.

To use the UNION ALL operator, the basic requirement is that the number of columns must be the same in the SELECT queries. Their data types must also be compatible and the same. Also, the positioning of the columns and data must be the same so that the merge can be done effectively.

UNION ALL is similar to UNION and is used to concatenate the data tables. But, the resultant sets by using UNION ALL are different. The result contains all the rows and columns from the selected statements.

UNION ALL does not eliminate the same queries from the result. Instead, it merges all the entries which are selected and does not remove the repeated ones. This is the major difference between UNION and UNION ALL.

Since UNION ALL does not need to eliminate the duplicate statements, it is of comparatively better functioning. However, the users generally do not prefer to use this operator.

Main Differences Between UNION and UNION ALL

  • The results generated by UNION contain unique statements, whereas UNION ALL adds duplicate entries too, and it simply combines all the entries in the resultant set.
  • UNION operator is more preferred by the users even though it is slower. UNION ALL is not favored by the users. This inclination probably could be because of the better features of UNION.
  • UNION operator is comparatively slower in its function as compared to UNION ALL operator because it takes time to eliminate the duplicate statements.
  • UNION operator has this default feature to eliminate the repeated statements, but the UNION ALL operator does not have any such feature.
  • UNION operator does not function with columns that have Text Data Type. But, UNION ALL functions with all types of data columns.
  • Conclusion

    UNION and UNION ALL are SQL operators. Both of these are used to concatenate the SELECT queries and helps one achieve the desired results. Both of these combine the selected SQL statements, but the output is different.

    UNION operator has the feature to eliminate the repeated entries from the final output. On the other hand, UNION ALL does not have any such feature, and hence, its output consists of duplicate entries or the repeated statements in the selected queries.

    The results of UNION contain distinct entries but UNION ALL simply compiles all the entries without any changes. Due to their different features, their performance also differs. UNION is comparatively slower as the operator needs to make distinct entries and make changes accordingly.

    References

  • https://link.springer.com/chapter/10.1007/978-1-4302-3229-2_4
  • http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.403.9125&rep=rep1&type=pdf
  • https://ieeexplore.ieee.org/abstract/document/6030237/
  • ncG1vNJzZmiZo6Cur8XDop2fnaKau6SxjZympmeeoXyltcWfnKudnpiybq7Era6enZ5iwq%2B1zqdkmqaUYsKvtc6nZJqknGQ%3D