A Blockchain is a distributed database that is shared among the nodes of a computer network and protected by crytography.
Unlike traditional database instead of storing data in tables, a blockchain structures its data into chunks (blocks) that are strung together.
A blockchain is a globally shared, transactional database. This means that everyone can read entries in the database just by participating in the network.
Smart contracts are simply programs stored on a blockchain that run when predetermined conditions are met. They are typically used to automate an agreement's execution so that all participants can be immediately sure of the outcome without any intermediary's involvement or time loss. - IBM
It is a self-executing set of instructions that is executed without a third party intermediary. Smart contracts are a set of instructions which when placed on a blockchain are self-executing pieces of code not run by any centralized intermediary.
They are written in code. Smart contracts are typically paired with some type of oracle to get some information about the real world, when smart contracts are paired with an oracle they're called hybrid smart contracts.
Chainlink is a secure decentralized modular oracle network used to bring data into your smart contracts and also make some type of external computation.