Hi there,
Not sure what specifically you are asking help for. InfoPath can do all of what you mentioned above. 1 is pretty straight forward, but will require you to make the form from scratch likely. 2 you can connect to a database through data connections. 3 will require some custom code as InfoPath cannot do this out of the box, but is definitely possible. There may be some third party tools that will let you do this as well.