Подобно RDBMS, OrientDB поддерживает различные типы SQL-запросов для извлечения записей из базы данных. При извлечении записей у нас есть различные варианты или варианты запросов вместе с оператором select.
Следующее утверждение является основным синтаксисом команды SELECT.
SELECT [ <Projections> ] [ FROM <Target> [ LET <Assignment>* ] ] [ WHERE <Condition>* ] [ GROUP BY <Field>* ] [ ORDER BY <Fields>* [ ASC|DESC ] * ] [ UNWIND <Field>* ] [ SKIP <SkipRecords> ] [ LIMIT <MaxRecords> ] [ FETCHPLAN <FetchPlan> ] [ TIMEOUT <Timeout> [ <STRATEGY> ] ] [ LOCK default|record ] [ PARALLEL ] [ NOCACHE ]
Ниже приведены подробности об опциях в приведенном выше синтаксисе.
<Проекции> — указывает данные, которые вы хотите извлечь из запроса как набор записей результатов.
FROM — указывает объект для запроса. Это может быть класс, кластер, один идентификатор записи, набор идентификаторов записи. Вы можете указать все эти объекты в качестве цели.
WHERE — Определяет условие для фильтрации набора результатов.
LET — указывает переменную контекста, которая используется в проекциях, условиях или подзапросах.
GROUP BY — указывает поле для группировки записей.
ORDER BY — указывает поле, чтобы упорядочить запись по порядку.
UNWIND — Обозначает поле, в котором нужно раскрутить коллекцию записей.
SKIP — Определяет количество записей, которые вы хотите пропустить с начала набора результатов.
LIMIT — указывает максимальное количество записей в наборе результатов.
FETCHPLAN — определяет стратегию, определяющую, как вы хотите получать результаты.
TIMEOUT — Определяет максимальное время в миллисекундах для запроса.
LOCK — Определяет стратегию блокировки. DEFAULT и RECORD — доступные стратегии блокировки.
PARALLEL — выполняет запрос к параллельным потокам ‘x’.
NOCACHE — определяет, хотите ли вы использовать кеш или нет.
пример
Давайте рассмотрим следующую таблицу Customer, созданную в предыдущей главе.
Sr.No. | название | Возраст |
---|---|---|
1 | Сатиш | 25 |
2 | Кришна | 26 |
3 | Киран | 29 |
4 | Javeed | 21 |
5 | Раджа | 29 |
Попробуйте разные запросы на выборку, чтобы получить записи данных из таблицы Customer.
Способ 1 — Вы можете использовать следующий запрос, чтобы выбрать все записи из таблицы Customer.
orientdb {db = demo}> SELECT FROM Customer
Если приведенный выше запрос выполнен успешно, вы получите следующий вывод.
----+-----+--------+----+-------+---- # |@RID |@CLASS |id |name |age ----+-----+--------+----+-------+---- 0 |#11:0|Customer|1 |satish |25 1 |#11:1|Customer|2 |krishna|26 2 |#11:2|Customer|3 |kiran |29 3 |#11:3|Customer|4 |javeed |21 4 |#11:4|Customer|5 |raja |29 ----+-----+--------+----+-------+----
Способ 2. Выберите все записи, название которых начинается с буквы « k ».
orientdb {db = demo}> SELECT FROM Customer WHERE name LIKE 'k%'
ИЛИ вы можете использовать следующий запрос для приведенного выше примера.
orientdb {db = demo}> SELECT FROM Customer WHERE name.left(1) = 'k'
Если приведенный выше запрос выполнен успешно, вы получите следующий вывод.
----+-----+--------+----+-------+---- # |@RID |@CLASS |id |name |age ----+-----+--------+----+-------+---- 0 |#11:1|Customer|2 |krishna|26 1 |#11:2|Customer|3 |kiran |29 ----+-----+--------+----+-------+----
Способ 3 — Выберите id, имя записи из таблицы Customer с именами в верхнем регистре.
orientdb {db = demo}> SELECT id, name.toUpperCase() FROM Customer
Если приведенный выше запрос выполнен успешно, вы получите следующий вывод.
----+--------+----+------- # |@CLASS |id |name ----+--------+----+------- 0 |null |1 |SATISH 1 |null |2 |KRISHNA 2 |null |3 |KIRAN 3 |null |4 |JAVEED 4 |null |5 |RAJA ----+--------+----+-------
Метод 4 — Выберите все записи из таблицы клиентов, где возраст находится в диапазоне от 25 до 29.
orientdb {db = demo}> SELECT FROM Customer WHERE age in [25,29]
Если приведенный выше запрос выполнен успешно, вы получите следующий вывод.
----+-----+--------+----+-------+---- # |@RID |@CLASS |id |name |age ----+-----+--------+----+-------+---- 0 |#11:0|Customer|1 |satish |25 1 |#11:2|Customer|3 |kiran |29 2 |#11:4|Customer|5 |raja |29 ----+-----+--------+----+-------+----
Метод 5 — Выберите все записи из таблицы клиентов, где любое поле содержит слово «sh».
orientdb {db = demo}> SELECT FROM Customer WHERE ANY() LIKE '%sh%'
Если приведенный выше запрос выполнен успешно, вы получите следующий вывод.
----+-----+--------+----+-------+---- # |@RID |@CLASS |id |name |age ----+-----+--------+----+-------+---- 0 |#11:0|Customer|1 |satish |25 1 |#11:1|Customer|2 |krishna|26 ----+-----+--------+----+-------+----
Метод 6 — Выберите все записи из таблицы клиентов, упорядоченные по возрасту в порядке убывания.
orientdb {db = demo}> SELECT FROM Customer ORDER BY age DESC
Если приведенный выше запрос выполнен успешно, вы получите следующий вывод.