In order to separate loose parts, they have to be loose in the first place:
1- in Edit Mode, select the Edge Loop between the two parts you want to separate.
2- Press V in order to break the vertices, then RMB to quit translate operation.
3- Repeat step 2 in order to break all parts.
4- You will not notice any difference, but when you select a single vertex and try to move, you'll notice that it's broken, two separate vertices were created by pressing V
5- Press A until everything is selected, then press P > Loose Parts.
6- Now every piece of mesh is a separate object.
This is the answer to the question as is, but you don't have to break the mesh in the first place to assign separate textures to different parts, you can assign a separate UV map to each part and assign a different texture or/and Material.