В предыдущих статьях мы познакомились с оператором SELECT
, а также узнали как использовать вычисляемые столбцы в запросах с SELECT . Узнали основы - для чего он нужен, его синтаксис и как его применять. В данной статье мы рассмотрим как выбрать все данные (столбцы) из таблицы на примере SQL запроса.
Иногда требуется получить содержимое всех столбцов таблицы. На практике такая ситуация может возникнуть, когда вы впервые сталкиваетесь с новой базой данных и необходимо быстро получить представление о ее структуре и хранимых в ней данных. С учетом этого в SQL разрешается использовать вместо списка возвращаемых столбцов символ звездочки (*
), который означает, что требуется извлечь все столбцы.
Показать все данные, содержащиеся в таблице OFFICES.
SELECT *
FROM OFFICES;
OFFICE CITY REGION MGR TARGET SALES
------- ------------ -------- ---- ------------ ------------
22 Denver Western 108 $300,000.00 $186,042.00
11 New York Eastern 106 $575,000.00 $692,637.00
12 Chicago Eastern 104 $800,000.00 $735,042.00
13 Atlanta Eastern 105 $350,000.00 $367,911.00
21 Los Angeles Western 108 $725,000.00 $835,915.00
Результаты запроса содержат все шесть столбцов таблицы OFFICES
, которые расположены в том же порядке, что и в исходной таблице.
Символ выборки всех столбцов очень удобно использовать в интерактивном SQL. Использования же его в программном SQL следует избегать, поскольку изменения в структуре базы данных могут привести к краху приложения. Предположим, например, что таблица OFFICES
была удалена из базы данных, а затем создана вновь, при этом был изменен порядок столбцов и добавлен новый, седьмой, столбец. Если программа ожидает, что запрос SELECT * FROM OFFICES
возвратит результат, содержащий шесть столбцов определенных типов, она почти наверняка перестанет работать после изменения порядка столбцов и добавления нового столбца.
Этих сложностей можно избежать, если в программах запрашивать требуемые столбцы по именам. Например, приведенный ниже запрос возвращает те же результаты, что и запрос SELECT * FROM OFFICES
. Он не восприимчив к изменениям структуры базы данных, пока в таблице OFFICES
существуют столбцы с указанными именами.
SELECT OFFICE, CITY, REGION, MGR, TARGET, SALES
FROM OFFICES;