2015-01-12 2 views
0

Я пытаюсь изучить SQL Server и запутался в использовании внешнего ключа. Я хорош с созданием, изменением и отбрасыванием внешних ключей. Я сомневаюсь, что когда внешний ключ полезен!Использование внешнего ключа

1-й стол «субъект», имеющий «предмет» (первичный ключ) и «учитель» в нем.

2-й стол «Класс», имеющий «класс» (первичный ключ) и «этаж».

Я сделал 3-й стол «Детали» с «классом» и «предметом».

«details.subject» - ссылка на внешний ключ для «subject.subject AND» details.class »- это ссылка на внешний ключ для класса class.class. Теперь я растерялся, как я могу увидеть все детали в одном исключении?

SELECT * 
FROM Details 

дает только класс и предмет из таблицы «Детали». Но я хочу получить «details.class, class.floor, details.subject, subject.teacher», когда я запускаю отдельный запрос. Если мы получим упомянутый вывод, только если мы используем «СТАЛ», то почему мы должны использовать «Foreign Key»: о

Я думаю, вы понимаете, мои сомнения .. Im застряли, пожалуйста, помогите: р

+0

Вы проверили в Интернете? Пройдите через школы w3, где будут хорошие примеры. –

+0

. Ссылки на эту ссылку. Это поможет вам, http://www.tutorialspoint.com/sql/sql-foreign-key.htm, http : //www.w3schools.com/sql/sql_foreignkey.asp –

+0

Большое спасибо @ArunPrasanth. , – ajufsd

ответ

1

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

+0

Точно да. Вам нужно будет ответить на соединения для получения требуемых данных. – Anjum

+1

Спасибо за ответ @anjum. Таким образом, вы имеете в виду добавление внешнего ключа, а не для автоматической привязки к определенному набору данных. Даже если я использую внешний ключ, я должен передать «Соединения», чтобы отобразить требуемые данные. Внешний ключ поможет избежать потери информации путем изменения или удаления основной таблицы. это? – ajufsd