Every Joomla! installation requires a database. The database is used to store all the CMS's content(articles, categories, menus, etc.) Simply put, the content of the website being created with Joomla! is held entirely in the database. Only media(images, videos, sounds) is kept in a file format in the directory structure.
The database will be created automatically when you use a One-click installer which are sometimes provided by hosting companies. If you are installing Joomla! manually, you will need to create a database before you begin installation. See the article, Unable to connect to the database for troubleshooting connection problems pre or post installation.
The database table prefix is a string (a few characters long) prepended to the name of Joomla!'s tables. Using a prefix enables you to run multiple installations of Joomla! using a single database.
The database table prefix can be set during installation. Changing it later is possible, but requires access to the database through a non-Joomla medium or a Joomla Extension such as Akeeba Admin Tools and will cause some downtime.
Extension developers need to use the string
#__ to represent the prefix. This will be replaced by the real prefix during runtime by Joomla.
If you are developing a Joomla! Extension (component, plugin, or module) you will need to know the basics on how Joomla! interacts and uses the database. Further information for developers can be found in Accessing the database using JDatabase.