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>5</li>
24
<li>WHERE - "где". Это константное условие фильтрации, с помощью которого мы отсеиваем нужные данные. Например, можно отсеять данные, написав запрос WHERE Rating>5</li>
25
<li>GROUP BY - "группировать по". Это параметр группировки, который определяет, по каким столбцам будет группироваться итоговый запрос</li>
25
<li>GROUP BY - "группировать по". Это параметр группировки, который определяет, по каким столбцам будет группироваться итоговый запрос</li>
26
<li>HAVING - "имеющий". Это агрегатное условие фильтрации, по нему мы отсеиваем данные, используя в виде фильтра агрегатную функцию (например, HAVING AVG(Stars)>3)</li>
26
<li>HAVING - "имеющий". Это агрегатное условие фильтрации, по нему мы отсеиваем данные, используя в виде фильтра агрегатную функцию (например, HAVING AVG(Stars)>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>