Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики
Шрифт:
Вопросы учеников
Можно ли переименовать таблицу?
Да, вполне, и для этого есть две команды:
ALTER TABLE TABLE_NAME RENAME TO new_TABLE_NAME;
или же
RENAME <old_TABLE> TO <new_TABLE>
Универсальный же синтаксис предполагает использование ALTER TABLE.
Примеры:
Переименуем таблицу
ALTER TABLE STAFF RENAME TO emp;
Переименуем таблицу с названием TRADES в TRADE:
ALTER TABLE trades RENAME TO trade;
Можно ли переименовать столбец в таблице?
ALTER TABLE TABLE_NAME RENAME COLUMN old_column_NAME to new_column_NAME;
Пример:
Переименовать колонку с наименованием NAME в таблице STAFF в колонку LASTNAME:
ALTER TABLE STAFF RENAME COLUMN NAME TO LASTNAME;
Контрольные вопросы и задания для самостоятельного выполнения
Шаг 8. Первичные ключи. Вторичные ключи
Введение
Первичный ключ – это сочетание значений колонок таблицы, уникально определяющее каждое значение таблицы. Такие колонки называются первичным ключом. Первичные ключи таблицы необходимы для поддержания целостности базы данных.
Любая колонка в таблице может быть обозначена как первичный ключ, это уникальные колонки, в которых только уникальные значения, по которым мы можем однозначно идентифицировать строчку в рамках этой таблицы.
Колонку для связи таблицы с другой таблицей называют вторичным ключом, то есть если есть две таблицы связаны по одной или нескольким колонкам, такая колонка во второй связанной таблице называется вторичным ключом.
Вторичный ключ также называют внешним ключом таблицы.
Теория и практика
В нашем примере есть две таблицы (таблица CITY, MAN по колонке CITYCODE), в таблице CITY CITYCODE является первичным ключом.
В таблице MAN CITYCODE будет вторичным ключом.
Синтаксис создания первичного ключа:
CREATE TABLE TABLE_NAME
(
column1 DATAtype NULL/NOT NULL,
column2 DATAtype NULL/NOT NULL,
…
CONSTRAINT constraINt_NAME PRIMARY KEY (column1, column2, … column_n)
);
Также
ALTER TABLE TABLE_NAME ADD CONSTRAINT constraINt_NAME PRIMARY KEY (column1, column2, … column_n);
Синтаксис создания вторичного ключа:
CREATE TABLE TABLE_NAME (
column1 DATAtype NULL/NOT NULL,
…
CONSTRAINT fk_column
FOREIGN KEY (column1, column2, … column_n)
REFERENCES parent_TABLE (column1, column2, … column_n));
Добавление вторичного ключа с помощью конструкции ALTER TABLE:
ALTER TABLE TABLE_NAME
ADD CONSTRAINT constraINt_NAME
FOREIGN KEY (column1, column2, … column_n)
REFERENCES parent_TABLE (column1, column2, … column_n);
Важные замечания
Первичный ключ может состоять из одной или нескольких колонок.
Пример:
ALTER TABLE TABLE_NAME ADD CONSTRAINT constraINt_NAME PRIMARY KEY (column1);
или же
ALTER TABLE TABLE_NAME ADD CONSTRAINT constraINt_NAME PRIMARY KEY (column1, columnN);
Вопросы учеников
Обязательно ли обозначать внешний ключ? Почему это не будет работать просто так?
Будет работать, но для поддержания ссылочной целостности необходимо использование конструкций SQL для первичных и вторичных ключей.
Контрольные вопросы и задания для самостоятельного выполнения
Шаг 9. Ограничения
Введение
Для колонок таблицы в базе данных можно создавать ограничения.
Ограничения – это специальные синтаксические конструкции уровня колонок таблицы, которые предназначены для поддержания ссылочной целостности данных или для вставки правильных данных согласно бизнес-логике приложения.
То есть ограничения допускают вставку в ячейку таблицы только определенных данных, ограниченных заданными правилами.