{
    "componentChunkName": "component---src-templates-note-note-js",
    "path": "/notes/if-you-know-google-spreadsheets-you-know-databases",
    "result": {"data":{"mdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"\\uD83C\\uDF31 \", mdx(\"strong\", {\n    parentName: \"h1\"\n  }, \"Databases Are Just Google Sheets \\u2014 Nothing to Fear\")), mdx(\"p\", null, \"Most people think \\u201CDatabase\\u201D means something complicated or scary.\"), mdx(\"p\", null, \"But the truth is:\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"\\uD83D\\uDC49 \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"A database is basically a Google Spreadsheet with some extra discipline.\")), mdx(\"p\", null, \"If you understand Google Sheets, you already understand 80% of databases.\"), mdx(\"p\", null, \"Let\\u2019s break it down.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"\\uD83D\\uDCCC \", mdx(\"strong\", {\n    parentName: \"h2\"\n  }, \"1. A Google Spreadsheet = A Database\")), mdx(\"p\", null, \"When you open a Google Sheet with multiple tabs\\u2026\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"\\u2192 That entire file \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"is your database\"), \".\"), mdx(\"p\", null, \"It\\u2019s nothing magical.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"Just a structured way to store information.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"\\uD83D\\uDCCC \", mdx(\"strong\", {\n    parentName: \"h2\"\n  }, \"2. Each Sheet Tab = One Table in the Database\")), mdx(\"p\", null, \"Think of each tab as a table:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u201CCustomers\\u201D tab\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u201COrders\\u201D tab\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u201CProducts\\u201D tab\\n\")), mdx(\"p\", null, \"In database terms, these are simply \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"tables\"), \".\"), mdx(\"p\", null, \"A table is just a place where a specific kind of information lives.\"), mdx(\"p\", null, \"Nothing more.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"\\uD83D\\uDCCC \", mdx(\"strong\", {\n    parentName: \"h2\"\n  }, \"3. Rows and Columns = Same in Both\")), mdx(\"p\", null, \"In both Sheets and databases:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Columns\"), \" = fields (Name, Price, City, Date\\u2026)\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Rows\"), \" = one record (one customer, one order, one product)\\n\")), mdx(\"h1\", null, \"So a row in a Google Sheet\"), mdx(\"p\", null, \"a row in a database.\"), mdx(\"p\", null, \"No difference.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"\\uD83D\\uDCCC \", mdx(\"strong\", {\n    parentName: \"h2\"\n  }, \"4. Primary Key = A Unique ID Column\")), mdx(\"p\", null, \"You already use this in Sheets without knowing.\"), mdx(\"p\", null, \"Examples:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Order ID\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Invoice Number\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Customer ID\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Employee Code\\n\")), mdx(\"p\", null, \"This is what databases call the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Primary Key\"), \" \\u2192 A unique ID so you don\\u2019t get confused.\"), mdx(\"p\", null, \"It\\u2019s like Aadhaar for your rows.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"\\uD83D\\uDCCC \", mdx(\"strong\", {\n    parentName: \"h2\"\n  }, \"5. Linking Sheets = Relationships Between Tables\")), mdx(\"p\", null, \"When you use a formula like:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"VLOOKUP(Customer ID, Customers!A:F, 2, FALSE)\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"XLOOKUP()\"))), mdx(\"p\", null, \"You are doing \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"JOINs\"), \", one of the \\u201Cscariest\\u201D database concepts.\"), mdx(\"p\", null, \"But you already do it in Sheets.\"), mdx(\"p\", null, \"In database terms:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u201COrders\\u201D table has a Customer ID\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"That ID links to \\u201CCustomers\\u201D table\", mdx(\"br\", {\n    parentName: \"li\"\n  }), \"\\u2192 This is a \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"relationship\"), \".\\n\")), mdx(\"p\", null, \"Just like using a VLOOKUP.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"\\uD83D\\uDCCC \", mdx(\"strong\", {\n    parentName: \"h2\"\n  }, \"6. Filters = WHERE Clauses\")), mdx(\"p\", null, \"When you filter in Sheets:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u201CShow only orders from Bangalore\\u201D\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u201CShow price > 500\\u201D\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u201CShow status = Delivered\\u201D\\n\")), mdx(\"p\", null, \"Databases do the same with:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"WHERE city = 'Bangalore'\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"WHERE price > 500\"))), mdx(\"p\", null, \"It\\u2019s literally the same idea, just written in text instead of clicks.\"), mdx(\"hr\", null), mdx(\"h2\", null, \"\\uD83D\\uDCCC \", mdx(\"strong\", {\n    parentName: \"h2\"\n  }, \"7. Pivot Tables = GROUP BY Queries\")), mdx(\"p\", null, \"Whenever you:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"summarize totals\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"count customers\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"calculate sales by month\\n\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"make a pivot report\\n\")), mdx(\"p\", null, \"You are doing the database concepts:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"SUM()\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"COUNT()\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"GROUP BY\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"AGGREGATE\"), \" functions\\n\")), mdx(\"p\", null, \"So pivot table = a fancy box that writes the SQL for you.\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\uD83C\\uDFAF \", mdx(\"strong\", {\n    parentName: \"h1\"\n  }, \"In Summary (for a non-technical person)\")), mdx(\"p\", null, \"If you can use Google Sheets, you already understand:\"), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Google Sheets Action\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Database Concept\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Whole Sheet File\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Database\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Each Tab\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Table\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Rows\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Records\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Columns\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Fields\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Unique ID column\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Primary Key\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"VLOOKUP/XLOOKUP\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Join tables\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Filter\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"WHERE clause\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Pivot table\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"GROUP BY & Aggregates\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Data Validation\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Constraints\")))), mdx(\"p\", null, \"You\\u2019re already doing data science without calling it that.\"), mdx(\"hr\", null), mdx(\"h1\", null, \"\\uD83E\\uDDD8 \", mdx(\"strong\", {\n    parentName: \"h1\"\n  }, \"Why This Removes Fear\")), mdx(\"p\", null, \"Because databases aren\\u2019t new or scary.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"They\\u2019re just \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Google Sheets with discipline, speed, and automation\"), \".\"), mdx(\"p\", null, \"If you can:\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"\\u2714 fill a row\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"\\u2714 add a formula\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"\\u2714 sort and filter\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"\\u2714 build a pivot\"), mdx(\"p\", null, \"Then you can work with databases and data science concepts.\"));\n}\n;\nMDXContent.isMDXComponent = true;","inboundReferences":[]}},"pageContext":{"slug":"if-you-know-google-spreadsheets-you-know-databases","node":{"childMdx":{"slug":"if-you-know-google-spreadsheets-you-know-databases"}}}},
    "staticQueryHashes": []}