Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Шрифт:
. ! .
Эффекты команд могут иметь некоторые изменения в зависимости от диалекта.
* Клиент диалекта 1 обрабатывает все команды в соответствии с ожиданием языка InterBase 5 и синтаксиса с некоторыми изменениями. Например, если вы создаете таблицу, в которой задается столбец типа DATE, вы увидите информационное сообщение, говорящее, что "DATE datatype is now called TIMESTAMP" (Тип данных DATE сейчас называется TIMESTAMP).
* В клиенте диалекта 2 элементы, имеющие различную интерпретацию в диалектах 1
* Клиент диалекта 3 анализирует все операторы в соответствии с родной семантикой SQL Firebird: кавычки используются для идентификаторов с ограничителями и не распознаются как ограничители строк, тип данных DATE содержит только дату, а истинные числа (числа с фиксированной точкой) с точностью больше 9 хранятся как BIGINT (NUMERIC(18, О) в Firebird 1.0.x).
Интерактивные команды
Вы можете интерактивно вводить три вида команд или операторов в подсказке SQL>.
* Операторы SQL определения данных (DDL), такие как CREATE, ALTER, DROP и REVOKE. Эти операторы создают, изменяют или удаляют метаданные и объекты или управляют полномочиями доступа пользователя (привилегиями) к базе данных.
* Операторы SQL манипулирования данными (DML), такие как SELECT, INSERT, UPDATE и DELETE. Выход операторов SELECT может быть отображен или направлен в файл (см. команду OUTPUT).
* Команды isql, которые разделяются на три основные категории:
• общие команды (например, команды чтения входного файла, записи в выходной файл или завершения сессии isql);
• команды SHOW (для отображения метаданных и другой информации базы данных);
• команды SET (для изменения окружения isql).
Создание и изменение объектов базы данных
В сессии isql вы можете выдавать операторы DDL один за другим для создания (CREATE) или удаления (DROP) баз данных, доменов, генераторов, таблиц, индексов, триггеров и хранимых процедур. Вместе с исключениями генераторов вы также можете выдавать операторы ALTER для любого из этих объектов.
Поскольку можно создавать базу данных, выдавая и подтверждая серии операторов DDL в процессе сессии интерактивной isql, такой подход является специализированным. Он не позволяет документировать процесс и оставляет дыры в процессе отладки и тестирования.
Очень хорошей практикой является использование скриптов для создания базы данных и ее объектов. Скрипт для создания и изменения объектов базы данных иногда называют скриптом схемы, файлом определения данных или просто DDL-скриптом. Тема использования скриптов схемы рассматривается в деталях в главе 14.
Скрипты по изменению базы данных дают вам постоянную фиксацию эволюции вашей базы данных и возможность отслеживать и отменять любые неразумные изменения. Утилита isql может создавать скрипт в процессе интерактивной сессии, передавая ваш ввод с клавиатуры в указанный файл. Чтобы узнать, как это сделать, прочтите примечания к команде OUTPUT в следующем разделе.
Вы можете запустить скрипт, созданный в isql или в любом другом
текстовом редакторе, посредством команды INPUT. Она может быть также использована внутри скрипта для создания вложенных скриптов.Общие команды isql
Общие команды isql выполняют множество полезных задач, включая чтение, запись и выполнение скриптов схемы, а также выполнение команд командной строки. Командами являются BLOBDUMP, BLOBVIEW, EDIT, EXIT, HELP, INPUT, OUTPUT, QUIT и SHELL.
BLOBDUMP сохраняет данные BLOB В указанном файле:
BLOBDUMP идентификатор-BLOB имя-файла;
где идентификатор-BLOB- идентификатор, содержащий два шестнадцатеричных числа, разделенных двоеточием (:). Первое число является идентификатором таблицы, содержащей столбец BLOB. Второе - последовательный номер объекта. Для получения этого идентификатора выдайте любой оператор SELECT, который выбирает столбец BLOB. Выход покажет шестнадцатеричный идентификатор BLOB выше или на месте столбца BLOB в зависимости от того, установлен ли SET [DISPLAY] В ON или OFF.
имя-файла - полное имя файловой системы того файла, который получает данные.
Пример:
SQL> BLOBDOMP 32:d48 IMAGE.JPG ;
BLOBVXEW отображает данные BLOB В текстовом редакторе по умолчанию.
BLOBVIEW идентификатор-BLOB ;
где идентификатор-BLOB- идентификатор, содержащий два шестнадцатеричных числа, разделенных двоеточием (:). См. описание BLOBDUMP для определения идентификатора BLOB, который вы ищите. В текущей версии BLOBVIEW не поддерживает редактирования BLOB В режиме онлайн. Это может быть добавлено в будущие реализации.
Пример:
SQL> BLOBVIEW 85:7 ;
Замечание по ошибке: BLOBVIEW может вернуть ошибку "Invalid transaction handle" (Неверный дескриптор транзакции) после закрытия редактора. Для исправления ситуации запустите транзакцию вручную с помощью:
SQL> SET TRANSACTION;
EDIT позволяет отредактировать и заново выполнить предыдущую команду isql или пакет команд в исходном файле.
SQL> EDIT [имя-файла] ;
где имя-файла- (необязательно) полностью заданное имя файла для редактирования в файловой системе.
Пример:
SQL> EDIT /usr/mystuff/batch.sql
Команда EDIT также может быть использована для открытия предыдущих операторов в редакторе:
SQL> SELECT EMP_CODE, EMP_NAME FROM EMPLOYEE ; SQL> EDIT ;
Нажмите клавишу <Enter> для отображения "прокрутки" вашей сессии isql в текстовом редакторе ASCII по умолчанию в вашей системе. Отредактируйте, при желании сохраните и выйдите. Отредактированный пакет команд будет заново выполнен в вашей командной строке isql после того, как вы выйдете из редактора.
EXIT подтверждает текущую транзакцию без подсказки, закрывает базу данных и завершает сессию isql. Если вам нужно выполнить откат, а не подтверждение транзакции, используйте QUIT.
SQL> EXIT ;
EXIT не принимает никаких аргументов.
HELP отображает список команд isql с их описанием. Вы можете объединить эту команду с OUTPUT для вывода списка в файл.
SQL> HELP ;
Пример:
SQL> OUTPUT HELPLIST.TXT ; SQL> HELP ;
SQL> OUTPUT ; /* переключает вывод опять на монитор */