Оператор SQL SELECT: примеры, синтаксис

Оператор SQL SELECT является одним из основных операторов языка SQL. Именно с его помощью происходит выборка значений, хранящихся в базе данных. В структуру запроса оператора SQL SELECT могут быть включены многие дополнительные операторы: уточняющие условие выборки, производящие группировку, сортировку выходных значений и т.д.

Оператор SQL SELECT имеет следующий синтаксис:

SELECT column_list
FROM table_name
[WHERE сondition
GROUP BY expression
HAVING condition
ORDER BY expression]

Необязательные операторы обрамлены квадратными скобками [].

В параметре column_list указываются названия столбцов таблицы, которые необходимо вывести, либо символ “*”, позволяющий вывести все столбцы таблицы. Ключевым словом FROM задается название таблицы или таблиц, из которых следует брать столбцы. Оператор SQL WHERE задает дополнительные условия выборки. Оператор SQL GROUP BY используют для группирования результата по столбцу или по нескольким столбцам.

Оператор SQL HAVING включают в запрос для задания условия агрегатных функций. Наконец, оператор SQL ORDER BY используется для сортировки значений.


Примеры оператора SQL SELECT. Имеется следующая таблица Planets:

IDPlanetNameRadiusSunSeasonOpeningYearHavingRings
Opener
1Mars33966871659NoChristiaan Huygens
2Saturn6026810759.22Yes
3Neptune24764601901846YesJohn Couch Adams
4Mercury2439115. 881631NoNicolaus Copernicus
5Venus60512431610NoGalileo Galilei

Пример 1. С помощью оператора SQL SELECT вывести названия планет (Name):

SELECT PlanetName FROM Planets

Результат:

PlanetName
Mars
Saturn
Neptune
Mercury
Venus

Пример 2. С помощью оператора SQL SELECT вывести названия планет, у которых есть кольца (HavingRings):

SELECT PlanetName FROM Planet WHERE HavingRings = 'Yes'

Результат:

PlanetName
Saturn
Neptune

Пример 3.  С помощью оператора SQL SELECT вывести информацию о планете Нептун:

SELECT * FROM Planets WHERE PlanetName = 'Neptune'

Результат:

IDPlanetNameRadiusSunSeasonOpeningYearHavingRings
Opener
3Neptune24764601901846YesJohn Couch Adams

Синтаксис — Учебник SQL — Schoolsw3.com

schoolsw3.com

САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ


❮ Назад Далее ❯


Таблица базы данных

База данных чаще всего содержит одну или несколько таблиц. Каждая таблица идентифицируется по имени (например, «клиенты» или «заказы»). Таблицы содержат записи (строки) с данными.

В этом уроке мы будем использовать хорошо известный образец базы данных Northwind (входит в MS Access и MS SQL Server).

Ниже приведен выбор из таблицы «клиенты»:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the Horn
Thomas Hardy
120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Приведенная выше таблица содержит пять записей (по одной для каждого клиента) и семь столбцов (CustomerID, CustomerName, ContactName, Address, City, PostalCode и Country).


Инструкций

Большинство действий, которые необходимо выполнить с базой данных, выполняются с помощью инструкций SQL.

Следующая инструкция SQL выбирает все записи в таблице «клиенты»:

Пример

SELECT * FROM Customers;

Попробуйте сами »

В этом уроке мы расскажем вам все о различных SQL инструкций.



Имейте в виду, что…

  • Ключевые слова SQL не чувствительны к регистру: select — это то же самое, что SELECT

В этом уроке мы напишем все ключевые слова SQL в верхнем регистре.


Точка с запятой после инструкций SQL?

Некоторые системы баз данных требуют точку с запятой в конце каждой инструкции SQL.

Точка с запятой — это стандартный способ разделения каждой инструкции SQL в системах баз данных, которые позволяют выполнять несколько инструкций SQL в одном вызове сервера.

В этом учебнике мы будем использовать точку с запятой в конце каждой инструкции SQL.


Некоторые из наиболее важных команд SQL

  • SELECT — извлечение данных из базы данных
  • UPDATE — обновление данных в базе данных
  • DELETE — удаляет данные из базы данных
  • INSERT INTO — вставка новых данных в базу данных
  • CREATE DATABASE — создает новую базу данных
  • ALTER DATABASE — изменяет базу данных
  • CREATE TABLE — создает новую таблицу
  • ALTER TABLE — изменения в таблице
  • DROP TABLE — удаляет таблицу
  • CREATE INDEX — создает индекс (ключ поиска)
  • DROP INDEX — удаляет индекс

❮ Назад Далее ❯

ВЫБОР ЦВЕТА



ТОП Учебники
HTML Учебник
CSS Учебник
JavaScript Учебник
КАК Учебник
SQL Учебник
Python Учебник
W3.CSS Учебник
Bootstrap Учебник
PHP Учебник
Java Учебник
C++ Учебник
jQuery Учебник
ТОП Справочники
HTML Справочник
CSS Справочник
JavaScript Справочник
SQL Справочник
Python Справочник
W3. CSS Справочник
Bootstrap Справочник
PHP Справочник
HTML Цвета
Java Справочник
Angular Справочник
jQuery Справочник
ТОП Примеры
HTML Примеры
CSS Примеры
JavaScript Примеры
КАК Примеры
SQL Примеры
Python Примеры
W3.CSS Примеры
Bootstrap Примеры
PHP Примеры
Java Примеры
XML Примеры
jQuery Примеры

Форум | О SchoolsW3

SchoolsW3 оптимизирован для бесплатного обучения, проверки и подготовки знаний. Примеры в редакторе упрощают и улучшают чтение и базовое понимание. Учебники, ссылки, примеры постоянно пересматриваются, чтобы избежать ошибок, но не возможно гарантировать полную правильность всего содержания. Некоторые страницы сайта могут быть не переведены на РУССКИЙ язык, можно отправить страницу как ошибку, так же можете самостоятельно заняться переводом. Используя данный сайт, вы соглашаетесь прочитать и принять Условия к использованию, Cookies и политика конфиденциальности.

Авторское право 1999- Все права защищены.
SchoolsW3 работает на площадке от SW3.CSS.

SELECT Синтаксис | Couchbase Документы

  • номер
Эта страница позволяет детализировать синтаксис запроса SELECT.
 select ::= select-term ( set-op select-term )* по пунктам? ограничительная оговорка? оговорка о смещении? 
 термин выбора ::= подвыбор | '('выбрать')' 
 подвыборка ::= выбор-из | from-select 
 select-from ::= with-clause? пункт выбора из пункта? пусть пункт? где пункт?
                по пунктам? пункт окна? 
 from-select ::= with-clause? из пункта дай пункта? где пункт? по пунктам?
                пункт окна? пункт выбора 
 set-op ::= ('ОБЪЕДИНЕНИЕ' | 'ПЕРЕСЕЧЕНИЕ' | 'ИСКЛЮЧАЯ') 'ВСЕ'? 

WITH Clause

 with-clause ::= 'WITH' псевдоним 'AS' '(' (выбор | выражение) ')'
                 ( ',' псевдоним 'AS' '(' (выбор | выражение) ')' )* 
 псевдоним ::= идентификатор 

Пункт SELECT

 пункт выбора ::= 'SELECT' подсказка-комментарий? проекция 
 проекция ::= ('ВСЕ' | 'ОТДЕЛЬНЫЕ')?
               ( результат-выражение ( ',' результат-выражение )* |
               ('СЫРЬЕ' | 'ЭЛЕМЕНТ' | 'ЗНАЧ') выражение ('КАК'? псевдоним)? ) 
 результат-выражение ::= ( ( путь '. ' )? '*' | выражение ( 'AS'? псевдоним )? ) 
 путь ::= идентификатор ( '[' выражение ']' )* ( ' .' идентификатор ( '[' выражение ']' )* )* 

FROM Пункт

 from-clause ::= 'FROM' from-terms 
 from-terms ::= ( from-keyspace | from-subquery | from-generic )
               (присоединение-предложение | вложенное-предложение | не вложенное-предложение)* объединение-разделение-запятая* 
 from-keyspace ::= keyspace-ref ('AS'? псевдоним)? пункт использования? 
 keyspace-ref ::= keyspace-path | keyspace-partial 
 keyspace-path ::= ( namespace ':' )? ведро ('.' область действия '.' коллекция)? 
 keyspace-partial ::= коллекция 
 namespace ::= идентификатор 
 ведро ::= идентификатор 
 область видимости ::= идентификатор 
 коллекция ::= идентификатор 
 from-subquery ::= subquery-expr 'AS '? псевдоним 
 подзапрос-выражение ::= '('выбрать')' 
 from-generic ::= expr (псевдоним 'AS')? 

JOIN Clause

 join-clause ::= ansi-join-clause | предложение поиска-объединения | index-join-clause 

ANSI JOIN

 ansi-join-clause ::= ansi-join-type? 'JOIN' ansi-join-rhs ansi-join-predicate 
 ansi-join-type ::= 'INNER' | ( 'ЛЕВЫЙ' 'ВНЕШНИЙ'? ) | ( 'ПРАВО' 'ВНЕШНИЙ'? ) 
 ansi-join-rhs ::= rhs-keyspace | rhs-подзапрос | rhs-generic 
 rhs-keyspace ::= keyspace-ref ('AS'? Псевдоним)? ansi-join-подсказки? 
 rhs-subquery ::= subquery-expr 'AS'? псевдоним 
 rhs-generic ::= выражение ('AS'? псевдоним)? 
 ansi-join-hints ::= use-hash-hint | использовать-nl-подсказка | множественные подсказки 
 подсказка-хэша ::= 'USE' use-hash-term 
 use-hash-term ::= 'HASH' '(' ( 'BUILD' | 'PROBE' ) ')' 
 use-nl-hint ::= 'USE' use-nl-term 
 use-nl-term ::= 'NL' 
 multi-hints ::= 'USE' ( ansi-hint-terms other-hint -термины ) | ( другие термины-подсказки и термины-подсказки ) 
 ansi-hint-terms ::= use-hash-term | use-nl-term 
 другие термины-подсказки ::= use-index-term | use-keys-term 
 ansi-join-predicate ::= 'ON' expr 

Lookup JOIN

 lookup-join-clause ::= lookup-join-type? 'JOIN' lookup-join-rhs lookup-join-predicate 
 lookup-join-type ::= 'INNER' | ( 'LEFT' 'OUTER'? ) 
 lookup-join-rhs ::= keyspace-ref ('AS'? псевдоним)? 
 предикат поиска-соединения ::= 'ВКЛ' 'ПЕРВИЧНЫЙ'? 'KEYS' expr 

Index JOIN

 пункт-объединения-индекса ::= тип-объединения-индекса? 'JOIN' index-join-rhs index-join-predicate 
 index-join-type ::= 'INNER' | ( 'LEFT' 'OUTER'? ) 
 index-join-rhs ::= keyspace-ref ('AS'? псевдоним)? 
 index-join-predicate ::= 'ON' 'PRIMARY'? 'KEY' expr 'FOR' псевдоним 

NEST Clause

 гнездо-предложение ::= ansi-nest-clause | поиск-гнездо-предложение | index-nest-clause 

ANSI NEST

 ansi-nest-clause ::= ansi-nest-type? 'NEST' ansi-nest-rhs ansi-nest-predicate 
 ansi-nest-type ::= 'INNER' | ( 'LEFT' 'OUTER'? ) 
 ansi-nest-rhs ::= keyspace-ref ( 'AS'? псевдоним)? 
 ansi-nest-predicate ::= 'ON' expr 

Lookup NEST

 lookup-nest-clause ::= lookup-nest-type? 'NEST' lookup-nest-rhs lookup-nest-predicate 
 lookup-nest-type ::= 'INNER' | ( 'LEFT' 'OUTER'? ) 
 lookup-nest-rhs ::= keyspace-ref ('AS'? псевдоним)? 
 lookup-nest-predicate ::= 'ON' 'KEYS' expr 

Index NEST

 индекс-гнездо-клауз ::= индекс-гнездо-тип? 'NEST' index-nest-rhs index-nest-predicate 
 index-nest-type ::= 'INNER' | ( 'LEFT' 'OUTER'? ) 
 index-nest-rhs ::= keyspace-ref ('AS'? псевдоним)? 
 index-nest-predicate ::= 'ON' 'KEY' expr 'FOR' псевдоним 

UNNEST Clause

 unnest-clause ::= unnest-type? ( 'UNNEST' | 'FLATTEN' ) expr ( 'AS'? псевдоним )? 
 не вложенный тип ::= 'INNER' | («ЛЕВЫЙ» «ВНЕШНИЙ»?) 

Объединение через запятую

-comma-separated-join ::= ',' ( rhs-keyspace | rhs-subquery | rhs-generic ) 

USE Clause

 use-clause ::= use-keys-clause | use-index-clause 
 use-keys-clause ::= 'USE' use-keys-term 
 use-keys-term ::= 'PRIMARY'? 'KEYS' expr 
 use-index-clause ::= 'USE' use-index-term 
 use-index-term ::= 'INDEX' '(' index-ref ( ',' index-ref )* ')' 
 ссылка-индекса ::= имя-индекса? индексный тип? 
 имя-индекса ::= идентификатор 
 тип индекса ::= 'ИСПОЛЬЗОВАНИЕ' ('GSI' | 'FTS') 

LET Clause

 let-clause ::= 'LET' alias '=' expr ( ',' alias '=' expr )* 

WHERE Clause

 where-clause ::= 'WHERE' cond 
 cond ::= expr 

GROUP BY Пункт

 group-by-clause ::= 'GROUP' 'BY' expr ( ',' expr )* letting-clause? наличие пункта? | letting-clause 
 letting-clause ::= 'LETTING' alias '=' expr ( ',' alias '=' expr )* 
 have-clause ::= 'HAVING' cond 

WINDOW Clause

 window-clause ::= 'WINDOW' объявление окна ( ',' объявление окна )* 
 объявление окна ::= имя окна 'AS' '(' определение окна ')' 
 имя-окна ::= идентификатор 
 определение-окна ::= ссылка-окна? пункт окна-раздела? Пункт заказа окна?
                      пункт оконной рамы? 
 window-ref ::= идентификатор 
 window-partition-clause ::= 'PARTITION' 'BY' expr ( ',' expr )* 
 window-order-clause ::= 'ORDER' 'BY' упорядочение -термин ( ',' термин заказа )* 
 пункт окна-фрейма ::= ( 'СТРОКИ' | 'ДИАПАЗОН' | 'ГРУППЫ' ) экстент окна-фрейма исключение окна-фрейма? 
 оконная рама ::= 'БЕЗ ГРАНИЦЫ' 'ПРЕДШЕСТВУЮЩАЯ' | valexpr 'ПРЕДЫДУЩИЕ' | 'ТЕКУЩАЯ' 'СТРОКА' |
                        'МЕЖДУ' ( 'НЕОГРАНИЧЕННЫЙ' 'ПРЕДЫДУЩИЙ' | 'ТЕКУЩИЙ' 'СТРОКА' |
                                     valexpr ('ПРЕДЫДУЩИЙ' | 'СЛЕДУЮЩИЙ'))
                            'И' ( 'НЕОГРАНИЧЕННЫЙ' 'СЛЕДУЮЩИЙ' | 'ТЕКУЩАЯ СТРОКА' |
                                     valexpr ('ПРЕДЫДУЩИЙ' | 'СЛЕДУЮЩИЙ') ) 
 исключение оконной рамы ::= 'ИСКЛЮЧИТЬ' ('ТЕКУЩАЯ' 'СТРОКА' | 'ГРУППА' | 'СВЯЗИ' | 'НЕТ' 'ДРУГИЕ') 

ORDER BY Статья

 Порядок-за-пунктом ::= 'ORDER' 'BY' срок-заказа ( ',' срок-заказа )* 
-термин-заказа ::= выражение ('ASC' | 'DESC') ? ( 'НУЛИ' ( 'ПЕРВЫЙ' | 'ПОСЛЕДНИЙ' ))? 

LIMIT Clause

 limit-clause ::= 'LIMIT' expr 

OFFSET Clause

 offset-clause ::= 'OFFSET' expr 
  • Соглашения

Синтаксис

SELECT — документация Arrow DataFusion

Запросы в DataFusion сканируют данные из таблиц и возвращают 0 или более строк. Имейте в виду, что имена столбцов в запросах пишутся в нижнем регистре, но не в предполагаемой схеме. Соответственно, если вы хотите запросить поле с заглавной буквы, обязательно используйте двойные кавычки. Пожалуйста, посмотрите это пример для пояснения. В этой документации мы описываем синтаксис SQL в DataFusion.

DataFusion поддерживает следующий синтаксис запросов:

[ WITH with_query [ …] ]
ВЫБЕРИТЕ [ ВСЕ | DISTINCT ] select_expr [ …]
[ FROM from_item [ …] ]
[ JOIN join_item [ …] ]
[ WHERE условие ]
[ GROUP BY grouping_element [ …] ]
[ HAVING condition]
[ UNION [ ALL | выберите ]
[ ORDER BY выражение [ ASC | DESC ][ …] ]
[ LIMIT count ]

С пунктом

Предложение with позволяет давать имена запросам и ссылаться на них по имени.

 С x AS (ВЫБЕРИТЕ a, MAX(b) AS b FROM t GROUP BY a)
ВЫБЕРИТЕ a, b ИЗ x;
 

Предложение SELECT

Пример:

 ВЫБРАТЬ a, b, a + b ИЗ таблицы
 

Можно добавить квантификатор DISTINCT , чтобы запрос возвращал все отдельные строки. По умолчанию будет использоваться ВСЕ , что возвращает все строки.

 ВЫБЕРИТЕ ОТЛИЧНОЕ лицо, возраст ОТ сотрудников
 

ИЗ пункта

Пример:

 ВЫБРАТЬ t.a ИЗ таблицы AS t
 

ГДЕ пункт

Пример:

 ВЫБЕРИТЕ ИЗ таблицы, ГДЕ > 10
 

Пункт ПРИСОЕДИНЕНИЯ

DataFusion поддерживает INNER JOIN , LEFT OUTER JOIN , RIGHT OUTER JOIN , FULL OUTER JOIN , NATURAL JOIN и CROSS JOIN .

Следующие примеры основаны на этой таблице:

 выберите * из х;
+----------+----------+
| столбец_1 | столбец_2 |
+----------+----------+
| 1 | 2 |
+----------+----------+
 

ВНУТРЕННЕЕ СОЕДИНЕНИЕ

Ключевые слова JOIN или INNER JOIN определяют объединение, которое показывает только те строки, в которых есть совпадения в обеих таблицах.

 ❯ выберите * из x внутреннего соединения x y ON x. column_1 = y.column_1;
+----------+----------+-----------+----------+
| столбец_1 | столбец_2 | столбец_1 | столбец_2 |
+----------+----------+-----------+----------+
| 1 | 2 | 1 | 2 |
+----------+----------+-----------+----------+
 

ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

Ключевые слова ЛЕВОЕ СОЕДИНЕНИЕ или LEFT OUTER JOIN определить соединение, которое включает все строки из левой таблицы, даже если не совпадает в правильной таблице. Если совпадений нет, для правой стороны соединения создаются нулевые значения.

 ❯ выберите * из x левого соединения x y ON x.column_1 = y.column_2;
+----------+----------+-----------+----------+
| столбец_1 | столбец_2 | столбец_1 | столбец_2 |
+----------+----------+-----------+----------+
| 1 | 2 | | |
+----------+----------+-----------+----------+
 

ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

Ключевые слова RIGHT JOIN или RIGHT OUTER JOIN определяют объединение, которое включает все строки из правой таблицы, даже если не совпадает в левой таблице. Если совпадений нет, для левой стороны соединения создаются нулевые значения.

 ❯ выберите * из x правого соединения x y ON x.column_1 = y.column_2;
+----------+----------+-----------+----------+
| столбец_1 | столбец_2 | столбец_1 | столбец_2 |
+----------+----------+-----------+----------+
| | | 1 | 2 |
+----------+----------+-----------+----------+
 

ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

Ключевые слова FULL JOIN или FULL OUTER JOIN определяют объединение, которое фактически является объединением LEFT OUTER JOIN и ПРАВОЕ НАРУЖНОЕ СОЕДИНЕНИЕ . Он покажет все строки с левой и правой стороны соединения и выдаст нулевые значения на любой стороне соединения, где нет совпадения.

 ❯ выберите * из x полное внешнее соединение x y ON x.column_1 = y.column_2;
+----------+----------+-----------+----------+
| столбец_1 | столбец_2 | столбец_1 | столбец_2 |
+----------+----------+-----------+----------+
| 1 | 2 | | |
| | | 1 | 2 |
+----------+----------+-----------+----------+
 

НАТУРАЛЬНОЕ СОЕДИНЕНИЕ

Естественное соединение определяет внутреннее соединение на основе общих имен столбцов, найденных во входных таблицах. Когда нет общего имена столбцов найдены, он ведет себя как перекрестное соединение.

 ❯ выберите * из x естественное соединение x y;
+----------+----------+
| столбец_1 | столбец_2 |
+----------+----------+
| 1 | 2 |
+----------+----------+
 

ПОПЕРЕЧНОЕ СОЕДИНЕНИЕ

Перекрестное соединение создает декартово произведение, которое соответствует каждой строке в левой части соединения каждой строке в правая сторона соединения.

 ❯ выберите * из x перекрестного соединения x y;
+----------+----------+-----------+----------+
| столбец_1 | столбец_2 | столбец_1 | столбец_2 |
+----------+----------+-----------+----------+
| 1 | 2 | 1 | 2 |
+----------+----------+-----------+----------+
 

GROUP BY пункт

Пример:

 SELECT a, b, MAX(c) FROM table GROUP BY a, b
 

ИМЕЕТ пункт

Пример:

 SELECT a, b, MAX(c) FROM table GROUP BY a, b HAVING MAX(c) > 10
 

СОЮЗ пункт

Пример:

 ВЫБЕРИТЕ
    а,
    б,
    с
ИЗ таблицы1
СОЮЗ ВСЕХ
ВЫБИРАТЬ
    а,
    б,
    с
ИЗ таблицы2
 

ORDER BY пункт

Упорядочивает результаты по указанному выражению.