- •Работа с таблицами
- •Цели занятия
- •Таблица
- •Некоторые замечания
- •Создание таблицы
- •Пример создания таблицы
- •Пример создания таблицы с ограничением
- •DEFAULT
- •Пример использования DEFAULT
- •Ограничения
- •Ограничение CHECK
- •Ограничение CHECK
- •Пример использования ограничения
- •Пример использования ограничения
- •Пример использования ограничения
- •Ограничение NOT NULL
- •Пример использования ограничения
- •Ограничение UNIQUE
- •Ограничение UNIQUE
- •Пример использования ограничения
- •Ограничение PRIMARY KEY
- •Пример использования ограничения
- •Ограничение ВНЕШНЕГО КЛЮЧА
- •Ограничение ВНЕШНЕГО КЛЮЧА
- •Пример использования ограничения
- •Типы данных
- •Числовые типы
- •Денежный, логический и
- •Типы дата/времени
- •Добавление столбца
- •Пример добавления столбца
- •Переименование и удаление
- •Пример переименования и удаления
- •Изменение типа данных и значения
- •Пример изменения типа данных и
- •Добавление ограничения
- •Пример добавления ограничений
- •Удаление ограничений
- •Пример удаления ограничений
- •Переименование и удаление
- •Пример переименования и
Ограничение PRIMARY KEY
21• Является комбинацией ограничений UNIQUE и NOT NULL
•Таблица может иметь не более одного первичного ключа
•Может задаваться для столбца или группы столбцов
CREATE TABLE имя_таблицы
(
имя_поля1 тип_поля1 PRIMARY KEY, имя_поля2 тип_поля2
);
CREATE TABLE имя_таблицы
(
имя_поля1 тип_поля1, имя_поля2 тип_поля2,
PRIMARY KEY (имя_поля1 , имя_поля2) );
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Пример использования ограничения
PRIMARY KEY
22CREATE TABLE shop
(
shop_id bigint PRIMARY KEY,
name character(80) DEFAULT 'no name', location character(50) NOT NULL
);
CREATE TABLE shop
(
shop_id bigint,
name character(80) DEFAULT 'no name', location character(50) NOT NULL, PRIMARY KEY (name, location)
);
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Ограничение ВНЕШНЕГО КЛЮЧА
23• Ограничение внешнего ключа говорит, что значения в столбце (или группе столбцов) должно совпадать с значениями, которые существуют в некоторых строках другой таблицы
•Может задаваться для столбца или группы столбцов
•Можно задать собственное имя для ограничения внешнего ключа через ключевое слово CONSTRAINT
•Опция RESTRICT предотвращает удаление ссылочной строки
•Опция CASCADE говорит, что когда ссылочная строка удаляется, строка(и) ссылающиеся на неё, также должны быть автоматически удалены
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Ограничение ВНЕШНЕГО КЛЮЧА
24CREATE TABLE имя_таблицы1
(
имя_поля1 тип_поля1 PRIMARY KEY );
CREATE TABLE имя_таблицы2
(
имя_поля1 тип_поля1,
имя_поля2 тип_поля2 REFERENCES имя_таблицы1 (имя_поля1_таблицы1)
--имя_поля1 тип_поля1 REFERENCES имя_таблицы1
--имя_поля1 тип_поля1 REFERENCES имя_таблицы1 ON DELETE CASCADE
--имя_поля1 тип_поля1 REFERENCES имя_таблицы1 ON DELETE RESTRICT
);
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Пример использования ограничения
ВНЕШНЕГО КЛЮЧА
25CREATE TABLE shop
(
shop_id bigint PRIMARY KEY,
name character(80) DEFAULT 'no name', location character(50) NOT NULL
);
CREATE TABLE books
(
book_id bigint,
name character(80) DEFAULT 'no name', author character(50),
published date, price numeric,
shop_id bigint REFERENCES shop (shop_id) --shop_id bigint REFERENCES shop
--shop_id bigint REFERENCES shop ON DELETE CASCADE
--shop_id bigint REFERENCES shop ON DELETE RESTRICT
);
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Типы данных
26 • Числовые типы
•Денежные типы
•Символьные типы
•Двоичные типы
•Типы дата/времени
•Логический тип
•Перечисления
•Геометрические типы
•Типы сетевых адресов
•Типы битовых строк
•Типы текстового поиска
•Тип UUID
•Тип XML
•Тип Arrays
•Composite Types
•Типы идентификаторов объектов
•Псевдо-типы
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Числовые типы
27
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Денежный, логический и
символьные типы
28• Денежный тип
•Логический тип
•Символьные типы
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Типы дата/времени
29
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Добавление столбца
30 ALTER TABLE имя_таблицы ADD имя_столбца тип_столбца;
ALTER TABLE имя_таблицы ADD имя_столбца тип_столбца DEFAULT значение по умолчанию;
ALTER TABLE имя_таблицы ADD имя_столбца тип_столбца имя_ограничения;
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |