Что такое select statement

SELECT (Transact-SQL)

Retrieves rows from the database and enables the selection of one or many rows or columns from one or many tables in SQL Server. The full syntax of the SELECT statement is complex, but the main clauses can be summarized as:

The UNION, EXCEPT, and INTERSECT operators can be used between queries to combine or compare their results into one result set.

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statementTransact-SQL Syntax Conventions

Syntax

To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

Remarks

Because of the complexity of the SELECT statement, detailed syntax elements and arguments are shown by clause:

The order of the clauses in the SELECT statement is significant. Any one of the optional clauses can be omitted, but when the optional clauses are used, they must appear in the appropriate order.

SELECT statements are permitted in user-defined functions only if the select lists of these statements contain expressions that assign values to variables that are local to the functions.

A four-part name constructed with the OPENDATASOURCE function as the server-name part can be used as a table source wherever a table name can appear in a SELECT statement. A four-part name cannot be specified for Azure SQL Database.

Some syntax restrictions apply to SELECT statements that involve remote tables.

Logical Processing Order of the SELECT statement

The following steps show the logical processing order, or binding order, for a SELECT statement. This order determines when the objects defined in one step are made available to the clauses in subsequent steps. For example, if the query processor can bind to (access) the tables or views defined in the FROM clause, these objects and their columns are made available to all subsequent steps. Conversely, because the SELECT clause is step 8, any column aliases or derived columns defined in that clause cannot be referenced by preceding clauses. However, they can be referenced by subsequent clauses such as the ORDER BY clause. The actual physical execution of the statement is determined by the query processor and the order may vary from this list.

The preceding sequence is usually true. However, there are uncommon cases where the sequence may differ.

For example, suppose you have a clustered index on a view, and the view excludes some table rows, and the view’s SELECT column list uses a CONVERT that changes a data type from varchar to integer. In this situation, the CONVERT may execute before the WHERE clause executes. Uncommon indeed. Often there is a way to modify your view to avoid the different sequence, if it matters in your case.

Permissions

Selecting data requires SELECT permission on the table or view, which could be inherited from a higher scope such as SELECT permission on the schema or CONTROL permission on the table. Or requires membership in the db_datareader or db_owner fixed database roles, or the sysadmin fixed server role. Creating a new table using SELECT INTO also requires both the CREATE TABLE permission, and the ALTER SCHEMA permission on the schema that owns the new table.

Examples:

The following examples use the AdventureWorksPDW2012 database.

A. Using SELECT to retrieve rows and columns

This section shows three code examples. This first code example returns all rows (no WHERE clause is specified) and all columns (using the * ) from the DimEmployee table.

This next example using table aliasing to achieve the same result.

This example returns only the rows for DimEmployee that have an EndDate that is not NULL and a MaritalStatus of ‘M’ (married).

B. Using SELECT with column headings and calculations

The following example returns all rows from the DimEmployee table, and calculates the gross pay for each employee based on their BaseRate and a 40-hour work week.

C. Using DISTINCT with SELECT

The following example uses DISTINCT to generate a list of all unique titles in the DimEmployee table.

D. Using GROUP BY

The following example finds the total amount for all sales on each day.

Because of the GROUP BY clause, only one row containing the sum of all sales is returned for each day.

E. Using GROUP BY with multiple groups

The following example finds the average price and the sum of Internet sales for each day, grouped by order date and the promotion key.

F. Using GROUP BY and WHERE

The following example puts the results into groups after retrieving only the rows with order dates later than August 1, 2002.

G. Using GROUP BY with an expression

The following example groups by an expression. You can group by an expression if the expression does not include aggregate functions.

H. Using GROUP BY with ORDER BY

The following example finds the sum of sales per day, and orders by the day.

I. Using the HAVING clause

This query uses the HAVING clause to restrict results.

Источник

Примеры использования инструкции SELECT (Transact-SQL)

В этом разделе приведены примеры применения инструкции SELECT.

A. Использование SELECT для получения строк и столбцов

В следующем примере приведены три примера кода. В ходе выполнения первого примера кода возвращаются все строки (предложение WHERE не указано), а также все столбцы (используется звездочка, * ) таблицы Product базы данных AdventureWorks2012.

Б. Использование SELECT с заголовками столбцов и вычислениями

Данный запрос вычисляет доход от продажи по каждому виду продукции для каждого заказа.

В. Совместное использование DISTINCT и SELECT

Г. Создание таблиц с помощью SELECT INTO

Д. Использование связанных вложенных запросов

Коррелированный запрос — это запрос, зависящий от результатов выполнения другого запроса. Он может повторно выполняться для каждой строки, выбранной с помощью другого запроса.

Коррелированный вложенный запрос также может использоваться в предложении HAVING внешнего запроса. В данном примере осуществляется поиск моделей продуктов, для которых максимальная цена в каталоге в два раза превышает среднюю цену по нему.

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

Е. Использование GROUP BY

В следующем примере находится общий объем продаж для каждого заказа в базе данных.

Ж. Использование GROUP BY с несколькими группами

В данном примере вычисляются средние цены и объемы продаж за последний год, сгруппированные по коду продукта и идентификатору специального предложения.

З. Использование GROUP BY и WHERE

И. Использование GROUP BY с выражением

В следующем примере производится группировка с помощью выражения. Группировку можно производить только с помощью выражения, не содержащего агрегатных функций.

К. Использование GROUP BY с ORDER BY

В следующем примере для каждого типа продуктов вычисляется средняя цена, а также осуществляется сортировка полученных результатов по возрастанию.

Л. Использование предложения HAVING

В первом из приведенных ниже примеров показывается использование предложения HAVING с агрегатной функцией. В нем производится группировка строк таблицы SalesOrderDetail по коду продукта, а также удаляются строки, соответствующие продуктам, для которых средний объем заказа не превышает пяти. Во втором примере показывается использование предложения HAVING без агрегатной функции.

М. Использование HAVING с GROUP BY

Н. Использование HAVING с SUM и AVG

О. Использование указания оптимизатора INDEX

Н. Использование указаний OPTION и GROUP

П. Использование указания запроса UNION

Т. Использование простого UNION

У. Использование SELECT INTO с UNION

Ф. Использование UNION двух инструкций SELECT с ORDER BY

Х. Использование UNION трех инструкций SELECT для демонстрации эффекта от использования скобок и ALL

Источник

SQL SELECT

Команда SELECT

Команда SELECT производит выборку данных из таблиц по запросу.

Язык SQL допускает три типа синтаксических конструкций, начинающихся с ключевого слова SELECT:

Синтаксис команды SELECT в MySQL

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Синтаксис команды SELECT в Oracle

Основные ключевые слова и параметры команды SELECT в MySQL

Синтаксис команды SELECT в Oracle

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Синтаксис команды SELECT в Oracle

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Query table expression clause

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Table collection expression

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Hierarchical query clause

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Что такое select statement. Смотреть фото Что такое select statement. Смотреть картинку Что такое select statement. Картинка про Что такое select statement. Фото Что такое select statement

Основные ключевые слова и параметры команды SELECT в Oracle

Описание команды SELECT

Основой всех синтаксических конструкций, начинающихся с ключевого слова SELECT, является синтаксическая конструкция “табличное выражение”.

Семантика табличного выражения состоит в том, что на основе последовательного применения разделов FROM, WHERE, GROUP BY и HAVING из заданных в разделе FROM таблиц строится некоторая новая результирующая таблица, порядок следования строк которой не определен и среди строк которой могут находиться дубликаты (т.е. в общем случае таблица-результат табличного выражения является мультимножеством строк).

Наиболее общей является конструкция “спецификация курсора”. Курсор — это понятие языка SQL, позволяющее с помощью набора специальных операторов получить построчный доступ к результату запроса к БД. К табличным выражениям, участвующим в спецификации курсора, не предъявляются какие- либо ограничения. При определении спецификации курсора используются три дополнительных конструкции: спецификация запроса, выражение запросов и раздел ORDER BY.

В спецификации запроса задается список выборки (список арифметических выражений над значениями столбцов результата табличного выражения и констант). В результате применения списка выборки к результату табличного выражения производится построение новой таблицы, содержащей то же число строк, но вообще говоря другое число столбцов, содержащих результаты вычисления соответствующих арифметических выражений из списка выборки.

Выражение запросов — это выражение, строящееся по указанным синтаксическим правилам на основе спецификаций запросов. Единственной операцией, которую разрешается использовать в выражениях запросов, является операция UNION (объединение таблиц) с возможной разновидностью UNION ALL.

Оператор выборки — это отдельный оператор языка SQL, позволяющий получить результат запроса в прикладной программе без привлечения курсора. Поэтому оператор выборки имеет синтаксис, отличающийся от синтаксиса спецификации курсора, и при его выполнении возникают ограничения на результат табличного выражения. Фактически, и то, и другое диктуется спецификой оператора выборки как одиночного оператора SQL: при его выполнении результат должен быть помещен в переменные прикладной программы. Поэтому в операторе появляется раздел INTO, содержащий список переменных прикладной программы, и возникает то ограничение, что результирующая таблица должна содержать не более одной строки.

В диалекте SQL СУБД Oracle поддерживается расширенный вариант оператора выборки, результатом которого не обязательно является таблица из одной строки. Такое расширение не поддерживается ни в SQL/89, ни в SQL/92.

Подзапросзапрос, который может входить в предикат условия выборки оператора SQL.

Кстати, данную статью Вы можете найти в интернете по запросам:

Команда SELECT, Синтаксис команды SELECT, Описание команды SELECT.

Источник

SELECT (команда SQL)

Извлекает данные из одной или нескольких таблиц.

Драйвер ODBC для Visual FoxPro поддерживает для этой команды собственный синтаксис языка Visual FoxPro. Сведения, относящиеся к драйверу, см. в разделе Примечания к драйверам.

Синтаксис

Аргументы

Вложенный запрос, который называется в следующих аргументах, является SELECT внутри SELECT и должен быть заключен в круглые скобки. В предложении WHERE можно использовать до двух вложенных запросов на одном и том же уровне. (См. Этот раздел аргументов.) Вложенные запросы могут содержать несколько условий объединения.

[ВСЕ | DISTINCT] [Alias.] Select_Item [как Column_Name] [, [Alias.] Select_Item [как Column_Name]. ]
В предложении SELECT указываются поля, константы и выражения, отображаемые в результатах запроса.

По умолчанию все строки отображаются в результатах запроса.

DISTINCT исключает повторяющиеся строки из результатов запроса.

Предложение DISTINCT можно использовать только один раз для каждого предложения SELECT.

Select_Item указывает элемент, включаемый в результаты запроса. Элемент может быть одним из следующих:

Имя поля из таблицы в предложении FROM.

Константа, указывающая, что одно и то же значение константы будет отображаться в каждой строке результатов запроса.

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

Определяемые пользователем функции с помощью SELECT

Хотя использование определяемых пользователем функций в предложении SELECT имеет очевидные преимущества, следует учитывать следующие ограничения.

Скорость операций, выполняемых с помощью инструкции SELECT, может быть ограничена скоростью, с которой выполняются такие определяемые пользователем функции. Большие объемы операций, включающие определяемые пользователем функции, могут быть лучше выполнены с помощью API и определяемых пользователем функций, написанных на языке C или языка ассемблера.

Единственным надежным способом передачи значений определяемым пользователем функциям, вызываемым из SELECT, является список аргументов, передаваемый функции при ее вызове.

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

Помимо этих ограничений, определяемые пользователем функции допустимы в предложении SELECT. Однако помните, что использование SELECT может привести к снижению производительности.

Следующие функции полей доступны для использования с элементом SELECT, который является полем или выражением, включающим поле:

AVG (Select_Item) — среднее значение столбца числовых данных.

COUNT (Select_Item) — подсчитывает количество выбранных элементов в столбце. COUNT (*) подсчитывает количество строк в выходных данных запроса.

MIN (Select_Item) — определяет наименьшее значение Select_Item в столбце.

MAX (Select_Item) — определяет наибольшее значение Select_Item в столбце.

SUM (Select_Item) — суммирует столбец с числовыми данными.

Нельзя вкладывать функции полей.

КАК Column_Name
Задает заголовок для столбца в выходных данных запроса. Это полезно, если Select_Item является выражением или содержит функцию поля, и необходимо присвоить столбцу понятное имя. Column_Name может быть выражением, но не может содержать символы (например, пробелы), недопустимые в именах полей таблицы.

DatabaseName! Указывает имя базы данных, отличной от указанной в источнике данных. Если база данных не указана в источнике данных, необходимо включить имя базы данных, содержащей таблицу. Включите разделитель восклицательного знака (!) после имени базы данных и перед именем таблицы.

Local_Alias указывает временное имя для таблицы с именем в таблице. При указании локального псевдонима в инструкции SELECT необходимо использовать локальный псевдоним вместо имени таблицы. Локальный псевдоним не влияет на среду Visual FoxPro.

Жоинкондитион указывает поля, связывающие таблицы в предложении FROM. Если в запросе включено более одной таблицы, необходимо указать условие объединения для каждой таблицы после первой.

При создании условий объединения учитывайте следующие сведения.

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

Будьте внимательны при соединении таблиц с пустыми полями, так как Visual FoxPro соответствует пустым полям. Например, если вы присоединяетесь к CUSTOMER.ZIP и INVOICE.ZIP и если клиент содержит 100 пустых почтовых индексов, а счет содержит 400 пустых почтовых индексов, то выходные данные запроса содержат 40 000 лишние записи, полученные в результате пустых полей. Используйте функцию Empty () для исключения пустых записей из выходных данных запроса.

Для подключения нескольких условий соединения необходимо использовать оператор AND. Каждое условие объединения имеет следующий вид:

Сравнение FieldName1 FieldName2

FieldName1 — это имя поля из одной таблицы, FieldName2 — имя поля из другой таблицы, а Сравнение — один из операторов, описанных в следующей таблице.

ОператорСравнение
=Равно
==Точно равно
LIKESQL Например
<>,! =, #Не равно
>Более чем
>=Больше или равно
customer.cust_id = orders.cust_id

Пример 2 выражение сравнения FieldName

(SELECT company FROM customer WHERE country = «USA»)

Если условие фильтра включает все значения, поле должно соответствовать условию сравнения для всех значений, созданных вложенным запросом, прежде чем его запись будет включена в результаты запроса.

(SELECT company FROM customer WHERE country = «USA»)

Если условие фильтра включает ANY или SOME, поле должно соответствовать условию сравнения по крайней мере для одного из значений, создаваемых вложенным запросом.

В следующем примере проверяется, находятся ли значения в поле в указанном диапазоне значений.

Пример 5 fieldname [NOT] между Start_Range и End_Range

customer.postalcode BETWEEN 90000 AND 99999

В следующем примере проверяется, соответствует ли хотя бы одна строка критериям вложенного запроса. Если условие фильтра содержит, условие фильтра принимает значение true (. T.), если только вложенный запрос не возвращает пустой набор.

Пример 6 [NOT] Exists (вложенный запрос)

(SELECT * FROM orders WHERE customer.postalcode =

Пример 7 fieldname [NOT] в Value_Set

customer.postalcode NOT IN («98052″,»98072″,»98034»)

Когда условие фильтра включает в, поле должно содержать одно из значений, прежде чем запись будет включена в результаты запроса.

Пример 8 fieldname [не] in (вложенный запрос)

(SELECT orders.cust_id FROM orders WHERE orders.city=»Seattle»)

В этом случае поле должно содержать одно из значений, возвращаемых вложенным запросом, прежде чем его запись будет включена в результаты запроса.

Пример 9 fieldname [NOT], например цекспрессион

customer.country NOT LIKE «USA»

Это условие фильтра выполняет поиск каждого поля, соответствующего цекспрессион. В качестве части цекспрессион можно использовать подстановочные знаки процента (%) и подчеркивания (_). Символ подчеркивания представляет один неизвестный символ в строке.

Имя регулярного поля таблицы.

поле, содержащее функцию SQL поля.

Числовое выражение, указывающее расположение столбца в таблице результатов. (Самый левый номер столбца — 1.)

НАЛИЧИЕ филтеркондитион
Указывает условие фильтра, которому должны соответствовать группы для включения в результаты запроса. HAVING следует использовать с оператором GROUP BY и может включать столько условий фильтра, сколько требуется, с соединением оператора AND или or. Можно также использовать NOT для отмены значения логического выражения.

Филтеркондитион не может содержать вложенный запрос.

Предложение HAVING без предложения GROUP BY ведет себя как предложение WHERE. В предложении HAVING можно использовать локальные псевдонимы и функции полей. Используйте предложение WHERE для повышения производительности, если предложение HAVING не содержит функций полей.

[UNION [все] SELECTCommand]
Объединяет окончательные результаты одного выбора с окончательными результатами другого выбора. По умолчанию объединение проверяет объединенные результаты и удаляет дублирующиеся строки. Используйте круглые скобки для объединения нескольких предложений UNION.

ВСЕ предотвращает удаление повторяющихся строк из Объединенных результатов.

Предложения UNION следуют следующим правилам.

Нельзя использовать UNION для объединения вложенных запросов.

Обе команды SELECT должны иметь одинаковое число столбцов в выходных данных запроса.

Каждый столбец в результатах одного запроса SELECT должен иметь тот же тип данных и ширину, что и соответствующий столбец в другом запросе SELECT.

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

Можно также использовать предложение UNION для имитации внешнего соединения.

При соединении двух таблиц в запросе в выходные данные включаются только записи с совпадающими значениями в соединяемых полях. Если запись в родительской таблице не имеет соответствующей записи в дочерней таблице, то запись в родительской таблице не включается в выходные данные. Внешнее соединение позволяет включать в выходные данные все записи родительской таблицы вместе с соответствующими записями в дочерней таблице. Чтобы создать внешнее соединение в Visual FoxPro, необходимо использовать вложенную команду SELECT, как показано в следующем примере:

Убедитесь, что вы включили пробел, расположенный непосредственно перед каждой точкой с запятой. В противном случае появится сообщение об ошибке.

Раздел команды перед предложением UNION выбирает записи из обеих таблиц с совпадающими значениями. Клиентские компании, не имеющие связанных счетов, не включаются. Раздел команды после предложения UNION выбирает записи в таблице Customer, которые не имеют совпадающих записей в таблице Orders.

В отношении второго раздела команды Обратите внимание на следующее:

Сначала обрабатывается инструкция SELECT в круглых скобках. Эта инструкция создает выборку всех номеров клиентов в таблице Orders.

Предложение WHERE находит все номера клиентов в таблице Customer, которых нет в таблице Orders. Поскольку первый раздел команды предоставляет все компании с номером клиента в таблице Orders, все компании в таблице Customer теперь включаются в результаты запроса.

Поскольку структуры таблиц, включаемых в объединение, должны быть идентичны, в второй инструкции SELECT есть два заполнителя для представления Orders.order_id и Orders.emp_id из первой инструкции SELECT.

ORDER BY Order_Item [ASC | desc] [, Order_Item [ASC | desc]. ]
Сортирует результаты запроса на основе данных в одном или нескольких столбцах. Каждый Order_Item должен соответствовать столбцу в результатах запроса и может быть одним из следующих:

Поле в таблице из таблицы, которое также является элементом SELECT в главном предложении SELECT (не во вложенном запросе).

Числовое выражение, указывающее расположение столбца в таблице результатов. (Крайний левый столбец — номер 1.)

ASC задает порядок возрастания результатов запроса в соответствии с элементом или элементами заказа и является значением по умолчанию для ORDER BY.

DESC задает порядок по убыванию для результатов запроса.

Результаты запроса отображаются неупорядоченными, если порядок не указан с помощью предложения ORDER BY.

Комментарии

SELECT — это SQLная команда, встроенная в visual foxpro, как и любая другая команда visual foxpro. При использовании SELECT для представления запроса Visual FoxPro интерпретирует запрос и извлекает указанные данные из таблиц. Запрос SELECT можно создать либо в окне командной строки, либо в программе Visual FoxPro (как и в любой другой команде Visual FoxPro).

SELECT не учитывает текущее условие фильтра, указанное с помощью SET FILTER.

Примечания к драйверам

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *