The real discussion here is about namespaces. In Oracle and PostgreSQL you have namespaces called schemas within a single database that let all your various data sets live in the same database without bumping into each other.
In Oracle they're built on a one to one relationship to usernames. If you have users joe, jim and jack, then you have schemas joe jim and jack.
In PostgreSQL they're more freeform, you can create schemas and users completely separately.
Syntactically, you references schemas in those dbs like you reference dbs in mysql.
select field1 from schema.tablename yada...
In Oracle you have one current schema and all other objects must be referenced with a schema prefix.
In PostgreSQL you have a "search path" of schemas to look in. This allows you to cool stuff like:
create schema base;
create schema customer1;
create schema customer2;
Put common tables like product name and product id and inventory data into the base schema. Now put customer specific data into the customer schema. When operating on the data for customer1 you have a search path of 'base','customer1' and for customer2 you switch the second one there.
Then, your queries that would require fully qualified names with Oracle (or separate dbs in mysql) and look like this:
select base.prod_table.prod_id, base.prod_table.prod_name, base.prod_table.qty, customer1.cust.id, customer1.cust.yada join more yada...
becomes just
set search_path='base','cusomter1';
select prod_id, prod_name, qty, id, yada from prod_table join cust on (...
The real advantage to schemas over databases is that usually schemas are faster than separate databases. But I'm not so sure for MySQL is there's a lot of overhead on having separate databases.
Ah well, I'm just rambling now.