Таблицы
Данные в реляционных базах данных хранятся в таблицах. Таблицы - это ключевой объект, с которыми придется работать в SQL.
Таблицы в БД совсем не отличаются от тех таблиц, с которыми все уже знакомы со школы - они состоят из колонок и строк.
Каждая колонка в таблице имеет своё имя и свой тип, т.е. тип данных, которые будут в ней содержаться. Помимо типа данных для колонки можно указать максимальный размер данных, которые могут содержаться в этой таблице.
Например, мы можем указать, что для колонки возраст тип данных - это целое число, и это число должно состоять максимум из 3-х цифр. Т.о. максимальное число, которое может содержаться в этой колонке = 999. А с помощью дополнительных конструкций можно задать и правила проверки корректности для значения в колонке,- например, мы можем указать, что для колонки возраст в таблице минимальное значение = 18.
Создание таблицы
create table hello(
text_to_hello varchar2(100)
);
create table hello(
text_to_hello varchar2(100)
);
После выполнения данной sql-команды в базе данных будет создана таблица под названием hello
. Эта таблица будет содержать всего одну колонку под названием text_to_hello
. В этой колонке мы можем хранить только строковые значения(т.е. любой текст, который можно ввести с клавиатуры) длинной до 100 байт.
Обратите внимание на размер допустимого текста в колонке text_to_hello
. 100 байт - это не одно и то же, что и 100 символов! Для того, чтобы сказать базе данных Oracle, что длина строки может быть 100 символов, нужно было определить столбец следующим образом:
text_to_hello varchar2(100 char)
Создание таблицы с несколькими полями
В таблице может много столбцов. Например, можно создать таблицу с тремя, пятью или даже 100 колонками. В версиях oracle с 8i по 11g максимальное количество колонок в одной таблице достигает 1000.
Для того, чтобы создать таблицу с несколькими колонками, нужно перечислить все колонки через запятую.
Например, создадим таблицу cars
, в которой будем хранить марку автомобиля и страну-производитель:
create table cars(
model varchar2(50 char),
country varchar2(70 char)
)
create table cars(
model varchar2(50 char),
country varchar2(70 char)
)
Эта таблица может содержать, например, такие данные:
model | country |
---|---|
toyota | japan |
ВАЗ | Россия |
Tesla |
Следует обратить внимание на последние 2 строки в таблице cars
- они не полные. Первая из них содержит данные только в колонке model
, вторая - не содержит данных ни в одной из колонок. Эта таблица может даже состоять из миллиона строк, подобных последней - и каждая строка не будет содержать в себе абсолютно никаких данных.
Значения по умолчанию
При создании таблицы можно указать, какое значение будет принимать колонка по умолчанию:
create table cars(
model varchar2(50 char),
country varchar2(50 char),
wheel_count number(2) default 4
)
create table cars(
model varchar2(50 char),
country varchar2(50 char),
wheel_count number(2) default 4
)
В этом примере создается таблица cars, в которой помимо модели и страны-производителя хранится еще и количество колес, которое имеет автомобиль. И поле wheel_count
по-умолчанию будет принимать значение, равное 4.
Что значит по-умолчанию? Это значит, что если при вставке данных в эту таблицу не указать значение для колонки wheel_count
, то оно будет равно числу 4.
Понятие NULL. Not-null колонки
Ячейки в таблицах могут быть пустыми, т.е. не содержать значения. Для обозначения отсутствия значения в ячейке используется ключевое слово NULL
. Null могут содержать ячейки с любым типом данных.
Рассмотрим таблицу cars из предыдущего примера. В каждой из трех ее колонок может храниться Null(даже в колонке wheel_count
, если указать значение Null явно при вставке).
Но представляют ли информационную ценность строки в таблице, где абсолютно нет значений? Конечно нет. Если рассматривать таблицу cars
как источник информации об автомобилях, то нам хотелось бы получать хоть какую-то полезную информацию. Наиболее важной здесь будет колонка model
- без нее информация о стране-производителе и количестве колес будет бесполезной.
Для того, чтобы запретить Null-значения в колонке при создании таблицы, к описанию колонки добавляется not null
:
create table cars(
model varchar2(50 char) not null,
country varchar2(50 char),
wheel_count number(2) default 4
)
create table cars(
model varchar2(50 char) not null,
country varchar2(50 char),
wheel_count number(2) default 4
)
Теперь БД гарантирует, что колонка model
не будет пустой, по крайней мере до тех пор, пока флаг not null
включен для этой колонки.
Также можно указать, что колонка wheel_count
тоже не должна содержать Null
:
create table cars(
model varchar2(50 char) not null,
country varchar2(50 char),
wheel_count number(2) default 4 not null
);
create table cars(
model varchar2(50 char) not null,
country varchar2(50 char),
wheel_count number(2) default 4 not null
);
Комментарии к таблице, колонкам
Для создаваемых таблиц и их колонок можно указывать комментарии. Это значитально облегчит понимание того, для чего и как они используются.
Например, укажем комментарии для таблицы cars
и ее колонок:
comment on table cars is 'Список автомобилей';
comment on column cars.model is 'Модель авто, согласно тех. паспорту';
comment on column cars.country is 'Страна-производитель';
comment on column cars.wheel_count is 'Количество колес';
comment on table cars is 'Список автомобилей';
comment on column cars.model is 'Модель авто, согласно тех. паспорту';
comment on column cars.country is 'Страна-производитель';
comment on column cars.wheel_count is 'Количество колес';
Для того, чтобы удалить комментарий, нужно просто задать в качестве его значения пустую строку:
comment on table cars is '';
comment on table cars is '';