<?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: Yogaraj</title>
    <description>The latest articles on DEV Community by Yogaraj (@yogaraj).</description>
    <link>https://dev.to/yogaraj</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3291519%2F4c7b14d5-41fa-4aa9-8f0c-3f0c769c183f.jpg</url>
      <title>DEV Community: Yogaraj</title>
      <link>https://dev.to/yogaraj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yogaraj"/>
    <language>en</language>
    <item>
      <title>Linux Learning Journey – Week 2 Progress</title>
      <dc:creator>Yogaraj</dc:creator>
      <pubDate>Thu, 18 Sep 2025 17:12:05 +0000</pubDate>
      <link>https://dev.to/yogaraj/linux-learning-journey-week-2-progress-2ma1</link>
      <guid>https://dev.to/yogaraj/linux-learning-journey-week-2-progress-2ma1</guid>
      <description>&lt;p&gt;After covering the basics in Week 1, this week I moved on to some very practical Linux commands. These helped me understand how processes run, how memory is used, and how to manage files more effectively. Here’s what I learned:&lt;/p&gt;

&lt;p&gt;Switching Users&lt;/p&gt;

&lt;p&gt;su - : Allows switching between different users in the system. Very useful when you need root access or want to work under a specific account.&lt;/p&gt;

&lt;p&gt;Process Management&lt;/p&gt;

&lt;p&gt;top : Shows currently running processes, just like Task Manager in Windows. Great for checking which tasks are consuming resources.&lt;/p&gt;

&lt;p&gt;kill [PID] : Ends a process using its process ID. By default, it asks permission from the parent process.&lt;/p&gt;

&lt;p&gt;kill -9 [PID] : Force kills a process immediately (like force quit).&lt;/p&gt;

&lt;p&gt;pkill [process_name] : Kills a process using its name instead of the PID.&lt;/p&gt;

&lt;p&gt;Memory and Disk Usage&lt;/p&gt;

&lt;p&gt;df : Displays details of hard disk partitions (similar to drives in Windows).&lt;/p&gt;

&lt;p&gt;df -h : Same as above, but in human‑readable format.&lt;/p&gt;

&lt;p&gt;free : Shows memory usage.&lt;/p&gt;

&lt;p&gt;free -G : Memory details in GB.&lt;/p&gt;

&lt;p&gt;free -M : Memory details in MB.&lt;/p&gt;

&lt;p&gt;Swap : Acts as temporary memory when RAM is full. Part of the hard disk is used as memory, and we can even add extra swap space if needed.&lt;/p&gt;

&lt;p&gt;File Searching and Content&lt;/p&gt;

&lt;p&gt;grep : Works like Ctrl + F in Windows. Used to search for text inside files.&lt;/p&gt;

&lt;p&gt;tac [filename] : Displays file content in reverse order (opposite of cat).&lt;/p&gt;

&lt;p&gt;File and Directory Operations&lt;/p&gt;

&lt;p&gt;pwd : Prints the present working directory.&lt;/p&gt;

&lt;p&gt;cd / : Takes you to the root directory of the Linux system.&lt;/p&gt;

&lt;p&gt;ls : Lists all files and folders in the current directory.&lt;/p&gt;

&lt;p&gt;ls -ltr : Lists in long format, shows file sizes, timestamps, and arranges in reverse order.&lt;/p&gt;

&lt;p&gt;rm -f [file] : Force delete a file.&lt;/p&gt;

&lt;p&gt;rm -vf [file] : Deletes with detailed output.&lt;/p&gt;

&lt;p&gt;echo "text" : Prints whatever you type (useful for testing or adding text to files).&lt;/p&gt;

&lt;p&gt;Extra Tip&lt;/p&gt;

&lt;p&gt;To check when the server was installed, you can explore system logs or use commands in / to trace system details.&lt;/p&gt;

&lt;p&gt;My Reflection&lt;/p&gt;

&lt;p&gt;Week 2 was all about getting comfortable with managing processes, checking system resources, and learning how to navigate efficiently. The commands top, kill, and grep especially stood out because they are powerful for troubleshooting and searching.&lt;/p&gt;

&lt;p&gt;I can already feel myself moving from just “using Linux” to actually controlling it. Excited to keep building on this in Week 3&lt;/p&gt;

&lt;p&gt;I’m here to learn out loud.&lt;/p&gt;

&lt;p&gt;You’ll find:&lt;/p&gt;

&lt;p&gt;Raw, honest notes from my daily learning&lt;br&gt;
Simple examples I’ve tried on my own&lt;br&gt;
Weekly summaries of what clicked (and what didn’t)&lt;br&gt;
Thanks for stopping by — and if you're also on a similar path, let’s connect and grow together! 🌱&lt;/p&gt;

&lt;p&gt;Follow me for weekly updates and reflections from my cloud learning journey.&lt;/p&gt;

&lt;p&gt;aws #cloudcomputing #sql #linux&lt;br&gt;
💭 Got suggestions, feedback, or just want to say hi?&lt;/p&gt;

&lt;p&gt;📩 Reach me at: &lt;a href="mailto:yogarajprof@gmail.com"&gt;yogarajprof@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>commandline</category>
      <category>sysadmin</category>
      <category>basic</category>
      <category>linux</category>
    </item>
    <item>
      <title>Learning Linux Step by Step – Week 1 Progress</title>
      <dc:creator>Yogaraj</dc:creator>
      <pubDate>Fri, 05 Sep 2025 17:14:21 +0000</pubDate>
      <link>https://dev.to/yogaraj/learning-linux-step-by-step-week-1-progress-18o6</link>
      <guid>https://dev.to/yogaraj/learning-linux-step-by-step-week-1-progress-18o6</guid>
      <description>&lt;p&gt;🖥️ Linux Learning Journey – Week 1&lt;/p&gt;

&lt;p&gt;I’ve officially started my Linux learning journey! To get hands-on practice, I installed Red Hat Enterprise Linux (RHEL) on VMware Workstation. Running it inside a virtual machine makes it safe to explore, since even if I mess something up, my main system stays unaffected.&lt;/p&gt;

&lt;p&gt;Here’s everything I covered in my first week:&lt;/p&gt;

&lt;p&gt;🔹 Installation &amp;amp; Setup&lt;br&gt;
I learned the basics of Linux distributions (distros) and why they exist. Some are community-based (like Ubuntu, Debian), while others like RHEL are enterprise-focused. Setting up RHEL inside VMware gave me a real server-like environment to practice on.&lt;/p&gt;

&lt;p&gt;🔹 Linux File System&lt;br&gt;
Unlike Windows, where drives are labeled (C:, D:, etc.), Linux has a single root directory (/), and everything starts from there. I explored some important folders:&lt;/p&gt;

&lt;p&gt;/home → stores user files&lt;/p&gt;

&lt;p&gt;/etc → contains system configuration files&lt;/p&gt;

&lt;p&gt;/var → keeps logs and variable data&lt;/p&gt;

&lt;p&gt;/bin → essential system commands and binaries&lt;br&gt;
It felt structured and logical once I understood the hierarchy.&lt;/p&gt;

&lt;p&gt;🔹 Basic Navigation Commands&lt;br&gt;
I practiced commands to move around and explore the system:&lt;/p&gt;

&lt;p&gt;pwd → shows current directory&lt;/p&gt;

&lt;p&gt;ls → lists files and directories&lt;/p&gt;

&lt;p&gt;cd → change directory&lt;/p&gt;

&lt;p&gt;clear → clears the terminal&lt;br&gt;
At first, it felt strange not having a GUI to click around, but slowly I got comfortable navigating purely with commands.&lt;/p&gt;

&lt;p&gt;🔹 File &amp;amp; Directory Management&lt;br&gt;
Creating and managing files/directories was my next step:&lt;/p&gt;

&lt;p&gt;mkdir newfolder → creates a directory&lt;/p&gt;

&lt;p&gt;rmdir oldfolder → removes an empty directory&lt;/p&gt;

&lt;p&gt;touch notes.txt → creates an empty file&lt;/p&gt;

&lt;p&gt;cp file1 file2 → copies files&lt;/p&gt;

&lt;p&gt;mv file1 file2 → moves or renames files&lt;/p&gt;

&lt;p&gt;rm file.txt → deletes a file&lt;/p&gt;

&lt;p&gt;It’s simple but powerful. With just these few commands, I could organize files completely from the terminal.&lt;/p&gt;

&lt;p&gt;🔹 Viewing Files&lt;br&gt;
Linux provides different ways to check file contents:&lt;/p&gt;

&lt;p&gt;cat for quick display&lt;/p&gt;

&lt;p&gt;less and more for scrolling through long files&lt;/p&gt;

&lt;p&gt;head and tail for previewing the beginning or end of a file&lt;br&gt;
This was really useful when I explored system files in /etc and /proc.&lt;/p&gt;

&lt;p&gt;🔹 User Management Basics&lt;br&gt;
Linux is a multi-user system, so learning user management was important:&lt;/p&gt;

&lt;p&gt;Checked the current user with whoami and id&lt;/p&gt;

&lt;p&gt;Switched between users with su and ran admin tasks with sudo&lt;/p&gt;

&lt;p&gt;Created new users using useradd newuser and set passwords with passwd&lt;/p&gt;

&lt;p&gt;Removed accounts with userdel&lt;/p&gt;

&lt;p&gt;This gave me an idea of how Linux handles different users and permissions, something very important in servers.&lt;/p&gt;

&lt;p&gt;✨ Takeaway:&lt;br&gt;
Week 1 has been about building a foundation. From installing RHEL inside VMware to creating files, directories, and even new users, I now feel more comfortable with the Linux command line. It was a bit challenging in the beginning, but the more I practice, the more natural it feels.&lt;/p&gt;

&lt;p&gt;Next, I’ll move on to permissions, wildcards, and process management in Week 2. Looking forward to diving deeper 🔥&lt;/p&gt;

&lt;h1&gt;
  
  
  Linux #RHEL #VMware #LearningJourney #Tech
&lt;/h1&gt;

</description>
      <category>linux</category>
      <category>cli</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>🚀 Building My First SQL Project: Employee Attendance &amp; Leave Management System</title>
      <dc:creator>Yogaraj</dc:creator>
      <pubDate>Mon, 18 Aug 2025 16:08:40 +0000</pubDate>
      <link>https://dev.to/yogaraj/building-my-first-sql-project-employee-attendance-leave-management-system-30m4</link>
      <guid>https://dev.to/yogaraj/building-my-first-sql-project-employee-attendance-leave-management-system-30m4</guid>
      <description>&lt;p&gt;Over the past few weeks, I’ve been learning SQL and wanted to put that knowledge into practice by building a small project. To keep it simple but realistic, I decided to create an Employee Attendance &amp;amp; Leave Management System.&lt;/p&gt;

&lt;p&gt;This project helped me understand how to design tables, insert real-looking values, and run queries that actually make sense in a workplace scenario&lt;/p&gt;

&lt;p&gt;📌 Why This Project?&lt;/p&gt;

&lt;p&gt;Almost every organization needs a way to track employees, their departments, attendance, and leaves. Instead of building a complex system, I focused on a simple yet practical database that covers:&lt;/p&gt;

&lt;p&gt;📂 Project Setup&lt;/p&gt;

&lt;p&gt;Database Name: EMP_DB&lt;/p&gt;

&lt;p&gt;Number of Tables: 6 (Employees, Departments, Attendance, Leave, Projects, Salaries)&lt;/p&gt;

&lt;p&gt;Tools Used: MySQL Workbench (you can use any SQL environment)&lt;br&gt;
🛠 Tables I Created&lt;/p&gt;

&lt;p&gt;Here’s a quick overview of the tables:&lt;/p&gt;

&lt;p&gt;Employees → stores employee details like ID, name, department.&lt;/p&gt;

&lt;p&gt;Departments → keeps track of all departments.&lt;/p&gt;

&lt;p&gt;Attendance → logs employee check-ins/check-outs.&lt;/p&gt;

&lt;p&gt;Leave → records leave applications and approvals.&lt;/p&gt;

&lt;p&gt;Projects → assigns employees to projects.&lt;/p&gt;

&lt;p&gt;Salaries → salary details per employee.&lt;/p&gt;

&lt;p&gt;💾 Example Queries&lt;/p&gt;

&lt;p&gt;Some queries I tried running:&lt;/p&gt;

&lt;p&gt;Get employees with pending leaves.&lt;/p&gt;

&lt;p&gt;Find the department with the most employees.&lt;/p&gt;

&lt;p&gt;Check attendance percentage for each employee.&lt;/p&gt;

&lt;p&gt;Show employees assigned to multiple projects.&lt;/p&gt;

&lt;p&gt;These queries gave me confidence that my tables were connected properly with Primary Keys and Foreign Keys.&lt;/p&gt;

&lt;p&gt;🚀 What I Learned&lt;/p&gt;

&lt;p&gt;How to design a database from scratch.&lt;/p&gt;

&lt;p&gt;The importance of relationships between tables.&lt;/p&gt;

&lt;p&gt;Writing queries that solve real use cases.&lt;/p&gt;

&lt;p&gt;Using GitHub to host my project files.&lt;/p&gt;

&lt;p&gt;📌 Project Repo&lt;/p&gt;

&lt;p&gt;I’ve uploaded the SQL script and README file here:&lt;br&gt;
👉 &lt;a href="https://github.com/yogaraj638/EMP_DB_Project" rel="noopener noreferrer"&gt;https://github.com/yogaraj638/EMP_DB_Project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔮 Next Steps&lt;/p&gt;

&lt;p&gt;This was just a beginner project, but I plan to:&lt;/p&gt;

&lt;p&gt;Add triggers/stored procedures.&lt;/p&gt;

&lt;p&gt;Work with larger sample data.&lt;/p&gt;

&lt;p&gt;Connect this database with a simple frontend (maybe in the future).&lt;/p&gt;

&lt;p&gt;aws #cloudcomputing #sql #linux&lt;br&gt;
💭 Got suggestions, feedback, or just want to say hi?&lt;/p&gt;

&lt;p&gt;📩 Reach me at: &lt;a href="mailto:yogarajprof@gmail.com"&gt;yogarajprof@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>📊 SQL Learning Journey — Week 4 Recap</title>
      <dc:creator>Yogaraj</dc:creator>
      <pubDate>Wed, 06 Aug 2025 18:01:55 +0000</pubDate>
      <link>https://dev.to/yogaraj/sql-learning-journey-week-4-recap-1onc</link>
      <guid>https://dev.to/yogaraj/sql-learning-journey-week-4-recap-1onc</guid>
      <description>&lt;h2&gt;
  
  
  🧠 Key Concepts Explored
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🧪 Subqueries Simplified
&lt;/h3&gt;

&lt;p&gt;Subqueries are powerful tools in SQL. This week, I learned that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subquery is independent&lt;/strong&gt; — it returns a value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outer query uses that value&lt;/strong&gt;, applying it across the main table.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  💡 Golden Rule for Subqueries:
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;Don't try to understand the whole table first. Instead, zoom in:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Who should be in the result?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What is the condition to qualify?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What’s the minimal data I need?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  🎯 3-Step SQL Problem Solving Template:
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Example Thought&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Who is the output about?&lt;/td&gt;
&lt;td&gt;Authors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;What must they have done?&lt;/td&gt;
&lt;td&gt;Viewed their own article&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;What’s the SQL logic?&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;author_id = viewer_id&lt;/code&gt; → &lt;code&gt;SELECT DISTINCT author_id&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  🧰 Handy Functions
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Syntax Example&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DATE_ADD()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Adds interval to date&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DATE_ADD('2025-08-06', INTERVAL 1 DAY)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;2025-08-07&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DATE_SUB()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Subtracts interval from date&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DATE_SUB('2025-08-06', INTERVAL 1 DAY)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;2025-08-05&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  🧾 ENUM Usage
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;ENUM&lt;/strong&gt; is a data type used to restrict column values to a predefined set.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="nb"&gt;ENUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Pending'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Shipped'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Delivered'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Cancelled'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Only those 4 values are allowed.&lt;/li&gt;
&lt;li&gt;You can include numbers, but they’re stored as &lt;strong&gt;strings&lt;/strong&gt;, not integers.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ LeetCode Practice — 10 Problems Solved 🎉
&lt;/h2&gt;

&lt;p&gt;This week, I tackled and completed 10 beginner-friendly SQL problems:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem No.&lt;/th&gt;
&lt;th&gt;Title&lt;/th&gt;
&lt;th&gt;Difficulty&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1757&lt;/td&gt;
&lt;td&gt;Recyclable and Low Fat Products&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;584&lt;/td&gt;
&lt;td&gt;Find Customer Referee&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;595&lt;/td&gt;
&lt;td&gt;Big Countries&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1148&lt;/td&gt;
&lt;td&gt;Article Views I&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1683&lt;/td&gt;
&lt;td&gt;Invalid Tweets&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1378&lt;/td&gt;
&lt;td&gt;Replace Employee ID With The Unique Identifier&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1068&lt;/td&gt;
&lt;td&gt;Product Sales Analysis I&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1581&lt;/td&gt;
&lt;td&gt;Customer Who Visited but Did Not Make Any Transactions&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;197&lt;/td&gt;
&lt;td&gt;Rising Temperature&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1661&lt;/td&gt;
&lt;td&gt;Average Time of Process per Machine&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;577&lt;/td&gt;
&lt;td&gt;Employee Bonus&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🌱 What’s Next?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Dive deeper into &lt;strong&gt;Window Functions&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Explore &lt;strong&gt;Advanced Subqueries&lt;/strong&gt; and &lt;strong&gt;Nested Joins&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Build a mini-project using real-world datasets&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Thanks for reading! Feel free to connect and share your learning journey too.&lt;/em&gt; 💬&lt;/p&gt;

&lt;p&gt;#SQL #100DaysOfSQL #LearningJourney #Subqueries #LeetCode&lt;/p&gt;

</description>
    </item>
    <item>
      <title>5 SQL Join Mistakes I Made as a Learner (and How I Fixed Them)"</title>
      <dc:creator>Yogaraj</dc:creator>
      <pubDate>Sun, 27 Jul 2025 11:47:57 +0000</pubDate>
      <link>https://dev.to/yogaraj/5-sql-join-mistakes-i-made-as-a-learner-and-how-i-fixed-them-47k</link>
      <guid>https://dev.to/yogaraj/5-sql-join-mistakes-i-made-as-a-learner-and-how-i-fixed-them-47k</guid>
      <description>&lt;p&gt;When I first started learning SQL, joins felt like magic—until they didn’t. Joins are incredibly powerful, but they can also be tricky when you're new. I made a lot of mistakes along the way, and in this post, I’ll share the top 5 that tripped me up (with real examples) and how I fixed them. Hopefully, they’ll save you some time and confusion!&lt;/p&gt;




&lt;h3&gt;
  
  
  1. &lt;strong&gt;Trying FULL OUTER JOIN Directly in MySQL&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mistake:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;food_sales&lt;/span&gt;
&lt;span class="k"&gt;FULL&lt;/span&gt; &lt;span class="k"&gt;OUTER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;data_sales&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;food_sales&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data_sales&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I expected this to return all matches plus unmatched rows from both tables. But MySQL threw an error.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; MySQL doesn't support &lt;code&gt;FULL OUTER JOIN&lt;/code&gt; directly. You need to simulate it using &lt;code&gt;UNION&lt;/code&gt; of a &lt;code&gt;LEFT JOIN&lt;/code&gt; and &lt;code&gt;RIGHT JOIN&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Corrected Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;City&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Product&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;food_sales&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;
&lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;data_sales&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;

&lt;span class="k"&gt;UNION&lt;/span&gt;

&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;City&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Product&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;food_sales&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;
&lt;span class="k"&gt;RIGHT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;data_sales&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  2. &lt;strong&gt;Using WHERE with Aliases Before Declaring Them&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mistake:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;City&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Category&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Qty&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UnitPrice&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;TotalSales&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;food_sales&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;TotalSales&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I thought I could use the alias &lt;code&gt;TotalSales&lt;/code&gt; in the WHERE clause.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; SQL doesn't recognize aliases in &lt;code&gt;WHERE&lt;/code&gt;—they're created during the &lt;code&gt;SELECT&lt;/code&gt; phase, which runs &lt;strong&gt;after&lt;/strong&gt; &lt;code&gt;WHERE&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Corrected Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;City&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Category&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Qty&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UnitPrice&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;TotalSales&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;food_sales&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Qty&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UnitPrice&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or, use a subquery if you want cleaner filtering:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;City&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Category&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Qty&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UnitPrice&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;TotalSales&lt;/span&gt;
  &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;food_sales&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;Sub&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;TotalSales&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  3. &lt;strong&gt;Confusion Between ON and WHERE Clauses&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mistake:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;food_sales&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data_sales&lt;/span&gt; &lt;span class="n"&gt;DS&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This technically works (old-style join), but it’s messy and confusing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Always use &lt;code&gt;JOIN ... ON&lt;/code&gt; for better readability and modern SQL syntax.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Corrected Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;food_sales&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;
&lt;span class="k"&gt;INNER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;data_sales&lt;/span&gt; &lt;span class="n"&gt;DS&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;FS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  4. &lt;strong&gt;Overwriting Columns with the Same Alias&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mistake:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;Product&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;IFNULL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'No Product'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;Product&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;data_sales&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I thought both lines would be fine—but I reused the alias &lt;code&gt;Product&lt;/code&gt;, which caused confusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Always use &lt;strong&gt;unique aliases&lt;/strong&gt; in your SELECT clause.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Corrected Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;ActualProduct&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;IFNULL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'No Product'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;CleanedProduct&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;data_sales&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  5. &lt;strong&gt;Assuming JOINs Automatically Drop NULLs&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mistake:&lt;/strong&gt; I thought an &lt;code&gt;INNER JOIN&lt;/code&gt; would always remove &lt;code&gt;NULL&lt;/code&gt; values from all columns.&lt;/p&gt;

&lt;p&gt;But when joining on unrelated or mismatched columns, NULLs may still show up in non-joined fields.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Always check your join condition and consider using &lt;code&gt;COALESCE()&lt;/code&gt; or &lt;code&gt;IS NULL&lt;/code&gt; to manage missing data explicitly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;City&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Product&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Unknown'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;Product&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;food_sales&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;
&lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;data_sales&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Final Thoughts:
&lt;/h3&gt;

&lt;p&gt;SQL joins are powerful tools, but they require precision and understanding. Each mistake I made taught me something valuable, and I hope by sharing these, your SQL journey becomes a little smoother. Let me know in the comments which one tripped you up—or if you have another SQL lesson to share!&lt;/p&gt;

&lt;p&gt;Happy Querying! 😊&lt;/p&gt;

&lt;p&gt;💭 Got suggestions, feedback, or just want to say hi?&lt;/p&gt;

&lt;p&gt;📩 Reach me at: &lt;a href="mailto:yogarajprof@gmail.com"&gt;yogarajprof@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>mysql</category>
    </item>
    <item>
      <title>"Week 2 Update: Starting SQL Basics Alongside My AWS Learning"</title>
      <dc:creator>Yogaraj</dc:creator>
      <pubDate>Sun, 13 Jul 2025 10:36:18 +0000</pubDate>
      <link>https://dev.to/yogaraj/week-2-update-starting-sql-basics-alongside-my-aws-learning-41l1</link>
      <guid>https://dev.to/yogaraj/week-2-update-starting-sql-basics-alongside-my-aws-learning-41l1</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;Checking in with my Week 2 learning update — shifting gears a bit alongside AWS to start exploring SQL fundamentals. Here’s what I covered this week using MySQL for hands-on practice:&lt;/p&gt;

&lt;p&gt;🚀 What I Learned This Week:&lt;br&gt;
🔹 Core Concepts:&lt;/p&gt;

&lt;p&gt;Data Types: Qualitative vs. Quantitative&lt;/p&gt;

&lt;p&gt;DBMS vs. RDBMS: Understanding how SQL talks to databases&lt;/p&gt;

&lt;p&gt;Local Server Setup &amp;amp; MySQL Installation&lt;/p&gt;

&lt;p&gt;🔹 Table Basics:&lt;/p&gt;

&lt;p&gt;Creating Tables&lt;/p&gt;

&lt;p&gt;SQL Data Types: NUMBER, TEXT, DATE&lt;/p&gt;

&lt;p&gt;CHAR vs. VARCHAR&lt;/p&gt;

&lt;p&gt;🔹 Table Constraints:&lt;/p&gt;

&lt;p&gt;PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK&lt;/p&gt;

&lt;p&gt;DEFAULT, AUTO_INCREMENT&lt;/p&gt;

&lt;p&gt;🔹 Operators &amp;amp; Commands:&lt;/p&gt;

&lt;p&gt;Comparison + Logical Operators (AND, OR, NOT)&lt;/p&gt;

&lt;p&gt;SQL Command Types: DDL, DML, DQL, TCL, DCL&lt;/p&gt;

&lt;p&gt;GROUP BY + HAVING — filtering grouped data&lt;/p&gt;

&lt;p&gt;✍️ Why SQL?&lt;br&gt;
Since many cloud roles involve working with databases, I wanted to build up SQL fundamentals alongside AWS.&lt;/p&gt;

&lt;p&gt;✅ Next Up:&lt;br&gt;
SQL JOINS&lt;/p&gt;

&lt;p&gt;Subqueries&lt;/p&gt;

&lt;p&gt;Real-world practice scenarios&lt;/p&gt;

&lt;p&gt;That’s my SQL progress so far as part of my AWS learning journey. Next, I’ll dive deeper into JOINS, subqueries, and real-time SQL scenarios. &lt;/p&gt;

&lt;p&gt;Thanks for stopping by — and if you're also on a similar path, let’s connect and grow together! 🌱&lt;/p&gt;

&lt;p&gt;Follow me for weekly updates and reflections from my cloud learning journey.&lt;/p&gt;

&lt;p&gt;aws #cloudcomputing #sql #linux&lt;br&gt;
💭 Got suggestions, feedback, or just want to say hi?&lt;/p&gt;

&lt;p&gt;📩 Reach me at: &lt;a href="mailto:yogarajprof@gmail.com"&gt;yogarajprof@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>"Kicking Off My Cloud Journey: Learning AWS and Beyond 🚀"</title>
      <dc:creator>Yogaraj</dc:creator>
      <pubDate>Tue, 24 Jun 2025 17:50:44 +0000</pubDate>
      <link>https://dev.to/yogaraj/kicking-off-my-cloud-journey-learning-aws-and-beyond--1f4j</link>
      <guid>https://dev.to/yogaraj/kicking-off-my-cloud-journey-learning-aws-and-beyond--1f4j</guid>
      <description>&lt;p&gt;Hi everyone! 👋&lt;/p&gt;

&lt;p&gt;I'm excited to share that I'm starting my cloud journey — diving into &lt;strong&gt;AWS&lt;/strong&gt; and a range of related technologies. This marks the beginning of a consistent effort to build a solid foundation for a career in cloud computing.&lt;/p&gt;

&lt;p&gt;Rather than listing everything I’ll be learning, I’ll use this blog to log my &lt;strong&gt;learnings&lt;/strong&gt;, &lt;strong&gt;experiences&lt;/strong&gt;, &lt;strong&gt;struggles&lt;/strong&gt;, and &lt;strong&gt;small wins&lt;/strong&gt; along the way.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Why This Blog?
&lt;/h2&gt;

&lt;p&gt;I’m writing to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep myself accountable and consistent&lt;/li&gt;
&lt;li&gt;Share beginner-friendly insights and resources&lt;/li&gt;
&lt;li&gt;Connect with others learning cloud tech&lt;/li&gt;
&lt;li&gt;Build a learning portfolio that reflects real progress&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✨ What You Can Expect
&lt;/h2&gt;

&lt;p&gt;I’m here to learn out loud.&lt;br&gt;&lt;br&gt;
You’ll find:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Raw, honest notes from my daily learning&lt;/li&gt;
&lt;li&gt;Simple examples I’ve tried on my own&lt;/li&gt;
&lt;li&gt;Weekly summaries of what clicked (and what didn’t)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Thanks for stopping by — and if you're also on a similar path, let’s connect and grow together! 🌱&lt;br&gt;&lt;br&gt;
Follow me for weekly updates and reflections from my cloud learning journey.&lt;/p&gt;




&lt;h1&gt;
  
  
  aws #cloudcomputing #sql #linux
&lt;/h1&gt;

&lt;p&gt;💭 Got suggestions, feedback, or just want to say hi?&lt;br&gt;&lt;br&gt;
📩 Reach me at: &lt;strong&gt;&lt;a href="mailto:yogarajprof@gmail.com"&gt;yogarajprof@gmail.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
