HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>По своей сути Google Sheets близки к таблицам в базах данных. Потому мы можем сформировать таблицу в Google Sheets, используя таблицу как базу данных. Но это не все: еще мы можем использовать специальные команды.</p>
1 <p>По своей сути Google Sheets близки к таблицам в базах данных. Потому мы можем сформировать таблицу в Google Sheets, используя таблицу как базу данных. Но это не все: еще мы можем использовать специальные команды.</p>
2 <p>Команды в Google Sheets похожи на SQL-запросы к базам данных. Официально они называются<strong>Google Visualization API Query Language</strong>- их мы и изучим в этом уроке.</p>
2 <p>Команды в Google Sheets похожи на SQL-запросы к базам данных. Официально они называются<strong>Google Visualization API Query Language</strong>- их мы и изучим в этом уроке.</p>
3 <p>Чтобы использовать SQL-подобные запросы, нужно создать функцию QUERY(). В этом уроке мы будем работать с этой функцией на<a>примере</a>таблицы<em>Hotels</em>:</p>
3 <p>Чтобы использовать SQL-подобные запросы, нужно создать функцию QUERY(). В этом уроке мы будем работать с этой функцией на<a>примере</a>таблицы<em>Hotels</em>:</p>
4 <p>Она содержит такие столбцы:</p>
4 <p>Она содержит такие столбцы:</p>
5 <ul><li><em>Id</em>- уникальный идентификатор отеля</li>
5 <ul><li><em>Id</em>- уникальный идентификатор отеля</li>
6 <li><em>Name</em>- название отеля</li>
6 <li><em>Name</em>- название отеля</li>
7 <li><em>Stars</em>- количество звезд у отеля (от трех до пяти)</li>
7 <li><em>Stars</em>- количество звезд у отеля (от трех до пяти)</li>
8 <li><em>Rating</em>- средняя оценка отеля по шкале от 0 до 10 по мнению гостей</li>
8 <li><em>Rating</em>- средняя оценка отеля по шкале от 0 до 10 по мнению гостей</li>
9 <li><em>TwinRoomPrice</em>- стартовая цена за комнату с двумя кроватями</li>
9 <li><em>TwinRoomPrice</em>- стартовая цена за комнату с двумя кроватями</li>
10 <li><em>City</em>- название города, в котором находится отель (<em>Bandung</em>,<em>Denpasar</em>, или<em>Surabaya</em>)</li>
10 <li><em>City</em>- название города, в котором находится отель (<em>Bandung</em>,<em>Denpasar</em>, или<em>Surabaya</em>)</li>
11 </ul><h2>Синтаксис</h2>
11 </ul><h2>Синтаксис</h2>
12 <p>Функция QUERY() пишется так:</p>
12 <p>Функция QUERY() пишется так:</p>
13 <p>Если же у вас Гугл и Гугл-таблицы с русскоязычным интерфейсом, то в формуле параметры будут отделяться точкой с запятой</p>
13 <p>Если же у вас Гугл и Гугл-таблицы с русскоязычным интерфейсом, то в формуле параметры будут отделяться точкой с запятой</p>
14 <p>Рассмотрим подробнее ее параметры:</p>
14 <p>Рассмотрим подробнее ее параметры:</p>
15 <ul><li>data - диапазон ячеек с данными (мы выделим всю таблицу целиком)</li>
15 <ul><li>data - диапазон ячеек с данными (мы выделим всю таблицу целиком)</li>
16 <li>query - SQL-подобный запрос, который нужно выполнить</li>
16 <li>query - SQL-подобный запрос, который нужно выполнить</li>
17 <li>headers - количество строк с заголовками (обычно это первая строка таблицы)</li>
17 <li>headers - количество строк с заголовками (обычно это первая строка таблицы)</li>
18 </ul><p>Параметр headers не обязательный. Если мы его не укажем, программа сама предположит, в каких строках содержатся заголовки.</p>
18 </ul><p>Параметр headers не обязательный. Если мы его не укажем, программа сама предположит, в каких строках содержатся заголовки.</p>
19 <p>Теперь рассмотрим синтаксис SQL - языка запросов к базе данных. У него есть жесткий порядок ключевых слов:</p>
19 <p>Теперь рассмотрим синтаксис SQL - языка запросов к базе данных. У него есть жесткий порядок ключевых слов:</p>
20 <p>Обсудим подробнее значения этих ключевых слов:</p>
20 <p>Обсудим подробнее значения этих ключевых слов:</p>
21 <ul><li>SELECT - "выбрать". Здесь мы указываем, какие данные попадут в наш запрос и как мы их назовем. Например, это может быть столбец SELECT Name</li>
21 <ul><li>SELECT - "выбрать". Здесь мы указываем, какие данные попадут в наш запрос и как мы их назовем. Например, это может быть столбец SELECT Name</li>
22 <li>FROM - "из". Здесь указываем название таблицы, из которых будут черпаться данные</li>
22 <li>FROM - "из". Здесь указываем название таблицы, из которых будут черпаться данные</li>
23 <li>JOIN - "соединить". С его помощью мы пишем, по какому столбцу искать соответствия таблице А в таблице Б</li>
23 <li>JOIN - "соединить". С его помощью мы пишем, по какому столбцу искать соответствия таблице А в таблице Б</li>
24 <li>WHERE - "где". Это константное условие фильтрации, с помощью которого мы отсеиваем нужные данные. Например, можно отсеять данные, написав запрос WHERE Rating&gt;5</li>
24 <li>WHERE - "где". Это константное условие фильтрации, с помощью которого мы отсеиваем нужные данные. Например, можно отсеять данные, написав запрос WHERE Rating&gt;5</li>
25 <li>GROUP BY - "группировать по". Это параметр группировки, который определяет, по каким столбцам будет группироваться итоговый запрос</li>
25 <li>GROUP BY - "группировать по". Это параметр группировки, который определяет, по каким столбцам будет группироваться итоговый запрос</li>
26 <li>HAVING - "имеющий". Это агрегатное условие фильтрации, по нему мы отсеиваем данные, используя в виде фильтра агрегатную функцию (например, HAVING AVG(Stars)&gt;3)</li>
26 <li>HAVING - "имеющий". Это агрегатное условие фильтрации, по нему мы отсеиваем данные, используя в виде фильтра агрегатную функцию (например, HAVING AVG(Stars)&gt;3)</li>
27 <li>ORDER BY - "сортировать по". Это параметр сортировки, который меняет порядок отображения данных в итоговой таблице по возрастанию или по убыванию столбцов</li>
27 <li>ORDER BY - "сортировать по". Это параметр сортировки, который меняет порядок отображения данных в итоговой таблице по возрастанию или по убыванию столбцов</li>
28 </ul><p>Если хотите попрактиковать запросы именно в SQL-формате, можно воспользоваться сервисом<a>DB Fiddle</a>.</p>
28 </ul><p>Если хотите попрактиковать запросы именно в SQL-формате, можно воспользоваться сервисом<a>DB Fiddle</a>.</p>
29 <p>Посмотрим, как именно используются эти ключевые слова в базовых запросах к таблице.</p>
29 <p>Посмотрим, как именно используются эти ключевые слова в базовых запросах к таблице.</p>
30 <h2>CRUD: Базовые операции с табличными данными</h2>
30 <h2>CRUD: Базовые операции с табличными данными</h2>
31 <p><strong>CRUD</strong>(<em>Create</em>,<em>Read</em>,<em>Update</em>и<em>Delete</em>) - это аббревиатура, которая обозначает четыре базовые операции с базами данных.</p>
31 <p><strong>CRUD</strong>(<em>Create</em>,<em>Read</em>,<em>Update</em>и<em>Delete</em>) - это аббревиатура, которая обозначает четыре базовые операции с базами данных.</p>
32 <p>Чтобы совершать эти операции, мы можем использовать такие операторы:</p>
32 <p>Чтобы совершать эти операции, мы можем использовать такие операторы:</p>
33 <ul><li>Создать новые данные в таблице - INSERT</li>
33 <ul><li>Создать новые данные в таблице - INSERT</li>
34 <li>Прочитать данные - SELECT</li>
34 <li>Прочитать данные - SELECT</li>
35 <li>Обновить данные - UPDATE</li>
35 <li>Обновить данные - UPDATE</li>
36 <li>Удалить данные - DELETE</li>
36 <li>Удалить данные - DELETE</li>
37 </ul><p>Скорее всего, на первых порах вы будете использовать только чтение данных: фильтровать, группировать, добавлять расчеты над столбцом и так далее.</p>
37 </ul><p>Скорее всего, на первых порах вы будете использовать только чтение данных: фильтровать, группировать, добавлять расчеты над столбцом и так далее.</p>
38 <h2>Пишем первый запрос к Google Sheets</h2>
38 <h2>Пишем первый запрос к Google Sheets</h2>
39 <p>Когда новички изучают другие языки программирования, они в первую очередь учатся писать фразу<em>Hello, world</em>. Аналог этой фразы в мире SQL - это команда SELECT * FROM.</p>
39 <p>Когда новички изучают другие языки программирования, они в первую очередь учатся писать фразу<em>Hello, world</em>. Аналог этой фразы в мире SQL - это команда SELECT * FROM.</p>
40 <p>Напишем аналогичный запрос внутри Google Sheets. Сначала выберем свободную ячейку справа от таблицы Hotels, и напишем в ней такой запрос:</p>
40 <p>Напишем аналогичный запрос внутри Google Sheets. Сначала выберем свободную ячейку справа от таблицы Hotels, и напишем в ней такой запрос:</p>
41 <p>Убедимся, что мы захватили диапазоном всю таблицу сразу:</p>
41 <p>Убедимся, что мы захватили диапазоном всю таблицу сразу:</p>
42 <p>Обратите внимание на отличия от SQL. Когда мы пишем SQL-подобные запросы с QUERY(), то ключевое слово FROM нужно ставить перед SELECT. В нашем случае мы обозначили его диапазоном A1:F23.</p>
42 <p>Обратите внимание на отличия от SQL. Когда мы пишем SQL-подобные запросы с QUERY(), то ключевое слово FROM нужно ставить перед SELECT. В нашем случае мы обозначили его диапазоном A1:F23.</p>
43 <p>Символ * обозначает "всё". Другими словами, мы выбираем все без исключения данные из выбранного диапазона значений.</p>
43 <p>Символ * обозначает "всё". Другими словами, мы выбираем все без исключения данные из выбранного диапазона значений.</p>
44 <p>Теперь нажмем Enter:</p>
44 <p>Теперь нажмем Enter:</p>
45 <p>Мы получили таблицу, полностью идентичную изначальной. Так и должно быть.</p>
45 <p>Мы получили таблицу, полностью идентичную изначальной. Так и должно быть.</p>
46 <h2>Использование столбцов и условий</h2>
46 <h2>Использование столбцов и условий</h2>
47 <p>Предположим, что мы решили отфильтровать только трехзвездочные отели и показать для них три колонки:<em>Name</em>,<em>Rating</em>и<em>TwinRoomPrice</em>.</p>
47 <p>Предположим, что мы решили отфильтровать только трехзвездочные отели и показать для них три колонки:<em>Name</em>,<em>Rating</em>и<em>TwinRoomPrice</em>.</p>
48 <p>Чтобы выполнить эту задачу, обратимся к столбцам напрямую:</p>
48 <p>Чтобы выполнить эту задачу, обратимся к столбцам напрямую:</p>
49 <p>Обратите внимание, что названия колонок разделены запятыми, а ключевые слова запроса - нет. Вместо названий колонок из таблицы, мы использовали буквы, которыми называются столбцы в Google Sheets.</p>
49 <p>Обратите внимание, что названия колонок разделены запятыми, а ключевые слова запроса - нет. Вместо названий колонок из таблицы, мы использовали буквы, которыми называются столбцы в Google Sheets.</p>
50 <p>На картинке ниже видно, как именно запрос обращается к колонкам:</p>
50 <p>На картинке ниже видно, как именно запрос обращается к колонкам:</p>
51 <p>Когда мы жмем Enter, Google Sheets создает аккуратную таблицу с тремя столбцами. Теперь мы видим только трехзвездочные отели с названием, рейтингом и ценой размещения в двухместном номере:</p>
51 <p>Когда мы жмем Enter, Google Sheets создает аккуратную таблицу с тремя столбцами. Теперь мы видим только трехзвездочные отели с названием, рейтингом и ценой размещения в двухместном номере:</p>
52 <p>Аналогичный запрос в среде SQL будет выглядеть так:</p>
52 <p>Аналогичный запрос в среде SQL будет выглядеть так:</p>
53 <h2>Выводы</h2>
53 <h2>Выводы</h2>
54 <p>В этом уроке вы научились писать запросы к табличным данным. Теперь вы знаете, что манипулировать табличными данными в Google Sheets помогает Google Visualization API Query Language. Этот подход интуитивно более понятен. Его использовать намного проще, чем логические и математические функции в Google Sheets.</p>
54 <p>В этом уроке вы научились писать запросы к табличным данным. Теперь вы знаете, что манипулировать табличными данными в Google Sheets помогает Google Visualization API Query Language. Этот подход интуитивно более понятен. Его использовать намного проще, чем логические и математические функции в Google Sheets.</p>