Работа с данными
После создания базы данных выполните базовые YQL-запросы: создайте таблицу, работайте с данными таблицы и удалите её. Вы можете использовать консоль управления или интерфейс командной строки (YDB CLI).
Совет
Подробнее о синтаксисе YQL читайте в Справочнике YQL.
Перед началом работы
Чтобы успешно работать с базой данных, используя YDB CLI:
-
Установите YDB CLI — консольный клиент, для работы с Yandex Database.
-
Узнайте эндпоинт и путь для своей базы данных, для этого:
Консоль управления- Перейдите в консоль управления.
- Выберите нужный каталог и перейдите в сервис Yandex Database.
- Выберите базу данных, к которой планируете выполнять запросы.
- В меню слева перейдите в раздел Обзор.
- Значение эндпоинта указано в строке Эндпоинт.
- Пример значения параметра для Dedicated базы:
lb.etn01lrprvnlnhv8v5kj.ydb.mdb.yandexcloud.net:2135
. - Пример значения параметра для Serverless базы:
ydb.serverless.yandexcloud.net:2135
.
Порт для эндпоинта по умолчанию2135
, так что указывать в запросе:2135
не обязательно.
- Пример значения параметра для Dedicated базы:
- Полный путь к базе указан в строке База данных.
Пример значения параметра:/ru-central1/b1g4ej5ju4rf5kelpk4b/etn01lrprvnlnhv8v5kj
.
-
CLI
Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.
-
Посмотрите описание команды для получения списка баз данных:
yc ydb database list --help
-
Чтобы получить список баз данных в каталоге по умолчанию, выполните команду:
yc ydb database list
В результате в колонке
ENDPOINT
будет указанэндпоинт
и база данных.+----------------------+----------+-------------+------------------------------------------------+---------------------+---------+ | ID | NAME | DESCRIPTION | ENDPOINT | CREATED AT | STATUS | +----------------------+----------+-------------+------------------------------------------------+---------------------+---------+ | etn008v5oqsj8joktlvd | ydb-test | | grpcs://<YDB эндпоинт>/?database=<база данных> | 2020-12-09 11:46:45 | RUNNING | +----------------------+----------+-------------+------------------------------------------------+---------------------+---------+
1.Сохраните значения
YDB эндпоинт
и базу данных, указанных в колонкеENDPOINT
. Они потребуются для дальнейших запросов. -
-
Проверьте разрешение входящего трафика через порт 2135. Убедитесь, что в назначенной группе безопасности существует соответствующее правило или добавьте его.
-
Используйте один из способов аутентификации, представленных в разделе Аутентификация в YDB CLI.
Один из самых простых способов аутентификации — сохранить значение OAuth-токена в переменную окружения YC_TOKEN. Для этого выполните команду:
export YC_TOKEN=<OAuth-токен>
Создание таблицы
Создайте новую таблицу в базе данных с помощью конструкции CREATE TABLE:
-
В консоли управления выберите каталог, в котором будет создана база данных.
-
В списке сервисов выберите Yandex Database.
-
На странице Базы данных выберите базу.
-
Чтобы открыть корневую директорию базы, перейдите на вкладку Навигация.
-
Для создания запроса к базе нажмите кнопку SQL-запрос в правом верхнем углу. Откроется страница Запрос.
-
В поле Запрос введите:
CREATE TABLE series ( series_id Uint64, title Utf8, series_info Utf8, release_date Uint64, PRIMARY KEY (series_id) );
-
Нажмите кнопку Выполнить.
Если запрос был выполнен успешно, то в нижней части будет надпись
Completed
. Новая таблицаseries
появится в области слева. -
Чтобы получить подробную информацию о таблице, наведите на нее курсор и нажмите значок . Откроется поле с описанием. Для просмотра схемы таблицы перейдите на вкладку Схема.
-
Если у вас еще нет интерфейса командной строки YDB CLI, установите и инициализируйте его.
-
Посмотрите описание команды для выполнения YQL запроса:
ydb scripting yql --help
-
Для создания таблицы выполните запрос:
ydb -e grpcs://<YDB эндпоинт> -d <база данных> \ scripting yql -s \ 'CREATE TABLE series ( series_id Uint64, title Utf8, series_info Utf8, release_date Uint64, PRIMARY KEY (series_id) );'
-
Посмотрите результат, выполнив команду:
ydb -e grpcs://<YDB эндпоинт> -d <база данных> \ scheme ls -l
Результат:
┌───────┬─────────────────┬──────┬───────────────────────────────┬──────────┬─────────────┐ | Type | Owner | Size | Created | Modified | Name | ├───────┼─────────────────┼──────┼───────────────────────────────┼──────────┼─────────────┤ | table | ajehdq76s7o8ike | 0 b | Wed, 09 Dec 2020 14:53:25 MSK | Unknown | series | | dir | | | | | .sys | └───────┴─────────────────┴──────┴───────────────────────────────┴──────────┴─────────────┘
Добавление строк
Добавьте данные в таблицу, используя конструкцию REPLACE INTO:
-
В консоли управления перейдите в рабочий каталог.
-
Выберите сервис Yandex Database и откройте базу данных, в которой будете выполнять операции.
-
Для создания запроса к базе перейдите на вкладку Навигация и нажмите кнопку SQL-запрос в правом верхнем углу. Откроется страница Запрос.
-
В поле Запрос введите:
REPLACE INTO series (series_id, title, release_date, series_info) VALUES ( 1, "IT Crowd", CAST(Date("2006-02-03") AS Uint64), "The IT Crowd is a British sitcom." ), ( 2, "Silicon Valley", CAST(Date("2014-04-06") AS Uint64), "Silicon Valley is an American comedy television series." ), ( 3, "Fake series", CAST(Date("2018-09-11") AS Uint64), "Fake series for testing purposes." ) ;
-
Для запуска запроса нажмите кнопку Выполнить.
-
Если у вас еще нет интерфейса командной строки YDB CLI, установите и инициализируйте его.
-
Посмотрите описание команды для выполнения YQL запроса:
ydb scripting yql --help
-
Для добавления данных в таблицу выполните команду:
ydb -e grpcs://<YDB эндпоинт> -d <база данных> \ scripting yql -s \ 'REPLACE INTO series (series_id, title, release_date, series_info) VALUES ( 1, "IT Crowd", CAST(Date("2006-02-03") AS Uint64), "The IT Crowd is a British sitcom." ), ( 2, "Silicon Valley", CAST(Date("2014-04-06") AS Uint64), "Silicon Valley is an American comedy television series." ), ( 3, "Fake series", CAST(Date("2018-09-11") AS Uint64), "Fake series for testing purposes." );'
В таблицу
series
будут добавлены новые строки, чтобы увидеть результат, далее вы можете выбрать строки из таблицы.
Замена строк
Измените существующие данные в таблице, использую оператор UPDATE:
-
В консоли управления перейдите в рабочий каталог.
-
Выберите сервис Yandex Database и откройте базу данных, в которой будете выполнять операции.
-
Для создания запроса к базе перейдите на вкладку Навигация и нажмите кнопку SQL-запрос в правом верхнем углу. Откроется страница Запрос.
-
В поле Запрос введите:
UPDATE series SET series_info="Fake series updated" WHERE series_id = 3 ;
-
Нажмите кнопку Выполнить.
-
Нажмите на имя таблицы
series
, чтобы увидеть результат.
-
Если у вас еще нет интерфейса командной строки YDB CLI, установите и инициализируйте его.
-
Посмотрите описание команды для выполнения YQL запроса:
ydb scripting yql --help
-
Для изменения данных в таблице
series
выполните команду:ydb -e grpcs://<YDB эндпоинт> -d <база данных> \ scripting yql -s \ 'UPDATE series SET series_info="Fake series updated" WHERE series_id = 3;'
Чтобы увидеть результат, далее вы можете выбрать строки из таблицы.
Удаление строк
Удалите данные из таблицы с помощью оператора DELETE:
-
В консоли управления перейдите в рабочий каталог.
-
Выберите сервис Yandex Database и откройте базу данных, в которой будете выполнять операции.
-
Для создания запроса к базе перейдите на вкладку Навигация и нажмите кнопку SQL-запрос в правом верхнем углу. Откроется страница Запрос.
-
В поле Запрос введите:
DELETE FROM series WHERE series_id = 3 ;
-
Нажмите кнопку Выполнить.
-
Чтобы посмотреть результат, нажмите на имя таблицы
series
-
Если у вас еще нет интерфейса командной строки YDB CLI, установите и инициализируйте его.
-
Посмотрите описание команды для выполнения YQL запроса:
ydb scripting yql --help
-
Для удаления данных в таблице
series
выполните команду:ydb -e grpcs://<YDB эндпоинт> -d <база данных> \ scripting yql -s \ 'DELETE FROM series WHERE series_id = 3;'
Данная команда удалит строки, в которых колонка
series_id
= 3. Чтобы увидеть результат, далее вы можете выбрать строки из таблицы.
Выбор строк
Выберите данные из таблицы с помощью оператора SELECT:
-
В консоли управления перейдите в рабочий каталог.
-
Выберите сервис Yandex Database и откройте базу данных, в которой будете выполнять операции.
-
Для создания запроса к базе перейдите на вкладку Навигация и нажмите кнопку SQL-запрос в правом верхнем углу. Откроется страница Запрос.
-
В поле Запрос введите:
SELECT series_id, title AS series_title, CAST (release_date AS Date) AS release_date FROM series;
-
Нажмите кнопку Выполнить. Результат появится под полем Запрос.
-
Если у вас еще нет интерфейса командной строки YDB CLI, установите и инициализируйте его.
-
Посмотрите описание команды для выполнения YQL запроса:
ydb scripting yql --help
-
Для выборки данных из таблицы
series
выполните команду:ydb -e grpcs://<YDB эндпоинт> -d <база данных> \ scripting yql -s \ 'SELECT series_id, title AS series_title, CAST (release_date AS Date) AS release_date FROM series;'
В результате отобразятся данные таблицы:
┌───────────┬──────────────────┬──────────────┐ | series_id | series_title | release_date | ├───────────┼──────────────────┼──────────────┤ | 1 | "IT Crowd" | "2006-02-03" | ├───────────┼──────────────────┼──────────────┤ | 2 | "Silicon Valley" | "2014-04-06" | └───────────┴──────────────────┴──────────────┘
Удаление таблицы
Удалите таблицу с помощью конструкции DROP TABLE:
-
В консоли управления перейдите в рабочий каталог.
-
Выберите сервис Yandex Database и откройте базу данных, в которой будете выполнять операции.
-
Для создания запроса к базе перейдите на вкладку Навигация и нажмите кнопку SQL-запрос в правом верхнем углу. Откроется страница Запрос.
-
В поле Запрос введите:
DROP TABLE series;
-
Нажмите кнопку Выполнить. Таблица будет удалена.
-
Если у вас еще нет интерфейса командной строки YDB CLI, установите и инициализируйте его.
-
Посмотрите описание команды для выполнения YQL запроса:
ydb scripting yql --help
-
Для удаления таблицы
series
выполните команду:ydb -e grpcs://<YDB эндпоинт> -d <база данных> \ scripting yql -s \ 'DROP TABLE series;'
Таблица будет удалена.