Будет ли COUNT(*) подсчитывать все строки? И что, если все столбцы нулевые?
Ответ 1
Правильный. COUNT (*) - это все строки в таблице, COUNT (выражение) - это то, где выражение не является ненулевым.
Если все столбцы имеют значение NULL (что указывает на то, что у вас нет первичного ключа, поэтому это не должно происходить в нормализованной базе данных), COUNT (*) по-прежнему возвращает все вставленные строки. Просто не делай этого.
Вы можете думать о символе * как о значении "в таблице", а не "в любом столбце".