<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: nain</title>
    <description>The latest articles on DEV Community by nain (@darklyamused).</description>
    <link>https://dev.to/darklyamused</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3983226%2Fc2e6904d-98cc-4ebf-99b8-50cb5fffe7ce.jpg</url>
      <title>DEV Community: nain</title>
      <link>https://dev.to/darklyamused</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/darklyamused"/>
    <language>en</language>
    <item>
      <title>day 01 of learning data engineering (step1: sql joins and set operators)</title>
      <dc:creator>nain</dc:creator>
      <pubDate>Mon, 15 Jun 2026 15:31:37 +0000</pubDate>
      <link>https://dev.to/darklyamused/day-01-of-learning-data-engineering-step1-sql-joins-and-set-operators-59oa</link>
      <guid>https://dev.to/darklyamused/day-01-of-learning-data-engineering-step1-sql-joins-and-set-operators-59oa</guid>
      <description>&lt;p&gt;So, yes. Today's goal is to get the &lt;a href="https://www.youtube.com/watch?v=SSKVgrwhzus&amp;amp;list=PLNcg_FV9n7qZY_2eAtUzEUulNjTJREhQe" rel="noopener noreferrer"&gt;30hr SQL Bootcamp&lt;/a&gt; completed (or at least as much as I can), I am following Data with Baara. Who gets a 5 on 5 for clearing my doubts before I even know I have them (&lt;em&gt;what kind of superpower is that?&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;context:&lt;/strong&gt; &lt;em&gt;So I already knew the bare basics of SQL as it was a course I had to take in my pre-final year, but it was not on par with what is required of a DE. So I revised the things that I already knew and speed ran through it.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Joins (the ones they don't tell you about)
&lt;/h2&gt;

&lt;p&gt;If you are also a beginner like me who had not dwelled too deep, you may think there exists only four types of JOINs (the big four: LEFT, RIGHT, INNER, FULL) but no, because when have things ever been this simple. We have moreeee. And they are:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Right Anti, Left Anti, Full Anti&lt;/strong&gt; and &lt;strong&gt;Cross Join.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, Anti Joins are interesting. The "anti" here is not anti-the-named-side — it is anti-&lt;em&gt;the-join-itself&lt;/em&gt;. You are not excluding the left table, you are keeping only the rows from the left that found &lt;strong&gt;no match&lt;/strong&gt; on the right. The lonely ones. The ones that got ghosted.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Left Anti&lt;/strong&gt; → rows in the left table with no match in the right&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Right Anti&lt;/strong&gt; → rows in the right table with no match in the left&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full Anti&lt;/strong&gt; → the unmatched ones from &lt;em&gt;both&lt;/em&gt; sides&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the fun part? They are not even a separate keyword in most SQL dialects. You get there by combining a JOIN with a WHERE clause filtering for NULLs. &lt;code&gt;LEFT JOIN&lt;/code&gt; + &lt;code&gt;WHERE right_table.id IS NULL&lt;/code&gt; = Left Anti. The pattern is the thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross Join&lt;/strong&gt; on the other hand is a greedy little beast — it wants a pair of &lt;em&gt;everything&lt;/em&gt;. Every row from table A matched with every row from table B. No conditions, no chill. 100 rows × 50 rows = 5,000 rows, just like that. Powerful when you need it, catastrophic when you forget it is running on a large table.&lt;/p&gt;




&lt;h2&gt;
  
  
  Set Operators (the rules nobody writes down in one place)
&lt;/h2&gt;

&lt;p&gt;After joins, we moved to Set Operators — UNION, UNION ALL, INTERSECT and EXCEPT.&lt;/p&gt;

&lt;p&gt;The concept is simple enough. But Baara being Baara, he made sure we actually understood the rules before touching the syntax. And there are more rules than you'd expect:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Columns must match&lt;/strong&gt; — you cannot combine apples and oranges&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data types must match&lt;/strong&gt; — apples and slightly-different-apples also don't work&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Same number of columns&lt;/strong&gt; across both queries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Order of columns matters&lt;/strong&gt; — col1 of query one maps to col1 of query two, so if you mix up the order you mix up your data silently, which is the worst kind of wrong&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Column names come from the first query&lt;/strong&gt; — so whatever you alias in query one is what shows up in your result&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ORDER BY only at the end, on the last query&lt;/strong&gt; — you are sorting the final combined result, not each individual one&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The difference between UNION and UNION ALL trips a lot of people — UNION deduplicates, UNION ALL keeps everything including duplicates. For DE work UNION ALL is usually what you actually want because deduplication is expensive and you often want to handle it explicitly downstream anyway.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Plan for tomorrow:&lt;/strong&gt; Date &amp;amp; Time functions + keep pushing through the bootcamp.&lt;/p&gt;

&lt;p&gt;See you on Day 02. 👋&lt;/p&gt;

</description>
      <category>sql</category>
      <category>dataengineering</category>
      <category>learning</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>this is scary (day 0 of learning data engineering)</title>
      <dc:creator>nain</dc:creator>
      <pubDate>Sat, 13 Jun 2026 22:09:24 +0000</pubDate>
      <link>https://dev.to/darklyamused/this-is-scary-day-0-of-learning-data-engineering-5653</link>
      <guid>https://dev.to/darklyamused/this-is-scary-day-0-of-learning-data-engineering-5653</guid>
      <description>&lt;p&gt;apparently i need to build in public and create a personal brand to get a job, which tbh is a big big ask from little introvert me, who would rather grind silently and directly post the results. but need must do. i am sorry if the lower case letters are annoying you i have yet to leave the tumblr aesthetic wuwu.&lt;/p&gt;

&lt;p&gt;context: i am learning data engineering, and as @eczackly (who is my idol tbh) (and not on Dev.to so i cant even tag him😭) suggested i should rather post as i go, so here we are. we are on a 100 day data engineering sprint which better end w me getting a goddamn job or maybe an intern (ambitious ik but aim for the moon right??)&lt;/p&gt;

&lt;p&gt;also i will format my next posts better (i promise). if you are someone who is DE already or are learning too, then let's connect. this lowly disciple thanks you! muahhhhh.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>dataengineering</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
