Таблицы
Данные в реляционных базах данных хранятся в таблицах. Таблицы - это ключевой объект, с которыми придется работать в SQL.
Таблицы в БД совсем не отличаются от тех таблиц, с которыми все уже знакомы со школы - они состоят из колонок и строк.
Каждая колонка в таблице имеет своё имя и свой тип, т.е. тип данных, которые будут в ней содержаться. Помимо типа данных для колонки можно указать максимальный размер данных, которые могут содержаться в этой таблице.
Например, мы можем указать, что для колонки возраст тип данных - это целое число, и это число должно состоять максимум из 3-х цифр.
Т.о. максимальное число, которое может содержаться в этой колонке - 999. А с помощью дополнительных конструкций можно задать и правила проверки корректности для значения в колонке,- например, мы можем указать, что для колонки возраст минимальное значение = 18.
Создание таблицы
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)
)Эта таблица может содержать, например, такие данные:
| 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
)В этом примере создается таблица 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
)Теперь БД гарантирует, что колонка 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
);Комментарии к таблице, колонкам
Для создаваемых таблиц и их колонок можно указывать комментарии. Это значитально облегчит понимание того, для чего и как они используются.
Например, укажем комментарии для таблицы 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 '';