- •Оглавление
- •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.3.4. Проверка на соответствие шаблону (like)
Используется только для текстового типа данных.
Синтаксис:
<проверяемое значение> [NOT] LIKE <шаблон>
Данная проверка возвращает True (Истина), если проверяемое значение соответствует шаблону (похоже на шаблон).
В качестве проверяемого значения обычно выступает имя столбца таблицы, для которого установлен текстовый тип данных.
Шаблон представляет собой текстовое значение (заключенное в кавычки) с подстановочными символами «*» (звездочка) и/или «?» (вопросительный знак). Символ «*» в шаблоне заменяет любое количество (даже ноль) любых символов, а символ «?» заменяет один любой символ в конкретной позиции. Примеры шаблонов и соответствующие им текстовые значения приведены в таблице 13.1
Таблица 13.1 – Примеры шаблонов
Шаблон |
Соответствующие текстовые строки |
«*» |
Любые (даже пустые) строки |
«????» |
Строки, состоящие из 4 любых символов |
«*а*» |
Строки, в которых есть символ «а» |
«*я?» |
Строки, в которых предпоследний символ «я» |
Пример 13. Вывести номера телефонов оператора TELE2 с кодом 953.
SELECT NOMER
FROM NOMERA
WHERE NOMER LIKE “*(953)*”
13.3.5. Отслеживание отсутствия значений (null)
Как уже говорилось выше, если в некоторой ячейке таблицы значение отсутствует, то говорят, что значение в этой ячейке есть NULL.
Для того чтобы отследить такие ситуации, необходимо использовать конструкцию следующего вида:
<имя столбца> IS [NOT] NULL
Данная проверка возвращает True (Истина), если в указанном столбце значение отсутствует.
Пример 14. Вывести список групп контактов, для которых не указана мелодия.
SELECT ID, NAZV, MEL_ID
FROM GRUPPY
WHERE MEL_ID IS NULL
Примечание. Выражение вида <значение>=NULL не является синтаксической ошибкой, но всегда будет возвращать NULL (Неизвестно) и никогда True (Истина).
13.3.6. Составные условия отбора строк
На практике очень часто простого условия отбора бывает недостаточно. В таких случаях можно задать составное условие отбора, включающую в себя комбинацию простых условий, логических операций AND, OR, NOT и круглых скобок.
Операнды логических операций AND, OR, NOT следует заключать в круглые скобки.
Пример 15. Вывести список исходящих вызовов (код=2) длительностью более 50 секунд.
SELECT *
FROM VYZOVY
WHERE (TIP_ID=2) AND (DLIT>50)
Пример 16. Вывести список контактов, для которых указан лишь один из параметров: пол или возраст.
SELECT *
FROM KONTAKTY
WHERE ((POL_ID IS NULL) AND (VOZRAST IS NOT NULL)) OR
((POL_ID IS NOT NULL) AND (VOZRAST IS NULL))
13.4. Сортировка результатов запроса (предложение order by)
Предложение ORDER BY позволяет упорядочить строки в таблице результатов запроса в соответствии с указанными столбцами сортировки.
Синтаксис:
ORDER BY <столбец сортировки1> [ASC|DESC][, <столбец сортировки2> [ASC|DESC]] [,…]
Предложение ORDER BY может содержать несколько столбцов сортировки, разделенных запятыми. В качестве столбца сортировки может выступать имя столбца таблицы или порядковый номер (1,2, и т.д.) возвращаемого столбца (из предложения SELECT).
Примечание. В качестве столбца сортировки не может выступать вычисляемое выражение. Если это необходимо, следует указать порядковый номер возвращаемого столбца.
После каждого столбца сортировки можно задать одно из двух слов: ASC (по возрастанию) или DESC (по убыванию).
По умолчанию сортировка производится в порядке возрастания значений (для текстовых данных – в алфавитном порядке).
В случае сортировки по нескольким столбцам сортировка по каждому следующему столбцу не отменяет результаты сортировки по предыдущему.
Сначала сортировка производится по значениям первого столбца сортировки. Если в нескольких строках значения в этом столбце совпадают, то порядок следования строк определятся по второму столбцу (при его наличии). Если в нескольких строках совпадают значения в первых двух столбцах сортировки, то сортировка производится по третьему столбцу сортировки (при его наличии) и т.д.
Пример. Необходимо упорядочить список людей (фамилия, имя, отчество хранятся в отдельных столбцах). Сначала необходимо отсортировать по фамилии, затем в рамках каждой фамилии – по имени, затем в рамках каждой совокупности фамилии и имени – по отчеству).
Пример 17. Вывести список групп контактов в алфавитном порядке.
SELECT ID, NAZV, MEL_ID
FROM GRUPPY
ORDER BY NAZV
Пример 18. Вывести список входящих звонков в порядке убывания их длительности.
SELECT ID, TIP_ID, VREMYA, NOMER_ID, DLIT
FROM VYZOVY
WHERE TIP_ID=1
ORDER BY DLIT DESC
Пример 19. Вывести список исходящих звонков. Результаты отсортировать сначала в порядке убывания их тарифов, а затем – в хронологическом порядке.
SELECT TIP_ID, VREMYA, NOMER_ID, DLIT, STOIM, STOIM/DLIT*60
FROM VYZOVY
WHERE TIP_ID=2
ORDER BY 6 DESC, VREMYA ASC