<?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: SAKTHI SREE N S 24CB051</title>
    <description>The latest articles on DEV Community by SAKTHI SREE N S 24CB051 (@sakthi_sreens24cb051_b).</description>
    <link>https://dev.to/sakthi_sreens24cb051_b</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%2F3453130%2Fb9ec4a4b-4dfb-41d5-9202-4c08153005b8.png</url>
      <title>DEV Community: SAKTHI SREE N S 24CB051</title>
      <link>https://dev.to/sakthi_sreens24cb051_b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sakthi_sreens24cb051_b"/>
    <language>en</language>
    <item>
      <title>mongoDB CRUD OPERATION IN SQL</title>
      <dc:creator>SAKTHI SREE N S 24CB051</dc:creator>
      <pubDate>Sun, 05 Oct 2025 16:48:48 +0000</pubDate>
      <link>https://dev.to/sakthi_sreens24cb051_b/mongodb-crud-operation-in-sql-e8e</link>
      <guid>https://dev.to/sakthi_sreens24cb051_b/mongodb-crud-operation-in-sql-e8e</guid>
      <description>&lt;p&gt;Getting Hands-On with MongoDB Atlas: CRUD Operations Made Simple&lt;br&gt;
Hey devs &lt;/p&gt;

&lt;p&gt;I recently dove into MongoDB Atlas to explore how CRUD operations work in a cloud-hosted NoSQL environment—and I wanted to share a few insights and screenshots from my journey. If you're just getting started with MongoDB or curious about how Atlas simplifies database management, this post is for you!&lt;/p&gt;

&lt;p&gt;What I Built&lt;br&gt;
I created a database named CRUD and a collection called students. Using the Atlas UI, I performed basic operations like:&lt;/p&gt;

&lt;p&gt;Insert: Added student records with fields like name, age, year, and department.&lt;/p&gt;

&lt;p&gt;Query: Filtered documents using operators like $gt, $or, and range queries with $gte and $lte.&lt;/p&gt;

&lt;p&gt;Update: Modified fields directly in the UI—super intuitive!&lt;/p&gt;

&lt;p&gt;Delete: Flagged documents for deletion with a simple click.&lt;/p&gt;

&lt;p&gt;Sample Queries I Used&lt;br&gt;
Here are a few examples of queries I ran:&lt;/p&gt;

&lt;p&gt;js&lt;br&gt;
// Find students with student_id greater than 5000&lt;br&gt;
{ "student_id": { "$gt": "5000" } }&lt;/p&gt;

&lt;p&gt;// Find students aged either 1 or 3&lt;br&gt;
{ "$or": [ { "age": 1 }, { "age": 3 } ] }&lt;/p&gt;

&lt;p&gt;// Find students aged between 1.5 and 7.5&lt;br&gt;
{ "age": { "$gte": 1.5, "$lte": 7.5 } }&lt;br&gt;
  Screenshots&lt;br&gt;
I’ve included screenshots showing:&lt;/p&gt;

&lt;p&gt;How documents are structured in MongoDB Atlas&lt;/p&gt;

&lt;p&gt;How filters are applied and results are displayed&lt;/p&gt;

&lt;p&gt;How easy it is to modify or delete documents&lt;/p&gt;

&lt;p&gt;These visuals really help demystify the process for beginners.&lt;/p&gt;

&lt;p&gt;Why MongoDB Atlas?&lt;br&gt;
No setup headaches—just launch and go.&lt;/p&gt;

&lt;p&gt;Built-in UI for managing data without writing shell commands.&lt;/p&gt;

&lt;p&gt;Great for prototyping and learning NoSQL concepts.&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%2Fidhgbmaphvqshtpypau0.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%2Fidhgbmaphvqshtpypau0.jpg" alt=" " width="800" height="351"&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%2Fgn3t9nkv5jpypqzdmn5b.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%2Fgn3t9nkv5jpypqzdmn5b.jpg" alt=" " width="800" height="355"&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%2F7oiy81wewn5hgq2ut8ju.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%2F7oiy81wewn5hgq2ut8ju.jpg" alt=" " width="800" height="348"&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%2Fqgsuwmrk662o5ati5g0c.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%2Fqgsuwmrk662o5ati5g0c.jpg" alt=" " width="800" height="355"&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%2Fpuoao7gh9evkreq3k5is.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%2Fpuoao7gh9evkreq3k5is.jpg" alt=" " width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>database</category>
      <category>mongodb</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>TRANSACTION IN DBMS</title>
      <dc:creator>SAKTHI SREE N S 24CB051</dc:creator>
      <pubDate>Sun, 05 Oct 2025 16:40:33 +0000</pubDate>
      <link>https://dev.to/sakthi_sreens24cb051_b/transaction-in-dbms-38ja</link>
      <guid>https://dev.to/sakthi_sreens24cb051_b/transaction-in-dbms-38ja</guid>
      <description>&lt;p&gt;Understanding MySQL Transactions with Row-Level Locking: A Hands-On Guide&lt;br&gt;
When working with relational databases, ensuring data consistency during concurrent operations is critical. MySQL offers powerful transaction control and row-level locking mechanisms that can help developers maintain integrity even in multi-user environments.&lt;/p&gt;

&lt;p&gt;In this post, I’ll walk through a few real-world examples using MySQL’s START TRANSACTION, SELECT ... FOR UPDATE, and ROLLBACK commands to demonstrate how locking and rollback work in practice.&lt;/p&gt;

&lt;p&gt;Scenario 1: Locking Rows with SELECT ... FOR UPDATE&lt;br&gt;
sql&lt;br&gt;
START TRANSACTION;&lt;/p&gt;

&lt;p&gt;-- Lock Alice's row&lt;br&gt;
SELECT * FROM Accounts WHERE name = 'Alice' FOR UPDATE;&lt;/p&gt;

&lt;p&gt;-- Update Bob's balance (allowed if not locked by another session)&lt;br&gt;
UPDATE Accounts SET balance = balance + 10 WHERE name = 'Bob';&lt;br&gt;
  Insight: SELECT ... FOR UPDATE locks the selected row until the transaction is committed or rolled back. This prevents other sessions from modifying it, ensuring safe concurrent operations.&lt;/p&gt;

&lt;p&gt;Scenario 2: Rolling Back a Transaction&lt;br&gt;
sql&lt;br&gt;
START TRANSACTION;&lt;/p&gt;

&lt;p&gt;Transfer funds from Alice to Bob&lt;br&gt;
UPDATE Accounts SET balance = balance - 500 WHERE name = 'Alice';&lt;br&gt;
UPDATE Accounts SET balance = balance + 500 WHERE name = 'Bob';&lt;/p&gt;

&lt;p&gt;something went wrong? Roll it back!&lt;br&gt;
ROLLBACK;&lt;/p&gt;

&lt;p&gt;Verify balances&lt;br&gt;
SELECT * FROM Accounts;&lt;br&gt;
   Insight: ROLLBACK undoes all changes made during the transaction. This is especially useful when an error occurs mid-operation or a condition fails validation.&lt;/p&gt;

&lt;p&gt;Scenario 3: Locking Bob, Updating Alice&lt;br&gt;
sql&lt;br&gt;
START TRANSACTION;&lt;/p&gt;

&lt;p&gt;Lock Bob's row&lt;br&gt;
SELECT * FROM Accounts WHERE name = 'Bob' FOR UPDATE;&lt;/p&gt;

&lt;p&gt;Update Alice's balance&lt;br&gt;
UPDATE Accounts SET balance = balance + 20 WHERE name = 'Alice';&lt;/p&gt;

&lt;p&gt;Insight: Locking one row doesn’t block updates to other rows unless explicitly locked. This allows for fine-grained concurrency control.&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%2Fs5tnqwei2yl515mrugub.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%2Fs5tnqwei2yl515mrugub.jpg" alt=" " width="800" height="296"&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%2Fvtdbmmt8cpx170nv3nzj.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%2Fvtdbmmt8cpx170nv3nzj.jpg" alt=" " width="800" height="332"&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%2Fpqoe2f5dovw78cfe59ag.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%2Fpqoe2f5dovw78cfe59ag.jpg" alt=" " width="800" height="471"&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%2Fdq05ya3rkbi9gihcangy.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%2Fdq05ya3rkbi9gihcangy.jpg" alt=" " width="800" height="526"&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%2Fm7pu421md5m5xq5um3tq.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%2Fm7pu421md5m5xq5um3tq.jpg" alt=" " width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>database</category>
      <category>mysql</category>
      <category>tutorial</category>
      <category>sql</category>
    </item>
    <item>
      <title>HASHING IN SQL</title>
      <dc:creator>SAKTHI SREE N S 24CB051</dc:creator>
      <pubDate>Sun, 05 Oct 2025 16:31:40 +0000</pubDate>
      <link>https://dev.to/sakthi_sreens24cb051_b/hashing-in-sql-kb3</link>
      <guid>https://dev.to/sakthi_sreens24cb051_b/hashing-in-sql-kb3</guid>
      <description>&lt;p&gt;Getting Hands-On with Oracle Live SQL: My Journey into Database Fundamentals&lt;br&gt;
Hey devs!&lt;br&gt;&lt;br&gt;
I recently dove into Oracle Live SQL to sharpen my database skills, and I wanted to share some of the cool things I learned—especially around clusters, indexing, and querying data efficiently.&lt;/p&gt;

&lt;p&gt;Creating a Clustered Setup&lt;br&gt;
I started by experimenting with clusters, which allow related tables to be stored together physically. Here's a snippet of what I tried:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE CLUSTER emp_dept_cluster (&lt;br&gt;
  deptno NUMBER(3)&lt;br&gt;
)&lt;br&gt;
SIZE 512;&lt;/p&gt;

&lt;p&gt;CREATE INDEX idx_emp_dept_cluster&lt;br&gt;
ON CLUSTER emp_dept_cluster;&lt;br&gt;
Then I created two tables—dept and emp—that share the deptno key and are clustered together:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE TABLE dept (&lt;br&gt;
  deptno NUMBER(3),&lt;br&gt;
  dname VARCHAR2(14),&lt;br&gt;
  loc VARCHAR2(13)&lt;br&gt;
)&lt;br&gt;
CLUSTER emp_dept_cluster (deptno);&lt;/p&gt;

&lt;p&gt;CREATE TABLE emp (&lt;br&gt;
  empno NUMBER(4),&lt;br&gt;
  ename VARCHAR2(10),&lt;br&gt;
  job VARCHAR2(9),&lt;br&gt;
  mgr NUMBER(4),&lt;br&gt;
  hiredate DATE,&lt;br&gt;
  sal NUMBER(7,2),&lt;br&gt;
  comm NUMBER(7,2),&lt;br&gt;
  deptno NUMBER(3)&lt;br&gt;
)&lt;br&gt;
CLUSTER emp_dept_cluster (deptno);&lt;br&gt;
  Pro tip: If you get ORA-00955: name is already used by an existing object, it means you’ve already created that object—just drop it or rename it before retrying.&lt;/p&gt;

&lt;p&gt;Building a Student Table and Querying Data&lt;br&gt;
Next, I created a simple student table and practiced inserting and retrieving data:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE TABLE student (&lt;br&gt;
  roll_no NUMBER,&lt;br&gt;
  name VARCHAR2(20),&lt;br&gt;
  dept VARCHAR2(10),&lt;br&gt;
  cgpa NUMBER&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;INSERT INTO student VALUES (101, 'Alice', 'CS', 8.5);&lt;br&gt;
INSERT INTO student VALUES (110, 'Bob', 'IT', 7.8);&lt;br&gt;
-- more inserts...&lt;br&gt;
SELECT * FROM student;&lt;br&gt;
This helped me understand how to structure data and run basic queries.&lt;/p&gt;

&lt;p&gt;Indexing for Performance&lt;br&gt;
I also explored how indexes improve query performance:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
-- Primary key index is implicit&lt;br&gt;
CREATE TABLE student (&lt;br&gt;
  roll_no NUMBER PRIMARY KEY,&lt;br&gt;
  name VARCHAR2(50),&lt;br&gt;
  dept VARCHAR2(50),&lt;br&gt;
  cgpa NUMBER(3,2)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;-- Explicit index on name&lt;br&gt;
CREATE INDEX idx_name ON student(name);&lt;/p&gt;

&lt;p&gt;-- Composite index&lt;br&gt;
CREATE INDEX idx_dept_cgpa ON student(dept, cgpa);&lt;br&gt;
Using these indexes, I ran queries like:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
SELECT * FROM student WHERE name = 'Jack';&lt;br&gt;
SELECT * FROM student WHERE dept = 'CSE' AND cgpa = 9.5;&lt;br&gt;
The results were fast and efficient—Oracle Live SQL even shows you which indexes are being used!&lt;/p&gt;

&lt;p&gt;Categorizing with CASE Statements&lt;br&gt;
Finally, I played with the CASE clause to categorize products based on price:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
SELECT product_id, product_name,&lt;br&gt;
  CASE &lt;br&gt;
    WHEN list_price &amp;lt; 200 THEN 'Low'&lt;br&gt;
    WHEN list_price BETWEEN 200 AND 500 THEN 'Medium'&lt;br&gt;
    ELSE 'High'&lt;br&gt;
  END AS cost&lt;br&gt;
FROM products&lt;br&gt;
ORDER BY cost;&lt;br&gt;
This is a great way to add logic directly into your queries.&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%2Fp4eymwnrmhsaemicq7ey.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%2Fp4eymwnrmhsaemicq7ey.jpg" alt=" " width="800" height="377"&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%2F4g1ladk1ft50ivybuh3p.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%2F4g1ladk1ft50ivybuh3p.jpg" alt=" " width="800" height="370"&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%2Fgb9yc1pc7cdrd1k6my4a.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%2Fgb9yc1pc7cdrd1k6my4a.jpg" alt=" " width="800" height="370"&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%2Fxheosw1c2f922eeo9c5s.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%2Fxheosw1c2f922eeo9c5s.jpg" alt=" " width="800" height="385"&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%2Fsooc5a8no3dummt5lhp5.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%2Fsooc5a8no3dummt5lhp5.jpg" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>oracle</category>
      <category>database</category>
      <category>sql</category>
      <category>learning</category>
    </item>
    <item>
      <title>ACID PROPERTY IN SQL</title>
      <dc:creator>SAKTHI SREE N S 24CB051</dc:creator>
      <pubDate>Sun, 05 Oct 2025 16:21:18 +0000</pubDate>
      <link>https://dev.to/sakthi_sreens24cb051_b/acid-in-sql-3p53</link>
      <guid>https://dev.to/sakthi_sreens24cb051_b/acid-in-sql-3p53</guid>
      <description>&lt;p&gt;Demystifying SQL Constraints with Oracle Live SQL&lt;br&gt;
Hey Devs &lt;/p&gt;

&lt;p&gt;I’ve been diving into Oracle Live SQL lately, and it’s been a fascinating ride through the world of data integrity and transaction control. Thought I’d share a few nuggets from my journey—especially around constraints and how they shape reliable databases.&lt;/p&gt;

&lt;p&gt;Why Constraints Matter&lt;br&gt;
When designing tables, constraints are your first line of defense against bad data. Here's a simple example I used:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE TABLE ACCOUNTS (&lt;br&gt;
    account_id    NUMBER,&lt;br&gt;
    account_type  VARCHAR2(20),&lt;br&gt;
    balance       NUMBER,&lt;br&gt;
    CONSTRAINT acc_pk PRIMARY KEY (account_id),&lt;br&gt;
    CONSTRAINT acc_balance_ck CHECK (balance &amp;gt;= 0) -- No negative balances!&lt;br&gt;
);&lt;br&gt;
This ensures:&lt;/p&gt;

&lt;p&gt;Every account has a unique ID.&lt;/p&gt;

&lt;p&gt;No one can sneak in a negative balance (because chaos isn’t a valid business model).&lt;/p&gt;

&lt;p&gt;Transactions: Merge or Mayhem?&lt;br&gt;
I also played around with inserting duplicate records and wrapping them in a transaction block. It’s a great way to test how your logic handles real-world scenarios like merging balances or rejecting duplicates.&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
BEGIN&lt;br&gt;
  INSERT INTO Accounts VALUES ('David', 3000);&lt;br&gt;
  INSERT INTO Accounts VALUES ('David', 4000);&lt;br&gt;
END;&lt;br&gt;
Depending on your schema design, this could either:&lt;/p&gt;

&lt;p&gt;Merge balances intelligently&lt;/p&gt;

&lt;p&gt;Or throw a constraint violation&lt;/p&gt;

&lt;p&gt;Pro Tip: Test Minimal Inserts&lt;br&gt;
Try inserting a record without all required fields and see how your constraints react:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
INSERT INTO Accounts (acc_no, name)&lt;br&gt;
VALUES (101, 'Pranav');&lt;br&gt;
If your table requires a balance, this should fail—or default—depending on how you've set it up.&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%2F2vbmlywpfuuppzri5bzj.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%2F2vbmlywpfuuppzri5bzj.jpg" alt=" " width="800" height="329"&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%2F7vchpdmp3v9nekugaol6.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%2F7vchpdmp3v9nekugaol6.jpg" alt=" " width="800" height="325"&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%2F1ybz6c9w4su0tf70lhmq.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%2F1ybz6c9w4su0tf70lhmq.jpg" alt=" " width="800" height="340"&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%2Fvbgh92tm0abahnk929i4.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%2Fvbgh92tm0abahnk929i4.jpg" alt=" " width="800" height="363"&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%2F9fg7vvi31kfgcdoesrzw.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%2F9fg7vvi31kfgcdoesrzw.jpg" alt=" " width="800" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>CURSOR AND TRIGGER IN SQL</title>
      <dc:creator>SAKTHI SREE N S 24CB051</dc:creator>
      <pubDate>Sun, 05 Oct 2025 16:12:25 +0000</pubDate>
      <link>https://dev.to/sakthi_sreens24cb051_b/cursor-and-trigger-in-sql-38ml</link>
      <guid>https://dev.to/sakthi_sreens24cb051_b/cursor-and-trigger-in-sql-38ml</guid>
      <description>&lt;p&gt;My Hands-On Journey with Oracle Live SQL: Learning by Doing&lt;br&gt;
Hey devs! &lt;/p&gt;

&lt;p&gt;I recently started exploring Oracle’s Live SQL platform to level up my database skills, and I wanted to share some of my learnings, code snippets, and a few surprises I ran into. If you're diving into SQL or curious about Oracle's ecosystem, this post might be just what you need.&lt;/p&gt;

&lt;p&gt;What Is Oracle Live SQL?&lt;br&gt;
Oracle Live SQL is a browser-based SQL playground—no installation required. You can write, run, and test SQL and PL/SQL scripts instantly. It’s perfect for learners, hobbyists, and pros who want to prototype or practice.&lt;/p&gt;

&lt;p&gt;What I Built&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Creating Tables and Inserting Data
sql
CREATE TABLE EMPLOYEE (
EmpID NUMBER,
EmpName VARCHAR2(50),
EmpAge NUMBER,
EmpSalary NUMBER
);&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;INSERT INTO EMPLOYEE VALUES (101, 'John', 25, 50000);&lt;br&gt;
INSERT INTO EMPLOYEE VALUES (102, 'Jane', 30, 60000);&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Filtering with WHERE Clause&lt;br&gt;
sql&lt;br&gt;
SELECT employee_id, first_name, salary&lt;br&gt;
FROM employees&lt;br&gt;
WHERE salary &amp;gt; 50000;&lt;br&gt;
Heads-up: The output included salaries below 50,000—possibly a data issue or caching quirk.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;PL/SQL Scripting with Conditional Logic&lt;br&gt;
sql&lt;br&gt;
SET SERVEROUTPUT ON;&lt;br&gt;
DECLARE&lt;br&gt;
v_emp_salary NUMBER;&lt;br&gt;
BEGIN&lt;br&gt;
SELECT salary INTO v_emp_salary FROM employees WHERE employee_id = 100;&lt;/p&gt;

&lt;p&gt;IF v_emp_salary &amp;gt; 5000 THEN&lt;br&gt;
    DBMS_OUTPUT.PUT_LINE('Very Good Salary: ' || v_emp_salary);&lt;br&gt;
ELSE&lt;br&gt;
    DBMS_OUTPUT.PUT_LINE('Average Salary: ' || v_emp_salary);&lt;br&gt;
END IF;&lt;br&gt;
END;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Triggers for Auditing&lt;br&gt;
sql&lt;br&gt;
CREATE OR REPLACE TRIGGER STUDENT_AUDIT&lt;br&gt;
AFTER INSERT ON STUDENTS&lt;br&gt;
FOR EACH ROW&lt;br&gt;
BEGIN&lt;br&gt;
INSERT INTO AUDIT_LOG (Student_ID, Action, ActionDate)&lt;br&gt;
VALUES (:NEW.Student_ID, 'INSERT', SYSDATE);&lt;br&gt;
END;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&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%2Fcs2tgawfr6ght4g53yvq.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%2Fcs2tgawfr6ght4g53yvq.jpg" alt=" " width="800" height="377"&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%2Feengpabhfrk4vtshf6n3.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%2Feengpabhfrk4vtshf6n3.jpg" alt=" " width="800" height="397"&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%2F6ze5lydut5rxm3omp5aw.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%2F6ze5lydut5rxm3omp5aw.jpg" alt=" " width="800" height="367"&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%2Fyzlwhm4bp91stg40n37u.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%2Fyzlwhm4bp91stg40n37u.jpg" alt=" " width="800" height="375"&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%2Fhgsugsbb496e6g6pf8en.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%2Fhgsugsbb496e6g6pf8en.jpg" alt=" " width="800" height="376"&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%2Ftr8vovwoakj85tbymqha.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%2Ftr8vovwoakj85tbymqha.jpg" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>NORMALIZATION IN DBMS</title>
      <dc:creator>SAKTHI SREE N S 24CB051</dc:creator>
      <pubDate>Sun, 05 Oct 2025 15:56:10 +0000</pubDate>
      <link>https://dev.to/sakthi_sreens24cb051_b/normalization-in-dbms-4ghg</link>
      <guid>https://dev.to/sakthi_sreens24cb051_b/normalization-in-dbms-4ghg</guid>
      <description>&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%2Fkkrsv7ncpt53omwmxixl.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%2Fkkrsv7ncpt53omwmxixl.jpg" alt=" " width="800" height="404"&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%2Fo7oovez70z2wv7j41hpa.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%2Fo7oovez70z2wv7j41hpa.jpg" alt=" " width="800" height="384"&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%2Frpx76pxcvnlr5svxqliw.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%2Frpx76pxcvnlr5svxqliw.jpg" alt=" " width="800" height="414"&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%2Fql4183ol40a9ikprywt2.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%2Fql4183ol40a9ikprywt2.jpg" alt=" " width="800" height="433"&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%2Fspey2b4uz2oz48jo5gtu.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%2Fspey2b4uz2oz48jo5gtu.jpg" alt=" " width="800" height="470"&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%2F3tfhexeu2nqjinac41gq.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%2F3tfhexeu2nqjinac41gq.jpg" alt=" " width="800" height="441"&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%2F2oivsu30vh3ovbcejs9s.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%2F2oivsu30vh3ovbcejs9s.jpg" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Getting Started with SQL: Building a Student-Course Database in Oracle Live SQL&lt;br&gt;
If you're new to SQL or just exploring Oracle Live SQL, this post walks you through creating a simple relational database with students, courses, and instructors. We'll cover table creation, relationships, and basic queries—all in a hands-on way.&lt;/p&gt;

&lt;p&gt;Step 1: Create Your Tables&lt;br&gt;
Start by defining the core entities: Students, Courses, and Enrollments.&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
CREATE TABLE Students (&lt;br&gt;
    StudentID INT PRIMARY KEY,&lt;br&gt;
    Name VARCHAR(100),&lt;br&gt;
    Age INT&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;CREATE TABLE Courses (&lt;br&gt;
    CourseID INT PRIMARY KEY,&lt;br&gt;
    CourseName VARCHAR(100)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;CREATE TABLE Enrollments (&lt;br&gt;
    EnrollmentID INT PRIMARY KEY,&lt;br&gt;
    StudentID INT,&lt;br&gt;
    CourseID INT,&lt;br&gt;
    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),&lt;br&gt;
    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)&lt;br&gt;
);&lt;br&gt;
   Step 2: Add Instructors (Optional but Useful)&lt;br&gt;
To make it more realistic, let’s add an Instructors table and link it to Courses.&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(100),&lt;br&gt;
    Department VARCHAR(50)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;ALTER TABLE Courses&lt;br&gt;
ADD InstructorID INT;&lt;/p&gt;

&lt;p&gt;ALTER TABLE Courses&lt;br&gt;
ADD FOREIGN KEY (InstructorID) REFERENCES Instructors(InstructorID);&lt;br&gt;
   Step 3: Insert Sample Data&lt;br&gt;
Populate your tables with sample data to test relationships and queries.&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
INSERT INTO Students VALUES (501, 'Anjan', 21);&lt;br&gt;
INSERT INTO Courses VALUES (C102, 'Data Mining');&lt;br&gt;
INSERT INTO Enrollments VALUES (1, 501, C102);&lt;br&gt;
   Step 4: Run a JOIN Query&lt;br&gt;
Now let’s retrieve meaningful data using JOIN:&lt;/p&gt;

&lt;p&gt;sql&lt;br&gt;
SELECT s.StudentID, s.Name, c.CourseName, i.InstructorName&lt;br&gt;
FROM Students s&lt;br&gt;
JOIN Enrollments e ON s.StudentID = e.StudentID&lt;br&gt;
JOIN Courses c ON e.CourseID = c.CourseID&lt;br&gt;
JOIN Instructors i ON c.InstructorID = i.InstructorID;&lt;br&gt;
   Why This Matters&lt;br&gt;
This mini-project helps you:&lt;/p&gt;

&lt;p&gt;Understand foreign key relationships&lt;/p&gt;

&lt;p&gt;Practice JOIN operations&lt;/p&gt;

&lt;p&gt;Build a foundation for real-world database design&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
Oracle Live SQL is a great playground for learning and experimenting. Whether you're prepping for interviews or building your first app backend, mastering SQL is a skill that pays off.&lt;/p&gt;

</description>
      <category>database</category>
      <category>computerscience</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>COLLEGE STUDENT AND COURSE MANAGEMENT SYSTEM.</title>
      <dc:creator>SAKTHI SREE N S 24CB051</dc:creator>
      <pubDate>Mon, 25 Aug 2025 10:12:50 +0000</pubDate>
      <link>https://dev.to/sakthi_sreens24cb051_b/college-student-and-course-management-system-lgb</link>
      <guid>https://dev.to/sakthi_sreens24cb051_b/college-student-and-course-management-system-lgb</guid>
      <description>&lt;p&gt;In this blog we are going To college student and course management system database management system.&lt;/p&gt;

&lt;p&gt;In this blog, we’ll learn how to create a simple Student-Course Database in Oracle SQL. This example is perfect for beginners who want hands-on practice with SQL commands, constraints, and queries.&lt;/p&gt;

&lt;p&gt;Step 1: Creating the Students Table&lt;/p&gt;

&lt;p&gt;We start by creating the Students table. It will store student details such as ID, Name, Department, Date of Birth, and Email.&lt;/p&gt;

&lt;p&gt;CREATE TABLE Students (&lt;br&gt;
    StudentID NUMBER PRIMARY KEY,&lt;br&gt;
    Name VARCHAR2(50) NOT NULL,&lt;br&gt;
    Dept VARCHAR2(30),&lt;br&gt;
    DOB DATE,&lt;br&gt;
    Email VARCHAR2(50) UNIQUE&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Explanation:&lt;/p&gt;

&lt;p&gt;PRIMARY KEY → Ensures each student has a unique ID.&lt;/p&gt;

&lt;p&gt;NOT NULL → The Name cannot be empty.&lt;/p&gt;

&lt;p&gt;UNIQUE → The Email must be different for each student.&lt;/p&gt;

&lt;p&gt;Step 2: Creating the Courses Table&lt;/p&gt;

&lt;p&gt;Next, we create a Courses table to store available courses.&lt;/p&gt;

&lt;p&gt;CREATE TABLE Courses (&lt;br&gt;
    CourseID NUMBER PRIMARY KEY,&lt;br&gt;
    CourseName VARCHAR2(50) NOT NULL,&lt;br&gt;
    Credits NUMBER(2)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Explanation:&lt;/p&gt;

&lt;p&gt;CourseID uniquely identifies each course.&lt;/p&gt;

&lt;p&gt;Credits will later have a check constraint to ensure valid values.&lt;/p&gt;

&lt;p&gt;Step 3: Creating the Enrollments Table&lt;/p&gt;

&lt;p&gt;To link students and courses, we create an Enrollments table.&lt;/p&gt;

&lt;p&gt;CREATE TABLE Enrollments (&lt;br&gt;
    EnrollID NUMBER PRIMARY KEY,&lt;br&gt;
    StudentID NUMBER REFERENCES Students(StudentID),&lt;br&gt;
    CourseID NUMBER REFERENCES Courses(CourseID),&lt;br&gt;
    Grade CHAR(2)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;Explanation:&lt;/p&gt;

&lt;p&gt;StudentID references the Students table.&lt;/p&gt;

&lt;p&gt;CourseID references the Courses table.&lt;/p&gt;

&lt;p&gt;This creates relationships between tables (foreign keys).&lt;/p&gt;

&lt;p&gt;Step 4: Inserting Sample Data&lt;/p&gt;

&lt;p&gt;Now let’s insert some students and courses.&lt;/p&gt;

&lt;p&gt;Insert Students&lt;br&gt;
INSERT INTO Students (StudentID, Name, Dept, DOB, Email)&lt;br&gt;
VALUES (1, 'Sakthi', 'CB', TO_DATE('11/22/2006', 'MM-DD-YYYY'), '&lt;a href="mailto:Sakthi.cb@example.com"&gt;Sakthi.cb@example.com&lt;/a&gt;');&lt;/p&gt;

&lt;p&gt;INSERT INTO Students (StudentID, Name, Dept, DOB, Email)&lt;br&gt;
VALUES (2, 'Varsha', 'IT', TO_DATE('03/15/2007', 'MM-DD-YYYY'), '&lt;a href="mailto:varsha.it@example.com"&gt;varsha.it@example.com&lt;/a&gt;');&lt;/p&gt;

&lt;p&gt;INSERT INTO Students (StudentID, Name, Dept, DOB, Email)&lt;br&gt;
VALUES (3, 'Divi', 'CS', TO_DATE('11/22/2006', 'MM-DD-YYYY'), '&lt;a href="mailto:divi.cs@example.com"&gt;divi.cs@example.com&lt;/a&gt;');&lt;/p&gt;

&lt;p&gt;Insert Courses&lt;br&gt;
INSERT INTO Courses (CourseID, CourseName, Credits)&lt;br&gt;
VALUES (101, 'DBMS', 3);&lt;/p&gt;

&lt;p&gt;INSERT INTO Courses (CourseID, CourseName, Credits)&lt;br&gt;
VALUES (102, 'OS', 4);&lt;/p&gt;

&lt;p&gt;INSERT INTO Courses (CourseID, CourseName, Credits)&lt;br&gt;
VALUES (103, 'Data Structures', 5);&lt;/p&gt;

&lt;p&gt;Step 5: Altering Tables&lt;/p&gt;

&lt;p&gt;ALTER TABLE Students&lt;br&gt;
ADD PhoneNo VARCHAR2(10);&lt;/p&gt;

&lt;p&gt;ALTER TABLE Courses&lt;br&gt;
ADD CHECK (Credits BETWEEN 1 AND 5);&lt;/p&gt;

&lt;p&gt;Step 6: Commit Changes&lt;/p&gt;

&lt;p&gt;In Oracle, always commit after inserting or updating records.&lt;/p&gt;

&lt;p&gt;COMMIT;&lt;/p&gt;

&lt;p&gt;Step 7: Running Queries&lt;/p&gt;

&lt;p&gt;Now let’s fetch some useful results from our database.&lt;/p&gt;

&lt;p&gt;Display student names in uppercase with email length&lt;br&gt;
SELECT&lt;br&gt;
    UPPER(Name) AS Student_Name,&lt;br&gt;
    LENGTH(Email) AS Email_Length&lt;br&gt;
FROM Students;&lt;/p&gt;

&lt;p&gt;Display all courses with credits&lt;br&gt;
SELECT CourseID, CourseName, Credits&lt;br&gt;
FROM Courses;&lt;/p&gt;

&lt;p&gt;Display all student details&lt;br&gt;
SELECT StudentID, Name, Dept, DOB, Email, PhoneNo&lt;br&gt;
FROM Students;&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;In this tutorial, we:&lt;/p&gt;

&lt;p&gt;Created Students, Courses, and Enrollments tables.&lt;/p&gt;

&lt;p&gt;Learned about primary keys, foreign keys, unique constraints, and check constraints.&lt;/p&gt;

&lt;p&gt;Inserted sample data and queried results.&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%2Fks82hgyj86g6jvyaz1y7.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%2Fks82hgyj86g6jvyaz1y7.jpg" alt=" " width="800" height="427"&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%2Fctzjp0ycmgj82ythkosf.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%2Fctzjp0ycmgj82ythkosf.jpg" alt=" " width="800" height="414"&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%2Fzxflgsse29a4q7lqjziz.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%2Fzxflgsse29a4q7lqjziz.jpg" alt=" " width="800" height="384"&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%2Fy3rq7ipmcs9i3oerux7m.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%2Fy3rq7ipmcs9i3oerux7m.jpg" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank You &lt;a class="mentioned-user" href="https://dev.to/santhoshnc"&gt;@santhoshnc&lt;/a&gt; sir for guiding me.&lt;/p&gt;

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