- •Технологии хранения и обработки данных
- •Основные направления развития методов обработки и храненияданных
- •Базы данных в электронном маркетинге
- •Базы данных: основные понятия и определения
- •Архитектура баз данных
- •Организационный аспект разработки и сопровождения базы данных
- •Проектирование баз данных
- •Общие аспекты
- •База данных Интернет-магазина: пример проектирования
- •Концептуальное проектирование
- •Логическое проектирование
- •Иерархическая и сетевая модели данных
- •Реляционная модель данных
- •Достоинства реляционной модели
- •Проект реляционной базы данных Интернет-магазина
- •Физическое проектирование
- •Словарь данных
- •Индексирование
- •Разделение таблиц
- •Условия на значения полей и значения по умолчанию
- •Реализация реляционных баз данных. Язык sql
- •Имена и типы данных
- •Основные операторы языка sql
- •Операторы создания и конструкции описания объектов
- •Операторы манипулирования данными
- •Предоставление полномочий
- •Базы данных в компьютерных сетях
- •Базы данных в Интернет
- •Обзор основных коммерческих систем управлениями базами данных для решения задач маркетинга
- •Microsoft sql Server
- •Субд Oracle
- •Заключение
- •Контрольные вопросы
- •Список литературы, рекомендуемой к Главе 7
- •Список рекомендуемых Интернет-ресурсов
- •Оглавление Главы 7
- •Глава 7. Технологии хранения и обработки данных 195
Операторы манипулирования данными
Оператор выборки записейSELECTявляется наиболее важным и имеет большие функциональные возможности. Его полный формат имеет вид:
SELECT [ALL|DISTINCT]
список_полей
FROM список_таблиц
[WHERE условие_выборки]
[GROUP BY поля_группировки]
[ORDER BY поля_сортировки]
Конструкции, приведенные в квадратных скобках, не являются обязательными.
При указании ключевого слова ALLрезультирующая таблица может иметь повторяющиеся строки. Этот параметр применяется по умолчанию. Использование ключевого словаDISTINCTпозволяет включать только неповторяющиеся строки. Рассмотрим пример выборки заказанных книг по разделу «Маркетинг»:
SELECT DISTINCT basket.isbn, book.name, book.authors
FROM basket, book
WHERE book.section = “Маркетинг”
В этом операторе для каждой книги для всех записей таблицы Корзина заказов происходит проверка связанной по ключевому полю isbnзаписи таблицыbookна предмет равенства значения поляsectionстроке “Маркетинг”, и, если это так, тоISBN-код, наименование и авторы книги попадают в результирующую таблицу запроса. Так как одна и та же книга может входить во многие заказы, то во избежание повторов в оператореSELECTуказано ключевое словоDISTINCT.
В списке полей выборки могут быть выражения, позволяющие проводить вычисления с данными таблиц. Следующий оператор дает стоимость каждого пункта для заказа с номером 1623:
SELECT DISTINCT basket.isbn, book.name, basket.quantity*book.price
FROM basket, book
WHERE basket.order_numb = 1623
Если же нужно вычислить полную стоимость каждого заказа, то применяется операнд GROUP BY, позволяющий сгруппировать записи по определенным полям. Для получения стоимостей каждого заказа можно применить оператор:
SELECT basket.order_numb, SUM(basket.quantity*book.price)
FROM basket, book
GROUP BY basket.order_numb
ORDER BY basket.order_numb ASC
Результатом выполнения этого оператора будет таблица, в которой строки таблицы корзины заказов сгруппированы по номеру заказа и рассчитана стоимость всех книг заказа. Оператор ORDER BYуказывает, что строки таблицы должны быть упорядочены по возрастанию (ASC) номеров заказов.
Для изменения значений полей записейиспользуется операторUPDATE:
UPDATE имя_таблицы
SET имя_поля = выражение
[, SET имя_поля = выражение , …]
[WHERE условие]
С помощью оператора UPDATEможно изменить значения в целом ряде записей, например, оператор:
UPDATE book
SET price = price*0.9
WHERE year < 2001
уменьшает на 10% цены всех книг, выпущенных до 2001 года.
Можно изменить и значение одной записи, например, оператор:
UPDATE book
SET price = 65.80
WHERE isbn = “5-7936-0122-5”
присваивает значение новой цены одной книге.
Для ввода новых записей в таблицу используется оператор INSERT:
INSERT INTO имя_таблицы
список_имен_полей
VALUES (список_значений_полей)
Для вставки записи о новой книге нужно использовать следующий операторINSERT:
INSERT INTO book
isbn, section, name, authors, publisher, year, price
VALUES (“5-7936-0122-5”, “Базы данных”,
“Кузнецов С.Д.”, “КОРОНА принт”, 2001, 56.50)
Список полей может быть опущен, в этом случае список значений должен соответствовать порядку указания полей в операторе создания таблицы.
Удаление записей производится оператором DELETE:
DELETE FROM имя_таблицы
[WHERE условие]
Например, при отмене заказа удаляется запись о нем в таблице order:
DELETE FROM order
WHERE order_numb = 1009
Если условие не указано, удаляются все записи таблицы.