1 Лекция 6 Команды категории извлечения данных языка структурированных запросов SQL План лекции Выборка определенных столбцов таблицы Устранение избыточных данных Определение условия выбора WHERE Специальные операторы в условии выбора
2 Команды SQL категории Извлечение данных Команда SELECT – извлекает данные из БД Формат: SELECT FROM [INTO WHERE GROUP BY HAVING ORDER BY ];
3 Выборка определенных столбцов таблицы Пример 1 Из таблицы Клиенты-счета выбрать сведения по счетам (Код счета, Дата открытия, Сумма на счете). SELECT [Код счета], [Дата открытия счета], [Сумма на счете] FROM [Клиенты-счета];
4 Устранение избыточных данных (ключевое слово DISTINCT) Пример 2. Пример 2. Используя таблицу Клиенты-счета, вывести список видов счетов, предоставляемых банком.
5 Определение условия выбора WHERE Формат: WHERE критерий поиска В критерии поиска могут использоваться реляционные операторы – = (равно), (не равно), >= (больше или равно), > (больше, чем),
Пример 3. Выбрать сведения о счетах вида ВС, суммы на которых выше 5000 у.е.. SELECT [Код счета],[ счета],[Сумма на счете] FROM [Клиенты-счета] WHERE [Код счета]="ВС" AND [Сумма на счете]>5000; 6
Объединение записей в многотабличном запросе SQL ANSI: WHERE Менеджеры.[менеджера]=[Клиенты- счета].[ менеджера] SQL ядра Jet, способ 1: INNER JOIN FROM Менеджеры INNER JOIN [Клиенты- счета] ON Менеджеры.[ менеджера] = [Клиенты-счета].[ менеджера] 7
Объединение записей в многотабличном запросе SQL ядра Jet, способ 2: LEFT JOIN FROM Менеджеры LEFT JOIN [Клиенты-счета] ON Менеджеры.[ менеджера] = [Клиенты-счета].[ менеджера] SQL ядра Jet, способ 3: RIGHT JOIN FROM Менеджеры RIGHT JOIN [Клиенты-счета] ON Менеджеры.[ менеджера] = [Клиенты-счета].[ менеджера] 8
9 Пример 4. Пример 4. Выбор данных из двух таблиц Вывести информацию о вкладчиках (ФИО, Дата открытия счета, Сумма на счете, Код счета). Выводимым полям присвоить собственные имена. Использовать таблицы Клиенты и Клиенты-счета SELECT [ФИО клиента] AS ФИО, [Дата открытия счета] AS [Дата], [Сумма на счете] AS [Cумма], [Код счета] AS [Счет] FROM Клиенты, Клиенты-счета WHERE Клиенты.[Код клиента] = [Клиенты-счета]. [Код клиента];
10 Результат запроса
11 Пример 5. Пример 5. Выбор данных из трех таблиц. Вывести информацию о вкладчиках (ФИО, Дата открытия счета, Сумма на счете, Вид счета). Выводимым полям присвоить собственные имена. Использовать таблицы Счета, Клиенты и Клиенты-счета. SELECT [ФИО клиента] AS ФИО, [Дата открытия счета] AS [Дата], [Сумма на счете] AS [Cумма], [Вид счета] AS [Счет] FROM Клиенты, [Клиенты-счета],[Счета] WHERE Клиенты.[Код клиента] = [Клиенты-счета].[Код клиента] And Счета.[Код счета] = [Клиенты-счета].[Код счета] ;
12 Результат запроса
13 Пример 6. Пример 6. Выбрать сведения о клиентах, у которых на счетах вида ВС размещена сумма выше 5000 у.е. SELECT [Код счета], [ счета], [Сумма на счете], [ФИО клиента] FROM Клиенты, [Клиенты-счета] WHERE Клиенты.[Код клиента] = [Клиенты-счета]. [Код клиента] AND ( [Код счета]="ВС" AND [Сумма на счете]>5000);
14 Специальные операторы в условиях (IN, BETWEEN, LIKE) Оператор IN - определяет множество, элементы которого перечисляются в круглых скобках и разделяются запятыми Пример 7 Выберем клиентов, у которых на счетах размещены суммы в 5 или 10 тыс. усл. ден. ед.
15 Текст запроса:
16 Результат запроса:
17 Оператор BETWEEN BETWEEN AND задает границы, в которые должно попадать значение, чтобы предикат был истинным. Пример 8. Выбрать сведения о клиентах, у которых на вкладе размещена сумма от до бел.р.
18 Текст запроса: SELECT [ФИО клиента], [Код счета], [Сумма на счете] FROM Клиенты, [Клиенты-счета] WHERE [Сумма на счете] BETWEEN AND AND Клиенты.[Код клиента] = [Клиенты-счета].[Код клиента];
19 Результат запроса:
20 Оператор LIKE Оператор LIKE используется для поиска подстрок и применим только к полям типа CHAR. Шаблоны символ «подчеркивания» ( _ ), символ процент ( % )
21 Пример 9. Пример 9. Выбрать сведения о клиентах, заключивших договора , фамилии которых начинаются на букву Ш. SELECT [ФИО клиента], [Дата открытия счета], [Сумма на счете], Адрес FROM Клиенты, [Клиенты-счета] WHERE [ФИО клиента] Like "Ш*" AND [Дата открытия счета]= #9/5/2009# AND Клиенты.[Код клиента] = [Клиенты-счета].[Код клиента];
22 Пример 10. Пример 10. Заполнить поле Вид валюты таблицы Клиенты-счета. UPDATE [Клиенты-счета] SET [Вид валюты] = "бел. рубли" WHERE [Код счета] Like "Р*";
23 Пример**. Уменьшить на 2 пункта процентную ставку для счетов вида ВС UPDATE Счета SET [% ставка] = [% ставка]-2 WHERE [Код счета]="ВС";