Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Шрифт:
Подробную информацию о подмножестве языка isql см. в главе 37.
Процедурный язык (PSQL)
Стандарт не описывает возможности процедурного языка, поскольку в принципе предполагает, что общие задачи программирования будут решены с использованием языка программирования. Не существует спецификаций для конструкций языка по манипулированию, вычислению или программному созданию данных внутри системы управления базами данных.
Те реляционные СУБД, которые поддерживают программирование на сервере, обычно предоставляют форматы и синтаксис, подобные операторам SQL, для расширения SQL. Каждый разработчик СУБД свободен предоставлять свои собственные варианты
Firebird предоставляет такие конструкции в виде процедурного языка (иногда называемого PSQL), который является набором расширений SQL, используемых программистами вместе с вариантом языка ESQL для написания исходных кодов для хранимых процедур и триггеров. Расширения PSQL включают управление потоком выполнения, условные выражения и средства обработки ошибок. Язык включает уникальную возможность генерации многострочных выходных наборов, к которым может быть осуществлен прямой доступ с использованием операторов SELECT.
Из языка исключены некоторые конструкции SQL, в частности все операторы DDL. При этом в Firebird 1.5 и выше в PSQL поддерживается синтаксис EXECUTE STATEMENT для выполнения команд DSQL, включающих некоторые операторы DDL.
PSQL для хранимых процедур и триггеров подробно описывается в части VII.
Диалекты SQL
В Firebird каждый клиент и база данных имеют диалект SQL, атрибут, указывающий серверу, как интерпретировать возможности и элементы, которые реализованы по- разному в базах данных Borland InterBase до версии 6.
Диалект позволяет серверу Firebird распознавать, принимать и корректно обрабатывать более ранние возможности и элементы баз данных (диалект 1), получать доступ к этим старым данным для их преобразования в новые возможности и элементы (диалект 2) или использовать полный набор возможностей, элементов и правил Firebird для конвертированных или вновь создаваемых баз данных (диалект 3).
Возможно создание новой базы данных в Firebird диалекта 1 или диалекта 3. Не рекомендуется создавать новые базы в диалекте 1, поскольку, в конечном счете, прекратится его поддержка. Невозможно создание базы данных диалекта 2, потому что диалект 2 предназначен для конвертирования баз данных диалекта 1 в диалект 3. Диалект 2 может быть применен только к клиентскому соединению.
Ресурсы SQL
Приложение 1 содержит алфавитный список описаний внешних функций.
Используйте алфавитный указатель в конце этой книги для поиска неизвестных терминов.
Книги
Если предыдущие ваши "контакты" с SQL были минимальными, хорошая книга по SQL-92 будет бесценной. Следующий список (который не является исчерпывающим) может быть вам полезен.
Joe Celko пишет по SQL книги, предназначенные для решения проблем. Вот некоторые из них: "Joe Celko's SQL For Smarties: Advanced SQL Programming", "Joe Celko's Data and Databases: Concepts in Practice", и "Joe Celko's SQL Puzzles and Answers". Здесь описывается главным образом стандартный SQL, может быть с некоторым уклоном в Oracle.
David Rozenshtein и Tom Bondur "The Essence of SQL" - очень лаконичная книга в большей мере для начинающих.
Judith S. Bowman, Sandra Emerson, Marcy Darnovsky "The Practical SQL Handbook" - настольный справочник по стандарту SQL, получивший хорошие отзывы.
Hugh Darwen и Chris Date "A Guide to the SQL Standard" содержит все, что вам нужно знать об SQL-92, а также многое из того, о чем вы не знаете, что вы этого не знаете.
Jim Melton и Alan Simon "Understanding the New SQL: A Complete Guide" описывает SQL-89 и SQL-92. Это всеобъемлющий красиво оформленный справочник для начинающих. Включает некоторые
Martin Gruber "Mastering SQL" является переработанной и расширенной версией книги того же автора "Understanding SQL", которая делает стандартный SQL доступным даже для начинающих. Позволяет быстро приобрести солидные умения в разработке. [64]
Свободная поддержка SQL
По всем вопросам, связанным с SQL Firebird, присоединяйтесь к форуму поддержки Firebird наЭто добровольный список адресов электронной почты, где знающие и новые пользователи Firebird делятся своим опытом. Если вы предпочитаете интерфейс конференции, то здесь зеркально отображаются новости: news://news.atkin.com/egroups.ib-support. Вы можете послать список сообщений через зеркальную конференцию, если подпишетесь на список рассылки и будете использовать тот же адрес отправителя.
64
В переводе на русский язык книга называется М. Грабер "SQL" и доступна в книжных магазинах начиная с 2001 г.
– Прим. науч. ред.
Язык манипулирования данными (DML) является подмножеством языка SQL, которое мы используем, чтобы определить наборы данных для чтения или обработки в приложениях. В следующей главе мы рассмотрим базовый синтаксис "большой четверки" операторов SQL: SELECT, INSERT, UPDATE и DELETE.
ГЛАВА 20. Запросы DML.
Приложения пользователя могут получить доступ к таблицам Firebird только одним путем - выполняя к ним запрос. По своей сущности запрос является оператором SQL, который передается на сервер. Оператор SQL является выражением, состоящим из ключевых слов, фраз и предложений на формализованном языке на базе английского. Этот язык имеет ограниченный словарь, который понятен клиентской библиотеке и серверу Firebird - а также, желательно, и человеку, который составляет такие выражения! Задачи создания, модификации и управления метаданными и данными - все без исключения - выполняются в запросах.
Строго говоря, оператор не является запросом, пока он не будет передан серверу. При этом большинство разработчиков используют термины оператор и запрос одинаково.
Все запросы DML обращаются к данным, постоянно хранящимся в базе данных в виде столбцов в таблицах. Запрос задает набор данных и одну или более операций, которые должны быть выполнены над этим набором. Он может использовать выражения для преобразования данных для поиска или сохранения или для предоставления специальных условий поиска для наборов данных.
Наборы данных
Запрос DML определяет логическую совокупность элементов данных, упорядоченных слева направо, из одного или более столбцов, называемую набором. Запрос может ограничивать спецификацию набора одной строкой или же набор может состоять из множества строк. В наборе, состоящем из множества строк, порядок столбцов в одной строке идентичен всем другим строкам в наборе.
Люди часто небрежно называют наборы "запросами". Эти слова не являются синонимами.
Таблица является набором
Таблица является набором, чья полная спецификация может быть получена из системных таблиц сервером базы данных, когда к таблице происходит обращение из запроса, полученного от клиента. Сервер Firebird выполняет свои собственные внутренние запросы к системным таблицам для получения метаданных, необходимых для выполнения клиентских запросов.