Программирование >>  Руководство по sql 

1 ... 11 12 13 [ 14 ] 15 16 17 ... 105


Таблица sales содержит общую информацию о заказах, полученных от книжных магазинов: номер квитанции на продажу (получаемый от издателя), идентификатор магазина, номер заказа на покупку (получаемый от книжного магазина) и дату выполнения заказа.

Таблица salesdetails содержит информацию о каждом пункте заказа на покупку (предполагая, что сразу могут быть заказаны несколько книг): название, количество заказанных книг, количество отправленных книг и дата отправления.

Конечно, реальная база данных может быть значительно сложнее и содержать таблицы для описания магазинов, дистрибьюторов, производственных расходов, посредников и т.д. (В качестве тренировки вы можете сами добавить некоторые из этих таблиц и решить, как они будут связаны с уже существующими таблицами в базе данных bookbiz. Тем не менее этих девяти таблиц вполне достаточно для изучения языка SQL и они будут использоваться в примерах этой книги.)

Проверка структуры базы данных

Разработав структуру базы данных, вы должны создать таблицы и заполнить их некоторыми данными. (Эта процедура подробно описывается в следующей главе.) Затем вы должны проверить разработанную структуру, запуская на выполнение запросы и изменяя данные. Эти тесты могут выявить недочеты в исходной структуре данных.

При проектировании базы данных нельзя полагаться исключительно на теорию. Перед тем как переходить к серьезным действиям, особенно если вы планируете использовать для обработки данных сложные приложения, поэкспериментируйте с прототипом базы данных. Это сэкономит вам сотни часов бесполезного программирования.

Рассмотрение других понятий из области баз данных

Перед практическим использованием созданной базы данных вам потребуется рассмотреть еще несколько важных вопросов: индексирование, безопасность и целостность.

Выбор столбца для индексирования и типа индексирования является предметом обсуждения главы 3.

Вопросы безопасности описаны в главе 10.

Обеспечение целостности - это одна из главных задач в процессе проектирования базы данных. Вы должны быть уверены, что изменения в одной части данных распространяются на все копии этих данных по всей базе. На примере использования базы данных bookbiz можно увидеть, к чему приводит неправильный ввод идентификатора автора. Если вы измените его только в таблице authors, то больше не сможете получить список книг, написанных данных автором, так как идентификатор автора в таблице titleauthors больше не совпадает с идентификатором этого же автора в таблице authors. Чтобы получить доступ к информации таблицы titleauthors, вы должны обеспечить одновременное изменение идентификатора автора в таблицах authors и titleauthors.

Мы надеемся, что вы учтете эти замечания при разработке собственных баз данных. В следующей главе вы узнаете, как обеспечивается целостность на SQL 92. Другие методы, не поддерживаемые всеми производителями, обсуждаются в главе 10.

Реализация структуры

Итак, вы изучили логическую структуру базы данных bookbiz- Теперь вы увидите, как нормализованная диаграмма зависимостей между объектами переводится в команды SQL.



Глава 3

Создание и заполнение базы

данных

Создав структуру базы данных на бумаге, как это описывалось в предьщущей главе, вы готовы воплотить ее в жизнь. С помощью команды SQL CREATE вы можете определить в своей системе управления реляционными базами данных имя, структуру и другие характеристики реальной базы данных и ее объектов. А поместить информацию в базу данных вы можете с помощью команды INSERT.

Если вы используете прилагаемый к этой книге компакт-диск с Sybase SQL Anywhere, вам не нужно вводить многочисленные команды CREATE и INSERT: база данных bookbiz для вас уже создана. Просто запустите соответствующую профамму на своем ПК. Sybase SQL Anywhere предоставляет вам все возможности для выполнения запросов. Единственное, вы не сможете создавать новые объекты и изменять существующие данные (эта версия SQL Anywhere предназначена исключительно для просмотра данных).

На компакт-диске также содержится программный код (набор команд SQL) для создания и заполнения базы данных bookbiz- Вы можете использовать этот код, если захотите воспроизвести базу данных bookbiz на своей СУБД или на полноценной версии SQL Anywhere. Возможно, вам придется несколько подправить этот код в соответствии с правилами конкретного диалекта SQL.

Полная структура базы данных bookbiz и программный код для ее создания описаны в Приложении Г.

СИНТАКСИС SQL

Это первая глава, читая которую, вы будете сидеть за терминалом и вводить конкретные команды. Поэтому сейчас пришло время познакомиться с соглашениями, используемыми в этой книге для представления команд SQL и их синтаксиса.

Пример реальной команды SQL представлен на рис. 3.1.

select pubJd, pub nanne, address, cl1y, state

from publishers ----- ,

r , ,w >n-70i Bee слова набраны

where pubJd = 0736 строчными буами

Рис. 3.1. Пример команды

Синтаксис оператора сродни шаблону, который четко определяет, что требуется (допустимо) для данного оператора (рис. 3.2).

Так как в записи операторов может заключаться большое количество информации, мы будем сопровождать их конкретными примерами на SQL.

При описании синтаксиса SQL используются следующие соглашения.

Хотя SQL является языком с необусловленными формами (free-form language),

не Офаничивая тем самым количество слов в одной сфоке и места разрывов сфок, в примерах этой книги каждый оператор обычно начинается с новой сфоки. Длинные и сложные предложения разбиваются на несколько сфок, выделяемых отступом.

Слова и фразы, которые вы должны подставлять в операторы, всегда записываются Сфочными буквами. На рис. 3.2 под словами список выбора, спи-сок таблиц и условия подразумеваются конкретные значения (константы, выражения и идентификаторы (identificator) - имена баз данных, таблиц или



других объектов баз данных), которые используются в командах SQL. Уточните в документации по своей СУБД правила записи идентификаторов: их допустимую минимальную и максимальную длину, недопустимые символы (обычно пробелы и точки) и различия между регистрами (обычно таблица AUTHORS - это совсем не то же самое, что таблица authors).

Ключевые слова вводятся прописными буквами

SELECT список выбора

спои Вместо этих слов строчными

РРОМсписок.таблиц буквами вводятся конкретные

WHERE условия---з;;анения

Рис. 3.2. Пример синтаксиса оператора

Ключевые слова и операторы SQL всегда записываются прописными буквами, хотя в большинстве версий SQL вы можете вводить их в любом регистре. Так, в примере на рис 3.2 ключевыми словами являются SELECT, FROM и WHERE, которые можно вводить в любом регистре. Это означает, что слова SELECT, select и SeLeCt описывают один и тот же оператор SQL.

Фигурные скобки ( {} ) вокруг слов или фраз означают, что вы должны выбрать по крайней мере одну из заключенных в них опций. Если опции разделены вертикальной чертой ( ), вы можете использовать только одну из них, если опции разделены запятой ( , ) - одну или несколько.

Квадратные скобки ( [] ) означают, что заключенные в них опции необязательны. Если, кроме того, опции разделены вертикальной чертой ( ), вы можете либо вообще их не использовать, либо использовать только одну из них. Если же опции разделены запятой ( , ), вы можете не использовать ни одну из них, использовать одну или несколько. На рис. 3.3 показано, как работают вместе фигурные и квадратные скобки, вертикальные линии и запятые.

Фигурные и квадратные скобки не являются частью оператора, так что их не нужно набирать при вводе команды SQL. При выборе нескольких опций разделяйте их запятыми. Многоточие ( ... ) означает, что вы можете повторить последнюю конструкцию нужное вам количество раз.

Ниже приведен (не-SQL) пример того, как эти элементы могут использоваться в записи команд.

BUY thing name = price AS {cash heck credit} [, thing name = price AS {cash check credit}]...

В этом выдуманном операторе BUY и AS являются ключевыми словами. Опции, заключенные в фигурные скобки и разделенные вертикальной чертой, означают, что вы должны выбрать один (и только один) способ оплаты. Также вы можете приобрести и ряд других вещей. Для каждой покупаемой вещи вы должны указать ее название, стоимость и способ оплаты.

{early lunch no lunch} Вы должны выбрать один элемент

{soup , salad , sandwich} Вы должны выбрать один или несколько элементов

[dessert] Нет выбора

[coffee I soda wine] Вы можете выбрать один элемент или не выби-

рать вовсе

[tomato , pickle , onion] Вы можете выбрать любое количество элементов Рис. 3.3. Значения фигурных и квадратных скобок, вертикальных линий и запятых в операторах

Вот как будет выглядеть реальный пример: buy lunch = 4.95 as cash, book = 34.95 as check



1 ... 11 12 13 [ 14 ] 15 16 17 ... 105

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика