Selecting a column rather than a row can be very useful. For example, suppose I want a list of every distinct value in one of my database fields. I can use selectcol_arrayref
along with a SELECT DISTINCT statement to slurp the whole column into an array. Any of the other DBI functions would force you to use looping structures or list operators on your fetched data to get the same result, and you would have to bother with prepare, execute, fetch and finish.
If you are using any of the database handle methods (as opposed to statement handle methods), you cannot bind variables becuase you never prepare the statement; DBI does it all for you. This works wonderfully for a one-shot query, where there is no reason to bind variables.