Программирование >>  Программный интерфейс приложений 

1 ... 29 30 31 [ 32 ] 33 34 35 ... 264


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

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

1. Вызовите mysql в окне Telnet или в консоли DOS

2. Откройте в окне текстового редактора файл, содержащий запросы. (Например, BBEdat в операционной системе Мае OS и vi в окне xterm под X Window в ОС UNIX).

3. Для того чтобы вызвать запрос, хранящийся в файле, вьщелите и скопируйте его. Затем перейдите в окно Telnet или консоль DOS и вставьте запрос в mysql.

Как видите, процедура достаточно громоздкая в печатном виде, но это самый легкий путь быстрого ввода запросов без изнурительного печатания.

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

Операцией копирования и вставки можно пользоваться и в обратном направлении (из окна профаммы Telnet в файл запросов). В процессе работы с mysql все команды сохраняются в файле .mysql history, находящемся в корневом каталоге текущего клиента. Любой ранее введенный запрос можно повторить из файла .mysqlhistory, скопировав его из этого файла в файл запроса.

Работайте с mysql в пакетном режиме

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

Предположим, что существует запрос выборки членов Исторической Лиги по научным интересам Например, для выборки членов, интересующихся временами Великой Депрессии , необходимо написать следующий запрос (обратите внимание на то, что точка с запятой в конце является знаком для mysql о том, что запрос закончен)



SELECT last name, first name, email, interests FROM member WHERE interests LIKE %depression% ORDER BY last name, first name;

Сохраним этот запрос в файле interests . sql и попробуем запустить mysql из командной строки:

% mysql samp db < interests.sql

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

% mysql -t samp db < interests.sql

Для сохранения результата работы запроса перенаправьте вывод в файл:

% mysql -t samp db < interests.sql > output file

Этот же запрос можно использовать для выборки членов Исторической Лиги , интересующихся временами президента Джефферсона. Замените в предложении where depression на Jefferson. Затем запустите mysql повторно. Такой метод хорощ и при редком обращении к запросу. При более частом обращении запращивается другой метод. Для того чтобы запрос стал более гибким, создайте его в виде параметризированного сценария. Параметром будет передаваться переменное значение для предложения where. Посмотрим, как этот метод работает.

#! /bin/sh

if [ $# -ne 1 ]; then echo Please specify one keyword ; exit; fi mysql -t samp db QUERY INPUT

SELECT last name, first name, email, interests FROM member WHERE interests LIKE %$! ORDER BY last name, first name; QUERy INPUT

Вторая строка проверяет, что в командной строке было введено одно ключевое слово. Выводится короткая строка, в противном случае работа завершается. Все что находится между первым <<query input и последним query input является вводом в mysql. Оболочка заменяет ссылку $1 на значение, введенное в командной строке. (В сценариях оболочки $1, $2, ... обозначают аргументы команды.)

Перед тем как запустить запрос, его необходимо сделать исполнимым:

% chmod +х interests.sh

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

% interests.sh depression % interests.sh Jefferson



Создание новых записей на базе существующих данных

Данные можно заносить в таблицы базы данных с помощью оператора INSERT. Но после ввода нескольких строк таким образом вы скоро убедитесь в том, что должен существовать другой какой-то более эффективный метод. И он действительно существует. Их даже несколько: это загрузка данных из плоских файлов с помощью оператора LOAD DATA или утилиты mysqlimport.

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

Для пересылки этих данных в ОС UNIX воспользуемся методом копирования и вставки с помощью профаммы Telnet. Вот как это делается.

1. Подключите Telnet к ОС UNIX. Работая под ОС Мае, воспользуйтесь для этих целей такими приложениями, как BetterTelnet или NCSA Telnet. Работая под ОС Windows, можно воспользоваться стандартной профаммой Telnet.

2. Откройте электронную таблицу, вьщелите переносимый блок данных.

3. Для того чтобы начать копирование данных в файл data. txt, введите команду в окне Telnet:

% cat > data.txt

Теперь команда cat будет ожидать ввод.

4. Вставьте данные, которые были скопированы из электронной таблицы в окно Telnet. Команда cat посчитает это данными, вводимыми обычным способом с клавиатуры, и запищет их в файл data. txt.

5. После того как данные были записаны в файл, нажмите клавишу <Enter>, если курсор находится в конце сфоки данных или в начале новой строки. Затем нажмите <CtrI+D> для того, чтобы обозначить конец файла. После этого команда cat закончит сеанс и закроет файл.

Теперь у вас есть файл data.txt, который содержит блок данных, выбранный в электронной таблице, и готов к зафузке в базу данных с помощью оператора SQL LOAD DATA или утилиты mysqlimport.

Этот метод копирования и вставки - самый быстрый и простой метод вставки в файлы ОС UNIX. Однако он срабатывает только при небольших наборах данных. Большие объемы данных могут выйти за пределы буфера копирования, который имеется в ОС Windows. В таком случае лучше сохранить данные из элекфонной таблицы в тестовый файл (с разделением столбцов символом табуляции). Затем этот файл можно передать с помошью утилиты FTP в файловую систему ОС UNIX. Файл надо передавать в текстовом режиме (двоичный режим передачи или режим передачи изображений не подходит). Это необходимо для того, чтобы



1 ... 29 30 31 [ 32 ] 33 34 35 ... 264

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