Как в Excel отобразить связанные ячейки. Простая связь между двумя телефонами Как сделать связь в excel

В этой заметке мы научимся создавать связи между таблицами в базе данных MySQL с помощью phpmyadmin . Если по какой-то причине вы не желаете использовать phpmyadmin , смотрите приведенные ниже SQL-запросы.

Почему же связи удобно держать в самой базе данных? Ведь эту задачу обычно решает так и само приложение? Все дело в ограничениях и действиях при изменении, которые можно наложить на связи.

Например, можно запретить удалять категорию, если с ней связана хотя б одна заметка. Или удалить все заметки, если удалена категория. Или установить NULL в связующее поле. В любом случае, с помощью связей повышается отказоустойчивость и надежность приложения.

Для начала, движок таблиц должен быть InnoDB . Только он поддерживает внешние ключи (foreign key ). Если у вас таблицы MyISAM , почитайте как их конвертировать в InnoDB .

Для того, чтобы связать таблицы по полям, необходимо сначала добавить в индекс связываемые поля:

В phpmyadmin выбираем таблицу, выбираем режим структуры, выделяем поле, для которого будем делать внешнюю связь и кликаем Индекс.

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

Это же действие можно сделать с помощью SQL -запроса:

ALTER TABLE `table_name` ADD INDEX (`field_name`) ;

Аналогично добавляем индекс (только в моем случае теперь уже уникальный или первичный) для таблицы, на которую ссылаемся, для поля id. Поскольку поле id у меня идентификатор, для него делаем первичный ключ. Уникальный ключ мог бы понадобится для других уникальных полей.

С помощью SQL -запроса:

ALTER TABLE `table_name` ADD UNIQUE (`field_name`);

Теперь осталось только связать таблицы . Для этого кликаем внизу на пункт Связи:

Теперь для доступных полей (а доступны только проиндексированные поля) выбираем связь с внешними таблицами и действия при изменении записей в таблицах:

Через SQL -запрос:

ALTER TABLE `table_name` ADD FOREIGN KEY (`field_in_table_name_which_need_connect`) REFERENCES `outer_table_to_connect` (`outer_field`) ON DELETE RESTRICT ON UPDATE RESTRICT ;

на этом все, таблицы связаны через foreign key .

Microsoft Access 2007

2.4. Microsoft Access 2007

2.4.3. Установка логических связей в БД Access 2007

Логические связи устанавливаются между одноименными полями таблиц базы данных Access 2007. Связь данных в одной таблице с данными в других таблицах осуществляется через уникальные идентификаторы (ключи) или ключевые поля. В нашем случае мы должны установить логические связи между таблицами: Группы студентов, Студенты, Дисциплины и Успеваемость.

Для установления связей используем ключевые поля: КодГруппы, КодСтудентов и КодДисциплины. Например, между первичным ключом (КодГруппы) tables Группы студентов и вторичным ключом (КодГруппы) tables Студенты устанавливаем связь один - ко - многим.

Прежде чем приступить к созданию логических связей надо в Окне редактирования закрыть все tables и перейти на вкладку Работа с базами данных. Затем щелкнуть на пиктограмме Схема данных, в окне редактирования появится активное диалоговое окно "Добавление таблицы" на фоне неактивного окна Схема данных (рис. 1).


Рис. 1.

В окне Добавление таблиц необходимо выделить имена таблиц и нажать кнопку Добавить, при этом в окне "Схема данных" появятся все tables (рис. 2). После этого необходимо закрыть окно диалога.



Рис. 2.

Далее необходимо установить связи между табл. в окне Схема данных. Для этого в окне Схема данных необходимо отбуксировать (переместить) поле КодГруппы из таблицы Группы студентов на соответствующее поле tables Студенты, в результате этой операции появится окно "Изменение связей" (рис. 3) .



Рис. 3.

В появившемся окне диалога "Изменение связей" (рис. 3) необходимо установить флажки: "Обеспечить целостность данных", "каскадное обновление связанных полей" и "каскадное удаление связанных записей", убедиться в том, что установлен тип отношений один-ко-многим и нажать кнопку Создать.

В окне Схема данных появится связь один-ко-многим между таблицами Группы студентов и Студенты. Аналогичным образом надо связать поля КодСтудента в таблицах Студенты и Успеваемость, а затем поля КодДисциплины в таблицах Успеваемость и Дисциплины. В итоге получим Схему данных, представленную на рисунке 4.



Рис. 4.

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

Затем установить связи между табл. "Студенты" и "Успеваемость", "Дисциплины" и "Успеваемость", так как поля КодСтуденты и КодДисциплины табл. Успеваемость используется в качестве столбца подстановки для заполнения соответствующих полей таблицы Успеваемость.

Отношение в Access позволяет объединить данные из двух разных таблиц. Каждое отношение состоит из двух полей (по одному в каждой таблице) со связанными данными. Например, таблицы "Товары" и "Сведения о заказах" могут содержать поле "КодТовара". Каждая запись в таблице "Сведения о заказах" содержит значение поля "КодТовара", которому соответствует запись в таблице "Товары" с тем же значением в данном поле.

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

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

В этой статье

Обзор

Чтобы создать отношение в базе данных Access, можно воспользоваться одним из указанных ниже методов.

    В окне "Схема данных" добавьте таблицы, которые требуется связать, а затем перетащите нужное поле из одной таблицы в другую.

    Перетащите поле в таблицу из области Список полей .

При создании отношения между таблицами общие поля могут называться по-разному, однако часто требуется, чтобы эти имена совпадали. Очевидно, что общие поля должны иметь одинаковый тип данных. Однако если поле первичного ключа имеет тип "Счетчик", поле внешнего ключа также может быть числовым, если свойство Размер поля (FieldSize) обоих полей совпадает. Например, можно сопоставить поля с типами "Счетчик" и "Числовой", если свойство Размер поля обоих полей имеет значение "Длинное целое". Если оба общих поля являются числовыми, у них должно совпадать значение свойства Размер поля .

Создание отношения между таблицами с помощью окна отношений

Создание отношения между таблицами с помощью панели списка полей

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

Список полей и таблицей, в которую перетаскивается поле, автоматически создается новое отношение "один-ко-многим". Это отношение, созданное Access, не обеспечивает целостность данных по умолчанию. Чтобы обеспечить целостность данных, нужно изменить отношение. Дополнительные сведения см. в разделе .

Открытие таблицы в режиме таблицы

    Дважды щелкните таблицу в области навигации.

Открытие области "Список полей"

В области Список полей отображены все другие таблицы базы данных, сгруппированные по категориям. При работе с таблицей в режиме таблицы в области Список полей отображаются поля в одной из двух категорий: Доступные поля в связанной таблице и . К первой категории относятся все таблицы, связанные отношением с текущей таблицей. Во второй категории перечислены все таблицы, с которыми данная таблица не связана отношением.

Чтобы просмотреть список всех полей таблицы, щелкните знак плюс (+ ) рядом с именем таблицы в области Список полей . Чтобы добавить поле в таблицу, перетащите его из области Список полей в таблицу в режиме таблицы.

Добавление поля и создание связи из области "Список полей"

    Открыв таблицу в режиме таблицы, нажмите клавиши ALT+F8. Будет отображена область Список полей .

    Чтобы отобразить список полей в таблице, в группе Доступные поля в другой таблице щелкните знак плюс (+ ) рядом с именем таблицы.

    Перетащите нужное поле из области Список полей в таблицу, открытую в режиме таблицы.

    Когда появится линия вставки, поместите поле в выбранное место.

    Появится окно мастера подстановок .

    Следуйте инструкциям мастера подстановок .

    Поле будет отображено в таблице в режиме таблицы.

При перетаскивании поля из "другой" (несвязанной) таблицы и выполнении инструкций мастера подстановок между таблицей из области Список полей и таблицей, в которую было перетаскивается поле, автоматически создается новое отношение "один-ко-многим". Это отношение, созданное Access, не обеспечивает целостность данных по умолчанию. Чтобы обеспечить целостность данных, нужно изменить отношение. Дополнительные сведения см. в разделе .

Изменение отношения

Чтобы изменить отношение, выберите его в окне "Схема данных" и внесите нужные изменения.

    Установите указатель на линию связи и щелкните линию, чтобы выделить ее.

    При выделении линия связи становится толще.

    Дважды щелкните выделенную линию связи

    на вкладке Конструктор в группе Сервис выберите команду Изменить связи .

Откроется диалоговое окно Изменение связей .

Открытие диалогового окна "Изменение связей"

Указание типа соединения

При определении отношения между таблицами сведения о нем влияют на структуру запросов. Например, при определении отношения между двумя таблицами и создании запроса, работающего с этими двумя таблицами, в Access автоматически выбираются сопоставляемые поля по умолчанию на основе полей, указанных в отношении. Эти исходные значения в запросе можно переопределить, но часто значения, определенные отношением между таблицами, являются верными. Поскольку сопоставление и объединение данных из двух таблиц являются часто воспроизводимыми действиями во всех базах данных, кроме самых простых, параметры по умолчанию, определенные отношениями между таблицами, могут быть полезны и экономить время.

С помощью запроса к нескольким таблицам можно комбинировать данные из них путем сопоставления значений в общих полях. Операция сопоставления и комбинирования называется объединением. Например, требуется отобразить заказы клиентов. Для этого создается запрос, объединяющий таблицы "Клиенты" и "Заказы" по полю "Код клиента". Результаты запроса содержат сведения о клиенте, а также другие сведения только для строк с найденным соответствующим значением.

Одно из значений, которое можно задать для каждого отношения, - это тип объединения. Тип объединения определяет, какие записи будут включены в результаты запроса. Обратимся к описанному примеру с объединением таблиц "Клиенты" и "Заказы" по общим полям, представляющим код клиента. При использовании типа объединения по умолчанию (внутреннего соединения) запрос возвращает только строки таблиц "Клиенты" и "Заказы", для которых общие поля (также называемые связанными полями) совпадают.

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

Примечание: В этом случае термины "слева" и "справа" относятся к положению таблиц в диалоговом окне Изменение связей , а не в окне "Схема данных".

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

Указание типа соединения

    В диалоговом окне Изменение связей нажмите кнопку Тип соединения .

    Откроется диалоговое окно Параметры соединения .

    Выберите нужные параметры и нажмите кнопку ОК .

В таблице ниже, составленной на основании таблиц "Клиенты" и "Заказы", приведены три варианта, отображаемые в окне Параметры объединения , указан используемый в них тип объединения, а также то, какие именно строки (все или только сопоставленные) возвращаются для каждой из таблиц.

Родственное объединение

Левая таблица

Правая таблица

1. Объединение только тех записей, в которых связанные поля обеих таблиц совпадают.

Внутреннее соединение

Сопоставленные строки

Сопоставленные строки

2. Объединение ВСЕХ записей из таблицы "Клиенты" и только тех записей из таблицы "Заказы", в которых связанные поля совпадают.

Левое внешнее соединение

Все строки

Сопоставленные строки

3. Объединение ВСЕХ записей из таблицы "Заказы" и только тех записей из таблицы "Клиенты", в которых связанные поля совпадают.

Правое внешнее соединение

Сопоставленные строки

Все строки

При выборе варианта 2 или 3 на линии связи будет отображена стрелка, указывающая на ту сторону связи, в которой отображаются только сопоставленные строки.

Внесение изменений в окне "Параметры объединения"

Обеспечение целостности данных

Целью обеспечения целостности данных является предотвращение появления непарных записей, ссылающихся на несуществующие записи. Обеспечение целостности данных включается для конкретного отношения между таблицами. В результате Access отменяет для этого отношения все действия, которые могут нарушить целостность данных. Это означает, что будет отменено как обновление, изменяющее целевой объект ссылки, так и удаление такого целевого объекта. Сведения о том, как настроить в Access распространение операций обновления и удаления таким образом, чтобы в результате изменялись и все связанные строки, см. в разделе .

Включение и отключение обеспечения целостности данных

    На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных .

    На вкладке Конструктор в группе Связи нажмите кнопку Все связи .

    скрытый в диалоговом окне Свойства Параметры переходов

    Дважды щелкните линию связи. Откроется диалоговое окно Изменение связей .

    Выберите или отмените параметр .

    ОК .

В режиме обеспечения целостности данных действуют перечисленные ниже правила.

    Не допускается ввод в поле внешнего ключа связанной таблицы значений, отсутствующих в поле первичного ключа главной таблицы, поскольку это приводит к появлению потерянных записей.

    Не допускается удаление записи из главной таблицы, если в связанной таблице существуют связанные с ней записи. Например, невозможно удалить запись из таблицы "Сотрудники", если в таблице "Заказы" имеются заказы, относящиеся к данному сотруднику. Однако можно удалить главную запись и все связанные записи одним действием, установив флажок .

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

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

    • Общее поле главной таблицы должно быть первичным ключом или иметь уникальный индекс.

      Общие поля должны иметь одинаковый тип данных. Единственное исключение - поле типа "Счетчик" можно связать с полем типа "Числовой", если его свойство Размер поля имеет значение Длинное целое .

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

Задание каскадных параметров

Иногда возникает ситуация, в которой требуется изменить значение только на стороне "один" отношения. В этом случае необходимо, чтобы Access автоматически обновил все затронутые строки в ходе выполнения одной операции. Тогда обновление будет полностью завершено, а база данных не будет находиться в несогласованном состоянии, когда некоторые строки обновлены, а другие - нет. Этой проблемы можно избежать с помощью параметра Access "Каскадное обновление связанных полей". Если при включении обеспечения целостности данных был включен параметр "Каскадное обновление связанных полей", то при последующем обновлении первичного ключа автоматически будут обновлены все связанные с ним поля.

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

Включение и отключение каскадного обновления и каскадного удаления

    На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных .

    На вкладке Конструктор в группе Связи нажмите кнопку Все связи .

    Будут отображены все таблицы с отношениями, а также соответствующие линии связи. Обратите внимание на то, что скрытые таблицы (таблицы, для которых установлен флажок скрытый в диалоговом окне Свойства ) и их отношения не отображаются, если в диалоговом окне Параметры переходов не выбран параметр "Показывать скрытые объекты".

    Щелкните линию отношения, которое вы хотите изменить. При выделении линия связи становится толще.

    Дважды щелкните линию связи.

    Откроется диалоговое окно Изменение связей .

    Установите флажок Обеспечение целостности данных .

    Установите флажок , Каскадное удаление связанных записей или оба эти флажка.

    Внесите в отношение необходимые изменения и нажмите кнопку ОК .

Примечание: Если первичным ключом является поле "Счетчик", установка флажка Каскадное обновление связанных полей не произведет никакого эффекта, поскольку изменить значение поля "Счетчик" нельзя.

Удаление отношения между таблицами

Важно: При удалении связи также отключается обеспечение целостности данных для этой связи, если оно было включено. В результате Access больше не будет автоматически предотвращать появление потерянных записей на стороне "многие" отношения.

Чтобы удалить отношение между таблицами, нужно удалить линию связи в окне "Схема данных". Установите указатель мыши на линию связи и щелкните ее. При выделении линия связи становится толще. Выделив линию связи, нажмите клавишу DEL.

    На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных .

    На вкладке Конструктор в группе Связи нажмите кнопку Все связи .

    Будут отображены все таблицы с отношениями, а также соответствующие линии связи. Обратите внимание на то, что скрытые таблицы (таблицы, для которых установлен флажок скрытый в диалоговом окне Свойства ) и их отношения не отображаются, если в диалоговом окне Параметры переходов не выбран параметр "Показывать скрытые объекты".

    Щелкните линию связи, которую требуется удалить. При выделении линия связи становится толще.

    Нажмите клавишу DEL

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

Примечание: Если одна из таблиц, участвующих в отношении, в данный момент используется (возможно, третьим лицом, процессом либо в открытом объекте базы данных, например в форме), удалить отношение между таблицами будет невозможно. Перед попыткой удаления отношения между таблицами закройте все открытые объекты, использующие эти таблицы.

Создание, изменение и удаление отношения в веб-приложении Access

Существуют важные отличия при работе со связями в веб-приложении Access.

Создание отношения

В веб-приложении Access отсутствует окно "Схема данных". Вместо связи необходимо создать поле подстановки, которое получает значения из связанного поля в другой таблице. Например, предположим, что у вас есть таблица "Сотрудники" и вы хотите добавить подстановку на таблицу "Регионы", чтобы показывать регионы, в которых работают сотрудники.

Примечание: Поле, используемое в качестве источника для подстановки, должно существовать перед созданием поля подстановки.

Вот как можно создать поле подстановки в веб-приложении Access:

Изменение отношения

В веб-приложении Access отсутствует окно "Схема данных". Поле в одной таблице служит источником (полем подстановки) значений для связанного поля в другой таблице.

Удаление отношения

В веб-приложении Access отсутствует окно "Схема данных". Поле в одной таблице служит источником (полем подстановки) значений для связанного поля в другой таблице. Чтобы удалить связь между двумя таблицами в веб-приложении Access, необходимо удалить поле подстановки и связанные с ним данные.

Создание или изменение отношения в веб-базе данных Access 2010

Чтобы создать отношение в веб-базе данных Access 2010, необходимо использовать мастер подстановок. Окно "Схема данных" отсутствует в веб-базе данных. Поле в одной таблице используется в качестве источника для значения в связанном поле другой таблицы.

Примечание: Воспользоваться мастером подстановок можно только при наличии поля, используемого в качестве источника значений.

Создание в веб-базе данных Access 2010 отношения с помощью мастера подстановок

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

    Справа от последнего поля нажмите кнопку Щелкните для добавления , а затем выберите пункт Подстановка и отношение .

    Примечание: Для отображения кнопки Щелкните для добавления , может понадобиться прокрутить страницу по горизонтали.

    На первом экране мастера подстановок выберите элемент Получать значения из другой таблицы для поля подстановки и нажмите кнопку Далее .

    Выберите таблицу-источник и нажмите кнопку Далее .

    В окне Доступные поля двойным щелчком выберите поле, содержащее нужные значения, и нажмите кнопку Далее .

    Если нужно, определите порядок сортировки для поля подстановки. Нажмите кнопку Далее .

    При необходимости отрегулируйте ширину окна подстановки - это удобно, если значения имеют большую длину. Нажмите кнопку Далее .

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

    • Каскадное удаление позволяет при удалении записи в одной таблице удалять соответствующую запись в другой.

      Ограниченное удаление не разрешает удалить запись из таблицы, если она связана с записью в другой таблице.

      Примечание: Не выбирайте элемент Разрешить несколько значений в мастере подстановок, если он используется для создания отношения.

Изменение отношения в веб-базе данных Access 2010

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

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

    На вкладке Поля в группе Свойства нажмите кнопку Изменить подстановки .

    Внесите нужные изменения в соответствии с инструкциями мастера. Можно изменить следующие элементы.

В Excel имеется очень полезная возможность отображения связанных ячеек. Так, можно для ячейки с формулой отобразить связи — ячейки, значения из которых используются в формуле. Кроме того, установив табличный курсор в какую-либо ячейку, можно просмотреть, в каких формулах она участвует. При этом вес связи отображаются в виде стрелок.

Чтобы отобразить связи с ячейками, участвующими в данной формуле, следует установить табличный курсор на ячейку с формулой и на вкладке Формулы Влияющие ячейки . В результате к ячейке устремятся стрелочки, отходящие от ячеек, участвующих в формуле (рис. 1.12).

Чтобы наглядно увидеть, на какие другие ячейки влияет значение какой-либо из ячеек, следует установить на нее табличный курсор и на вкладке Формулы ленты инструментов нажать кнопку Зависимые ячейки . В результате от ячейки с формулой отойдут стрелочки, указывающие на зависимые ячейки (рис. 1.13). Необходимо иметь в виду, что связи показываются только с теми ячейками, на которые впрямую влияет значение выбранной ячейки. Связь не отображается в случае косвенного влияния, когда первая ячейка влияет на вторую, а вторая влияет на третью. В этом случае первая ячейка косвенно влияет на значение в третьей ячейке, но связь в таком случае не отображается.

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

Чтобы убрать с экрана отображенные связи, на вкладке Формулы ленты инструментов достаточно нажать кнопку Убрать стрелки . В результате будут скрыты все отображенные ранее связи. В том случае, если требуется скрыть связи только определенного типа (иллюстрирующие влияющие связи или зависимые), следует щелкнуть мышкой по стрелочке, расположенной рядом с кнопкой Убрать стрелки , и в появившемся меню выбрать, какие именно стрелки необходимо убрать (рис. 1.14).

Если ваша версия Excel на английском языке, то вам стоить посетить курсы, которые открыла школа английского языка и несомненными преимуществами которой являются следующие: соответствие школьной программе обучения, простота, наглядность и доступность изложения материала, большое количество и разнообразие упражнений для практики, наличие упражнений разной степени сложности, универсальность использования вне зависимости от базового учебника, соответствие возрастным особенностям и возможностям учащихся.