Hi, Dan:
I will attempt to answer some of your questions, although I am just learning MYSQL, too.
1) You could create a database with mutliple tables. Each table could correspond to a project. Sometimes, you will need multiple tables for one project. So, for your site, you might have a DB called: "bbqman_db" and within this you could have a table titled: "guestbook_table" and another titled "images_table", and another called "blog_table" etc...
2) If you have a form set up to work with a PHP script to validate user input, and sanitize the input for the database, you can then create a query that will enter that info to the DB. Correct.
3) Then, you would create another page where the information can be displayed, and you would write a companion SQL query to retrieve the data from the database table. You can write the query to show as many or as few items (records) as you wish.
4) The query is done on the server side of things and not at home on the client. Your job is to present the data selected from the db and format it into correct and valid HTML code for the client.
5) For images (.gif, .jpg, .jpeg, .png, etc...) and documents (.txt, .doc, .zip, .pdf, etc...) it is best to fill the database with their respective URLs and not the actual content. The performance of the db will be much faster this way, and is typically how it is done.
Well, I hope that at least points you in the right direction for a couple of your q's.
Good luck and have fun getting started.