Математика | ||||
SQLs полное руководство-Джеймс Р К.: Издательская труппа BHV, 1999. — 608 с. | ||||
Джеймс Р. Грофф, Пол Н. Вайиберг
SQLs полное руководство: пер. с англ. — К.: Издательская труппа BHV, 1999. — 608 с. ISBN 966-552-004-0 Данная книга является исчерпывающим руководством по использованию структурированного языка запросов — SQL. В Ней рассматриваются: концепции, лежащие в основе SQL..H роль SQL в системах управления базами данных; вопросы использования SQL для чтения и хранения данных на персональных компьютерах, в локальных вычислительных сетях, на мини-компьютерах И мэйнфреймах; методики создания программ, предназначенных для работы с реляционными базами данных, включая подробное описание встроенного SQL, динамического SQL и АР^интерфейеов SQL Server,' Oracle и SQLBase; новый стандарт SQL2 и его влияние на технологию проектирования баз данных; особенности применения SQL для оперативной обработки транзакций и в сетях архитектуры клиент/сервер; стандарты, история и тенденции развития языка SQL, а также результаты влияния этих тенденций на развитие всех сегментов компьютерного рынка. Содержание Предисловие 5 Для кого предназначена эта книга 9 Часть 1. Обзор языка SQL__________________________11 Глава 1. Обзор 13 Язык SQL...................................................... 13 Роль SQL...................................................... 15 Достоинства SQL................................................ 17 Независимость от конкретных СУБД.............................. 18 Переносимость с одной вычислительной системы на другие............. 18 Стандарты языка SQL.......................................... 18 Одобрение SQL компанией IBM (СУБД DB2)....................... 19 Протокол ODBC и компания Microsoft............................. 19 Реляционная основа.....................,..................... 19 Высокоуровневая структура, напоминающая английский язык........... 20 Интерактивные запросы........................................ 20 Программный доступ к базе данных............................... 20 Различные представления данных................................. 20 Полноценный язык для работы с базами данных..................... 21 Динамическое определение данных............................... 21 Архитектура клиент/сервер...................................... 21 Глава 2. Краткое введение в SQL 23 Простая база данных............................................. 23 Чтение данных.................................................. 24 Получение итоговых данных........................................ 26 Добавление данных............................................... 27 Удаление данных................................................ 27 Обновление данных.............................................. 28 Защита данных.................................................. 28 Создание базы данных............................................ 29 Резюме......................................................... 30 Глава 3. Развитие SQL 31 SQL и управление базами данных.................................... 31 Краткая история SQL............................................. 32 Первые годы-................................................. 33 Первые реляционные СУБД..................................... 34 СУБД компании IBM............. ............................. 34 Коммерческое признание....................................... 35 Стандарты SQL.................................................. 37 Стандарты ANSI/ISO.......................................... 37 Другие стандарты SQL . ........................................ 38 ODBC и консорциум SQL Access Group . ,.......................... 39 Миф о переносимости......................................... 39 SQL и сети..................................................... 41 Централизованная архитектура.......... ......................... 41 , Архитектура файл/сервер....................................... 42 , Архитектура клиент/сервер,. ............. ...... . . .,, .-.,<-. . ,-,..,, ..... •.-,,43 Влияние SQL.................................................. . 44 L SQL и спецификация SAA компании IBM..........................44 t SQL на мини-компьютерах...................................... 45 '.:',, SQL на систе>их UNIX........................................... 45 '. SQL и обработка транзакций.................................... 46 SQL на персональных компьютерах . . ............................. 47 I , SQL в локальных вычислительных сетях............................ 48 Резюме................................................,....... 49 Глава 4. Реляционные базы данных 51 Первые модели данных............................................ 51 Системы управления файлами................................... 51 , Иерархические СУБД........................................... 53 , i Сетевые базы данных.................. ........................ 54 Реляционная модель данных........................................ 56 Учебная база данных.......................................... 57 Таблицы...................................................... 58 Первичные ключи............................................ 60 Отношения предок/потомок..................................... . 61 Внешние ключи.............................................. 63 Двенадцать правил Кодда *...................................... 64 Резюме........................................................ 66 Часть 2. Чтение данных 69 Глава 5. Основы SQL 71 Операторы..................................................... 71 Имена. ......................................................... 74 Имена таблиц................................................ 75 Имена столбцов.............................................. 75 Типы данных................................................... 75 Дополнительные типы данных................................... 77 Различия в реализациях типов данных............................. 81 Константы . .................................................... 83 Числовые константы........................................... 83 Строковые константы.......................................... 84 Константы даты и времени...................................... 84 Символьные константы........................................ 85 Выражения..................................................... 87 Встроенные функции............................................. 88 Отсутствующие данные (значения NULL)............................. 90 Резюме........................................................ 91 Глава 6. Простые запросы на чтение 91 Оператор SELECT............................................... 91 Предложение SELECT......................................... 93 Предложение FROM..............................................94 Результаты запроса на чтение....................................... 94 97 98 Простые запросы.................... Вычисляемые столбцы...................................... Чтение всех столбцов (оператор SELECT *)................. ; .... .У. 100 Повторяющиеся строки (ключевое слово DISTINCT).';'.'.'. . . . .Ч-';.......'. 1'. 101 Отбор строк (предложение WHERE).......................,...'.!. ...:. 1'02 Условия поиска.....................................;.....,...., 104 Сравнение (=, <>,<,<=,>,>=).............. . . . . . .... . . . . . . . ... 105 Проверка на принадлежность диапазону значений (BETWEEN). . . ....,;. 108 Поверка на членство в множестве (IN)............................. 110 Проверка на соответствие шаблону (LIKE)....................:... .. 112 Проверка на равенство значению NULL (IS NULL). :'-. . . ..... .... . . . : . 114 Составные условия поиска (AND, OR и NOT) .....'................: . 11$ Сортировка результатов запроса (предложение ORDER BY) ............... 119 Правила выполнения однотабличных запросов. . ..... ...... . . . .'. . . ... '. . . Ш Объединение результатов нескольких запросов (UNION) *............'. -, 122 Запрос на объединение и повторяющиеся строки *;.... f ......... -.'•-. . ; . 124 Запрос на объединение и сортировка *................;.....• \. .Ц j.. : 126 Многократные запросы на объединение *................ . ;:. : А :Ч .'.•-. 126 Резюме......................................................... 128 129 Глава 7. Многотабличные запросы на чтение доьедппспп», Пример двухтабличного запроса ....................... ........ ...... 129 Простое объединение таблиц (объединение по равенству) ..... ........... .131 осы с использованием отношения предок/потомок ...... 133 ток . ...... '. . . Запросы с испо Объединения с условием для отбора строк . ...... . . . Несколько связанных столбцов ................... Запросы на чтение к трем и более таблицам Ппочие объединения таблиц по равенству ...... Прочие 135 136 136 ,-139 .141 142 llp\j »*»—---- Объединение таблиц по неравенству. Особенности многотабличных запросов Полные имена столбцов.....................................,,. . . i-r.. Чтение всех столбцов . ......................................... 143 Самообъединения........................................... . . 144 Псевдонимы таблиц............................... ..., ....... . 147 Производительность при обработке многотабличных запросов..............148 Структура объединения таблиц.................................. . . . . 149 Умножение таблиц.......................,... . ........... ......... ..,.-149 Правила выполнения многотабличных запросов........ . .............151 Внешнее объединение таблиц *..................................... 152 Левое и правое внешние объединения *...................,,..,.,.. 156 Система записи внешнего объединения *...........f............... 157 Объединения и стандарт SQL2......................-.'.. .<. .-,. . . , .. ... . . 159 Внутренние объединения в стандарте SQL2............'. . ...........160 Внешние объединения в стандарте SQL2........................... 162 Перекрестные объединения и запросы на объединение в SQL2..........163 Многотабличные объединения в стандарте SQL2.....................164 Резюме........................................................166 Глава 8. Итоговые запросы на чтение 167 Агрегатные функции.............................................. 167 Вычисление суммы столбца (SUM)................................169 Вычисление среднего значения столбца (AVG).......................170 ' >-. Вычисление экстремумов (MIN и МАХ)............................ 171 Вычисление количества значений в столбце (COUNT).................172 Агрегатные функции в списке возвращаемых столбцов.................173 ,., Агрегатные функции и значения NULL............................176 Удаление повторяющихся строк (DISTINCT)........................177 Запросы с группировкой (предложение GROUP BY)..................... 179 , Несколько столбцов группировки...........•. >................... . 181 Ограничения на запросы с группировкой...........................185 , Значения NULL в столбцах группировки...........................186 Условия поиска групп (предложение HAVING)..........................187 Ограничения на условия поиска групп.............................191 , Значения NULL и условия поиска групп...........................191 Предложение HAVING без GROUP BY ........................__192 Резюме........................................................192 Глава 9. Вложенные запросы на чтение 193 Применение вложенных запросов.......... ,.........................193 i , что такое вложенный запрос....................................194 Вложенные запросы в предложении WHERE.......................... 195 Внешние ссылки..............................................197 Условия поиска во вложенном запросе............ .......'. . •...........197 Сравнение с результатом вложенного запроса (=, О, <, <=, >, >=).......198 Проверка на принадлежность результатам вложенного запроса (IN) ......200 Проверка на существование (EXISTS).............................201 Многократное сравнение (ANY и ALL) *........................... 203 Вложенные запросы и объединения..................................208 Уровни вложенности запросов......................................210 Связанные вложенные запросы *.....................•. . . \........... 211 Вложенные запросы в предложении HAVING *.........................214 Резюме.......................................................... 216 SQL-запросы на чтение — заключительное резюме...................... 217 Часть 3. Изменение данных_________________________219 Глава 10. Внесение изменений в базу данных 221 Добавление новых данных.........................................221 Однострочный оператор INSERT. ................................222 Многострочный оператор INSERT................................226 Утилиты пакетной загрузки.....................................228 Удаление существующих данных.................................... 229 Оператор DELETE............................................229 Удаление всех строк...........................................231 Оператор DELETE с вложенным запросом *........................232 Обновление существующих данных..................................234 Оператор UPDATE............................................234 Обновление всех строк.........................................236 Оператор UPDATE с вложенным запросом *........................237 Резюме....................................................... . 238 Глава 11. Целостность данных 239 Условия целостности данных...........:................ . . . . . ... . . . 239 Обязательность данных.................................. г.". . . .... , 241 Проверка на правильность................ .^ ........... .f ,....;... . 242 Целостность таблицы............................................. 243 Прочие условия уникальности....................... .... . . . . . . .... 244 . Уникальность и значения NULL....................... ..... . . . . . 244 Ссылочная целостность..................................... ..'. . . . ? 245 Проблемы, связанные со ссылочной целостностью. ............... . .".'. 246, Правила удаления и обновления *........... . . . ... . . . . . ..... '.'.'. . ..'. 249 Каскадные удаления и обновления *......... ... . .". .. . ... ... .'. . .... 252 Ссылочные циклы *.................................... ... . . .'... 254 Внешние ключи и значения NULL *............. .". '.".............. 257 Деловые правила................................................ 259 Что такое триггер.........................• • • • •......•••••• • • • 26Q Триггеры и ссылочная целостность........................:..... . . 261 Достоинства и недостатки триггеров.....................;.;. . ; . . ., : 262 Триггеры и стандарты SQL.....................;..... .'. • .ч .-.'. л .!262 Резюме........................................................263 Глава 12. Обработка транзакций 265 Что такое транзакция.............................................265 Операторы COMMIT и ROLLBACK............................... 266 Модель транзакции в стандарте ANSI/ISO..........................269 Другие модели транзакций......................................270 Журнал транзакций *............................................. 273 Транзакции и работа в многопользовательском режиме...................274 Проблема пропавшего обновления................................275 Проблема промежуточных данных................................ 276 Проблема несогласованных данных.............................. . 277 Проблема строк-призраков...................................... 278 Параллельные транзакции...........~...........................279 Блокировка *...................................................!. .. 281 Уровни блокировки.......................— ...'..... — ....... 282 Жесткая и нежесткая блокировки.................................283 Тупиковые ситуации *.........................................284 Усовершенствованные методы блокировки *......................... 286 Резюме................................................ . .......292 Часть 4. Структура базы данных_________________<_^____293 Глава 13. Создание баз данных Цена: 300руб. |
||||