• Примеры создания таблиц и работа с ними
• Обсуждение опций, связанных с хранением данных в таблицах
• Концепции ссылочной целостности и совместимости данных
Объект базы данных - это любой определенный в базе данных объект, используемый для хранения данных или ссылок на них. К объектам базы данных относятся, например, таблицы, представления, группы (кластеры), последовательности, индексы и синонимы. В течение этого урока в фокусе нашего внимания будут таблицы, поскольку они представляют собой простейшую форму хранения данных в реляционной базе данных.
Схема - это набор объектов базы данных (в ходе текущего урока - таблиц), ассоциированных с одним конкретным именем пользователя базы данных. Пользователь называется владельцем схемы или, иначе, владельцем связанной группы объектов. Вы можете иметь одну или несколько схем в базе данных. Как правило, любой создающий объекты пользователь создает при этом и свою схему. Схема может состоять как из одной таблицы, так и из множества объектов - ограничений практически нет, если только такие ограничения не предполагает конкретная реализация SQL.
Предположим, администратор выдал вам имя пользователя базы данных и пароль. Пусть это имя USER1. Предположим также, что вы подключились к базе данных и создали таблицу с именем EMPLOYEE_TBL. Тогда настоящим именем вашей таблицы будет USER1. EMPLOYEEJTBL. Именем схемы для этой таблицы будет имя пользователя USER1, который является владельцем схемы. Таким образом вы создадите свою первую схему.
Польза схем проявляется в том, что при доступе к таблице из вашей схемы (т. е. схемы, владельцем которой вы являетесь) вам не нужно ссылаться на имя схемы. Так, вы можете сослаться на свою таблицу одним из следующих способов:
EMPLOYEEJTBL USER1.EMPLOYEEJTBL
Первый вариант предпочтительнее из-за меньшего объема. При необходимости доступа к вашей таблице другим пользователям придется указать имя вашей схемы:
USER:.EMPLOYEEJTBL
Из урока 20. "Создание и использование представлений и синонимов", вы узнаете о распределении привилегий доступа среди других пользователей так, чтобы они имели возможность обратиться к вашим таблицам. Вы узнаете также о синонимах, которые дают возможность назначить таблицам другие имена, чтобы избавиться от необходимости каждый раз указывать имя схемы. На рис. 3.1 показаны две схемы в реляционной базе данных.
Рис. 3.1. Схемы в базе данных
На рис. 3.1 показаны два пользователя, USER1 и USER2, имеющие в базе данных свои таблицы. Каждому из пользователей назначена своя схема. Вот примеры того, как эти пользователи могут обращаться к своим и к чужим таблицам: Доступ LJSER1 к своей таблице tableclass="underline" TABLE 1 Доступ USER1 к своей таблице test: TEST Доступ USER1 к таблице tablelO пользователя USER2: USER2.TABLE10 Доступ USER1 к таблице test пользователя USER2: USER2.TEST
Оба пользователя имеют по таблице с именем TEST. Таблицы, принадлежащие разным схемам в базе данных, могут иметь одинаковые имена. Если посмотреть на имена с точки зрения схем, имена таблиц в базе данных всегда будут уникальными, поскольку на самом деле частью имени таблицы всегда является имя владельца схемы. В данном случае, например, имя USER1.TEST отличается от имени USER2.TEST. Если при обращении к таблице по имени вы не укажете имя схемы, сервер базы данных будет искать таблицу только в рамках той схемы, владельцем которой вы являетесь по умолчанию. Например, если USER1 попытается обратиться к TEST, сервер базы данных сначала попытается найти таблицу с именем TEST среди таблиц пользователя USER1 и только потом обратится к другим объектам пользователя USER1, включая и синонимы для таблиц из других схем. Использование синонимов объясняется в ходе урока 21, "Работа с системным каталогом".
Любой сервер баз данных имеет свои правила назначения имен объектов и элементов этих объектов, таких как поля. Правила и соглашения для назначения имен можно уточнить ъ справочной системе каждой конкретной реализации
Таблица является основной формой хранения данных в реляционной базе данных. Таблица состоит из строк и столбцов, содержащих данные. Таблица физически занимает место в базе данных и может быть как постоянной, так и временной.
Поле, называемое также столбцом в реляционной базе данных, является частью таблицы, которой приписан определенный тип данных. Имя поля должно соответствовать типу данных, которые будут вводиться в столбец. Столбцы могут быть помечены как NULL или NOT NULL. В столбец, которому назначено NOT NULL, обязательно должны быть введены какие-нибудь данные. Если же столбец определен как NULL, данные в него вводить не обязательно.
Каждая таблица базы данных должна содержать хотя бы один столбец. Столбцы являются теми элементами таблицы, в которых хранятся данные конкретных типов, например, имя персоны или телефонный номер. Так, один из столбцов в таблице с информацией о клиентах может быть предназначен для хранения имени клиента.
Вообще говоря, имя должно быть одной непрерывной строкой. Как правило, имя объекта должно представлять собой одну непрерывную строку с ограниченным числом символов в ней, зависящим от конкретной реализации SQL. Для разделения слов, из которых складывается имя, обычно используют символ подчеркивания. Например, столбец для хранения имени клиента лучше назвать CUSTOMER_NAME, a Не CUSTOMERNAME.
Не забудьте ознакомиться с правилами присвоения имен объектам и другим элементам базы данных, которые требует ваша конкретная реализация SQL.
Строка представляет запись в таблице базы данных. Например, строка данных в таблице с информацией о клиентах может состоять из кода клиента, его имени, адреса, номера телефона, факса и т. п. Строка состоит* из данных всех полей, относящихся к одной записи в таблице. Таблица может состоять всего из одной строки, а может содержать и миллионы строк данных (записей).
Оператор CREATE TABLE, очевидно, используется для того, чтобы создавать таблицы. Хотя непосредственно создание таблицы оказывается совсем простым делом, прежде, чем использовать оператор CREATE TABLE, нужно со всей тщательностью подойти к вопросу планирования структуры таблицы.
Вот несколько простых вопросов, на которые при создании таблицы нужно получить ответы.
• Какого типа данные будут вводиться в таблицу?
• Каким должно быть имя таблицы?
• Каким столбцом (или столбцами) будет задаваться ключевое поле (составной ключ)?
• Какие имена следует присвоить столбцам (полям)?
• Какие типы данных следует назначить столбцам?
• Какой выбрать длину каждого из столбцов?
• Какие столбцы таблицы будут требовать обязательного ввода данных?
Получив ответы на все эти вопросы, не составляет труда построить подходящий оператор CREATE TABLE и применить его.
Синтаксис оператора для создания таблиц будет следующим:
CREATE TABLE ИМЯ_ТАБЛИЦЫ ( ПОЛЕ1 ТИП ДАННЫХ [ NOT NULL ] , ПОЛЕ2 ТИП ДАННЫХ [ NOT NULL ] , ПОЛЕЗ ТИП ДАННЫХ [ NOT NULL ] , ПОЛЕ4 ТИП ДАННЫХ [ NOT NULL ] , ПОЛЕ5 ТИП ДАННЫХ [ NOT NULL ] ) ;
В примерах этого урока используются такие популярные типы данных, как CHAR (символьный постоянной длины), VARCHAR (символьный переменной длины), NUMBER (числовой, для десятичных и не десятичных значений) и DATE (для значений даты и времени).
Создайте таблицу с именем EMPLOYEE_TBL, например, с помощью следующего оператора:
CREATE TABLE EMPLOYEE_TBL
(EMP_ID CHAR(9) NOT NULL,
EMP_NAME VARCHAR2(40) NOT NULL,
EMP_ST_ADDR VARCHAR2(20) NOT NULL,
EMP_CITY VARCHAR2U5) NOT NULL,
EMP_ST CHAR(2) NOT NULL,
EMP_ZIP NUMBER(5) NOT NULL,
EMP_PHONE NUMBER(10) NULL,