Шаг 6. Создание таблиц

Как мы уже поняли, основная информация, с которой нам предстоит работать в базе данных, находится в таблицах. Из шага 4 (таблицы в базе данных) про таблицы мы узнали следующие важные сведения:

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

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

• для каждой колонки таблицы задается свой тип данных (про типы данных подробно рассказывается в предыдущем шаге).

Важные замечания

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

Например, нельзя назвать таблицу или колонку GROUP, это зарезервированное слово, часть команды GROUP BY, или же недопустимо называть таблицу или колонку таблицы FROM, SELECT, INSERT, KEY.

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

3. Очень желательно, чтобы наименования таблиц, а также наименования колонок таблиц отражали смыл относительно данных, которые содержатся в этих таблицах, например: MANS, CARS, STAFF – люди, машины, персонал, GOODS – товары, ITEMS – элементы.

Теория и практика

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

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

Для создания таблиц используется специальная команда SQL CREATE TABLE.

Синтаксис упрощенный.

CREATE TABLE имя таблицы (

Column_NAME1 column_type (NUMBER, или VARCHAR2 (n) или DATE) primary KEY,

Column_NAME 2 column_type (NUMBER, или VARCHAR2 (n) или DATE),

Column_NAMEn column_type (NUMBER или VARCHAR2 (n) или DATE)

);

Для простоты на начальном этапе в наших практических примерах мы будем использовать три основных типа данных.

(NUMBER, VARCHAR2 (n), DATE), соответственно, для хранения чисел, строковых данных и данных календарного типа (дата/время).

Для текстового типа VARCHAR2 (n) после VARCHAR2 в скобках указывается количество символов для данной колонки.


Итак, сначала идет команда создания таблицы CREATE TABLE, далее – наименование таблицы: MANS, GOODS, ITEMS или любое другое.

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

Вот несколько примеров, как создавать таблицы в языке SQL:

1. Создать таблицу «Мебель»:

• артикул;

• наименование;

• количество;

• номер партии.

CREATE TABLE furnit (artikl VARCHAR2 (50) PRIMARY KEY, NAME VARCHAR2 (50),partCOUNT NUMBER, partnum NUMBER);

2. Создать таблицу «Корзина для веб-магазина»:

• артикул;

• наименование товара;

• имя покупателя;

• количество;

• дата покупки.

CREATE TABLE shopINgcart (

article VARCHAR2 (50) PRIMARY KEY

,itemNAME VARCHAR2 (50)

,buyerNAME VARCHAR2 (50)

,itemCOUNT NUMBER

,dtbuy DATE

);

Создать таблицу «Предприятие»:

• название бригады;

• номер бригады;

• количество человек;

• дата создания;

• направление деятельности.

CREATE TABLE plant

(

NAMEteam VARCHAR2 (15),

numteam NUMBER PRIMARY KEY,

MANCOUNT NUMBER,

crDATE DATE,

dirToDo VARCHAR2 (30)

);

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

Можно ли использовать заглавные буквы в языке SQL и когда это допустимо?

Язык SQL не зависит от регистра, то есть при составлении команд можно писать и заглавными, и строчными буквами.

Примеры

Create TABLE Tab1 (TABno INteger PRIMARY KEY, NAME VARCHAR2 (10));

Create TABLE Tab1 (TABno INteger PRIMARY KEY, NAME VARCHAR2 (10));

CREATE TABLE Tab1 (TABNo INTEGER PRIMARY KEY, NAME VARCHAR2 (10));


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

Язык SQL допускает достаточно вольный перенос строк, главное, не разделять этим переносом осмысленные команды, а также соблюдать последовательность команд.

Примеры

Можно написать так:

CREATE TABLE TAB1 (TABno INteger PRIMARY KEY, NAME VARCHAR2 (10));

А можно и так:

CREATE TABLE

TAB1 (

TABno INteger PRIMARY KEY,

NAME VARCHAR2 (10));

А вот такая запись уже неверна:

CREATE TABLE TAB1 (TABno INteger PRIMARY

KEY, NAME VARCHAR2

(10));

Еще один пример неверной записи:

CREATE TABLE

PRIMARY KEY

TAB1 (TABno INteger,

NAME VARCHAR2 (10));

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

1. Найдите ошибку в скрипте создания таблицы.

CREATE TABLE ORACLE1 (81NAME VARCHAR2 (20), ITEMS NUMBER);

Загрузка...