Краткое содержание: В этом руководстве вы познакомитесь с основами оператора SELECT в SQL Server, уделив особое внимание извлечению данных из одной таблицы.
- Базовый оператор SELECT SQL Server
- Примеры операторов SELECT SQL Server
- 1) Пример простого оператора SELECT SQL Server
- 2) Использование SQL Server SELECT для извлечения всех столбцов таблицы
- 3) Фильтрация строк с использованием предложения WHERE
- 4) Сортировка строк с использованием предложения ORDER BY
- 5) Группировка строк в группы
- 6) Фильтрация групп с использованием предложения HAVING
- Краткое содержание
Базовый оператор SELECT SQL Server
В SQL Server таблицы — это объекты, которые хранят все данные в базе данных. Они организуют данные в формате строк и столбцов, подобно электронной таблице. Каждая строка представляет собой уникальную запись в таблице, а каждый столбец представляет собой поле в этой записи.
Например, следующая таблица «Клиенты» содержит данные о клиенте, такие как идентификатор клиента, имя, фамилия, телефон, адрес электронной почты и адрес:
SQL Server использует схемы для логической группировки таблиц и других объектов базы данных. Например, наш образец базы данных имеет две схемы: продажи и производство.
Схема продаж включает в себя все таблицы, связанные с продажами, тогда как схема производства группирует все таблицы, связанные с производством.
Для извлечения данных из таблицы используется оператор SELECT со следующим синтаксисом:
SELECT select_list FROM schema_name.table_name;
В этом синтаксисе:
- Сначала укажите список столбцов, разделенных запятыми, из которых вы хотите запросить данные в предложении SELECT.
- Во-вторых, укажите имя таблицы и ее схему в предложении FROM.
При обработке оператора SELECT SQL Server сначала обрабатывает предложение FROM, а затем предложение SELECT, даже если предложение SELECT появляется перед предложением FROM:
Примеры операторов SELECT SQL Server
Давайте для демонстрации воспользуемся таблицей «Клиенты» из образца базы данных.
1) Пример простого оператора SELECT SQL Server
Следующий запрос использует оператор SELECT для извлечения имен и фамилий всех клиентов:
SELECT first_name, last_name FROM sales.customers;
Вот результат:
Результат запроса часто называют набором результатов.
В следующем операторе оператор SELECT используется для извлечения имени, фамилии и адреса электронной почты всех клиентов:
SELECT first_name, last_name, email FROM sales.customers;
Выход:
2) Использование SQL Server SELECT для извлечения всех столбцов таблицы
Чтобы извлечь данные из всех столбцов таблицы, вы можете указать все столбцы в списке SELECT. В качестве альтернативы вы также можете использовать SELECT * как сокращение для выбора всех столбцов:
SELECT * FROM sales.customers;
Использование SELECT * полезно для изучения таблицы, с которой вы не знакомы, и особенно полезно для специальных запросов.
Однако не следует использовать SELECT * в производственном коде по следующим основным причинам:
- Во-первых, использование SELECT * часто извлекает больше данных, чем нужно вашему приложению. Эти ненужные данные требуют больше времени для передачи с сервера базы данных в приложение, замедляя работу приложения.
- Во-вторых, если в таблицу добавляются новые столбцы, SELECT * извлечет все столбцы, включая новые, которые ваше приложение может не ожидать. Это может потенциально привести к неожиданному поведению приложения.
В следующем разделе мы кратко рассмотрим дополнительные предложения оператора SELECT:
- ГДЕ : фильтрация строк в результирующем наборе.
- ORDER BY : сортировка строк в результирующем наборе по одному или нескольким столбцам.
- GROUP BY : группирует строки в группы.
- ИМЕЕТ : группы фильтров.
Обратите внимание, что мы рассмотрим эти положения более подробно в следующих уроках.
3) Фильтрация строк с использованием предложения WHERE
Чтобы отфильтровать строки на основе одного или нескольких условий, используйте предложение WHERE.
Например, следующий оператор SELECT использует предложение WHERE для поиска клиентов, находящихся в Калифорнии:
SELECT * FROM sales.customers WHERE state = 'CA';
Если оператор SELECT включает предложения WHERE и FROM, SQL Server обрабатывает их в следующей последовательности: FROM, WHERE и SELECT.
4) Сортировка строк с использованием предложения ORDER BY
Для сортировки строк в результирующем наборе на основе используйте предложение ORDER BY. Например, следующий запрос использует предложение ORDER BY для сортировки клиентов по их именам в порядке возрастания.
SELECT * FROM sales.customers WHERE state = 'CA' ORDER BY first_name;
Выход:
Если оператор SELECT включает предложения FROM, WHERE и ORDER BY, SQL Server обрабатывает их в следующем порядке: FROM, WHERE, SELECT и ORDER BY:
5) Группировка строк в группы
Чтобы объединить строки в группы, используйте предложение GROUP BY.
Например, следующий оператор возвращает все города клиентов, расположенных в Калифорнии, и количество клиентов в каждом городе.
SELECT city, COUNT(*) FROM sales.customers WHERE state = 'CA' GROUP BY city ORDER BY city;
В этом случае SQL Server обрабатывает предложения в следующем порядке: FROM, WHERE, GROUP BY, SELECT и ORDER BY.
6) Фильтрация групп с использованием предложения HAVING
Для фильтрации групп на основе одного или нескольких условий используйте предложение HAVING.
Например, в следующем операторе используется предложение HAVING для возврата города в Калифорнии, в котором проживает более десяти клиентов:
SELECT city, COUNT(*) FROM sales.customers WHERE state = 'CA' GROUP BY city HAVING COUNT(*) > 10 ORDER BY city;
Обратите внимание, что предложение WHERE фильтрует строки, а предложение HAVING фильтрует группы.
Краткое содержание
- Используйте оператор SQL Server SELECT для извлечения данных из таблицы.