
- •I этап. Постановка задачи.
- •II этап. Анализ объекта.
- •III этап. Синтез модели.
- •IV этап. Выбор способов представления информации и программного инструментария.
- •V этап. Синтез компьютерной модели объекта.
- •VI этап. Работа с созданной базой данных.
- •Семантическая модель Entity-Relationship (Сущность-Связь)
- •10.2.1. Основные понятия er-модели
- •10.2.2. Уникальные идентификаторы типов сущности
- •Case-средства. Общая характеристика и классификация
- •Концептуальное (инфологическое) проектирование
- •4.1.1.Структура данных.
- •4.1.2.Свойства отношений.
- •Понятие функциональной, транзитивной и многозначной зависимости. Примеры.
- •Введение
- •Преимущества и недостатки [править] Преимущества [править] Независимость от конкретной субд
- •[Править] Наличие стандартов
- •[Править] Декларативность
- •[Править] Недостатки [править] Несоответствие реляционной модели данных
- •Операторы
- •Предикат сравнения
- •2.3.4.2.2 Предикат between
- •2.3.4.2.3 Предикат in
- •2.3.4.2.4 Предикат like
- •2.3.4.2.5 Предикат null
- •2.3.4.2.6 Предикат с квантором
- •Что такое агрегатные функции ?
- •Как использовать агрегатные функции ?
- •Специальные атрибуты count
- •Использование distinct
- •Использование count со строками, а не значениями
- •Включение дубликатов в агрегатные функции
- •Агрегаты построенные на скалярном выражении
- •Предложение group by
- •Предложение having
- •Не делайте вложенных агрегатов
- •Управление доступом в базах данных
- •Запросы
- •Макросы
- •Поле объекта ole
- •Гиперссылка
- •Мастер подстановок
- •Добавление записи
- •Изменение записи
- •Удаление содержимого поля или удаление всей записи
- •Создание схемы
- •Дополнительные параметры
- •Назначение и виды запросов в Access. Назначение запросов.
- •Виды запросов.
- •( Для показа суммирования в одной колонке):
- •( Для создания всевозможных подсчетов на базе Схемы данных):
- •8.2. Вычисления в запросах, возможности создания и редактирования формул.
- •8.4. Использование запросов на Удаление и на Обновление.
- •Типы отчетов Access: краткий обзор
- •Простые отчеты
- •Иерархические отчеты
- •Отчеты, содержащие отсортированные, сгруппированные записи или записи обоих типов
- •Отчет, содержащий отсортированные записи
- •Отчет, содержащий сгруппированные записи
- •Перекрестный отчет
- •Отчет, содержащий несколько столбцов
- •Структура программ на vba
- •Стандартные способы защиты Защита с использованием пароля бд
- •Защита с использованием пароля пользователя
- •Нестандартные способы защиты Изменение расширения файла
- •Защита с использованием пароля бд, содержащего непечатные символы
- •Защита с модификацией файла
- •Защита изменением версии бд
- •Защита с использованием электронного ключа
- •Шифрование значений таблиц
- •Заключение
- •Администратор базы данных (dba)
- •История
- •Основные задачи администратора базы данных
- •Основные типы администраторов бд
- •Поддержка мультимедийных объектов
- •5.1.1. Третичная память
- •5.1.2. Новые типы данных
- •5.1.3. Качество обслуживания
- •5.1.4. Запросы с нечеткими критериями
- •5.1.5. Поддержка пользовательских интерфейсов
- •5.2. Распределение информации
- •5.2.1. Степень автономности
- •5.2.2. Учет и расчеты
- •5.2.3. Безопасность и конфиденциальность
- •5.2.4. Репликация и согласование данных
- •5.2.5. Интеграция и преобразование данных
- •5.2.6. Выборка и обнаружение данных
- •5.2.7. Качество данных
- •5.3. Новые применения баз данных
- •5.3.1. Интеллектуальный анализ данных
- •5.3.2. Хранилища данных
- •5.3.3. Репозитарии
- •5.4. Управление потоками работ и транзакциями
- •5.4.1. Управление потоками работ
- •5.4.2. Альтернативные модели транзакций
- •5.5. Простота использования
- •6. Выводы
Использование count со строками, а не значениями
Чтобы подсчитать общее число строк в таблице, используйте функцию COUNT со звездочкой вместо имени пол, как например в следующем примере, вывод из которого показан на Рисунке 6.4:
SELECT COUNT (*)
FROM Customers
COUNT со звездочкой включает и NULL и дубликаты, по этой причине DISTINCT не может быть использован. DISTINCT может производить более высокие номера чем COUNT особого пол, который удаляет все
=============== SQL Execution Log ============
| |
| SELECT COUNT (*) |
| FROM Customers; |
| ==============================================|
| |
| ------- |
| 7 |
| |
| |
===============================================
Рисунок 6. 4: Подсчет строк вместо значений строки, имеющие избыточные или NULL данные в этом поле. DISTINCT не применим c COUNT (*), потому, что он не имеет никакого действия в хорошо разработанной и поддерживаемой базе данных. В такой базе данных, не должно быть ни таких строк, которые бы являлись полностью пустыми, ни дубликатов ( первые не содержат никаких данных, а последние полностью избыточны ). Если, с другой стороны, все таки имеются полностью пустые или избыточные строки, вы вероятно не захотите чтобы COUNT скрыл от вас эту информацию.
Включение дубликатов в агрегатные функции
Агрегатные функции могут также ( в большинстве реализаций ) использовать аргумент ALL, который помещается перед именем пол, подобно DISTINCT, но означает противоположное: - включать дубликаты. ANSI технически не позволяет этого для COUNT, но многие реализации ослабляют это ограничение. Различи между ALL и * когда они используются с COUNT - * ALL использует имя_поля как аргумент. * ALL не может подсчитать значения NULL. Пока * является единственным аргументом который включает NULL значения, и он используется только с COUNT; функции отличные от COUNT игнорируют значения NULL в любом случае. Следующая команда подсчитает(COUNT) число не-NULL значений в поле rating в таблице Заказчиков ( включая повторения ):
SELECT COUNT ( ALL rating )
FROM Customers;
Агрегаты построенные на скалярном выражении
До этого, вы использовали агрегатные функции с одиночными полями как аргументами. Вы можете также использовать агрегатные функции с аргументами которые состоят из скалярных выражений включающих одно или более полей. ( Если вы это делаете, DISTINCT не разрешается. ) Предположим, что таблица Порядков имеет еще один столбец который хранит предыдущий неуплаченный баланс (поле blnc) для каждого заказчика. Вы должны найти этот текущий баланс, добавлением суммы приобретений к предыдущему балансу. Вы можете найти наибольший неуплаченный баланс следующим образом:
SELECT MAX ( blnc + (amt) )
FROM Orders;
Для каждой строки таблицы, этот запрос будет складывать blnc и amt для этого заказчика и выбирать самое большое значение которое он найдет. Конечно, пока заказчики могут иметь многочисленные порядки, их неуплаченный баланс оценивается отдельно для каждого порядка. Возможно, порядок с более поздней датой будет иметь самый большой неуплаченный баланс. Иначе, старый баланс должен быть выбран как в запросе выше. Фактически, имеются большое количество ситуаций в SQL где вы можете использовать скалярные выражения с полями или вместо полей, как вы увидите это в Главе 7.