Exists: Determines if there are any rows that meet the criteria of a subquery and outputs `TRUE` if there is at least one matching row. Checking for the presence of rows is typically more effective, particularly when working with extensive datasets.
Exists is used to get the presence of matching row without giving any specific values
IN: Contrasts the value of a column with a list of values given by a subquery or explicitly indicated. Ideal for small data sets or when you need to match particular values.
IN is utilized to check a column against specific values or rows.
Usually, `EXISTS` is best for large tables, whereas `IN` is better suited for small, well-defined lists of values.