Самоучитель по SQL-сервер в Linux



Создание баз данных

Чтобы создать базу данных в PgAccess, перейдите на вкладку Database в верхней части экрана, затем щелкните на кнопке New и введите имя новой базы. Результат будет точно таким же, как при выполнении команды SQL CREATE DATABASE текущим пользователем. Чтобы использовать другой шаблон вместо templatel или выбрать тип кодировки, следует либо воспользоваться программой createdb, либо ввести команду CREATE DATABASE в клиенте командной строки (см. главу 9).

Создание таблиц

Графический интерфейс PgAccess позволяет относительно просто создавать таблицы и изменять их структуру.

Перейдите на вкладку Tables и щелкните на кнопке New. На экране появится диалоговое окно Create new table. Различные поля и кнопки этого окна предназначены для изменения атрибутов создаваемой таблицы. В целом эти элементы являются визуальными аналогами параметров команды SQL CREATE.

Ниже перечислены основные поля диалогового окна Create new table.

  • Table name. Имя создаваемой таблицы.
  • Inherits. Таблица (или таблицы), от которых создаваемая таблица наследует атрибуты. Значения выбираются в раскрывающемся списке. Помните, что выбор не ограничивается одной таблицей; вы можете нажать кнопку со стрелкой и выбрать другую таблицу, имя которой также появляется в поле Inherits.
  • Check. Выражения, которые должны проверяться при выполнении команд INSERT и UPDATE.
  • Constraint. Ограничения, устанавливаемые для таблицы.

Ниже рассказано, как происходит включение в таблицу новых полей, а также вставка и удаление записей.

Включение новых полей в таблицу

Чтобы включить в таблицу новое поле, введите его атрибуты в полях field name, type, size и Default value; установите в нужное положение флажки field cannot be null и primary key. Завершив настройку атрибутов, щелкните на кнопке Add field, чтобы включить поле в список. Кнопки Move Up и Move Down позволяют перемещать поле в списке, кнопка Delete field удаляет поле, а кнопка Delete All удаляет все поля.

Когда все будет готово к включению поля в базу данных, щелкните на кнопке Create.

Вставка и обновление записей

Клиент PgAccess также может использоваться для занесения данных в таблицы; более того, это довольно просто и удобно. Перейдите на вкладку Table и просмотрите список таблиц. Щелкните на той таблице, с которой вы хотите работать, затем — на кнопке Open.

На экране появляется «сетка», столбцы которой соответствуют полям таблицы. Перейдите к нужной ячейке нажатием клавиши Tab или просто щелкните на ней мышью. Запись выделяется цветом, и в ней появляется курсор, показывающий позицию ввода новых данных. База данных обновляется лишь после того, как вы перейдете к следующей ячейке нажатием клавиши Tab; также можно щелкнуть в другой ячейке кнопкой мыши. После одного из этих действий PgAcccess выводит сообщение «Updating database...».

Обратите внимание: PgAccess позволяет сортировать и фильтровать данные в таблицах при помощи полей Sort field и Filter conditions, расположенных в верхней части окна. Чтобы отсортировать таблицу по одному полю, введите его имя в поле Sort field с необязательным ключевым словом ASC (сортировка по возрастанию) или DESC (сортировка по убыванию). Также возможна сортировка по нескольким полям, для этого имена полей перечисляются через запятую. Например, сортировка поля lastname по возрастанию выполняется следующим образом: lastname ASC

Критерии фильтрации записей состоят из условных конструкций следующего вида:

(аде < 45) and (avgsalary > 40000)

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

Удаление данных

Чтобы удалить данные из таблицы, откройте ее точно так же, как для вставки: перейдите на вкладку Tables, щелкните на имени таблицы и затем — на кнопке Open. На экране появляется «сетка», заполненная данными. Удалять можно как целые записи, так и отдельные поля в записях. Чтобы удалить запись, щелкните в соответствующей строке и нажмите клавишу Delete. PgAccess выводит диалоговое окно с предложением подтвердить удаление (на случай, если клавиша была нажата случайно). Чтобы полностью или частично удалить содержимое поля, щелкните в соответствующей ячейке (или перейдите к ней нажатием клавиши Tab) и удалите лишние символы нажатием клавиши Backspace.

Работа с запросами

Как нетрудно предположить, в PgAccess предусмотрены средства конструирования, редактирования и выполнения запросов. Щелкните на вкладке Queries — вы увидите список существующих запросов, определенных в базе данных. Пользователям Microsoft Access эта часть интерфейса программы покажется знакомой — визуальный конструктор запросов PostgreSQL очень похож на аналогичное средство Access.

Новый запрос создается щелчком на кнопке New, при этом на экране открывается окно Query Builder. Прежде чем переходить к конструированию запроса, введите его имя в поле Query name. Имя выбирается произвольно и никак не влияет на работу запроса. Оно нужно только для того, чтобы запрос отличался от других запросов в списке. На этой стадии также можно ввести комментарии к запросу.

Ручное построение запроса

После ввода имени можно либо ввести текст запроса вручную, либо воспользоваться визуальным конструктором для ускорения процесса. Если вы предпочитаете первый вариант, введите команду SELECT, которая будет использоваться для выборки данных, в большом многострочном поле под элементом Query name. При желании команду можно разбить на несколько строк.

Визуальное конструирование запроса

Чтобы создать запрос в визуальном конструкторе, щелкните на кнопке Visual Designer. Как упоминалось выше, по своему интерфейсу этот инструмент напоминает конструктор запросов Microsoft Access. Изначально область конструирования запроса пуста. Чтобы разместить в ней новую таблицу, введите имя таблицы в поле раскрывающегося списка Add table, где по умолчанию размещается курсор. Также можно раскрыть список существующих таблиц и выбрать таблицу там.

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

Чтобы удалить таблицу из области конструирования запроса, щелкните на ее имени и нажмите клавишу Delete. Удаление связей выполняется аналогично — выделением связи и нажатием клавиши Delete.

Все связи между таблицами преобразуются в секции WHERE, определяющей условия логического объединения двух таблиц. Связи представляют условия, основанные на операторе =. Чтобы задать другое условие, отредактируйте команду SQL в окне Query Builder. Учтите, что при возвращении в режим визуального конструирования и последующем сохранении все модификации связей вернутся к условию равенства.

Чтобы выбрать поля, входящие в итоговый набор запроса, перетащите их в область результата (разделенная на ячейки область в нижней части экрана). В поле Criteria можно ввести условия, применяемые к результатам запроса. Чтобы просмотреть команду SQL, сгенерированную по итогам визуального конструирования, щелкните на кнопке Show SQL. Кнопка Execute SQL позволяет выполнить созданный запрос (с целью тестирования). Завершив построение запроса, щелкните на кнопке Save to query builder. Запрос сохраняется в таблице pga_queries.

Выполнение запроса

Чтобы просмотреть результаты выполнения запроса, перейдите на вкладку Queries, выберите нужный запрос в списке и щелкните на кнопке Open. На экране появляется окно, напоминающее окно редактирования таблицы, но доступное только для чтения. Поле Sort используется для сортировки записей по результатам выражения, а в поле Filter conditions вводится выражение для фильтрации записей.

Модификация запроса

Чтобы изменить существующий запрос, перейдите на вкладку Queries, выберите запрос в списке и щелкните на кнопке Design. На экране появляется окно Query Builder, в котором отображается имя запроса, сгенерированная команда SQL, а также все комментарии, введенные при исходном конструировании. Вы можете отредактировать код SQL вручную или воспользоваться визуальным конструктором. Кнопка Save query definition позволяет сохранить изменения в существующем запросе.

Создание функций

Чтобы создать в PgAccess новую функцию, перейдите на вкладку Functions и щелкните на кнопке New. В открывшемся окне вводится имя новой функции, список параметров (разделенный запятыми), язык, на котором написана функция (SQL, С, plpgsql и т.д.) и тип возвращаемого значения. Тело функции вводится в многострочном поле, занимающем большую часть экрана (или в отдельном файле, если это функция С). Завершив ввод, щелкните на кнопке Save.

ПРИМЕЧАНИЕ

Вы можете просматривать определения существующих функций. Для этого следует выбрать нужную функцию в списке и щелкнуть на кнопке Open.

Мы вернемся к теме создания функций в следующей главе.