Кратък отговор:Да, може да бъде NULL или дублиран.
Искам да обясня защо външният ключ може да трябва да бъде нулев или може да трябва да бъде уникален или неуникален. Първо запомнете, че външният ключ просто изисква стойността в това поле да съществува първо в друга таблица (родителската таблица). Това е всичко, което FK е по дефиниция. Null по дефиниция не е стойност. Null означава, че все още не знаем каква е стойността.
Нека ви дам пример от реалния живот. Да предположим, че имате база данни, която съхранява предложения за продажби. Да предположим, че всяко предложение има само един търговец и един клиент. Така че вашата таблица с предложения ще има два външни ключа, един с идентификатора на клиента и един с идентификатора на търговския представител. Въпреки това, в момента на създаване на записа, търговски представител не винаги е назначен (тъй като все още никой не е свободен да работи върху него), така че идентификационният номер на клиента се попълва, но идентификаторът на търговския представител може да е нулев. С други думи, обикновено имате нужда от възможността да имате нулев FK, когато може да не знаете стойността му в момента на въвеждане на данните, но знаете други стойности в таблицата, които трябва да бъдат въведени. За да разрешите нулеви стойности във FK, обикновено всичко, което трябва да направите, е да разрешите nulls в полето, което има FK. Нулевата стойност е отделна от идеята, че е FK.
Дали е уникална или не уникална се отнася до това дали таблицата има връзка едно-едно или едно-много с родителската таблица. Сега, ако имате връзка един-един, е възможно да имате всички данни в една таблица, но ако таблицата става твърде широка или ако данните са по различна тема (примерът на служителя - осигуряване @tbone даде например), тогава искате отделни таблици с FK. Тогава бихте искали да направите този FK или също PK (което гарантира уникалност), или да поставите уникално ограничение върху него.
Повечето FK са за връзка един към много и това е, което получавате от FK, без да добавяте допълнително ограничение на полето. Така че имате таблица за поръчки и таблица с подробности за поръчката например. Ако клиентът поръча десет артикула наведнъж, той има една поръчка и десет подробни записа за поръчка, които съдържат същия идентификатор на поръчка като FK.