- •Оглавление
- •1. Основные понятия информационных систем
- •1.1. История возникновения информационных систем
- •1.2. Современное понятие информационной системы
- •2. Автоматизированные информационные системы
- •2.1. Преимущества автоматизированных информационных систем
- •2.2. Классификация аис
- •2.2.1. Классификация по типу хранимых данных.
- •2.2.2. Классификация по характеру обработки данных.
- •2.2.3. Классификация по степени интеграции данных и автоматизации управления.
- •2.2.4. Классификация по степени распределенности.
- •2.2.5 Классификация аис по другим признакам
- •3. Банки данных
- •3.1. Понятие банка данных
- •3.2. Преимущества банков данных
- •3.3. Предпосылки широкого использования банков данных
- •3.4. Общие требования к банкам данных
- •3.5. Компоненты банка данных
- •3.5.1. Информационная компонента
- •3.5.2. Программные средства банков данных
- •3.5.3. Языковые средства БнД
- •3.5.4. Технические средства банков данных
- •3.5.5. Организационно-методические средства.
- •4. Виды банков данных
- •4.1. Банки документов
- •4.2. Банки знаний
- •4.3. Экспертные системы
- •4.4. Хранилища данных
- •5. Системы управления базами данных (субд)
- •5.1. Назначение и состав субд
- •5.2. Классификация субд
- •5.3. Архитектура субд
- •5.4. Функции субд
- •5.5. Основные распространенные субд
- •6. Основы проектирования баз данных
- •6.1. Основные понятия в теории баз данных
- •6.2. Связи между сущностями
- •6.3. Этапы проектирования базы данных
- •6.3.1. Инфологическое моделирование
- •6.3.2. Даталогическое моделирование
- •6.3.3. Физическое моделирование
- •7. Модели данных
- •7.1. Иерархическая модель данных
- •7.2. Сетевая модель данных
- •7.3. Понятие реляционной модели данных
- •7.3. Постреляционная модель данных
- •7.4. Объектно-ориентированная модель данных
- •7.5. Объектно-реляционная модель данных
- •8. Реляционная модель данных
- •8.1. Понятие «отношения» в реляционной модели данных
- •8.2. Свойства отношений
- •8.3. Требования к реляционным базам данных
- •8.4. Основные математические понятия
- •9. Нормализация баз данных
- •9.1. Первая нормальная форма
- •9.2. Вторая нормальная форма
- •9.3. Третья нормальная форма
- •9.4. Нормальная форма Бойса – Кодда
- •9.5. Многозначные зависимости
- •9.6. Четвертая нормальная форма
- •9.7. Пятая нормальная форма
- •9.8. Принципы выбора нормальной формы для проектируемой базы данных
- •10. Введение в язык запросов sql
- •10.1. Назначение языка sql
- •10.2. Достоинства языка sql
- •10.3. Состав языка sql
- •10.4. Трехзначная логика
- •10.5. Основные типы данных языка sql
- •11. Sql. Некоторые Операторы языка определения данных
- •11.1. Оператор create table
- •11.2. Оператор alter table
- •11.3. Оператор drop table
- •12. Sql. Операторы изменения данных
- •12.1. Оператор insert into
- •12.2. Оператор update
- •12.3. Оператор delete from
- •13. Sql. Выбор информации из базы данных
- •13.1. Общее описание оператора select
- •13.1.1. Назначение оператора select
- •13.1.2. Синтаксическая диаграмма оператора select
- •13.2. Обязательные предложения оператора select
- •13.2.1. Предложение select.
- •13.2.2. Предложение from.
- •13.2.3. Примеры простейших запросов на выборку.
- •13.3. Отбор строк (предложение where)
- •13.3.1. Сравнение
- •13.3.2. Проверка на принадлежность диапазону значений (between)
- •13.3.3. Проверка на членство во множестве (in)
- •13.3.4. Проверка на соответствие шаблону (like)
- •13.3.5. Отслеживание отсутствия значений (null)
- •13.3.6. Составные условия отбора строк
- •13.4. Сортировка результатов запроса (предложение order by)
- •13.5 Примерный порядок выполнения простых однотабличных запросов
- •13.6. Многотабличные запросы
- •13.6.1. Полные имена столбцов.
- •13.6.2. Псевдонимы таблиц.
- •13.6.3. Особенности многотабличных запросов.
- •13.6.4. Примеры многотабличных запросов.
- •13.6.5. Соединение таблиц в предложении from.
- •13.6.6. Примерный порядок выполнения многотабличных запросов
- •13.7. Итоговые запросы на чтение
- •13.7.1. Агрегатные функции.
- •13.7.2. Группировка строк (предложение group by)
- •13.7.3. Отбор групп строк (предложение having)
- •13.7.4. Примерный порядок выполнения итоговых запросов
- •13.8. Вложенные запросы на чтение (подзапросы)
- •13.8.1. Использование вложенных запросов
- •13.8.2. Сравнение с результатом вложенного запроса
- •13.8.3. Проверка на принадлежность результатам вложенного запроса
- •13.8.4. Проверка на существование (exists)
- •13.8.5. Многократное сравнение (any, all)
- •13.9. Объединение результатов нескольких запросов
13.2.3. Примеры простейших запросов на выборку.
Для рассмотрения примеров запросов будем использовать схему данных для предметной области «Телефонная книга» (подробно разбиралась на лабораторных и практических занятиях).
Пример 1. Вывести коды и названия мелодий.
SELECT ID, NAZV
FROM MELODII
Пример 2. Вывести информацию о контактах (код, имя, возраст).
SELECT ID, NAME1, VOZRAST
FROM KONTAKTY
Пример 3. Для каждого вызова вывести фразу типа: “Стоимость звонка 1 равна 3,50р.”.
SELECT 'Стоимость звонка ', ID, ' равна ', STOIM
FROM VYZOVY
Пример 4. Вывести код, длительность и стоимость звонка в долларах (по курсу 30 руб./$).
SELECT ID, DLIT, STOIM/30 AS DOLLARS
FROM VYZOVY
Пример 5. Вывести полную информацию о группах контактов.
SELECT *
FROM GRUPPY
Пример 6. Вывести полную информацию о вызовах, а также стоимость минуты каждого вызова.
SELECT *, STOIM/DLIT*60 AS TARIF
FROM VYZOVY
Пример 7. Вывести коды (ID) мелодий, которые уже использовались (были назначены хотя бы одному контакту).
Неправильно:
SELECT MEL_ID
FROM KONTAKTY
Правильно:
SELECT DISTINCT MEL_ID
FROM KONTAKTY
13.3. Отбор строк (предложение where)
Приведенные выше примеры запросов выбирали информацию из всех строк таблицы. Однако чаще требуется выбрать данные только из тех строк, которые удовлетворяют определенным условиям. Для этой цели служит предложение WHERE, которое исключает строки, не удовлетворяющие заданным в нем условиям. В результаты запроса попадут только те строки, для которых условие отбора вернет True(Истина).
Условие отбора строк в предложении WHERE может быть простым или составным.
Можно выделить пять основных типов простых условий отбора строк.
Примечание. Во многих из таких условий можно добавлять слово NOT, что будет приводить к противоположному по смыслу результату.
13.3.1. Сравнение
Синтаксис:
<выражение1> <операция сравнения> <выражение2>
Операции сравнения : = (равно), <> (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно).
Пример 8. Вывести имена контактов, чей возраст больше 20.
SELECT NAME1
FROM KONTAKTY
WHERE VOZRAST>20
Пример 9. Вывести полную информацию о звонках, стоимость которых рассчитывалась исходя из тарифа 1.2 руб/мин.
SELECT *
FROM VYZOVY
WHERE STOIM=DLIT/60*1.2
13.3.2. Проверка на принадлежность диапазону значений (between)
Синтаксис:
<выражение1> [NOT] BETWEEN <выражение2> AND <выражение3>
Данная проверка возвращает True (Истина), если:
<выражение1> [<выражение2>;<выражение3>]
Чаще всего <выражение1> - имя столбца таблицы, <выражение2>, <выражение3> - константы.
Пример 10. Вывести названия мелодий с кодами (ID) от 5 до 15 включительно.
SELECT ID, NAZV
FROM MELODII
WHERE ID BETWEEN 5 AND 15
13.3.3. Проверка на членство во множестве (in)
Синтаксис:
<выражение> [NOT] IN (<выражение1>[,<выражение2>][,…])
Данная проверка возвращает True (Истина), если <выражение> равно одному из выражений в круглых скобках.
Чаще всего <выражение> - имя столбца таблицы, <выражение1>, <выражение2> и т.д. - константы.
Примечание. Вместо списка значений в круглых скобках может быть вложенный запрос SELECT, возвращающий такой список. Вложенные запросы будут рассмотрены позже.
Пример 11. Вывести номера телефонов, принадлежащих контактам с кодами (ID) 1, 2, 4, 5.
SELECT NOMER, KONT_ID
FROM NOMERA
WHERE KONT_ID IN (1,2,4,5)
Пример 12. Вывести номера телефонов, не принадлежащих контактам с кодами 1, 2, 4, 5.
SELECT NOMER, KONT_ID
FROM NOMERA
WHERE KONT_ID NOT IN (1,2,4,5)