Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики

Максим Михайлович Чалышев

Более 300 ответов на вопросы.Более 500 практических заданий.Более 1000 разобранных примеров.Учебник справочник по языку SQL.

Оглавление

Шаг 4. Таблицы в базе данных

Теория

База данных — это, прежде всего, таблицы. Таблицы базы данных можно представить как таблицы в WORD или EXCEL, где в каждой ячейке содержатся определенные данные, но также есть и некоторые отличия.

Дело в том, что таблицы в базах данных создаются по некоторым правилам, и вот основные правила для таблиц в базе данных.

Так как мы изучаем SQL-диалект ORACLE СУБД, то данные правила справедливы именно для СУБД ORACLE:

• любая таблица в базе имеет уникальное наименование в рамках схемы данных;

• у каждой таблицы всегда есть заданное количество колонок: больше нуля и меньше 1024;

• каждая колонка также должна иметь уникальное наименование, но уже в рамках данной таблицы;

• в таблице в базе данных может быть практически неограниченное количество строк, здесь ограничения касаются только объема диска базы данных;

• для данных в таблице можно создавать ограничения. Ограничения касаются всех данных в колонке, на которую установлено ограничение;

• имена таблиц, имена колонок имеют ограничения по количеству символов и не могут называться зарезервированным словом, например командой из языка SQL или PL SQL. Также наименование колонки таблицы не должно начинаться с цифр;

• имя колонки в рамках таблицы также должно быть уникальным.

Создание таблиц по указанным правилам — это первый шаг в разработке базы данных.

Таблицы в базе, состав колонок таблицы должны производиться в соответствии со стандартами проектирования реляционной базы данных.

Работа со структурой таблиц, данными в таблицах осуществляется c помощью языка запросов SQL.

Одна или несколько колонок в таблице могут быть обозначены как первичный ключ.

Первичным ключом обозначаются колонки таблицы, содержащие набор уникальных значений, по которым мы можем однозначно идентифицировать строчку в рамках этой таблицы. Первичный ключ не может содержать пустые значения, так как всегда имеет ограничение NOT NULL.

Вторичный ключ — так обозначается колонка таблицы, в которой есть данные, используемые для связи с другой таблицей.

Таблицы нашей учебной схемы

Наша учебная схема очень проста и состоит всего лишь из четырех таблиц.

Первая таблица MAN содержит сведения о людях, которые приобрели машины.

Колонки таблицы MAN:

• PHONEnum — уникальный телефонный номер человека, первичный ключ для таблицы MAN, содержит текстовые данные;

• CITYCode — код города, вторичный ключ для связи с таблицей CITY;

• FirstName — имя человека (текстовые данные);

• LAStName — фамилия человека (текстовые данные);

• YearOld — возраст человека (числовые данные).

Таблица CITY — справочник городов, состоит из трех колонок:

• CITYCODE — уникальный код города, ключевое поле для таблицы CITY (числовые данные);

• CITYNAME — наименование города (текстовые данные);

• PEOPLES — население города, количество человек, которые проживают в городе (числовые данные).

Таблица AUTO — сведения об автомобилях автосалона.

Колонки таблицы AUTO:

• REGnum — уникальный регистрационный номер автомобиля (содержит текстовые данные);

• PHONEnum — телефонный номер покупателя, вторичный ключ для связи с таблицей MAN;

• MARK — марка авто (текстовые данные);

• COLOR — цвет авто (текстовые данные);

• ReleASeDT — дата создания авто, дата/время (специальный тип данных).

Таблица AUTO1 является копией таблицы AUTO и имеет те же колонки, что и таблица AUTO, и достаточно похожие данные, эта таблица используется в нескольких учебных заданиях (так же, как CITY1, MAN1).

Следующее изображение показывает основные таблицы в учебной базе данных в виде схемы:

Рисунок 6. Учебная схема базы данных

Вопросы учеников

Вы сказали, что наименования таблиц должны быть уникальны в рамках одной схемы. Что такое схема?

В СУБД есть понятие схемы — это особая логическая область, ассоциированная с заданной учетной записью, которая объединяет несколько объектов базы данных.

Почему телефонный номер покупателя PHONEnum — текстовое поле, разве оно не должно быть числовым?

Иногда телефонный номер заполняют со скобками. Чтобы разрешить это противоречие, я использовал текстовый (VARCHAR2) тип данных для этой колонки; кроме того, так сделать правильно, так как это упрощает поиск нужных нам номеров по префиксу.

Какие команды SQL позволяют изменять структуру таблицы, добавлять новые колонки, например?

Это команда ALTER TABLE, с которой мы познакомимся чуть позже.

Контрольные вопросы и задания для самостоятельного выполнения

1. Могут ли колонки разных таблиц называться одинаково?

2. Что такое первичный ключ, какие колонки (первичные ключи) есть в нашей учебной схеме?

3. Какие данные находятся в учебной таблице CITY?

4. Какая колонка в таблице MAN нашей учебной схемы содержит данные о возрасте человека?

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я