Изучаем SQL
Линн Бейли
В современном мире наивысшую ценность имеет информация, но не менее важно уметь этой информацией управлять. Эта книга посвящена языку запросов SQL и управлению базами данных. Материал излагается, начиная с описания базовых запросов и заканчивая сложными манипуляциями с помощью объединений, подзапросов и транзакций. Если вы пытаетесь разобраться в организации и управлении базами данных – эта книга будет отличным практическим пособием и предоставит вам все необходимые инструменты. Особенностью данного издания является уникальный способ подачи материала, выделяющий серию «Head First» издательства O'Reilly в ряду множества скучных книг, посвященных программированию.
Издательство: Питер, 2012 г.
ISBN 978-5-459-00421-2, 978-05962526849
Количество страниц: 592.
Содержание книги «Изучаем SQL»:
- 25 Введение
- 26 Для кого написана эта книга?
- 27 Мы знаем, о чем вы думаете
- 29 Метапознание: наука о мышлении
- 31 Заставить свой мозг повиноваться
- 32 Примите к сведению
- 34 Технические рецензенты
- 35 Благодарности
- 37 1. Данные и таблицы: Всему свое место
- 38 Определение данных
- 43 Рассматриваем данные по категориям
- 44 Что такое «база данных»?
- 46 Посмотрим на базу данных через волшебные очки
- 48 В базах данных хранится логически связанная информация
- 49 Таблицы под увеличительным стеклом
- 53 Командуйте!
- 55 Создание таблицы: команда CREATE TABLE
- 56 Создание более сложных таблиц
- 57 Посмотрите, как просто пишется код SQL
- 58 Наконец-то создаем таблицу my_contacts
- 59 Таблица готова
- 60 Знакомство с типами данных
- 64 Описание таблицы
- 66 Нельзя заново создать существующую таблицу или базу данных!
- 68 Долой старые таблицы!
- 70 Для добавления данных в таблицу используется команда INSERT
- 73 Создание команды INSERT
- 77 Модификации команды INSERT
- 78 Столбцы без значений
- 79 Команда SELECT читает данные из таблицы
- 81 Управление NULL в таблицах
- 83 NOT NULL в выходных данных DESC
- 84 DEFAULT и значения по умолчанию
- 85 Новые инструменты
- 87 2. Команда SELECT: Выборка данных
- 88 Трудный поиск
- 91 Улучшенная команда SELECT
- 92 Что это за * ?
- 98 Как запрашивать разные типы данных
- 99 Проблемы со знаками препинания
- 100 Непарный апостроф
- 101 Апострофы как специальные символы
- 102 Команда INSERT с внутренним апострофом
- 105 Выборка ограниченного набора столбцов
- 107 Отбор столбцов ускоряет получение результатов
- 114 Объединение условий
- 117 Поиск числовых значений
- 120 Операторы сравнения
- 122 Операторы сравнения при поиске числовых данных
- 125 Операторы сравнения при поиске текстовых данных
- 127 Быть ИЛЬ не быть
- 130 Чем AND отличается от OR
- 133 Использование IS NULL для поиска NULL
- 135 LIKE: слово для экономии времени
- 135 Специальные символы
- 139 Проверка диапазонов с использованием AND и операторов сравнения
- 140 Только МЕЖДУ нами... Есть и другой способ
- 143 Условие IN
- 144 Ключевые слова NOT IN
- 145 Другие применения NOT
- 150 Новые инструменты
- 153 3. DELETE и UPDATE: О пользе изменений
- 154 Клоуны вокруг нас
- 155 Информация о клоунах
- 156 Перемещения клоунов
- 160 Как вводятся сведения о клоунах
- 162 Бонзо, у нас проблема
- 163 Уничтожение записей командой DELETE
- 165 Использование команды DELETE
- 166 Правила DELETЕ
- 169 Танцы INSERT-DELETE
- 174 Будьте внимательны при выполнении DELETE
- 178 Проблемы с неточными условиями DELETE
- 180 Изменение данных командой UPDATE
- 181 Правила UPDATE
- 182 UPDATE как замена INSERT-DELETE
- 183 UPDATE в действии
- 188 Обновление цен
- 190 Достаточно одной команды UPDATE
- 192 Новые инструменты
- 193 4. Проектирование таблиц: Как важно быть нормальным
- 194 Две таблицы
- 198 Логические связи как суть таблицы
- 202 Атомарные данные
- 204 Атомарные данные и таблицы
- 208 О пользе нормализации
- 209 Преимущества нормализованных таблиц
- 210 Ненормализованные клоуны
- 211 На полпути к 1НФ
- 212 Правила первичных ключей
- 215 Как прийти в НОРМУ
- 216 Исправление таблицы Грега
- 217 Старая команда CREATE TABLE
- 218 Сначала покажи деньги таблицу
- 219 Команда для экономии времени
- 220 Команда CREATE TABLE с назначением первичного ключа
- 222 1, 2, 3 и так далее
- 226 Добавление первичного ключа в существующую таблицу
- 227 ALTER TABLE и добавление первичного ключа
- 228 Новые инструменты
- 231 5. ALTER: Как изменить прошлое
- 232 Нужно внести пару изменений
- 237 Изменение таблиц
- 238 Капитальный ремонт таблицы
- 239 Переименование таблицы
- 241 Грандиозные планы
- 242 Перепланировка столбцов
- 243 Структурные изменения
- 244 ALTER и CHANGE
- 245 Изменение двух столбцов одной командой SQL
- 249 Стоп! Никаких лишних столбцов!
- 256 Неатомарный столбец location
- 257 В поисках закономерности
- 258 Удобные строковые функции
- 263 Заполнение нового столбца существующими данными
- 264 Как работает комбинация UPDATE с SET
- 266 Новые инструменты
- 267 6. Расширенные возможности SELECT: Взглянуть на данные под другим углом
- 268 Перестройка в видеотеке
- 269 Недостатки существующей таблицы
- 270 Классификация существующих данных
- 271 Заполнение нового столбца
- 274 UPDATE с выражением CASE
- 276 Похоже, у нас проблемы
- 281 Трудности с таблицами
- 282 Упорядочение результатов выборки
- 285 ORDER BY
- 286 Упорядочение по одному столбцу
- 289 ORDER с двумя столбцами
- 290 ORDER с несколькими столбцами
- 291 Упорядоченная таблица
- 293 DESC и изменение порядка данных
- 295 Проблемы с печеньем
- 297 SUM сложит числа за нас
- 298 Суммирование с использованием GROUP BY
- 299 Функция AVG с GROUP BY
- 300 MIN и MAX
- 301 COUNT и подсчет дней
- 303 Команда SELECT DISTINCT
- 306 LIMIT и ограничение результатов
- 307 LIMIT и второе место
- 310 Новые инструменты
- 311 7. Многотабличные базы данных: Когда в одной таблице тесно
- 312 Как найти Найджелу подружку
- 324 Одной таблицы недостаточно
- 325 Многотабличная база данных с информацией о клоунах
- 326 Схема базы данных clown_tracking
- 328 Как из одной таблицы сделать две
- 333 Связывание таблиц
- 334 Что нужно знать о внешних ключах
- 339 Связи между таблицами
- 339 Типы связей: один-к-одному. Когда используются таблицы со связями
- 340 типа «один-к-одному»
- 341 Типы связей: «один-ко-многим»
- 342 Типы связей: «многие-ко-многим»
- 345 Нам нужна соединительная таблица
- 346 Типы связей: «многие-ко-многим»
- 349 Исправляем таблицу Грега
- 351 Наконец-то — 1НФ
- 352 Составные ключи состоят из нескольких столбцов
- 354 Сокращенная запись
- 355 Супергеройские зависимости
- 355 Частичные функциональные зависимости
- 356 Транзитивные функциональные зависимости
- 360 Вторая нормальная форма
- 361 Возможно, таблица уже находится в 2НФ
- 366 Третья нормальная форма (наконец-то!)
- 367 Что делать с таблицей my_contacts?
- 370 Новые инструменты
- 373 8. Соединения и многотабличные операции: Не могли бы мы остаться в одиночестве?
- 374 И все равно повторения, повторения
- 375 Заполнение таблиц
- 377 Проблемы с нормализацией
- 378 Особые увлечения (столбец)
- 379 Разделение увлечений
- 380 Обновление столбцов
- 381 Вывод списка
- 382 Дороги, которые мы выбираем
- 382 (Почти) одновременное выполнение CREATE, SELECT и INSERT
- 383 Одновременное выполнение CREATE, SELECT и INSERT
- 384 Зачем нужно AS?
- 385 Псевдонимы столбцов
- 386 Кому нужны псевдонимы таблиц?
- 387 Все, что вы хотели знать о внутренних соединениях
- 388 Перекрестное соединение
- 393 Открой свое внутреннее соединение
- 394 Внутреннее соединение в действии: эквисоединение
- 397 Внутреннее соединение в действии: неэквивалентное соединение
- 398 Последнее внутреннее соединение: естественное соединение
- 405 Встроенные запросы?
- 407 Новые инструменты
- 409 9. Подзапросы: Запросы внутри запросов
- 410 Грег берется за поиски работы
- 411 В списке Грега появляются новые таблицы
- 412 Грег использует внутреннее соединение
- 414 Но он хочет опробовать другие запросы
- 416 Подзапросы
- 417 Два запроса преобразуются в запрос с подзапросом
- 418 Подзапросы: если одного запроса недостаточно
- 419 Подзапрос в действии
- 421 Правила для подзапросов
- 424 Построение подзапроса
- 427 Подзапрос как столбец SELECT
- 428 Другой пример: подзапрос с естественным соединением
- 429 Некоррелированный подзапрос
- 433 Некоррелированный подзапрос с несколькими значениями: IN, NOT IN
- 438 Коррелированные подзапросы
- 439 Коррелированный подзапрос с NOT EXISTS
- 440 EXISTS и NOT EXISTS
- 442 Служба поиска работы Грега принимает заказы
- 443 По дороге на вечеринку
- 444 Новые инструменты
- 445 10. Внешние соединения, самосоединения и союзы: Новые приемы
- 446 Уничтожение старых данных
- 447 Левое, правое
- 448 Пример левого внешнего соединения
- 453 Внешние соединения и множественные совпадения
- 454 Правое внешнее соединение
- 457 Пока мы занимались внешними соединениями
- 458 Создание новой таблицы
- 459 Место новой таблицы в схеме
- 460 Рефлексивный внешний ключ
- 461 Соединение таблицы с ней самой
- 463 Потребуется самосоединение
- 464 Другой способ получения многотабличной информации
- 465 Союзы
- 466 Ограничения союзов
- 467 Правила союзов в действии
- 468 UNION ALL
- 469 Создание таблицы на основе союза
- 470 INTERSECT и EXCEPT
- 471 С союзами разобрались, пора переходить к
- 471 Сравнение подзапросов и соединений
- 472 Преобразование подзапроса в соединение
- 477 Самосоединение как подзапрос
- 478 Компания Грега растет
- 480 Новые инструменты
- 481 11. Ограничения, представления и транзакции: У семи нянек
- 482 Грег нанимает помощников
- 483 Первый день: вставка данных нового клиента
- 484 Джим не хочет использовать NULL
- 485 Три месяца спустя
- 486 Добавление ограничения CHECK
- 487 Ограничение CHECK для столбца gender
- 489 Однообразная работа Фрэнка
- 491 Создание представления
- 492 Просмотр представлений
- 493 Как работает представление
- 494 Что такое представление
- 497 Вставка, обновление и удаление в представлениях
- 498 Обновление данных через представление
- 501 Представление с CHECK OPTION
- 502 Представление может быть обновляемым, если
- 503 Удаление представлений
- 504 Когда хорошая база данных плохо ведет себя
- 505 Что произошло с банкоматом
- 506 Новые неприятности с банкоматами
- 508 Это не мечты, а транзакции
- 509 Свойства транзакций
- 510 SQL помогает работать с транзакциями
- 511 Как должен был работать банкомат
- 512 Как работать с транзакциями в MySQL
- 513 Теперь попробуйте сами
- 516 Новые инструменты
- 519 12. Безопасность: Защита данных
- 520 Проблемы с пользователями
- 521 Предотвращение ошибок в базе данных
- 523 Защита учетной записи root
- 524 Создание нового пользователя
- 525 Решите, что необходимо каждому пользователю
- 526 Простая команда GRANT
- 529 Разновидности GRANT
- 530 Команда REVOKE
- 531 Отзыв использованной привилегии GRANT OPTION
- 536 Проблема общих учетных записей
- 538 Использование роли
- 538 Удаление ролей
- 540 Конструкция WITH ADMIN OPTION
- 545 Объединение CREATE USER с GRANT
- 546 Оглушительный успех!
- 547 Новые инструменты
- 548 Присоединяйтесь!
- 548 Используйте SQL в своих проектах... и возможно, вас тоже ожидает успех!
- 549 Приложение I: Прочее. Десять важнейших тем (о которых мы не рассказали)
- 550 1. Используйте графический интерфейс к своей РСУБД
- 552 2. Зарезервированные слова и специальные символы
- 554 3. ALL, ANY и SOME
- 556 4. Подробнее о типах данных
- 558 5. Временные таблицы
- 559 6. Преобразование типа
- 560 7. Имя пользователя и текущее время
- 561 8. Полезные числовые функции
- 562 8. Полезные числовые функции (продолжение)
- 563 9. Индексирование для ускорения операций
- 564 10. PHP/MySQL за две минуты
- 567 Приложение II: Установка MySQL. Пробуйте сами
- 568 За дело!
- 568 Инструкции и устранение проблем
- 569 Установка MySQL в системе Windows
- 572 Установка MySQL в Mac OS X
- 575 Приложение III: Список инструментов. Полный инструментарий SQL
Инструкция как скачать книгу Линн Бейли: Изучаем SQL в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.