• Rubanski@lemm.ee
    link
    fedilink
    arrow-up
    8
    ·
    10 days ago

    Ok genuine question, what is the difference between a SQL database and a simple Excel spreadsheet?

    • rumba@lemmy.zip
      link
      fedilink
      English
      arrow-up
      9
      ·
      edit-2
      10 days ago

      Sql Database:

      • Tables: like excel sheets
      • Rows: like excel rows
      • Temp Tables: you can make a throw away table where data is all organized how you need it and it just goes away when you’re done.
      • Indexes: stores information about all the data to speed up searches. you can have 10 million rows in SQL and still get pretty quick results.
      • Relational data store: The default in SQL is to do a kind of inter-sheet linking. You can set up references so that if you delete a line in one of the linked sheets, it won’t let you because there’s an active reference to it in another sheet. Like if you try to delete the Ohio Row from the states table, it can be made so that you can’t because users are linked to Ohio in their another sheet. (data integrity)
      • Joins: You can logically link multiple tables together. Your data can be structured over many many tables with a one to many relationship, so massive reduction in storage and memory needs.
      • Memory: SQL only uses enough memory to load what you’re using. You can have a 100GB database and maybe get away with a few gigs of ram. Excel needs to load everything into ram.
      • Transaction: SQL can wrap a series of operations into a transaction. If there’s something wrong with the data, it can rollback everything that happened in the transaction. You can safely operate on large amounts of data without danger of corrupting it if you do something wrong.
      • Procedures: SQL can store off code and compile it down to be much much faster. you can surface just a simple function instead of full db access and end users have a hard time hacking apps to get data they shouldn’t see out of the database.
      • Replicas: You can set up a secondary server with the same databases and chain them so that the origin server takes all the changes and the secondary server is a backup, read-only replica.
      • Incremental backups: You can set up the servers so that the changes are noted day in and day out, so if you have a REALLY large database, you can restore it to any point in time with just a regular backup and all the logs for the day up to the latest.

      Excel Database:

      • Tables and Rows
      • Easy to edit in a client everyone has
      • Supports some decent macro capability
      • Can be problematic when more than one person is editing at the same time
      • Can struggle with large datasets.
      • really likes to misinterpret data as dates
      • doesn’t do most of what *sql can do
      • edit: wrong word
    • iii@mander.xyz
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      10 days ago

      In the context of this tweet most important differences are:

      SQL is a language for querying databases.

      Most common used databases are relational databases. With relational databases you can setup, well, relations and constraints.

      Imagine you have 2 tables (2 excel sheets) one with people, and one with home ownership. You can set the following constraint: (1) each person shows up only once in the people table. And the following relation: (2) every home owner must refer to an existing person in people table.

      When modifying the table contents, the system checks if no constraints or relations are violated.

      Excel, just like a badly designed relational databse, would, for example, have no problem with duplicate people, or home ownership referring to non-existant people.

    • frezik@midwest.social
      link
      fedilink
      arrow-up
      4
      ·
      10 days ago

      A whole lot. Too much to cover in one post in any kind of detail.

      A modern relational database management system (RDBMS) is a highly optimized beast. How it accesses storage is very carefully considered. It has a whole mini language for defining relations between data. There are tools for debugging specific queries to make them faster. They index data with tradeoffs between read and write speeds. There are sophisticated locking mechanisms so multiple users can read and write at the same time. They have transactions where many alterations can be packed up together and written efficiently at once. Those transactional alterations are atomic, meaning there are guarantees that all of them happen or none of them happen. The entire thing is based on set theory, and it has survived attacks by many other pretenders to the throne for decades.

      And if you’re using Oracle, you can get all that while paying a highly optimized pricing model set up by the best financial advisors Larry Ellison can find to maximize value extraction from your company.

    • One@feddit.nl
      link
      fedilink
      English
      arrow-up
      3
      ·
      10 days ago

      Basically the difference is with a SQL database you have way more options for how to create, manage & interact with the data.

      Spreadsheets are great for sharing snapshots of data, and there’s a level of automation you can build into them, but the scale of what you can do goes up dramatically when your data is in a proper database instead of just an excel file.

    • jjjalljs@ttrpg.network
      link
      fedilink
      arrow-up
      1
      ·
      10 days ago

      Many things. I mean, you could hack a lot of stuff into Excel but generally

      SQL has foreign keys and integrity checks. You can make it so like if you delete a user it automatically cascades to delete other rows like their addresses.

      You can prevent someone from entering the wrong type of data in particular columns. This one’s an integer and that one’s text.

      It’s designed to work on larger scales. Excel stops at 1 million rows per spreadsheet, unless my search just gave me AI slop.

      You can do queries, for selecting as well as updating and deleting. You can join tables.

      It’s much easier for other applications (such as a website) to talk to a SQL database

      You can do transactions.

      There’s a lot. That’s just off the top of my head.