Yes. It depend if you are doing it, or the new hosting company help you.
If you are doing it, you’ll need to get your hand dirty into database and stuff, since that you used a lot of plugins and everything.
Some hosting company do help you migrate your WordPress (or whole website from old host).
It should be fairly simple to transfer over, assuming your new host doesn’t provide services to help you. Copy all the files to the new host and then export the SQL database from the old host and import it into the new host.
If the new hosting doesn’t support SQL database importing then you should not be going with them.
Yes you can using an ftp software like filezilla so that you can upload your site to your new web host. Most paid hosting plan has an ftp support. You can try myhosting in transferring your website.
Yes, you will need all your codes and your database files uploaded. There might be some editing about your code on database connection, database name, database user and password other than that everything will work out just fine.
I want to suggest this site
As long as you own the domain name, then you can transfer it to another host.
The best way to approach this is to contact the hosting company where you want to move and ask them if they can move a wordpress site from your old host to the new host. The biggest challenge is moving the database, so be sure to confirm they can do that before you move. I’ve listed one blog hosting company below that I know can move WordPress blogs. Of course ask first, and then you’ll know for sure. Anyway, this is a good question to ask before you start a blog.