Dynamic IP is not samething as Public IP. You can make your own server a static IP in your local network with anything in a range of private IPs. 192.168.0.0 to 192.168.255.255 is an example of such range.
You can use NAT to let your webserver be able access throught internet.
If your web page has some dynamic application, need make sure your webserver has the function to handle dynamic pages.
If you pay a host, easy way is to upload you database to it. I don't think it worth to have your own server at all.