В этом учебном пособии вы узнаете, как использовать в SQL Server (Transact-SQL) оператор SELECT с синтаксисом и примерами.
Описание
Оператор SELECT SQL Server (Transact-SQL) используется для извлечения записей из одной или нескольких таблиц в базе данных SQL Server.
Синтаксис
В простейшей форме синтаксис оператора SELECT в SQL Server (Transact-SQL):
FROM tables
[WHERE conditions];
Полный синтаксис оператора SELECT в SQL Server (Transact-SQL):
[ TOP (top_value) [ PERCENT ] [ WITH TIES ] ]
expressions
FROM tables
[WHERE conditions]
[GROUP BY expressions]
[HAVING condition]
[ORDER BY expression [ ASC | DESC ]];
Параметры или аргументы
ALL - необязательный. Возвращает все соответствующие строки.
DISTINCT - необязательный. Удаляет дубликаты из набора результатов. Подробнее об операторе DISTINCT ...
TOP (top_value) - необязательный. Если указано, то он вернет верхнее число строк в результирующем наборе на основе top_value. Например, TOP (10) вернет первые 10 строк из полного набора результатов.
PERCENT - необязательный. Если указано, то верхние строки основаны на проценте от общего набора результатов (как указано в верхнем значении). Например, TOP (10) PERCENT вернет верхние 10% полного набора результатов.
WITH TIES - необязательный. Если указано, то строки, привязанные на последнем месте в ограниченном результирующем наборе, возвращаются. Это может привести к возврату большего количества строк, чем позволяет параметр TOP.
expressions - столбцы или вычисления, которые вы хотите получить. Используйте *, если вы хотите выбрать все столбцы.
tables - таблицы, из которых вы хотите получить записи. Должна быть хотя бы одна таблица, перечисленная в предложении FROM.
WHERE conditions - необязательный. Условия, которые должны быть выполнены для выбранных записей.
GROUP BY expressions - необязательный. Он собирает данные по нескольким записям и группирует результаты по одному или нескольким столбцам.
HAVING condition - необязательный. Он используется в сочетании с GROUP BY, чтобы ограничить группы возвращаемых строк только теми, чье условие TRUE.
ORDER BY expression - необязательный. Он используется для сортировки записей в вашем результирующем наборе. ASC сортируется в порядке возрастания, а DESC - в порядке убывания.
Пример выборки всех полей из одной таблицы
Рассмотрим пример, как использовать SQL Server SELECT для выбора всех полей из таблицы.
1 2 3 4 |
SELECT * FROM inventory WHERE quantity > 5 ORDER BY inventory_id ASC; |
В этом примере SQL Server SELECT мы использовали *, чтобы указать, что мы хотим выбрать все поля из таблицы inventory, где quantity больше 5. Набор результатов сортируется по полю inventory_id в порядке возрастания.
Пример выборки отдельных полей из одной таблицы.
Вы также можете использовать SQL Server оператор SELECT для выбора отдельных полей из таблицы.
Например:
1 2 3 4 5 |
SELECT inventory_id, inventory_type, quantity FROM inventory WHERE inventory_id >= 250 AND inventory_type = 'Программное обеспечение' ORDER BY quantity DESC, inventory_id ASC; |
Этот пример SQL Server SELECT возвращает только данные inventory_id, inventory_type и quantity из таблицы inventory, где inventory_id больше или равно 250, а inventory_type - это 'Программное обеспечение’. Результаты сортируются по quantity в порядке убывания, а затем inventory_id в порядке возрастания.
Пример выборки полей из нескольких таблиц.
Вы также можете использовать оператор SELECT SQL Server для извлечения полей из нескольких таблиц с помощью объединения (join).
Например:
1 2 3 4 5 |
SELECT inventory.inventory_id, products.product_name, inventory.quantity FROM inventory INNER JOIN products ON inventory.product_id = products.product_id ORDER BY inventory_id; |
Этот пример SQL Server SELECT объединяет вместе две таблицы, чтобы предоставить нам набор результатов, который отображает поля inventory_id, product_name и quantity, где значение product_id совпадает как в таблице inventory, так и в products. Результаты сортируются по inventory_id в порядке возрастания.
Пример использования ключевого слова TOP
Давайте посмотрим на пример SQL Server, где мы используем ключевое слово TOP в операторе SELECT.
Например:
1 2 3 4 5 |
SELECT TOP(3) inventory_id, inventory_type, quantity FROM inventory WHERE inventory_type = 'Программное обеспечение' ORDER BY inventory_id ASC; |
Этот пример SQL Server SELECT выберет первые 3 записи из таблицы inventory, где inventory_type будет 'Программное обеспечение'. Если в таблице inventory есть другие записи, которые имеют значение inventory_type 'Программное обеспечение', они не будут возвращаться оператором SELECT.
Пример использования ключевого слова TOP PERCENT
Рассмотрим пример SQL Server, в котором мы используем ключевое слово TOP PERCENT в операторе SELECT.
Например:
1 2 3 4 5 |
SELECT TOP(10) PERCENT inventory_id, inventory_type, quantity FROM inventory WHERE inventory_type = 'Программное обеспечение' ORDER BY inventory_id ASC; |
Этот пример SQL Server SELECT будет выбирать первые 10% записей из полного набора результатов. Таким образом, в этом примере оператор SELECT вернет 10% записей из таблицы inventory, где inventory_type - это 'Программное обеспечение'. Остальные 90% набора результатов не будут возвращены оператором SELECT.