- •Среда программирования vb.
- •Лабораторная работа №2 (проверочная) Рабочее задание:
- •Лабораторная работа №3.
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Лабораторная работа №9
- •Лабораторная работа №10
- •Лабораторная работа №11
- •Создание таблицы.
- •Первичные и внешние ключи.
- •Изменение таблицы, которая уже была создана.
- •Исключение таблицы.
- •Лабораторная работа №12 «Создание запросов»
- •Команда Select.
- •Реляционные операторы.
- •Булевы операторы.
- •Специальные операторы.
- •Использование выражений в командах Select.
- •Работа с данными с помощью функций агрегирования.
- •Использование множества таблиц в одном запросе.
- •Вложение запросов.
- •Использование агрегатных функций в подзапросах.
- •Применение подзапросов, которые формируют множественные строки с помощью in.
- •Связанные подзапросы.
- •Представления (view).
- •Групповые представления.
- •Удаление представлений.
Лабораторная работа №11
«Создание таблиц, загрузка и корректировка данных с помощью программы Quest SoftWare TOAD»
Цель работы: Количество часов: 2
Знакомство с программой Quest SoftWare TOAD. Освоение создания структур таблиц. Определение внешних и первичных ключей в таблицах. Загрузка данных в таблицы, просмотр данных в таблицах и их корректировка.
Рабочее задание:
Создать пять таблиц с именами PERSONS, GRUPPY, OBUCHENIE, FORMY_OB, SPECIAL. Имя каждой из таблиц должно оканчиваться на ваш порядковый номер по журналу (можете уточнить свой номер у преподавателя). При создании таблиц – определить первичный или внешний ключ, для каждого поля - тип данных, число символов, обязательность или необязательность. Данные для каждого поля взять из рисунка 3.1.
Рисунок 11.1. Физическая модель данных
В каждую созданную таблицу добавить три – четыре записи, соблюдая целостность данных (т.е. значение поля внешнего ключа должно совпадать со значением поля первичного ключа).
Сдать работу преподавателю.
Общие сведения:
Создание таблицы.
Таблицы определяются с помощью команды CREATE TABLE.
Синтаксис команды:
CREATE TABLE <имя таблицы>
(<имя столбца><тип данных>(<размер>),
<имя столбца><тип данных>(<размер>), …);
Для определения полей в таблицах используются типы данных:
CHAR, VARCHAR2 (CHARACTER) – текстовый, для этого типа аргумент размера – целое неотрицательное число, задающее максимальную длину строки. Значения этого типа заключаются в кавычки;
NUMBER, INTEGER – число без явно представленной десятичной точки. Аргумент размера можно не использовать. В этом случае он назначается автоматически в зависимости от конкретного способа реализации (в большинстве случаях – 8 символов).
DEC (DECIMAL) – десятичное число, т.е. число, которое может иметь в своем представлении десятичную точку. Соответственно, аргумент размера имеет две части: m - точность и n – масштаб, т.е. decimal (m,n). Масштаб не может превышать точность. Точность показывает количество значащих десятичных разрядов.
DATE – дата/время. Аргумент размера не задается. Форматом даты является краткий вид: дд.мм.гг.
Примечание! В SQL пробелы используются для разделения отдельных частей команд, поэтому их нельзя использовать как часть имени таблицы (либо как часть какого-либо другого объекта, например индекса). Символ подчеркивания наиболее часто используется для разделения слов в именах таблиц.
Таблицы принадлежат пользователю, который их создал, и имена этих таблиц должны различаться, как и имена столбцов, в пределах одной таблицы. Но различные таблицы могут иметь одноименные столбцы. Порядок столбцов в определении таблицы существенен, он определяет порядок, в котором задаются значения элементов строк.
Первичные и внешние ключи.
Когда все значения одного из полей таблицы должны быть представлены в поле другой таблицы, это означает, что поле ссылается на (refers to) или является ссылкой (references) на таблицу. Это свидетельствует о прямой связи между значениями двух полей.
Когда поле таблицы ссылается на другое поле (в другой таблице), оно называется внешним ключом (foreign key), поле, на которое он ссылается, называется его родительским ключом (primary key). Имена внешнего и родительского ключей могут быть неодинаковыми; одинаковые имена - это соглашение, принятое с целью сделать связи более понятными.
Внешний ключ, как и первичный (родительский), может быть определен на любом количестве полей, которые все вместе рассматриваются как единое целое, т.е. как составной ключ. Внешний ключ и родительский ключ, на который он ссылается, должны быть определены на одинаковом множестве полей (по количеству полей, типам полей и порядку следования полей).
SQL поддерживает ссылочную целостность с ограничением FOREIGN KEY. Назначение FOREIGN KEY — ограничить вводимые в базу данных значения так, чтобы внешний ключ и его родительский ключ соответствовали принципам ссылочной целостности.
Ограничение FOREIGN KEY используется в команде CREATE TABLE (или в команде ALTER TABLE), содержащей поле, которое желательно объявить внешним ключом. Указывается имя родительского ключа, на который есть ссылка в ограничении внешнего ключа. Это ограничение, как и любое другое рассмотренное ранее, размещается в команде.
Синтаксис ограничения на таблицу FOREIGN KEY:
FOREIGN KEY <список столбцов>
REFERENCES <имя таблицы> [<список столбцов>]
Первый список столбцов представляет собой заключенный в круглые скобки список из одного или более столбцов таблицы, перечисленных через запятую, создаваемых или изменяемых этой командой. Предложение REFERENCES задает имя таблицы, содержащей родительский ключ. Это может быть та же самая таблица, которая создается или изменяется в текущей команде. Второй список столбцов представляет собой заключенный в круглые скобки список столбцов, которые формируют родительский ключ (имена столбцов указываются через запятую). Два списка столбце должны быть сравнимы, т.е.:
Они должны иметь одинаковое количество столбцов.
Первый, второй, третий и т.д. элемент списка столбцов внешнего ключа должны иметь тот же тип и размер, что и соответствующие элементы -первый, второй, третий и т.д. — списка родительского ключа.
Используя ограничение на таблицу или на столбец FOREIGN KEY, можно опустить список столбцов родительского ключа, если он имеет ограничение PRIMARY KEY.
Родительский ключ должен быть структурирован так, чтобы была уверенность, что каждое значение внешнего ключа соответствует отдельной строке. Это означает, что оно должно быть уникальным и не должно содержать NULL-значений. Недостаточно, чтобы родительский ключ полностью удовлетворял этим требованиям только в тот момент, когда объявляется внешний ключ. SQL должен гарантировать, что повторяющиеся или NULL-значения не будут введены в родительский ключ. Следовательно, необходимо иметь уверенность, что все поля, которые используются как родительские ключи, имеют либо ограничение PRIMARY KEY, либо ограничение UNIQUE, а также ограничение NOT NULL.
Синтаксис команды CREATE TABLE с определением родительского ключа:
CREATE TABLE <имя таблицы>
(<имя столбца><тип данных>(размер) primary key,
<имя столбца><тип данных>(размер) not null, …);
Использование ограничений для исключения NULL-значения.
NULL – специальный символ, обозначающий что поле пусто. Если при создании таблицы не было указано никаких ограничений NULL-значений, то столбцы таблицы автоматически формируются так, что могут содержать пустые поля. Но это полезно не всегда. Первичные ключи никогда не содержат NULL-значений, поскольку необходимо, чтобы поля содержали определенные значения. Для этого используется ключевое поле NOT NULL. Если при создании таблицы NOT NULL размещается непосредственно после типа данных (включая размер) столбца, то любые попытки ввести NULL-значения в данное поле будут отвергнуты.
Пример:
CREATE TABLE <имя таблицы>
(<имя столбца><тип данных>(<размер>) NOT NULL primary key,
<имя столбца><тип данных>(<размер>), NOT NULL …,
foreign key (имя столбца)
references (имя таблицы (список полей)));
