Когда мы используем Natural Join, мы объединяем таблицы, когда обе таблицы имеют одинаковые имена столбцов. Но что, если мы напишем его на PHP, а затем администратор БД добавит еще несколько полей в обе таблицы, тогда естественное объединение может прерваться?
То же самое касается вставки, если мы делаем
insert into gifts values (NULL, "chocolate", "choco.jpg", now());
тогда он нарушит код, а также загрязнит таблицу, когда администратор базы данных добавит некоторые поля в таблицу (например, столбец 2 или 3). Поэтому всегда лучше указывать имена столбцов, когда операторы SQL написаны на языке программирования и сохранены в файле в большом проекте.