Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
53-59_БД.doc
Скачиваний:
3
Добавлен:
28.08.2019
Размер:
171.52 Кб
Скачать

57. Работа с таблицами баз данных: определение, операции выборки и модификации.

Реляционная база данных (БД) – это неизбыточный набор взаимосвязанных данных, хранящихся в таблицах вместе с некоторыми программами по их обработке (хранимые процедуры и триггеры). Таблицы бывают постоянные (Таблицы – Table) и виртуальные (Просмотры, Обзоры или Представления - View).

Таблицы – основное реальное хранилище данных в составе БД. Они состоят из записей, каждая из которых имеет одинаковый вид (структуру), определяемый списком полей (колонок). Набор полей определяет структуру таблицы. Каждое поле имеет уникальное имя, тип и ширину. Имеется набор основных операций для обработки записей таблиц – добавление записей, изменение значений полей, удаление записей, поиск, упорядочивание. Эти операции могут выполняться над отдельными записями или над группами записей.

Просмотры – это виртуальные таблицы, которые строятся на основе запросов к другим таблицам и обычно используются для просмотра полученной информации. Реально информация хранится в источниках – таблицах и курсорах. Локальные просмотры строятся на основе источников «родного» формата, т.е. на базе таблиц той же СУБД. Если в качестве источников выступают данные других форматов (например, MS SQL Server или Oracle), то такие просмотры называются удаленными и для работы с ними надо устанавливать специальные соединения (Connection) с другими СУБД. В этом случае надо использовать специальные программы-драйверы, преобразующие таблицы и данные из одного формата в другой. В некоторых случаях через просмотры можно менять значения полей в таблицах-источниках, где хранятся данные.

Для создания постоянной таблицы необходимо задать ее структуру в операторе CREATE TABLE <таблица> (<поле-1>, <поле-2>, …<поле-N>), т.е. указать имя таблицы с местоположением на диске и описать вид каждого поля. При этом можно указывать значение поля по умолчанию, возможность пустого значения, наличие простых индексов по полям и условия достоверности данных на уровне поля и на уровне записи. Это набор логических условий, которым должны удовлетворять новые данные, которые добавляются или заменяют старые значения в полях.

Между таблицами могут быть установлены постоянные отношения или временные связи. Отношения используются для автоматического поддержания ссылочной целостности данных во взаимосвязанных таблицах, а временные связи между ними устанавливаются только на время выполнения какого-то фрагмента программы. В связанных таблицах одна из таблиц (на которую ссылаются из другой таблицы) называется родительской, другая – дочерней (таблица, которая ссылается на другую). Родительская таблица обязательно должна быть проиндексирована, так как именно за счет индексов достигается быстрая связь между записями таблиц. Для постоянных отношений индекс родительской таблицы должен быть первичным, т.е. с уникальными значениями.

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

Общий вид оператора выглядит следующим образом:

SELECT <описания полей новой таблицы - результата>

FROM <список таблиц-источников>

INTO <получатель результата>

WHERE <условия>

GROUP BY <группировка записей в результате>

ORDER BY <порядок записей в результате>

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

Tab.* - выбрать все поля исходной таблицы с именем Tab

Tab.Name, Tab.Date, Student.Num – выбрать указанные поля из соответствующих таблиц

Tab.Date AS Date1 – выбрать поле из таблицы и в результате дать этому полю новое имя

Если в нескольких таблицах есть одноименные поля, то необходимо уточнять имя поля с помощью имени или псевдонима таблицы. Для выборки данных из нескольких источников в конструкции FROM необходимо указать имена всех исходных таблиц. Если у них длинные имена, то временно им можно присвоить короткие псевдонимы. Например,

FROM Student s, University u – таблице Student дается псевдоним s, а таблице University – псевдоним u.

Указание получателя результатов выборки выполняется в конструкции INTO. Результаты можно поместить в новую постоянную таблицу, во временную таблицу – курсор, вывести на экран, на печать или в текстовый файл. Курсор, получающийся как результат запроса, является неизменяемым. Для таблицы можно указать и ее местоположение на диске (путь к файлу).

Очень важной конструкцией для получения правильных результатов является конструкция WHERE, которая задает условия выборки записей из таблиц. Это условие может также задавать условие объединения записей из различных таблиц в результат. Если условие не задано, то в результате получается декартово произведение таблиц, т.е. каждая запись одной таблицы соединяется с каждой записью второй таблицы и т.д.

Пример копирования таблицы с помощью оператора выборки:

SELECT *

FROM Tab

INTO TABLE TabCopy

Пример выборки всех клиентов, чьи суммы за период превосходят 1000

SELECT Client

FROM Document

WHERE data BETWEEN ’12.02.11’ and ’24.03.11’

GROUP BY Client

HAVING Sum>1000

NCL

Client

Sum

Date

1

васечкин

1000

Документ:

DROP – удаление содержимого тбл вместе с описанием структуры тбл, DELETE – удаление только содержимого.

Удаление записей бывают логическое и физическое удаление. Оператор DELETE выполняет удаление всех записей из таблицы, которые удовлетворяют заданному условию, сохраняя само описание тбл.

DELETE FROM <таблица> ON <условие для удаления>

DELETE FROM document

WHERE NC=2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]