Since you asked when to use them.. I'll make it as simple as possible from my POV.
"Pick all" -> "mySprite.big = 1" OR simply "mySprite.big = 1"
- will do exactly what you want... which is to pick and do something to the sprite. It is faster when you have lots of the same objects and have to do something to them... except it won't give you the UID or loopindex for each sprite in case you need it for something.
"for each" -> "mySprite.big = 1" OR "mySprite.big = 1" -> "for each" (which is more optimised by adding the for each after the pick) will actually loop on all the picked object and you will have all the properties of the sprite since construct is processing each 1 of them, For e.g mySprite.UID, mySprite.instanceVariable, the loopindex, etc
The "pick" is faster from what I tested and I use it everytime for simple actions whereas I use the "for each" when I have to make use of their properties like the UIDs or the loopindex for some purposes; this is suitable when I need to call a function for each 1 of the sprite and make use of their properties there.