As far as I know - and there almost certainly some technical errors in this high level overview I’m writing here - IPLD is basically a really simple way of using JSON-esque notation to allow us to store, share, and traverse data. SQL databases are different; they’re relational, and not ideal for storing on IPFS. A NoSQL approach - a distributed database - would allow people to share data and reference it without having to store the entire database, and allowing them to use versioning (with MerkleDags, like Git) more easily. IPLD also explicitely helps us refer to other data easily (hence ‘linked data’), somewhat like RDF does currently with its triplestore.
The problem IPLD is trying to solve is: how do I refer to other JSON objects in a well-defined way? We do this by using fingerprints (hashes) of the other objects, and referring to those with a link object.
Others can help you more, but I hope this gives you a vague idea.