Назначение и отмена значений по умолчанию
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Назначать и отменять значения по умолчанию для отдельных полей относительно легко. Для этого используется команда ALTER TABLE с секцией ALTER COLUMN:

ALTER TABLE имяТаблицы

ALTER COLUMN имяСтолбца

SET DEFAULT значение;

или

ALTER TABLE имяТаблицы

ALTER COLUMN имяСтолбца

DROP DEFAULT;

Ключевое слово COLUMN не является обязательным.

Например, назначим и отменим значение 1 в качестве значения по умолчанию для поля edition (номер издания) таблицы editions;

ALTER TABLE editions

ALTER COLUMN edition

SET DEFAULT 1;

 

ALTER TABLE editions

ALTER edition

DROP DEFAULT;

 

Переименование таблицы

 

Переименование таблиц осуществляется командой ALTER TABLE с секцией RENAME:

            ALTER TABLE имяТаблицы

            RENAME TO новоеИмя;

Таблицу можно переименовывать сколько угодно раз, это никак не отражается на состоянии хранящихся в ней данных. В некоторых ситуациях переименования нежелательны – например, если таблица используется внешним приложением.

Переименуем таблицу books  в таблицу literature:

ALTER TABLE books

RENAME TO literature;

 

Переименование полей

 

Изменять имена полей можно без изменения данных, хранящихся в таблице. Однако, переименование полей – довольно опасная операция, поскольку существующие приложения могут содержать ссылки на имена полей. Если программа обращается к полю по имени, то переименование может нарушить ее работоспособность. Команда переименования полей имеет следующий синтаксис:

         ALTER TABLE имяТаблицы

         RENAME COLUMN имяПоля TO новоеИмя;

Ключевое слово COLUMN не является обязательным. По двум идентификаторам, разделенным ключевым словом TO, PostgreSQL может определить, что команда переименования относится к одному полю, а не таблице.

Например,

ALTER TABLE stock

RENAME COLUMN stock TO is_in_stock;

 

Добавление ограничений

 

После создания таблицы сохраняются некоторые возможности добавления ограничений. В PostgreSQL 7.1.x команда ALTER TABLE с секцией ADD CONSTRAINT позволяет определять для полей существующих таблиц только ограничения внешнего ключа и проверки (CHECK). Команда создания новых ограничений имеет следующий синтаксис:

ALTER TABLE имяТаблицы

ADD CONSTRAINT имяОграничения ограничение;

Синтаксис ограничения зависит от типа ограничения.

Создадим ограничение внешнего ключа для таблицы editions (связанной с полем id таблицы books):

ALTER TABLE editions

ADD CONSTRAINT foreign_book

FOREIGN KEY (book_id) REFERENCES books (id);

Добавим ограничение для проверки поля type:

ALTER TABLE editions

ADD CONSTRAINT type_check CHECK (type IN (‘p’, ‘h’));

 

 



Лабораторная работа 8

 

Все работы по созданию и модификации таблиц следует выполнять в базе данных с номером вашей группы.

1. Создать таблицу для хранения данных о студентах с полями: фамилия, номер зачетки, адрес, год поступления в университет, номер специальности, номер группы; ввести ограничения первичного ключа, отсутствия пустых значений для фамилии и года поступления, значение специальности по умолчанию 0220100.

2. Заполнить данными созданную таблицу (не менее 5 записей), при вводе попытаться ввести записи с дублирующимися номерами зачетных книжек, однофамильцами, без фамилии, без года поступления в университет, без специальности; зафиксировать в отчете свои действия и реакцию на них сервера БД (что происходит и почему). Привести в отчете окончательный вид созданной таблицы.

3. Создать таблицу для хранения данных о сдаче студентами различных экзаменов по дисциплинам с оценками и заполнить ее данными (каждый студент сдает не менее трех экзаменов); задать первичный ключ в таблице; обеспечить выполнение условий целостности данных, чтобы экзамены сдавались только студентами, у которых есть зачетные книжки, а при удалении записей о студентах удалялись бы и записи о сданных ими экзаменах (каскадное удаление).

Продемонстрировав все созданные таблицы преподавателю, уничтожить таблицы.



ПРИЛОЖЕНИЯ

 

П.1. Возможности PostgreSQL

 

PostgreSQL – объектно-реляционная система управления базами данных, разработка которой в различных формах ведется с 1977 года. В 1996 году был осуществлен переход на распространение PostgreSQL с открытыми исходными текстами. В настоящее время над проектом PostgreSQL активно работает группа разработчиков со всего мира.

PostgreSQL считается самой совершенной СУБД, распространяемой на условиях открытых исходных текстов. В PostgreSQL реализованы многие возможности, традиционно встречавшиеся только в масштабных коммерческих продуктах:

· объектно-реляционная модель позволяет задействовать сложные процедуры и системы правил, например, контроль параллельного доступа, поддержку многопользовательского доступа, транзакции, оптимизацию запросов, поддержку и наследование массивов;

· простота расширения: в PostgreSQL поддерживаются пользовательские операторы, функции, методы доступа и типы данных;

· полноценная поддержка SQL;

· проверка целостности ссылок;

· поддержка внутренних процедурных языков;

· архитектура «клиент-сервер».

 

П.2. Консоль psql

 

Система PostgreSQL, как и большинство сетевых СУБД, основана на парадигме “клиент-сервер”. Центральное место в PostgreSQL занимает процесс postmaster, предназначенный не для прямого взаимодействия с пользователем, а для обслуживания подключений со стороны различных клиентов.

При запуске службы (service) PostgreSQL процесс postmaster начинает работать в фоновом режиме, прослушивая заданный порт TCP/IP в ожидании подключений со стороны клиентов.

Существует несколько интерфейсов, через которые клиент подключается к процессу postmaster. В лабораторных работах используется psql – самый универсальный и доступный клиент, входящий в комплект поставки PostgreSQL.

Запуск psql осуществляется командой:

psql -h host_name db_name [-U user_name]

Если пользователь зарегистрирован администратором БД и база данных с именем db_name имеется на сервере, то соединение произойдет, что отразится в командной строке:

db_name=>

В лабораторных работах host_name – это server, а db_name – booktown.

 

Команды консоли psql делятся на две группы:

· команды языка SQL для работы с данными в базе;

· внутренние команды psql, начинающиеся с символа ‘\’.

 

Некоторые полезные команды клиента psql:

\?                            Справка по командам psql             

\с база_данных  Подключение к другой базе данных       

\dt                          Список таблиц в текущей базе данных    

\d имя_таблицы  Структура таблицы                        

\h команда           Справка по командам sql                                   

\i имя_файла      Чтение входных данных из файла

\l                            Список имеющихся на сервере баз данных      

\o файл                 Перенаправление вывода в файл

\q                            Выход из psql                                           

\t                            Режим выдачи дополнительной информации о таблице

\z имя_таблицы  Права доступа к таблице

 

П.3. Команды SQL

 

Дата: 2019-02-19, просмотров: 220.