Заполнение таблицы данными.

Вернуться в каталог

Как раскрутить сайт:

Каталог - это...
Поисковик - это...
Поисковики 1993г
Поисковики 1994г
Список каталогов
Каталоги для PR
Каталоги белые
Каталоги белые
Белые каталоги ссылок
Белые каталоги ссылок
Каталоги
Протокол HTTP 1.1
Сайты сателлиты
Yandex бан
Ошибки начинающих
Ошибки webмастера
Что Гугл знает?
О сайте из Google
robots.txt
Социалки
Расчет PageRank
Как раскрутить сайт
Причины игнора сайта
Фильтры Гугла
Хороший дизайн

Может пригодиться:

испанский язык

Залог хорошего сайта
Софт вебмастеру
Выбрать хостинг
Платформы хостинга
Виртуальный сервер
Продвижение сайта
Секреты раскрутки 1
Секреты раскрутки 2
Раскруточные мифы
Оптимизация под каталоги
Заработать на сайте
Размещение банеров
Защита сайта
Спам в поздравлениях
SEO продвижение
Раскрутка Дорвеями
Секреты Гугла
Ссылки google ТОП-10
Сниппеты
Ключевые слова
Редирект
Грязная линковка
SEO слэнг
Подробно о PR
Бан партнерки

Реклама:

продвижение сайтов

О поисковых системах
Внутренние факторы
Внешние факторы
Индексация сайта
Фильтры
Различия поисковых
Semonitor
Сохранить позиции после редизайна
Секреты Гугла


  • Вернуться в каталог





  • Rambler's Top100

    Заполнение таблицы данными.

    (окончание)


    Далее надо найти первичный ключ для книги Inthe Night Kitchen.

    SELECT book_id FROM book
    WHERE title = 'In the Night Kitchen';

    B ответ будет получено значение, равное 2. Теперь надо создать запись в таблице lоаn, используя два полученных ранее первичных ключа и функцию MysQL.

    INSERT loan (book_id, person_id, date_lent)
    VALUES (2, 1, '2005-07-25');

    B некоторых случаях приходится использовать один и тот же первичный ключ несколько раз. Вместо того чтобы повторно извлекать его, можно запомнить его в пользовательской переменной. Пользовательская переменная - это имя (представленное в специальном формате), связанное c фрагментом данных. Основная форма записи таких переменных - @ имя. Имя может содержать буквы от a до z (нижнего или верхнего регистра), цифры от 0 до 9, символ $, точку и знак подчеркивания. Переменную можно использовать в любом контексте, допускающем указание числового или строкового значения.

    Для присвоения значения пользовательской переменной используется оператор : =.

    Например:

    SЕLЕСТ @fish := 'Herring';

    Применяя оператор SELECT к пользoвательскoй переменной, можно получить связанное с ней значение.

    SELECT @fish;

    Теперь, зная o наличии новой возможности, можно переписать запросы с тем, чтобы упростить их выполнение и уменьшить вероятность ошибки.

    SELECT @person_id := person id FROM person
    WHERE name = 'Carl';
    SELECT @book_id book_id FROM book
    WHERE title = 'In the Night Kitchen';
    SELECT @date :_ '2005-07-25';
    INSERT loan (book_id, person_id, date_lent)
    VALUES (@book_id, @person_id, @date);

    Заметьте, что имена переменных использованы вместо литерaлoв.Такой подход позволяет повторно зaдавать одно и тo жe выражение INSERT при заполнении таблицы loan. При этом нaдо лишь изменять выражение WHERE.

    Предпринимая дальнейшие шаги пo оптимизации, можно объединить все запросы, предназначенные для извлечения данных.

    SELECT @book_id := book_id,
    @person_id := person_id,
    @date '2005-07-25'
    FROM book, person
    WHERE book.title = 'In the Night Kitchen'
    AND person.name = 'Carl';

    Запрос SELECT подобного типа называется объединением. Объединения позволяют извлекать данные из двух или более таблиц посредством одного оператора SELECT. B нашем случае мы лишь сочетаем три отдельных запроса в одном, объединяющем две таблицы. Дополнительную информацию об объединениях (и подчиненных запросах) можно получить, обратившись к главе 9.

    Заметьте, что перед именем столбца указывается имя таблицы, в данном случае это выражение book.tit1е . Несмотря на то что MySQL может определить, какой таблице принaдлежит тот или иной столбец, при внесении изменений в таблицу запрос может стать неоднозначным.

    Теперь запишем запрос INSERT в том виде, в котором он был указан ранее.

    INSERT loan (book_id, person_id, date_lent)
    VALUES (@book_id, @person_id, @date);

    B качестве последнего шага оптимизации объединим отдельные запросы в один, сочетающий в себе выражения INSERT и SELECT. Синтаксис остается несложным. Мы заменили выражение VALUES запроса INSERT выражением SELECT, которое, как видно из следующего фрагмента кода, возвращает корректные данные:

    INSERT loan (book_id, person id, date_lent)
    SELECT book_id, person_id, '2005-07-25'
    FROM book, person
    WHERE book.title = 'In the Night Kitchen'
    AND person.name = 'Carl';
    Это позволяет обойтись без пользовательских переменных и исключить промежуточные запросы. Почему же не использовать этот запрос c самого начала? Для тек, кто только начинает знакомство c базами данных, он может оказаться слишком сложным. Лишь разобравшись в работе простых запросов, можно переходить к сложным, состоящим, по сути, из нескольких более простых. Если вы испытываете затруднения, пытаясь понять приведенный выше пример, вспомните следующее:

    сложные запросы могут оказаться набором простых;
    выполнить задачу можно различными способами.

    Если вы не имеете достаточного опыта, продолжайте работать c простыми запрoсами. Ошибку в простом запросе намного легче найти и устранить, чем в сложном.



    Спонсор сайта:

    Заведите система платежей Это невероятная вещь!



    Пер. с англ. - М.: ООО "И.Д.Вильямс", 2006.

    Основы MySQL:

    Введение
    Схема MySQL
    Управление базами
    Создание баз
    Создание таблиц
    Создание столбцов
    Идентификаторы
    Хранение данных
    Включение даты
    Импорт данных
    Включение данных
    Простые запросы
    Устранение повторов
    Обработка значений
    Значения NULL
    Обработка данных
    Оновление значений
    Безопасность
    Удаление записей

    Спонсор сайта:


    Установка паролей
    Установка привилегий
    Клиентская часть
    Параметры соединения
    MySQL АРI
    Запросы АРI
    АРI для Perl
    РНР АРI
    Расширенные запросы
    Ключевое слово JOIN
    Вложенные запросы
    Выбор результатов
    Проблемы MySQL
    Восстановление базы
    Частые ошибки
    Кол-во соединений
    Подготовка к работе
    В курс дела
    Имена столбцов

    Реклама:


    Внесение данных
    Внесение данных 2
    Особенности таблиц
    Еще о таблицах

    Вернуться в каталог