Q:

Rows which do not exist in a table

I have a lists of names John, Rupert, Cassandra, Amy, and I want to get  names which are not exists in table: Cassandra, Amy
How should I write such query?
My table:
+----+--------+-----------+------+
| id | name   | address   | tele |
+----+--------+-----------+------+
|  1 | Rupert | Somewhere | 022  |
|  2 | John   | Doe       | 029  |
|  3 | Donald | Armstrong | 021  |
|  4 | Bob    | Gates     | 022  |
+----+--------+-----------+------+

A:

Think in sets. You add names to a the result set with UNION ALL, you remove names from the result set with EXCEPT.
select 'John'
union all
select 'Rupert'
union all
select 'Cassandra'
union all
select 'Amy'
except
select name from mytable;

