Первый запрос: SELECT и FROM
Содержание курса
Ошибки no such table и no such column при опечатке в имени
SQLite не угадывает намерения — он ищет точное совпадение имени таблицы или столбца. Стоит допустить опечатку, и выполнение немедленно прерывается с конкретным сообщением.
Два варианта ошибки:
-- Опечатка в имени таблицы
SELECT order_id FROM ordres;
-- Error: no such table: ordres
-- Опечатка в имени столбца
SELECT order_id, amountt FROM orders;
-- Error: no such column: amountt
Сообщения разные, и это важно: no such table говорит, что база данных не нашла таблицу с таким именем — в простом запросе проверяйте имя после FROM. no such column означает, что SQLite не нашёл указанное имя столбца или выражения; здесь опечатка находится в списке SELECT, а в более сложном запросе проверять нужно весь текст.
Отдельный случай — SELECT без FROM. SQLite допускает такую форму для вычисления выражений:
SELECT 1 + 1;
Этот запрос вернёт одну строку со значением 2. Здесь нет ни таблицы, ни столбца — просто арифметика. Ни no such table, ни no such column здесь возникнуть не могут: базу данных никто не просил что-то искать.
Практический вывод: когда видите одну из этих ошибок, первым делом сверьте написание с реальным именем таблицы или столбца — регистр в именах SQLite не различает, но буквенный состав должен совпадать точно.
