Skip to content

Data Definition Language (DDL) ๐Ÿš€

Mentor's Note: DDL is about the Structure, not the data. Think of it as building the house itself before you move the furniture in! ๐Ÿ’ก


๐ŸŒŸ The Scenario: The Architect's Blueprint ๐Ÿ›๏ธ

Imagine you are building a new luxury apartment complex.

  • CREATE: You design the Blueprint (Number of rooms, floor plan). You are building the structure. ๐Ÿ—๏ธ
  • ALTER: You decide to add a Balcony to every room later. You are changing the existing structure. ๐Ÿ› ๏ธ
  • DROP: The building is old and dangerous. you Demolish it entirely. ๐Ÿ’ฅ
  • The Result: You are managing the "Container," not the people living inside. โœ…

๐Ÿ“– Key DDL Commands

1. CREATE

Used to create a new table or database object.

CREATE TABLE students (
    id NUMBER PRIMARY KEY,
    name VARCHAR2(100),
    age NUMBER
);

2. ALTER

Used to modify an existing object (add/remove columns).

ALTER TABLE students ADD (email VARCHAR2(50));

3. DROP

Deletes the table and ALL its data permanently.

DROP TABLE old_records;


๐ŸŽจ Visual Logic: The Schema Lifecycle

graph LR
    A[Design ๐Ÿ“] -- CREATE --> B[New Table ๐Ÿ“‹]
    B -- ALTER --> C[Updated Structure ๐Ÿ› ๏ธ]
    C -- DROP --> D[Deleted / Empty Space ๐Ÿ’จ]

๐Ÿ’ป Implementation: The Schema Lab

-- ๐Ÿ›’ Scenario: Setting up a library system
-- ๐Ÿš€ Action: Defining the book structure

CREATE TABLE books (
    book_id NUMBER(5) PRIMARY KEY,
    title VARCHAR2(200) NOT NULL,
    author VARCHAR2(100),
    price NUMBER(8,2)
);

-- ๐Ÿ›๏ธ Outcome: A new empty "container" for books.
-- ๐Ÿš€ Action: Add a column for Published Year

ALTER TABLE books 
ADD (published_year NUMBER(4));

๐Ÿ“Š Sample Dry Run

Command Action Data Inside? Structure Changes?
CREATE Build box ๐Ÿ“ฆ No New box added.
ALTER Add divider ๐Ÿ“ Unaffected Box modified.
DROP Burn box ๐Ÿ”ฅ DESTROYED Box removed.

๐Ÿ“‰ Complexity Analysis

  • Execution: DDL commands are Auto-Committed in Oracle. This means once you run them, you cannot "Undo" (Rollback) the change! โš ๏ธ Be very careful.

๐ŸŽฏ Practice Lab ๐Ÿงช

Task: The Employee Setup

Task: Create a table EMPLOYEES with emp_id, emp_name, and join_date. Then, add a salary column using ALTER. Hint: Use VARCHAR2 for names and DATE for dates. ๐Ÿ’ก


๐Ÿ’ก Interview Tip ๐Ÿ‘”

"Interviewers often ask: 'What is the difference between DROP and TRUNCATE?' Answer: DROP deletes the structure + data. TRUNCATE deletes ONLY the data but keeps the empty structure!"


๐Ÿ’ก Pro Tip: "Good design is a lot like clear thinking made visual." - Edward Tufte


โ† Back: Subqueries | Next: Data Manipulation (DML) โ†’