@novice_tester when you create a database, it takes the external warehouse directory path from hive.metastore.warehouse.external.dir, and sets that as the database LOCATION for external tables only(when created without setting location clause). Please note, there is another MANAGEDLOCATION field that is blank.
e.g.
describe database extended question;
+-----------+----------+----------------------------------------------------+------------------+-------------+-------------+-------------+
| db_name | comment | location | managedlocation | owner_name | owner_type | parameters |
+-----------+----------+----------------------------------------------------+------------------+-------------+-------------+-------------+
| question | | hdfs://node2.cloudera.com:8020/warehouse/tablespace/external/hive/question.db | | hive | USER | |
+-----------+----------+----------------------------------------------------+------------------+-------------+-------------+-------------+
A Managedlocation can be set on a database if you want to use a different location for managed tables other than hive.metastore.warehouse.dir. Otherwise it is kept blank. I hope this helps.
To summarize, you do not need to worry about the LOCATION of a database. It can host both managed and external tables. When you create a managed table under the same DB, it will pick the path set in hive.metastore.warehouse.dir, irrespective of the database Location, and when you create an external table without the location clause, it gets stored in the DB LOCATION path.