I've got this brilliant software, PureBasic!


Can someone explain me very pedagogically how when and why do I need or want to use the different datatypes. I did only used DarkBasic Pro (also as a beginner) where you have integer/string/float. There're also others but I didn't use them.
The questions are:
What is the difference between Byte/Cahracter/Long/...
When do I for example need to use Byte instead of Long and so on...?
What are advantages of String when you compare it to Float and so on...?
What is memory allocation and when, why and how do I use it?
Isn't memory allocation something automamatic which PB does for me automaticlly?
Do I also have to clear memory (I mean delete variable values) manually when I finish the in PB created program (main loop)?
Can you please give me some illustrative and relevant code examples to play with?
Please take in account that I'm a stupid beginner who doesn't have a clue bout the complicated stuff. Please make easy explanations.
Thank you very much. I hope you didn't get bored reading this long text

P.S.: English is not my native language that's why there could be some misspellings.