Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Додатові відомості про зв’язування таблицьСодержание книги
Поиск на нашем сайте
В результаті зв’язування двох таблиць можуть утворюватись динамічні набори даних. В кожній із таблиць є ключове поле. Записи в таблицях упорядковуються за значеннями ключового поля. Хоча б одна із зв’язуваних таблиць має первинний ключ. Множину значень ключів позначимо К1 та К2 відповідно для кожної із таблиць, як схематично вказано на Рис 5.3.
Рис. 5.3. Схема зв’язування таблиць
Позначимо ці множини як К1= {k11, k12 …,k1n}, К2= {k21, k22 …,k2m} Не завжди К1=К2, тобто необов’язково множини значень ключів співпадають. Ця обставина впливає на спосіб утворення динамічних наборів. При утворенні динамічних наборів зв’язаних таблиць поточні записи однієї таблиці доповнюються відповідними записами другої таблиці. Нехай поточний запис таблиці1 буде позначено Р. Відповідність записів встановлюється по співпаданню значень ключа (k1і= k2і). Позначимо відповідний запис у іншій таблиці як В. Якщо К1=К2, то поточний записдинамічного набору утворюється як об’єднання Р U В, або схематично запис динамічного набору можна представити як показано нижч Така ситуація описується за допомогою SQL у реченні FROM наступним чином:
FROM таблица_1 INNER JOIN таблица_2 ON таблица_1.поле_1 оператор таблица_2.поле_2,
Якщо К1¹К2, то говорять про зовнішнє об’єднання. При зовнішньому об’єднанні таблиць уточнюють наступне: 1. записи якої з таблиць поповнюються відповідними записами зв’язаної таблиці; 2. як діяти, якщо відсутній відповідний запис у зв’язаній таблиці. Якщо при формуванні динамічного набору поповнюються записи однієї таблиці (умовимся називати її таблицяР) записами іншої таблиці, то у результуючу таблицю включаються усі записи таблиціР). Такою таблицеюР у різних ситуаціях може бути або таблиця 1 або таблиця 2. Якщо таблицеюР є таблиця 1, то говорять про створення лівого зовнішнього об’єднання, бо у наших позначеннях таблиця 1 розташована зліва і у реченні FROM в аргументах записується першою
FROM таблица_1 LEFT JOIN таблица_2 ON таблица_1.поле_1 оператор таблица_2.поле_2,
Схематично запис, що утворюється при лівому зовнішньому об’єднанні можна вказати, використовуючи введені позначення, розглянувши дві ситуації: 2. Якщо відповідний запис у таблиці2 відсутній, то поточний запис формується як вказано на схемі, що подається нижче: Якщо таблицеюР є таблиця 2 то говорять про створення правого зовнішнього об’єднання, бо у наших позначеннях таблиця 2 розташована праворуч, а у реченні FROM в аргументах записується другою
FROM таблица_1 RIGHT JOIN таблица_2 ON таблица_1.поле_1 оператор таблица_2.поле_2,
Схематично запис, що утворюється при правому зовнішньому об’єднанні можна вказати, використовуючи введені позначення, розглянувши дві ситуації: 1. Якщо відповідний запис у зв’язаній таблиці існує, то поточний запис результуючої таблиці формується так, як схематично показано на схемі, наведеній нижче:
2. Якщо відповідний запис у зв’язаній таблиці - відсутній, то поточний запис результуючої формується так, як схематично показано на схемі, наведеній нижче без заповнення полів, що відповідають зв’язаній таблиці. Вкажемо аргументи операцій з’єднання у реченні FROM.
Якщо потрібно включити у результат лише записи, що мають однакові значеннях у полях зв’язку, то використовують операцію INNER JOIN. Операції LEFT JOIN, RIGHT JOIN можуть вкладатись у операцію INNER JOIN, але не навпаки. Поля типу МЕМО не об’єднуються. Поле зв’язку не буде включатись у результуючу таблицю, якщо воно не включено в речення SELECT. Щоб зв’язати кілька речень ON в JOIN, використовують наступний синтаксис:
SELECT поля FROM таблица_1 INNER JOIN таблица_2 ON таблица_1.поле_1 оператор таблица_2.поле_1 AND ON таблица_1.поле_2 оператор таблица_2.поле_2) OR ON таблица_1.поле_3 оператор таблица_2.поле_3)]; Висновки: 1. Таким чином, системи управління базами данних Access дозволяють розробити невичерпне число різноманітних запитів необхідних користувачеві. 2. Кожному запиту на мові QBE відповідає тотожній по результатам SQL-запит, але у зворотньому порядку це незавжди вірно. 3. SQL-запитизабезпечують: ¨ формування джерел даних для полів зі списком; ¨ визначення обчислювальних полів; ¨ фільтрацію даних. 6. Вибранні питання роботи з операторами SQL, що змінюють структуру бази даних
Існує особливий тип запитів, які створюються користувачами в Конструкторі запитів за допомогою інструкцій SQL та команди меню Запит, Запит SQL. До останніх відносять; · Запит SQL, Объединение - забезпечує злиття даних кількох джерел (Таблиць/запитів), що мають однакову структуру даних; · Запит SQL, К серверу – за допомогою такого запиту можнастворити запит до сервера; · Запит SQL, Управление – призначений для створення, модифікації структури таблиці програмним способом.
Створення таблиці
Розглянемо приклад: за допомогою SQL створити структуру таблиці “Контролер”, яка має у своєму складі два поля: ¨ Цілочислене поле Код контролера, являє собою первинний ключ; ¨ Текстове поле “Пр” дл я зберіганняпрізвища контролера. Для створення структури вказаної таблиці потрібно виконати наступні дії: 1. Перейти на вкладку “Запити» у вікні бази даних, натиснути <Cоздать>, вибрати Конструктор, таблиці для конструктора запитів не відбирати. 2. Виконати команду меню Запрос, Запрос SQL, Управление. 3. У вікні Управлющий запрос набрати інструкцію:
CREATE TABLE [Контролер] ([Код контролера] SINGLE, [Пр] CHAR (50));
Вказана інструкція відповідає синтаксису CREATE TABLE, див. також Розділ 3.1.
CREATE TABLE таблиця (поле_1 тип [(размер)] [NOT NULL] [индекс_1] [, поле_2 тип [(размер)] [NOT NULL] [индекс_2] [,...]] [, CONSTRAINT составнойИндекс [,...]])
Аргументи інструкції CREATE TABLE вказані в табл.3.2. Інструкція CREATE TABLE вміщує дані про типи та розміри створюваних полів. Виконання запиту (меню Запрос, Запуск), не супроводжується виведенням на монітор таблиці. Щоб пересвідчитись у тому, що створено нову порожню таблицю необхідно відкрити вкладку Таблицы, віднайтиновостворену таблицю та відкрити її у табличному режимі та Конструкторе Таблиц (щоб перевірити результат виконання управляючого запита). Зазначимо, що запит на створення та запит SQL на створення порожньої таблиці - абсолютно різні запити і мають різні іконки: Структуру нової таблиці можна створювати програмно. У такому випадку необхідно задати (для кожного поля створюваної таблиці) типи даних. В системі управління базами данних Access базовою мовою є VB, тому для практичного використання буде корисним співставлення наборів типів даних, представлених у вигляді наступної таблиці. У першому стовпчику таблиці наведено типи даних, які доступні у режимі конструктора Таблиц або можуть бути вказані значення властивості Размер поля (FieldSize). У другому стовпчику перераховані відповідні типи даних запитів, які доступні у режимі конструктора для запитів в діалоговому вікні Параметры запроса (Сервис, Параметры). У третьому стовпчику перераховуються відповідні типи даних Visual Basic. У четвертому - перераховуються типи даних об’єкта доступа до даних (DAO) Field, а у п’ятому відповідні типи даних SQL ядра бази Jet, а також допустимі синоними до них. Зазначимо, що Таблиця заповнена на російській мові відповідно до русифікованої версіії системи управління базами данних Acces. Типи даних
Microsoft Access підтримує наступні управляючі інструкції.
Зауваження! При перетворенні управляючого запиту в запит іншого типу, напиклад, у запит на вибірку, введена інструкція SQL буде втрачена. · Для створення або зміни об’єктів бази даних на сервері ODBC, наприклад, Microsoft SQL Server, слід використовувати запити до сервера, а не управляючі запити. Для створення поля з підстановкою можна використати інструкцію: SELECT DISTINCTROW Контролер.Пр, Контролер.[Код контролера] FROM Контролер; Приклад створення таблиці з індексацією CREATE TABLE Нова ([Код_контролера] integer, [Прізвище] text, [Ім’я] text, [ДатаКонтракту] date, [Телефон] text, [Примітка] memo, CONSTRAINT [Индекс1] PRIMARY KEY ([Код_контролера])); Створення таблиці на основі запиту Якщо потрібно створити нову таблицю, яка наповнюється даними бази даних на основі раніше розробленого запиту (див., наприклад,Табл. 5. 1.), то необхідко у відповідному запиті вказати ім’я створюваної таблиці. Вкажемо ім’я “Вартість тестувань ”: SELECT Запит21.* INTO [Вартість тестувань] FROM Запит21;
У даному прикладі була використана інструкція SELECT...INTO Синтаксис, якої наведено нижче
SELECT поле_1[, поле_2[,...]] INTO новаяТаблиця [IN внешняяБазаДаних ] FROM источник
Аргументы інструкції SELECT...INTO:
Запит на створення таблиці можна використовувати для архівування, створення резервних копій таблиці, копій для експорта в іншу базу даних, а також у якості основи звітів, що відтворюють дані за конкретний період часу. Зауваження: · У новій таблиці можна визначити ключ. При створенні таблиці поля в новій таблиці наслідують типи даних і розміри базових полів; ніякі інші властивості Таблиц та полів не передаються. · Для додавання даних в існуючу таблицю використовують інструкцію INSERT INTO замість запита на додавання записів.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-06-29; просмотров: 232; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.131.51 (0.009 с.) |