- •Язык запросов sql
- •Общие сведения
- •Insert - запрос на добавление;
- •Инструкция select
- •Синтаксис select
- •Расширения инструкции select в access
- •Порядок выполнения выборки
- •Управление списком выбора
- •Указание источника данных
- •Применение реляционных операторов
- •Применение булевых операторов
- •Обработка неопределенных значений
- •Сортировка данных
- •Вычисление агрегатных функций
- •Группировка данных
- •Ограничение для групп данных
- •Выборка из нескольких таблиц
- •Соединение отношений
- •Выборка из нескольких таблиц
- •Соединение отношений
- •Запрос с соединением, использующий from и where
- •Запрос с соединением join
- •Запрос с соединением, использующий from и where
- •Запрос с соединением join
- •Операции с таблицами
- •Изменение структуры таблицы
- •Удаление таблицы
- •Действия со строками
- •Вставка строк в таблицу
- •Изменение данных в таблице
- •Удаление данных из таблицы
- •Инструкция transform
- •In ("Физика", "Математика");
- •Глава 5 Работа с формами
Управление списком выбора
Если требуется получить из таблицы какие-либо данные, об этом следует сообщить оператору SELECT в списке выбора и в предложении FROM. Можно сказать, что речь пойдет о самой простой конструкции оператора, имеющей такой вид:
SELECT selectionjist FROM table_name;
В данной команде управление осуществляется при помощи следующих ключевых слов:
-
SELECT - служит для настройки параметров выборки столбцов и построения результирующей таблицы;
-
FROM - предназначено для задания имени таблицы, из которой осуществляется выборка информации.
Несмотря на краткость, такая конструкция позволяет выполнять базовые операции по выбору необходимых столбцов из заданной таблицы.
Прежде всего, обратимся к возможностям настройки списка выбора (selectionjist). Он определяет параметры одного либо нескольких столбцов, которые нужно включить в результат выборки данных. В этом списке можно использовать следующие элементы:
-
символ звездочки (*);
-
символьные константы;
-
арифметические операторы;
-
агрегатные функции SQL.
Рассмотрим подробнее каждый из перечисленных элементов. Варианты получения выборки данных будут показаны на примере таблицы tbIStudents.
Чтобы выполнить полный просмотр таблицы, можно выполнить команду SELECT в следующем виде:
SELECT *
FROM tbIStudents;
При этом символ * обозначает, что необходимо отобразить абсолютно все столбцы таблицы tbIStudents. Отметим, что столбцы будут выведены в той же последовательности, что и при создании таблицы при помощи инструкции CREATE TABLE (об этом операторе рассказано ниже).
Оператор SELECT отличается простотой использования и удобством, особенно если речь идет о небольших таблицах с малым количеством столбцов. Однако применять такую команду для просмотра таблиц с большим количеством столбцов неэффективно.
Для получения такого же результата без использования в запросе символа * необходимо выполнить команду SELECT с указанием всех столбцов таблицы tbIStudents в порядке их следования:
SELECT flDStudent, fIDGroup, fState, fRecord-book, fContract, fLastName, fFirstName, fMiddleName,
fGender, fBirthday, fRegion, fCity, fAddress, fPhone, fLanguage, fNotes, fPhoto FROM tbIStudents;
Если требуется просмотреть в таблице только определенные столбцы, то их следует указать после ключевого слова SELECT, так же как в предыдущем примере. При этом можно отобразить один или несколько столбцов, имена которых следует разделять запятыми.
Примечание. Порядок столбцов в команде SELECT произволен и определяется только предпочтениями пользователя и удобством представления информации в результирующей таблице.
Строки в полученной таблице будут размещены в том же порядке, что и в таблице БД, - неупорядоченно, поэтому анализировать ее в таком виде не совсем удобно.
Теперь рассмотрим, как используются псевдонимы столбцов. Как уже упоминалось, пользователь может определять выбор столбцов в том порядке, который необходим для удобной работы с данными. Однако при этом таблица отображается с заголовками столбцов, которые определил разработчик и которые могут быть недостаточно понятны для тех, кто будет работать с результатами выборки данных. Например, не все владеют английским языком и не всем понятны принятые сокращения.
Для решения данной проблемы можно воспользоваться применением для столбцов синонимов, которые будут отображаться вместо настоящих имен. В этом случае нужно после каждого имени столбца указать ключевое слово AS и синоним. Например, чтобы сделать таблицу о студентах более наглядной, можно записать запрос SELECT в следующем виде:
SELECT fLastName AS Фамилия, fFirstName AS Имя, fMiddle-
Name AS Отчество,
fAddress AS "Домашний адрес"
FROM tbIStudents;
Примечание. Если в качестве синонима выступает одно слово, оно указывается без каких-либо знаков препинания, а если синонимом служит словосочетание, оно заключается в двойные кавычки.
Ключевое слово AS служит для улучшения читаемости команды и может не указываться.
Помимо обычного извлечения информации из таблиц, в команде SELECT можно задать выполнение арифметических действий над получаемой информацией. В выборке при этом будет отображаться полученный в ходе вычисления результат.
В запросах допустимо применение таких арифметических операторов:
-
+ (сложения);
-
- (вычитания);
-
/ (деления);
-
* (умножения).
Эти операторы могут использоваться для построения выражений в любых комбинациях с именами столбцов и числовыми константами.
Например, пусть имеется таблица tbIGoods с информацией о товарах (включающую поля fNameGoods - наименование товара, fModelGoods - модель товара, fPriceGoods - цена товара). Чтобы отобразить таблицу с информацией о цене без НДС и с учетом НДС (+20%), необходимо в таблице выполнить умножение данных столбца fPriceGoods на 1.2. Таким образом, команда будет иметь следующий вид:
SELECT fNameGoods, fModelGoods, fPriceGoods, fPriceGoods*1.2 FROM tbIGoods;
Можно производить арифметические операции не только между данными столбца и константой, но и непосредственно между несколькими столбцами.
Например, отобразим информацию из таблицы tbIGoods о суммарной стоимости каждого наименования товара. Для этого необходимо умножить цену одной модели товара (поле fPriceGoods) на ее количество на складе (поле fQuantityGoods). Для столбца, в котором будет отображаться результат, установим псевдоним «Стоимость». Чтобы выполнить такой запрос, воспользуемся следующей командой:
SELECT fNameGoods AS Товар, fModelGoods AS Модель, fPrice- Goods*fQuantityGoods AS Стоимость FROM tbIGoods;