<?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: ROHITH</title>
    <description>The latest articles on DEV Community by ROHITH (@rohith_95).</description>
    <link>https://dev.to/rohith_95</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%2F3447516%2F0016ac2a-d74c-4012-9167-98cef1d6d85f.png</url>
      <title>DEV Community: ROHITH</title>
      <link>https://dev.to/rohith_95</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rohith_95"/>
    <language>en</language>
    <item>
      <title>🎉 MongoDB Atlas CRUD Operations Made Easy! 🚀</title>
      <dc:creator>ROHITH</dc:creator>
      <pubDate>Mon, 06 Oct 2025 05:09:07 +0000</pubDate>
      <link>https://dev.to/rohith_95/mongodb-atlas-crud-operations-made-easy-15b4</link>
      <guid>https://dev.to/rohith_95/mongodb-atlas-crud-operations-made-easy-15b4</guid>
      <description>&lt;p&gt;Hey folks! Today, let's play with MongoDB Atlas and Compass UI to handle our student database through CRUD operations: Create, Read, Update, and Delete. Ready? Let’s jump in! 🏊‍♂️&lt;/p&gt;

&lt;p&gt;🟢 1. Create – Adding New Students!&lt;br&gt;
Want to add a new student to your collection? Just click “Insert Document” and fill in the details for your student, like student_id, name, department, year, cgpa, and age. Hit the save button and boom – your student joins the list! ✨&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqljt10ysbz2g1iomms5v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqljt10ysbz2g1iomms5v.jpg" alt=" " width="800" height="582"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8pc1y2bjn5uenubbplh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8pc1y2bjn5uenubbplh.jpg" alt=" " width="587" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1swb4ewk8gy9yx3sfjsi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1swb4ewk8gy9yx3sfjsi.jpg" alt=" " width="582" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔍 2. Read – Finding Students With Filters&lt;/p&gt;

&lt;p&gt;Curious to know which students have a CGPA greater than 8? Just use a filter like:&lt;/p&gt;

&lt;p&gt;{ cgpa: { $gt: 8 } }&lt;br&gt;
MongoDB Compass instantly grabs the matching documents for you! 🎯&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8rodf62bbnyct8fqv51.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8rodf62bbnyct8fqv51.jpg" alt=" " width="613" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvu4gvya0s0plp38vj2g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvu4gvya0s0plp38vj2g.jpg" alt=" " width="516" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(See example filter and the highlight of top performers!)&lt;/p&gt;

&lt;p&gt;( find students only in the IT department? Use:&lt;br&gt;
{ department: "IT" }&lt;br&gt;
(Here’s the query result filtered for IT students!)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fahxm65udji6xnq29vf60.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fahxm65udji6xnq29vf60.jpg" alt=" " width="553" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🪄 3. Update – Make a Change!&lt;/p&gt;

&lt;p&gt;Need to update a student’s CGPA? Easy! Search for the student by student_id (like S005), click the field (say, CGPA), edit it, and save. The new score is live! 📝&lt;/p&gt;

&lt;p&gt;(Watch updating a student's CGPA in action!)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyxumk9b114pxgj0ce1wp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyxumk9b114pxgj0ce1wp.jpg" alt=" " width="784" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🗑️ 4. Delete – Say Goodbye!&lt;/p&gt;

&lt;p&gt;Want to remove a record? Just filter by student_id, click the delete option, and confirm! The document will be flagged for deletion, and once confirmed, it’s wiped from the collection. No more clutter! 🧹&lt;/p&gt;

&lt;p&gt;(See the deletion process and confirmation popup!)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg993f44p4pa6yk9fvbh5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg993f44p4pa6yk9fvbh5.jpg" alt=" " width="800" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjv1aih3ko9a743rwsrxe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjv1aih3ko9a743rwsrxe.jpg" alt=" " width="780" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CRUD operations in MongoDB Atlas using Compass are super friendly and visual. You can build, explore, modify, and clean your data – all with just a few clicks and simple queries. Hope these screenshots made each step clearer! 🚦&lt;/p&gt;

&lt;p&gt;Ready to take control of your data? Drop questions below or share your own CRUD hacks! 🙌&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>dbms</category>
      <category>ai</category>
    </item>
    <item>
      <title>🚀 Speed Up Your SQL: Indexing, Hashing &amp; Query Optimization</title>
      <dc:creator>ROHITH</dc:creator>
      <pubDate>Sun, 05 Oct 2025 19:59:49 +0000</pubDate>
      <link>https://dev.to/rohith_95/speed-up-your-sql-indexing-hashing-query-optimization-1aon</link>
      <guid>https://dev.to/rohith_95/speed-up-your-sql-indexing-hashing-query-optimization-1aon</guid>
      <description>&lt;p&gt;Modern databases handle thousands (or millions!) of queries daily. Ever wondered how they stay so fast and efficient? In this post, let’s break down indexing, hashing, and query optimization with SQL and student database examples—powered by actual screenshots!&lt;/p&gt;

&lt;p&gt;📑 1. What is Indexing?&lt;br&gt;
Indexes make pinpointing rows in a table super fast—like turning to the right page using a book’s index instead of flipping every page!&lt;br&gt;
You define indexes on columns that are frequently searched or sorted.&lt;/p&gt;

&lt;p&gt;In Action:&lt;br&gt;
Let’s create a Students table and add an index for roll_no. This index speeds up lookups by roll number dramatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7y8j3fq1aa1eo53rd20o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7y8j3fq1aa1eo53rd20o.jpg" alt=" " width="800" height="665"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zqhuu0a9vydl4ldy089.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zqhuu0a9vydl4ldy089.jpg" alt=" " width="642" height="725"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Result: Queries searching by roll_no are now much faster, even on a large student dataset!&lt;/p&gt;

&lt;p&gt;⚡ 2. Hashing for Rapid Lookup&lt;br&gt;
Hashing converts data (like a student’s roll number) into a fixed-size value (the hash), so a lookup becomes direct.&lt;br&gt;
Think of hashing as a super-charged lookup table: enter a roll number, instantly get the location!&lt;br&gt;
While general SQL doesn’t expose low-level hash functions for search, many database systems use hash indexes internally on key columns for speedy retrieval—especially on primary keys.&lt;/p&gt;

&lt;p&gt;🤖 3. Query Optimization: Smarter Execution&lt;br&gt;
The database query optimizer figures out the fastest way to answer your SQL queries.&lt;br&gt;
It considers available indexes, statistics, filters, and table relationships to use the quickest plan.&lt;/p&gt;

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

&lt;p&gt;Querying all students from the CSBS department:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbht3k08j1ip31w0cq6x.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbht3k08j1ip31w0cq6x.jpg" alt=" " width="800" height="639"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Find a record with a specific roll number:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbsejvvof2te0m0uo49rp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbsejvvof2te0m0uo49rp.jpg" alt=" " width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get all students with a CGPA above 8.0:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzv8qwz7ln6uqdns2z5hp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzv8qwz7ln6uqdns2z5hp.jpg" alt=" " width="800" height="663"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F45y41d9tx6wlkmzzcy0a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F45y41d9tx6wlkmzzcy0a.jpg" alt=" " width="800" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfhmhf5xn79kfr798zim.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfhmhf5xn79kfr798zim.jpg" alt=" " width="800" height="666"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These queries are instantly responsive thanks to thoughtful indexing and the optimizer picking the best plan!&lt;/p&gt;

&lt;p&gt;🏆 Pro Tips for Developers&lt;br&gt;
Index columns you filter (WHERE), JOIN, or ORDER BY most often&lt;br&gt;
Avoid too many indexes—they slow down INSERTs and consume memory&lt;br&gt;
Regularly analyze and update statistics for your tables&lt;br&gt;
Use query EXPLAIN plans to see which indexes and join methods your database uses&lt;/p&gt;

&lt;p&gt;🎯 Final Thoughts&lt;br&gt;
Performance isn’t magic—it’s smart data design!&lt;br&gt;
Using indexing, understanding hashing, and trusting your query optimizer will keep your applications fast, even with growing data.&lt;/p&gt;

&lt;p&gt;Questions? Drop them below, or share your own indexing/optimization war stories! 🚦&lt;/p&gt;

</description>
      <category>database</category>
      <category>performance</category>
      <category>tutorial</category>
      <category>sql</category>
    </item>
    <item>
      <title>📊 Exploring SQL Transactions, Deadlocks &amp; Log Based Recovery</title>
      <dc:creator>ROHITH</dc:creator>
      <pubDate>Sun, 05 Oct 2025 19:36:25 +0000</pubDate>
      <link>https://dev.to/rohith_95/exploring-sql-transactions-deadlocks-log-based-recovery-4hli</link>
      <guid>https://dev.to/rohith_95/exploring-sql-transactions-deadlocks-log-based-recovery-4hli</guid>
      <description>&lt;p&gt;Working with databases is more than just storing data—it’s about managing changes reliably! In this post, let’s explore SQL transaction operations step by step, using actual Oracle Live SQL screenshots from a banking accounts scenario.&lt;/p&gt;

&lt;p&gt;🏦 Step 1: Creating Accounts&lt;br&gt;
First, we establish our account table and insert Alice, Bob, and Charlie’s starting balances.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F34pqt2zy7szy5kh4cr7m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F34pqt2zy7szy5kh4cr7m.jpg" alt=" " width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7adnho9dh8gaj7yyhgpq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7adnho9dh8gaj7yyhgpq.jpg" alt=" " width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alice: 1000&lt;/p&gt;

&lt;p&gt;Bob: 1500&lt;/p&gt;

&lt;p&gt;Charlie: 2000&lt;/p&gt;

&lt;p&gt;🔀 Step 2: Updating Balances&lt;br&gt;
Transactions are vital for balance adjustments. Check out how we use UPDATE SQL to debit and credit in action.&lt;/p&gt;

&lt;p&gt;Alice's account debited by 300:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvyt16igknrqjyc0qv0x6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvyt16igknrqjyc0qv0x6.jpg" alt=" " width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1soanppuj7emhdt6vsrg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1soanppuj7emhdt6vsrg.jpg" alt=" " width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bob receives a 500 credit using a transaction block&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwz9a8aglil60f8s8glqj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwz9a8aglil60f8s8glqj.jpg" alt=" " width="800" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzar2wk2klp0jtmn2d2ks.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzar2wk2klp0jtmn2d2ks.jpg" alt=" " width="788" height="769"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📋 Step 3: Viewing Account Status&lt;br&gt;
After the transactions, let’s check balances to see instant results! The SELECT * FROM Accounts; SQL displays exactly how each transaction impacts records.&lt;/p&gt;

&lt;p&gt;Current balances for Alice, Bob, Charlie:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6tvh3uju8kskvbgsayb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6tvh3uju8kskvbgsayb.jpg" alt=" " width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔄 Step 4: Rollback and Transaction Control&lt;br&gt;
Sometimes, errors or changes require rolling back the last transaction. The ROLLBACK command ensures that any accidental modifications are safely undone, keeping the database consistent.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8nyqxb51odypax72ua3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8nyqxb51odypax72ua3.jpg" alt=" " width="800" height="579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔒 Step 5: Isolation with UPDATE and SELECT FOR UPDATE&lt;br&gt;
Real-world systems often require locking for isolated updates, preventing two users from updating the same record simultaneously. The SQL SELECT ... FOR UPDATE in the screenshots shows how databases handle this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwessvv3fa1kmol26bhz3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwessvv3fa1kmol26bhz3.jpg" alt=" " width="800" height="693"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📝 Final Thoughts&lt;br&gt;
By visualizing each operation, it’s clear how SQL transactions like INSERT, UPDATE, ROLLBACK, and SELECT interact to maintain data integrity.&lt;br&gt;
Try these examples in Oracle Live SQL, and see how transaction control can safeguard your app’s critical data!&lt;/p&gt;

&lt;p&gt;Drop questions or share how you use transactions below! 💬&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🟢 ACID Properties in Databases: Explained with Real SQL Examples</title>
      <dc:creator>ROHITH</dc:creator>
      <pubDate>Sun, 05 Oct 2025 19:19:22 +0000</pubDate>
      <link>https://dev.to/rohith_95/acid-properties-in-databases-explained-with-real-sql-examples-p3j</link>
      <guid>https://dev.to/rohith_95/acid-properties-in-databases-explained-with-real-sql-examples-p3j</guid>
      <description>&lt;p&gt;Databases are everywhere—but how do they guarantee data doesn’t get corrupted or lost, especially when things go wrong? The answer lies in ACID properties: Atomicity, Consistency, Isolation, Durability. Let’s make these simple with hands-on Oracle SQL examples and visuals from a live session! 🚀&lt;/p&gt;

&lt;p&gt;1️⃣ Atomicity 💥&lt;br&gt;
Definition: All steps in a transaction succeed or none do. No halfway changes!&lt;/p&gt;

&lt;p&gt;SQL Example &amp;amp; Image:&lt;br&gt;
Suppose you want to update a loan and then decide to rollback. The operation either rolls back the whole change, or commits completely—never leaves the DB in a half-done state!&lt;/p&gt;

&lt;p&gt;2️⃣ Consistency ✅&lt;br&gt;
Definition: Any transaction must bring the database from one valid state to another, respecting all rules (like constraints).&lt;/p&gt;

&lt;p&gt;SQL Example &amp;amp; Image:&lt;br&gt;
If you try to insert a negative loan amount, the system checks the constraint and rejects invalid data. The DB only keeps things consistent!&lt;/p&gt;

&lt;p&gt;3️⃣ Isolation 🧩&lt;br&gt;
Definition: Transactions do not interfere with each other. Each runs as if it’s the only one.&lt;/p&gt;

&lt;p&gt;SQL Example &amp;amp; Image:&lt;br&gt;
While one transaction is updating a customer’s repayment, no other can disturb its data till it finishes. Operations are shielded from one another!&lt;/p&gt;

&lt;p&gt;4️⃣ Durability 🔒&lt;br&gt;
Definition: Once a transaction commits, its data change is permanent—even if there’s a crash right after.&lt;/p&gt;

&lt;p&gt;SQL Example &amp;amp; Image:&lt;br&gt;
After making a successful insert and committing the transaction, your data stays—even if the system restarts!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2u5a830ymer23r5yayvf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2u5a830ymer23r5yayvf.jpg" alt=" " width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9b8mb0oel6i6n45pxvvz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9b8mb0oel6i6n45pxvvz.jpg" alt=" " width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsij1l155lo9eeg11jnjl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsij1l155lo9eeg11jnjl.jpg" alt=" " width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffhp12wbk3ac4zewjfz39.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffhp12wbk3ac4zewjfz39.jpg" alt=" " width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcducrpuq8tcnq2w4p11n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcducrpuq8tcnq2w4p11n.jpg" alt=" " width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ltr8s3w870embd8v63n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ltr8s3w870embd8v63n.jpg" alt=" " width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxq0d0l664uvep0wmp5sm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxq0d0l664uvep0wmp5sm.jpg" alt=" " width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnq8d4jhusx6qgr20ywf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnq8d4jhusx6qgr20ywf.jpg" alt=" " width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fja0wemzwainf5a5ppyog.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fja0wemzwainf5a5ppyog.jpg" alt=" " width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8qagnizo9u0d3afmdcw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8qagnizo9u0d3afmdcw.jpg" alt=" " width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffkbkemrzez0twycv0ysd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffkbkemrzez0twycv0ysd.jpg" alt=" " width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📸 SQL in Action: Table Creations &amp;amp; Updates&lt;br&gt;
You’ll see plenty of these actions in the screenshots:&lt;br&gt;
 New loan entries for Alice, Bob, Charlie&lt;br&gt;
 Updates to principals and repayments&lt;br&gt;
 Constraint checks rejecting bad data!&lt;/p&gt;

&lt;p&gt;🧑‍💻 Why ACID Matters for Your Projects&lt;br&gt;
Without ACID, databases risk losing, corrupting, or exposing broken data. Whether you’re building a finance app or a basic record keeper, understanding these four pillars keeps your data reliable!&lt;/p&gt;

&lt;p&gt;✨ Final Tips&lt;br&gt;
Always use COMMIT and ROLLBACK wisely.&lt;br&gt;
Set meaningful constraints to guarantee consistency.&lt;br&gt;
Check how your DBMS handles transactions and isolation levels for your use case.&lt;/p&gt;

&lt;p&gt;Any questions? Drop them below! And let’s make data safer, one property at a time. 👨‍💻🔥&lt;/p&gt;

</description>
      <category>database</category>
      <category>computerscience</category>
      <category>tutorial</category>
      <category>sql</category>
    </item>
    <item>
      <title>Understanding Cursors and Triggers in Oracle SQL with Practical Examples</title>
      <dc:creator>ROHITH</dc:creator>
      <pubDate>Sun, 05 Oct 2025 19:02:56 +0000</pubDate>
      <link>https://dev.to/rohith_95/understanding-cursors-and-triggers-in-oracle-sql-with-practical-examples-4l6k</link>
      <guid>https://dev.to/rohith_95/understanding-cursors-and-triggers-in-oracle-sql-with-practical-examples-4l6k</guid>
      <description>&lt;p&gt;Databases are the backbone of modern applications, enabling efficient data storage, retrieval, and powerful manipulation. When working with Oracle SQL, two powerful features—cursors and triggers—help automate tasks and process data row by row. In this post, I’ll explain both concepts, show you practical examples, and share screenshots of implementation using Oracle Live SQL.&lt;/p&gt;

&lt;p&gt;What is a Cursor?&lt;br&gt;
A cursor in SQL acts like a pointer that allows row-by-row processing of result sets. It’s especially useful when you need to perform operations on each row individually, which standard SQL queries can’t accomplish directly.&lt;/p&gt;

&lt;p&gt;Example: Printing Employees with High Salaries&lt;br&gt;
Suppose we have an Employee table with fields: EmpID, EmpName, and Salary. Our goal is to print names of employees who earn more than 50,000.&lt;/p&gt;

&lt;p&gt;PL/SQL Block:&lt;/p&gt;

&lt;p&gt;sql&lt;/p&gt;

&lt;p&gt;DECLARE&lt;br&gt;
  CURSOR high_salary_cursor IS&lt;br&gt;
    SELECT EmpName FROM Employee WHERE Salary &amp;gt; 50000;&lt;br&gt;
  v_name Employee.EmpName%TYPE;&lt;br&gt;
BEGIN&lt;br&gt;
  OPEN high_salary_cursor;&lt;br&gt;
  LOOP&lt;br&gt;
    FETCH high_salary_cursor INTO v_name;&lt;br&gt;
    EXIT WHEN high_salary_cursor%NOTFOUND;&lt;br&gt;
    DBMS_OUTPUT.PUT_LINE('Employee: ' || v_name);&lt;br&gt;
  END LOOP;&lt;br&gt;
  CLOSE high_salary_cursor;&lt;br&gt;
END;&lt;/p&gt;

&lt;p&gt;This script fetches names one by one and prints them if their salary is above 50,000. In my test run, employees Priya, Kiran, and Rahul were displayed.&lt;/p&gt;

&lt;p&gt;What is a Trigger?&lt;br&gt;
A trigger is a special type of stored procedure that automatically executes (or “fires”) in response to certain events on a database table or view, such as insert, update, or delete. Triggers are great for enforcing data integrity, logging actions, or handling business logic.&lt;/p&gt;

&lt;p&gt;Example: Auditing Student Records on Insert&lt;br&gt;
Let’s say we want to track all inserts into a Students table. We’ll do this by creating an audit table and a trigger.&lt;/p&gt;

&lt;p&gt;Step1: Create Audit Table&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE TABLE Student_Audit (&lt;br&gt;
  AuditID INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,&lt;br&gt;
  StudentID VARCHAR(10),&lt;br&gt;
  StudentName VARCHAR(50),&lt;br&gt;
  ActionDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Step2: Create the Trigger&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE OR REPLACE TRIGGER student_insert_audit&lt;br&gt;
  AFTER INSERT ON Students&lt;br&gt;
  FOR EACH ROW&lt;br&gt;
BEGIN&lt;br&gt;
  INSERT INTO Student_Audit (StudentID, StudentName)&lt;br&gt;
  VALUES (:NEW.StudentID, :NEW.StudentName);&lt;br&gt;
END;&lt;br&gt;
/&lt;/p&gt;

&lt;p&gt;Now, every time a new student is inserted into the Students table, their details are copied into Student_Audit with a&lt;br&gt;
timestamp—no manual intervention needed!&lt;/p&gt;

&lt;p&gt;Screenshots&lt;br&gt;
List of employees and their salary data (used for cursor demo)&lt;br&gt;
PL/SQL block (cursor) with successful output&lt;br&gt;
Table creation and row insert examples&lt;br&gt;
Student audit table contents after trigger fires&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvjdybvw6us4ebscpbxm6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvjdybvw6us4ebscpbxm6.jpg" alt=" " width="800" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fovh4a5r7ci81yoy085j1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fovh4a5r7ci81yoy085j1.jpg" alt=" " width="800" height="639"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftn2qq2t2tg3ry5j811zb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftn2qq2t2tg3ry5j811zb.jpg" alt=" " width="800" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftxpr3vnwed7jh0npycqe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftxpr3vnwed7jh0npycqe.jpg" alt=" " width="800" height="624"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcons2giumedpm00x8xgt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcons2giumedpm00x8xgt.jpg" alt=" " width="800" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftxki8s58tf8mc8jowqdh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftxki8s58tf8mc8jowqdh.jpg" alt=" " width="800" height="617"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgm1cbumqy7rc5j8eq82o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgm1cbumqy7rc5j8eq82o.jpg" alt=" " width="800" height="639"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs93bkwomkzhgv81bzon4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs93bkwomkzhgv81bzon4.jpg" alt=" " width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why Use Cursors and Triggers?&lt;br&gt;
Cursors: Required for row-by-row logic, batch processing, or reporting use cases.&lt;/p&gt;

&lt;p&gt;Triggers: Ideal for automatic logging, enforcing rules, and enabling real-time reactions to data changes.&lt;/p&gt;

&lt;p&gt;Final Thoughts:&lt;br&gt;
Mastering cursors and triggers unlocks new automation possibilities in your SQL workflow. Try these examples in Oracle Live SQL, and expand the concepts to fit your own applications. If you have questions, drop them in the comments!&lt;/p&gt;

&lt;p&gt;Happy querying and automating!&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>database</category>
      <category>tutorial</category>
      <category>sql</category>
    </item>
    <item>
      <title>Understanding Normalization in DBMS: Oracle Live SQL Practical Guide</title>
      <dc:creator>ROHITH</dc:creator>
      <pubDate>Sun, 05 Oct 2025 18:29:02 +0000</pubDate>
      <link>https://dev.to/rohith_95/understanding-normalization-in-dbms-oracle-live-sql-practical-guide-50op</link>
      <guid>https://dev.to/rohith_95/understanding-normalization-in-dbms-oracle-live-sql-practical-guide-50op</guid>
      <description>&lt;p&gt;Understanding Normalization in DBMS: Oracle Live SQL Practical Guide&lt;br&gt;
Database normalization is a key concept in designing efficient, consistent, and scalable relational databases. In this post, let's explore normalization—why it's important, the various normal forms, and how to implement normalized structures using Oracle Live SQL with real-world code samples.&lt;/p&gt;

&lt;p&gt;What is Normalization?&lt;br&gt;
Normalization is the process of organizing data and tables in a database to reduce redundancy and improve data integrity. By breaking down larger tables into smaller, related tables and defining relationships among them, we can avoid data anomalies and ensure efficient storage.&lt;/p&gt;

&lt;p&gt;Why Normalize Your Database?&lt;br&gt;
Reduces data redundancy: Prevents duplicate data.&lt;br&gt;
Prevents update anomalies: Makes updates easier and more consistent.&lt;br&gt;
Improves data integrity: Ensures accuracy and consistency.&lt;/p&gt;

&lt;p&gt;Step-by-Step Example: Oracle Live SQL&lt;br&gt;
Let's walk through a practical example with student-course-instructor data.&lt;/p&gt;

&lt;p&gt;1.Unnormalized Table&lt;br&gt;
Suppose all data is stored in a single table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;StudentID&lt;/th&gt;
&lt;th&gt;StudentName&lt;/th&gt;
&lt;th&gt;CourseID&lt;/th&gt;
&lt;th&gt;CourseName&lt;/th&gt;
&lt;th&gt;InstructorName&lt;/th&gt;
&lt;th&gt;InstructorPhone&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;S01&lt;/td&gt;
&lt;td&gt;Arun&lt;/td&gt;
&lt;td&gt;C101&lt;/td&gt;
&lt;td&gt;Cloud&lt;/td&gt;
&lt;td&gt;Dr.sandy&lt;/td&gt;
&lt;td&gt;9876533310&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S01&lt;/td&gt;
&lt;td&gt;Arun&lt;/td&gt;
&lt;td&gt;C102&lt;/td&gt;
&lt;td&gt;Business Comm&lt;/td&gt;
&lt;td&gt;Dr.pritheem&lt;/td&gt;
&lt;td&gt;9876555310&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S02&lt;/td&gt;
&lt;td&gt;manoj&lt;/td&gt;
&lt;td&gt;C101&lt;/td&gt;
&lt;td&gt;Cloud&lt;/td&gt;
&lt;td&gt;Dr.sandy&lt;/td&gt;
&lt;td&gt;9876533310&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;2.First Normal Form (1NF)&lt;br&gt;
Split repeating groups into individual rows so that each field contains atomic values. This is already achieved in our sample.&lt;/p&gt;

&lt;p&gt;3.Second Normal Form (2NF)&lt;br&gt;
Remove partial dependencies—every non-key attribute must depend on the full primary key. Break the above into multiple related tables:&lt;/p&gt;

&lt;p&gt;STUDENTS Table:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE TABLE STUDENTS_ (&lt;br&gt;
  StudentID VARCHAR(10) PRIMARY KEY,&lt;br&gt;
  StudentName VARCHAR(50)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;INSERT INTO STUDENTS_ VALUES&lt;br&gt;
('S01', 'Arun'),&lt;br&gt;
('S02', 'manoj'),&lt;br&gt;
('S03', 'ramanas');&lt;br&gt;
INSTRUCTORS Table:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE TABLE INSTRUCTORS (&lt;br&gt;
  InstructorID INT PRIMARY KEY,&lt;br&gt;
  InstructorName VARCHAR(50),&lt;br&gt;
  InstructorPhone VARCHAR(15)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;INSERT INTO INSTRUCTORS VALUES&lt;br&gt;
(1, 'Dr.sandy', '9876533310'),&lt;br&gt;
(2, 'Dr.shanmugam', '9116533310'),&lt;br&gt;
(3, 'Dr.pritheem', '9876555310');&lt;br&gt;
COURSES Table:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE TABLE COURSES_ (&lt;br&gt;
  CourseID VARCHAR(10) PRIMARY KEY,&lt;br&gt;
  CourseName VARCHAR(50),&lt;br&gt;
  Instructor VARCHAR(50),&lt;br&gt;
  InstructorPhone VARCHAR(15)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;INSERT INTO COURSES_ VALUES&lt;br&gt;
('C101', 'cloud', 'Dr.sandy', '9876533310'),&lt;br&gt;
('C102', 'business communication', 'Dr.pritheem', '9876555310'),&lt;br&gt;
('C103', 'data science', 'Dr.shanmugam', '9116533310');&lt;br&gt;
STUDENTCOURSES Table (Associative/Mapping Table):&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE TABLE STUDENTCOURSES (&lt;br&gt;
  StudentID VARCHAR(10),&lt;br&gt;
  CourseID VARCHAR(10)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;INSERT INTO STUDENTCOURSES VALUES&lt;br&gt;
('S01', 'C101'),&lt;br&gt;
('S01', 'C102'),&lt;br&gt;
('S02', 'C101'),&lt;br&gt;
('S03', 'C103');&lt;/p&gt;

&lt;p&gt;4.Third Normal Form (3NF)&lt;br&gt;
Remove transitive dependencies. In this example, instructor information is best stored in the INSTRUCTORS table, referenced by course, rather than repeated in COURSES.&lt;/p&gt;

&lt;p&gt;How to Query the Normalized Database&lt;br&gt;
Retrieve complete information using JOINs:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
SELECT s.StudentName, c.CourseName, i.InstructorName, i.InstructorPhone&lt;br&gt;
FROM StudentCourses sc&lt;br&gt;
JOIN STUDENTS_ s ON sc.StudentID = s.StudentID&lt;br&gt;
JOIN COURSES_ c ON sc.CourseID = c.CourseID&lt;br&gt;
JOIN INSTRUCTORS i ON c.InstructorPhone = i.InstructorPhone;&lt;/p&gt;

&lt;p&gt;Sample Result:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;StudentName&lt;/th&gt;
&lt;th&gt;CourseName&lt;/th&gt;
&lt;th&gt;InstructorName&lt;/th&gt;
&lt;th&gt;InstructorPhone&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;manoj&lt;/td&gt;
&lt;td&gt;cloud&lt;/td&gt;
&lt;td&gt;Dr.sandy&lt;/td&gt;
&lt;td&gt;9876533310&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arun&lt;/td&gt;
&lt;td&gt;cloud&lt;/td&gt;
&lt;td&gt;Dr.sandy&lt;/td&gt;
&lt;td&gt;9876533310&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arun&lt;/td&gt;
&lt;td&gt;business communication&lt;/td&gt;
&lt;td&gt;Dr.pritheem&lt;/td&gt;
&lt;td&gt;9876555310&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ramanas&lt;/td&gt;
&lt;td&gt;data science&lt;/td&gt;
&lt;td&gt;Dr.shanmugam&lt;/td&gt;
&lt;td&gt;9116533310&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Key Takeaways&lt;br&gt;
Normalization structures your database for efficiency and integrity.&lt;br&gt;
Separate data by entities (students, courses, instructors) and use relationships (foreign keys, mapping tables).&lt;br&gt;
Use JOINs to re-combine related data as needed.&lt;br&gt;
Try these SQL snippets in Oracle Live SQL to practice normalization hands-on!&lt;/p&gt;

&lt;p&gt;Posted using Oracle Live SQL screenshots and real coding experience. Happy normalizing!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cg4maf9cn6rt088kcbm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cg4maf9cn6rt088kcbm.png" alt=" " width="800" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyn91s127nrrxthi9hh7g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyn91s127nrrxthi9hh7g.png" alt=" " width="800" height="603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3sarrsnuqkvqxtqrx51.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3sarrsnuqkvqxtqrx51.png" alt=" " width="800" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fme5wjx8c7iixh5ao4dh8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fme5wjx8c7iixh5ao4dh8.png" alt=" " width="800" height="765"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcjtz0k4n5suiicnhqvk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcjtz0k4n5suiicnhqvk.png" alt=" " width="800" height="696"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljsokri6otod2y6xg9c1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljsokri6otod2y6xg9c1.png" alt=" " width="797" height="785"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzegt8eswbiibchdxwd4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzegt8eswbiibchdxwd4.png" alt=" " width="800" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzkyz9hu8ezne6bp7xylw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzkyz9hu8ezne6bp7xylw.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyn6qtqgfljdswcf7eqba.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyn6qtqgfljdswcf7eqba.png" alt=" " width="800" height="780"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftabrlny33mpzfu8w1sw5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftabrlny33mpzfu8w1sw5.png" alt=" " width="800" height="704"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffk2xhd646brjva6y9evh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffk2xhd646brjva6y9evh.png" alt=" " width="800" height="724"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F52jyvcb78tjqc33w7znd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F52jyvcb78tjqc33w7znd.png" alt=" " width="800" height="726"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd093gn8uuk6idlxwhifj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd093gn8uuk6idlxwhifj.png" alt=" " width="800" height="739"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfs617g3650nx3cjnpnm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfs617g3650nx3cjnpnm.png" alt=" " width="767" height="758"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8oroictkpf7h6380jfjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8oroictkpf7h6380jfjc.png" alt=" " width="800" height="755"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fas16z59sghdei3uct40g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fas16z59sghdei3uct40g.png" alt=" " width="800" height="746"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fephv4pxaeuq3milu6p3c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fephv4pxaeuq3milu6p3c.png" alt=" " width="800" height="645"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>database</category>
      <category>tutorial</category>
      <category>sql</category>
    </item>
    <item>
      <title>🎓 College Student &amp; Course Management System with SQL (Step by Step)</title>
      <dc:creator>ROHITH</dc:creator>
      <pubDate>Thu, 21 Aug 2025 05:05:15 +0000</pubDate>
      <link>https://dev.to/rohith_95/college-student-course-management-system-with-sql-step-by-step-1adj</link>
      <guid>https://dev.to/rohith_95/college-student-course-management-system-with-sql-step-by-step-1adj</guid>
      <description>&lt;p&gt;🎓 College Student &amp;amp; Course Management System with SQL (Step by Step)&lt;/p&gt;

&lt;p&gt;Managing students, courses, and faculty is one of the most common real-world scenarios in colleges and universities. In this blog post, we’ll design and implement a College Student &amp;amp; Course Management System using Oracle SQL.&lt;/p&gt;

&lt;p&gt;We’ll go through 10 practical SQL tasks that will help you strengthen your skills:&lt;br&gt;
✅ Table creation (DDL)&lt;br&gt;
✅ Data insertion (DML)&lt;br&gt;
✅ Altering &amp;amp; constraints&lt;br&gt;
✅ Queries with functions&lt;br&gt;
✅ Aggregates &amp;amp; GROUP BY&lt;br&gt;
✅ Joins &amp;amp; Views&lt;br&gt;
✅ Stored Procedures&lt;/p&gt;

&lt;p&gt;By the end, you’ll have a mini student management system that can be extended for larger projects.&lt;/p&gt;

&lt;p&gt;🏗 Database Schema&lt;/p&gt;

&lt;p&gt;We start with three core tables:&lt;/p&gt;

&lt;p&gt;👨‍🎓 Students → Stores student details&lt;/p&gt;

&lt;p&gt;📚 Courses → Stores course information&lt;/p&gt;

&lt;p&gt;📝 Enrollments → Many-to-many relationship (students taking multiple courses)&lt;/p&gt;

&lt;p&gt;And later, we’ll add Faculty.&lt;/p&gt;

&lt;p&gt;🚀 Implementation – Step by Step&lt;br&gt;
1️⃣ Create Faculty Table&lt;br&gt;
CREATE TABLE Faculty (&lt;br&gt;
    FacultyID NUMBER PRIMARY KEY,&lt;br&gt;
    FacultyName VARCHAR2(50) NOT NULL,&lt;br&gt;
    Dept VARCHAR2(30),&lt;br&gt;
    Email VARCHAR2(50) UNIQUE&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;2️⃣ Insert Students&lt;br&gt;
INSERT INTO Students (StudentID, NAME_, Dept, DOB, Email) &lt;br&gt;
VALUES (1, 'Ramana Raj', 'CSE', TO_DATE('2003-05-12', 'YYYY-MM-DD'), '&lt;a href="mailto:ramana123@gmail.com"&gt;ramana123@gmail.com&lt;/a&gt;');&lt;/p&gt;

&lt;p&gt;INSERT INTO Students (StudentID, NAME_, Dept, DOB, Email) &lt;br&gt;
VALUES (2, 'Thimbesh', 'ECE', TO_DATE('2002-09-21', 'YYYY-MM-DD'), '&lt;a href="mailto:thimbesh123@gmail.com"&gt;thimbesh123@gmail.com&lt;/a&gt;');&lt;/p&gt;

&lt;p&gt;INSERT INTO Students (StudentID, NAME_, Dept, DOB, Email) &lt;br&gt;
VALUES (3, 'Mouliswaran', 'Mechanical', TO_DATE('2001-12-02', 'YYYY-MM-DD'), '&lt;a href="mailto:mouliswaran44@gmail.com"&gt;mouliswaran44@gmail.com&lt;/a&gt;');&lt;/p&gt;

&lt;p&gt;3️⃣ Alter Students Table (Add Phone No.)&lt;br&gt;
ALTER TABLE Students ADD PhoneNo NUMBER(10);&lt;/p&gt;

&lt;p&gt;4️⃣ Add Constraint to Courses&lt;br&gt;
ALTER TABLE Courses&lt;br&gt;
ADD CONSTRAINT chk_credits CHECK (Credits BETWEEN 1 AND 5);&lt;/p&gt;

&lt;p&gt;5️⃣ Functions – Names in UPPERCASE &amp;amp; Email Length&lt;br&gt;
SELECT UPPER(Name) AS StudentNameUpper,&lt;br&gt;
       LENGTH(Email) AS EmailLength&lt;br&gt;
FROM Students;&lt;/p&gt;

&lt;p&gt;6️⃣ Aggregates – Avg Credits &amp;amp; Total Students Enrolled&lt;br&gt;
SELECT AVG(Credits) AS AvgCredits FROM Courses;&lt;/p&gt;

&lt;p&gt;SELECT COUNT(DISTINCT StudentID) AS TotalStudentsEnrolled&lt;br&gt;
FROM Enrollments;&lt;/p&gt;

&lt;p&gt;7️⃣ JOIN – Students with Courses &amp;amp; Grades&lt;br&gt;
SELECT s.Name AS StudentName, c.CourseName, e.Grade&lt;br&gt;
FROM Enrollments e&lt;br&gt;
JOIN Students s ON e.StudentID = s.StudentID&lt;br&gt;
JOIN Courses c ON e.CourseID = c.CourseID;&lt;/p&gt;

&lt;p&gt;8️⃣ GROUP BY + HAVING&lt;br&gt;
SELECT Dept, COUNT(&lt;em&gt;) AS StudentCount&lt;br&gt;
FROM Students&lt;br&gt;
GROUP BY Dept&lt;br&gt;
HAVING COUNT(&lt;/em&gt;) &amp;gt; 2;&lt;/p&gt;

&lt;p&gt;9️⃣ Create View (StudentCoursesView)&lt;br&gt;
CREATE VIEW StudentCoursesView AS&lt;br&gt;
SELECT s.Name AS StudentName, c.CourseName, e.Grade&lt;br&gt;
FROM Enrollments e&lt;br&gt;
JOIN Students s ON e.StudentID = s.StudentID&lt;br&gt;
JOIN Courses c ON e.CourseID = c.CourseID;&lt;/p&gt;

&lt;p&gt;🔟 Stored Procedure – Update Grade&lt;br&gt;
CREATE OR REPLACE PROCEDURE UpdateGrade (&lt;br&gt;
    p_StudentID IN NUMBER,&lt;br&gt;
    p_CourseID  IN NUMBER,&lt;br&gt;
    p_NewGrade  IN CHAR&lt;br&gt;
) AS&lt;br&gt;
BEGIN&lt;br&gt;
    UPDATE Enrollments&lt;br&gt;
    SET Grade = p_NewGrade&lt;br&gt;
    WHERE StudentID = p_StudentID&lt;br&gt;
      AND CourseID = p_CourseID;&lt;br&gt;
    COMMIT;&lt;/p&gt;

&lt;p&gt;END;&lt;/p&gt;

&lt;p&gt;🎯 Summary&lt;/p&gt;

&lt;p&gt;In this blog post, we built a mini College Student &amp;amp; Course Management System using SQL:&lt;/p&gt;

&lt;p&gt;🏗 Designed tables for Students, Courses, Faculty &amp;amp; Enrollments&lt;/p&gt;

&lt;p&gt;✏ Inserted and managed data with DDL &amp;amp; DML&lt;/p&gt;

&lt;p&gt;🔒 Applied constraints for data integrity&lt;/p&gt;

&lt;p&gt;📊 Queried using functions, aggregates, joins, and group by&lt;/p&gt;

&lt;p&gt;👀 Created a View for simplified reporting&lt;/p&gt;

&lt;p&gt;⚙ Automated updates with a Stored Procedure&lt;/p&gt;

&lt;p&gt;👉 This project covers almost all core SQL concepts and can easily be extended to include:&lt;/p&gt;

&lt;p&gt;Attendance tracking&lt;/p&gt;

&lt;p&gt;Faculty-course mapping&lt;/p&gt;

&lt;p&gt;Timetable management&lt;/p&gt;

&lt;p&gt;Reports &amp;amp; dashboards&lt;/p&gt;

&lt;p&gt;💡 If you’re preparing for SQL interviews or college DBMS projects, this example is a solid foundation to practice and showcase.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc6li0acd2xxeypzs4w32.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc6li0acd2xxeypzs4w32.jpg" alt=" " width="800" height="372"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjwka14ggtx2jkr2tja6x.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjwka14ggtx2jkr2tja6x.jpg" alt=" " width="800" height="365"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvnwscmkvkkv8g0fdmzyq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvnwscmkvkkv8g0fdmzyq.jpg" alt=" " width="800" height="369"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbjrefw08tv6okhx1u4a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbjrefw08tv6okhx1u4a.jpg" alt=" " width="800" height="365"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv6g0igyf36p779g6gb81.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv6g0igyf36p779g6gb81.jpg" alt=" " width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>sql</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
