- •Работа с таблицами
- •Цели занятия
- •Таблица
- •Некоторые замечания
- •Создание таблицы
- •Пример создания таблицы
- •Пример создания таблицы с ограничением
- •DEFAULT
- •Пример использования DEFAULT
- •Ограничения
- •Ограничение CHECK
- •Ограничение CHECK
- •Пример использования ограничения
- •Пример использования ограничения
- •Пример использования ограничения
- •Ограничение NOT NULL
- •Пример использования ограничения
- •Ограничение UNIQUE
- •Ограничение UNIQUE
- •Пример использования ограничения
- •Ограничение PRIMARY KEY
- •Пример использования ограничения
- •Ограничение ВНЕШНЕГО КЛЮЧА
- •Ограничение ВНЕШНЕГО КЛЮЧА
- •Пример использования ограничения
- •Типы данных
- •Числовые типы
- •Денежный, логический и
- •Типы дата/времени
- •Добавление столбца
- •Пример добавления столбца
- •Переименование и удаление
- •Пример переименования и удаления
- •Изменение типа данных и значения
- •Пример изменения типа данных и
- •Добавление ограничения
- •Пример добавления ограничений
- •Удаление ограничений
- •Пример удаления ограничений
- •Переименование и удаление
- •Пример переименования и
Ограничение CHECK
11
•Позволяет задать для определённого столбца выражение, которое будет осуществлять проверку помещаемого в этот столбец значения
CREATE TABLE имя_таблицы
(
имя_столбца тип_столбца CHECK (условие) );
CREATE TABLE имя_таблицы
(
имя_столбца тип_столбца CONSTRAINT имя_ограничения CHECK (условие)
);
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Ограничение CHECK
12
•Ограничение CHECK может также накладываться на несколько колонок.
CREATE TABLE имя_таблицы
(
имя_столбца1 тип_столбца1 CHECK (условие1),
имя_столбца2 тип_столбца2 CHECK (условие2),
CHECK (условие3) );
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Пример использования ограничения
CHECK
13 CREATE TABLE books |
|
( |
|
book_id bigint, |
|
name character(80) |
DEFAULT 'no |
name', |
|
author character(50), |
|
published date, |
|
price numeric |
CHECK (price>0), |
shop_id bigint |
|
); |
|
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Пример использования ограничения
CHECK
14
CREATE TABLE books
(
book_id bigint,
name character(80) DEFAULT 'no name', author character(50),
published date,
price numeric CONSTRAINT check_price CHECK (price>0),
shop_id bigint );
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Пример использования ограничения
CHECK
15 |
CREATE TABLE books |
|
|
|
( |
|
book_id bigint, |
|
name character(80) DEFAULT 'no name', |
|
author character(50), |
|
published date, |
|
price numeric CONSTRAINT check_price |
|
CHECK (price>0), |
|
discounted_price numeric CHECK |
|
(discounted_price > 0), |
|
CHECK (price > discounted_price), |
|
shop_id bigint |
|
); |
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Ограничение NOT NULL
16
Позволяет гарантировать, что определённый столбец не содержит значение NULL
CREATE TABLE имя_таблицы
(
имя_поля тип_поля NOT NULL );
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Пример использования ограничения
NOT NULL
17 Позволяет гарантировать, что определённый столбец не содержит значение NULL
CREATE TABLE имя_таблицы
(
имя_поля тип_поля NOT NULL );
CREATE TABLE shop
(
shop_id bigint, name character(80),
location character(50) NOT NULL );
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Ограничение UNIQUE
18• Ограничение UNIQUE даёт уверенность в том, что данные, содержащиеся в столбце или группе столбцов являются уникальными по отношению к другим строкам в той же таблице
•Может задаваться для столбца, таблицы, группы столбцов
•Можно задать собственное имя для ограничения уникальности через ключевое слово CONSTRAINT
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Ограничение UNIQUE
19 |
CREATE TABLE имя_таблицы |
|
(
имя_поля тип_поля UNIQUE,
);
CREATE TABLE имя_таблицы
(
имя_поля1 тип_поля1 ,
имя_поля2 тип_поля2,
UNIQUE (имя_поля1 ) );
CREATE TABLE имя_таблицы
(
имя_поля1 тип_поля1 , имя_поля2 тип_поля2,
UNIQUE (имя_поля1 , имя_поля2) );
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |
Пример использования ограничения
UNIQUE
20CREATE TABLE books
(
books_id bigint UNIQUE,
);
CREATE TABLE books
(
books_id bigint ,
name character(80) DEFAULT 'no name',
UNIQUE (books_id) );
CREATE TABLE books
(
name character(80) DEFAULT 'no name', author character(50),
UNIQUE (name, author) );
Все права защищены. www.haulmont.ru info@haulmont.com |
© HAULMONT, 2012 |