SQL Commands - Primary Key vs Foreign Key — Vista Academy

Primary Key और Foreign Key — अंतर, नियम और SQL Examples

Primary Key तथा Foreign Key क्या हैं, SQL में इनका उपयोग कैसे होता है, और दोनों के बीच का स्पष्ट अंतर — सरल हिंदी + अंग्रेज़ी उदाहरणों के साथ। जानें भी: क्या Primary Key foreign key बन सकती है और क्या Foreign Key NULL हो सकती है — 2025 अपडेट।

क्यों PK & FK ज़रूरी हैं

Primary Key (PK) तालिका के हर रिकॉर्ड को अनन्य रूप से पहचानता है; Foreign Key (FK) तालिकाओं के बीच संबंध बनाकर referential integrity लागू करता है। यह सेक्शन उन हाई-वॉल्यूम प्रश्नों का उत्तर देता है जैसे primary key aur foreign key, primary key aur foreign key mein antar, और primary key vs foreign key in SQL

Primary Key परिभाषा Foreign Key नियम SQL उदाहरण
Quick Hindi:
Primary Key: तालिका में हर रिकॉर्ड की अनन्य पहचान (NULL नहीं)।
Foreign Key: दूसरी तालिका की PK/UNIQUE key को संदर्भित करके तालिकाओं को जोड़ता है — यह referential integrity बनाता है।

🔑 Primary Key (PK) क्या है?

Primary Key (PK) किसी तालिका की हर पंक्ति (row) को अनन्य रूप से पहचानने वाला कॉलम या कॉलम समूह होता है। PK हमेशा unique और NOT NULL होना चाहिए। अधिकांश डेटाबेस PK पर इंडेक्स बनाकर खोज और जॉइन को तेज करते हैं।

CREATE TABLE Students ( student_id INT PRIMARY KEY, name VARCHAR(100), dob DATE );

🔗 Foreign Key (FK) क्या है?

Foreign Key (FK) एक तालिका का कॉलम है जो किसी दूसरी तालिका की Primary Key (या UNIQUE key) को संदर्भित करता है। इससे तालिकाओं के बीच संबंध बनते हैं और डेटाबेस सुनिश्चित करता है कि child रिकॉर्ड के लिए parent रिकॉर्ड मौजूद हो (referential integrity)।

CREATE TABLE Orders ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES Customers(customer_id) );

⚖️ Primary Key और Foreign Key में अंतर

Side-by-side तालिका — तेज़ उत्तर के लिए। (Search queries जैसे “primary key and foreign key example” को ध्यान में रखकर बनाया गया)

Aspect Primary Key Foreign Key
Uniqueness (अनन्यता)Unique & NOT NULLNullable & values repeat हो सकती हैं
Purpose (उद्देश्य)Rows की पहचान करनाTables को link करना
Count per tableएक (composite allowed)एक से अधिक कॉलम हो सकते हैं
Enforces (सुरक्षा)Entity integrityReferential integrity

❓ क्या Primary Key, Foreign Key भी हो सकती है?

हाँ — कुछ डिज़ाइनों में (जैसे 1:1 relationships या identifying/weak-entity मॉडल) PK वही कॉलम होता है जो parent तालिका की PK को reference करता है।

CREATE TABLE Employees ( employee_id INT PRIMARY KEY, name VARCHAR(100) );
CREATE TABLE EmployeeDetails ( employee_id INT PRIMARY KEY, details TEXT, FOREIGN KEY (employee_id) REFERENCES Employees(employee_id) );

❓ क्या Foreign Key NULL या Duplicate हो सकती है?

NULL: हाँ, जब तक NOT NULL न लगाया गया हो।
Duplicate: हाँ — एक parent रिकॉर्ड को कई child रिकॉर्ड्स refer कर सकते हैं (इसलिए FK अक्सर unique नहीं होता)।

🧾 प्रैक्टिकल SQL उदाहरण (Quick)

— Customers table
CREATE TABLE Customers ( customer_id INT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100) UNIQUE );

— Orders referencing Customers
CREATE TABLE Orders ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, amount DECIMAL(10,2), FOREIGN KEY (customer_id) REFERENCES Customers(customer_id) );

— OrderItems with cascade delete
CREATE TABLE OrderItems ( item_id INT PRIMARY KEY, order_id INT, product_id INT, qty INT, FOREIGN KEY (order_id) REFERENCES Orders(order_id) ON DELETE CASCADE );

📌 TL;DR

Primary Key = अनन्य पहचान (NOT NULL). Foreign Key = parent तालिका को refer करता है (nullable & duplicates allowed)। डिज़ाइन करते समय integrity और joins का ध्यान रखें।

© Vista Academy • Content updated 2025 • Built with Vista Theme — dark, golden & elegant UX for learners.

⚖️ Primary Key vs Foreign Key — Quick Comparison (primary key vs foreign key)

यह तुलना सामान्य प्रश्नों का त्वरित उत्तर देती है जैसे primary key aur foreign key mein antar,
kya foreign key unique hoti hai, और primary key vs foreign key in SQL. डेटाबेस डिजाइन या ER डायग्राम बनाते समय यह एक तेज़ संदर्भ के रूप में उपयोग करें।

At a glance
PK = पहचान (uniqueness) & identity
FK = संबंध (relationships) & integrity
Feature Primary Key (PK) Foreign Key (FK)
Definition (परिभाषा) एक ही तालिका में प्रत्येक पंक्ति को अनन्य रूप से पहचानता है (unique identity) किसी दूसरी तालिका की PK/UNIQUE को reference करके तालिकाओं के बीच संबंध बनाता है
NULL Allowed? (क्या NULL हो सकता है?) No — PK हमेशा NOT NULL होता है हाँ — जब तक NOT NULL constraint न लगा हो
Duplicates? (डुप्लिकेट) No — मान (values) अनन्य होते हैं Allowed — कई child rows एक ही parent को refer कर सकती हैं
Count per table (प्रत्येक तालिका में) प्रति तालिका एक PK (composite PK संभव) एक से अधिक FK हो सकते हैं (विभिन्न parent तालिकाओं के लिए)
Purpose (उद्देश्य) Row identity, indexing, तेज़ lookup और joins Referential integrity लागू करना और joins का समर्थन करना
Example (उदाहरण) Students.student_id Marks.student_id → Students.student_id

यह तालिका उन प्रश्नों को लक्षित करती है जैसे primary key vs foreign key, primary key aur foreign key mein antar,
primary key foreign key example, और kya foreign key unique hoti hai. प्रैक्टिकल SQL उदाहरणों और ER-डायग्राम टिप्स के लिए अगला सेक्शन देखें।

Tip: JOINs में अक्सर प्रयुक्त FK कॉलम पर index लगाएँ — इससे प्रदर्शन सुधरता है।

🧾 SQL उदाहरण देखें

🔄 क्या Primary Key, Foreign Key भी हो सकती है? (SQL उदाहरणों के साथ)

अक्सर छात्र पूछते हैं: क्या primary key foreign key हो सकती है?
जवाब: हाँ। SQL डिज़ाइन में किसी कॉलम का होना दोनों (PK और FK) संभव है — विशेषकर 1-to-1 relationships, self-referencing या identifying/weak-entity मॉडलों में। नीचे दो व्यावहारिक उदाहरण दिए गए हैं।

👨‍👩‍👧 Self-Referencing Table (Manager → Employee)

CREATE TABLE Employees (
  emp_id     INT PRIMARY KEY,
  name       VARCHAR(100),
  manager_id INT,
  FOREIGN KEY (manager_id) REFERENCES Employees(emp_id)
);

यहाँ emp_id तालिका की Primary Key है।
manager_id एक Foreign Key है जो उसी तालिका की PK की ओर इशारा करता है — इस तरह एक hierarchical relationship बनता है।

🧩 Primary Key ही Foreign Key (1-to-1 Relationship)

CREATE TABLE Users (
  user_id INT PRIMARY KEY,
  email   VARCHAR(100) UNIQUE
);

CREATE TABLE UserProfiles (
  user_id INT PRIMARY KEY, -- also FK
  bio     VARCHAR(200),
  FOREIGN KEY (user_id) REFERENCES Users(user_id)
);

इस उदाहरण में UserProfiles.user_id दोनों है — Primary Key और Foreign Key — जिससे Users के साथ कड़ाई से one-to-one mapping सुनिश्चित होती है।

कवर किए गए कीवर्ड: primary key as foreign key, can primary key be foreign key, primary key foreign key example in SQL — हिंदी में समझने के लिए कोड और व्याख्या दोनों दिए गए हैं।

🛠️ SQL में Primary & Foreign Keys का उपयोग (Examples के साथ)

1️⃣ Primary Key और Foreign Key के साथ Tables बनाना

CREA​TE TABLE Customers (
  customer_id INT PRIMAR​Y KEY,
  name        VARCHAR(100) NOT NULL
);

CREA​TE TABLE Orders (
  order_id     INT PRIMAR​Y KEY,
  customer_id  INT,
  order_date   DATE NOT NULL,
  CONSTRAINT fk_orders_customer
    FOREI​GN KEY (customer_id) REFERENCES Customers(customer_id)
      ON UPD​ATE CASC​ADE
      ON DEL​ETE SET NULL
);
        

यहाँ Orders.customer_id एक Foreign Key है जो Customers.customer_id को reference करती है। ON DELETE SET NULL का अर्थ है — जब parent row delete होती है, तो FK value NULL हो जाएगी। यह SQL में referential integrity सुनिश्चित करता है।

2️⃣ सही क्रम में डेटा Insert करना

INS​ERT INTO Customers(customer_id, name)
VALUES (1, 'Asha'), (2, 'Ravi');

INS​ERT INTO Orders(order_id, customer_id, order_date)
VALUES (101, 1, '2025-08-01'),
       (102, 2, '2025-08-05');
        

हमेशा Parent Table (Customers) में डेटा पहले डालें और फिर Child Table (Orders) में। ऐसा करने से Foreign Key constraint के नियम पूरे होते हैं और त्रुटियाँ (errors) नहीं आतीं।

3️⃣ PK–FK Relationship से Tables को Join करना

SE​LECT o.order_id, c.name, o.order_date
FROM Orders o
JO​IN Customers c
  ON o.customer_id = c.customer_id;
        

यह SQL JOIN query दोनों तालिकाओं को जोड़ती है और ऑर्डर विवरण (Order Details) के साथ ग्राहक का नाम दिखाती है। यहाँ Primary–Foreign Key relationship का उपयोग किया गया है जो डेटा को logical रूप से जोड़ता है।

कवर किए गए कीवर्ड: primary key and foreign key in SQL with examples, sql primary key foreign key example, how to use primary key and foreign key in SQL, difference between primary and foreign key in SQL — हिंदी में सरल व्याख्या के साथ SQL learners के लिए तैयार किया गया।

🧭 वास्तविक दुनिया के उपयोग — Primary Key & Foreign Key कैसे काम करते हैं

देखें कि production सिस्टम्स (retail से healthcare तक) में primary keys और foreign keys कैसे उपयोग होते हैं। ये उदाहरण स्पष्ट करते हैं कि क्यों primary key vs foreign key डिजाइन डेटा इंटीग्रिटी, रिपोर्टिंग, और प्रदर्शन के लिए महत्वपूर्ण है।

🏪 Retail — Orders & Inventory

Customers.customer_id (PK) और Orders.customer_id (FK) का उपयोग खरीद को ग्राहक से जोड़ने के लिए होता है। FK cascade नियम ऑर्डर हिस्ट्री को consistent रखने में मदद करते हैं जब ग्राहक रिकॉर्ड बदलते या हटते हैं।

  • Fast lookup के लिए PKs का इस्तेमाल करें (customers, products)।
  • JOINs में प्रयुक्त FK कॉलम पर index लगाएँ — प्रदर्शन सुधरता है।

🏦 Banking — Accounts & Transactions

Accounts तालिका में PK (उदा. account_id) होता है जबकि Transactions इसे FK के माध्यम से reference करते हैं। Referential integrity सुनिश्चित करती है कि Transactions किसी deleted account को reference न करें।

  • Ledger accuracy के लिए FK constraints लागू करें।
  • Transaction joins scale करने के लिए partitioning और indexes का उपयोग करें।

🎓 Education — Students & Enrollments

Students ↔ Courses जैसी many-to-many relationships को एक join table से model करें जहाँ composite PK (student_id, course_id) duplicate enrollments रोकता है और दोनों कॉलम parent PKs को FK के रूप में reference करते हैं।

  • Composite PKs duplicate enrollments को रोकते हैं।
  • FKs से student/course रिपोर्ट्स जल्दी बनती हैं।

🏥 Healthcare — Patients & Records

Patient records स्थिर primary key (उदा. patient_id) का उपयोग करते हैं। Appointments, prescriptions और lab results इस PK को FKs से reference करते हैं ताकि ऑडिटेबल और पूरा इतिहास सुरक्षित रहे।

  • FKs कानूनी और audit ट्रेल बनाए रखने में मदद करते हैं।
  • अच्छे FK डिज़ाइन से orphaned clinical data से बचा जा सकता है।

📊 Analytics — Fact & Dimension Tables

Star schema में dimension tables की PKs को fact tables में FK के रूप में उपयोग किया जाता है (उदा. dim_date.date_id → fact_sales.date_id) — इससे aggregations और joins तेज़ व consistent होते हैं।

  • Query speed के लिए आवश्यक होने पर ही denormalize करें।
  • ETL सरल बनाने के लिए PKs को stable रखें (surrogate keys)।

ये use-cases बताते हैं कि क्यों सावधानीपूर्वक primary key और foreign key डिजाइन डेटा की इंटीग्रिटी, क्वेरी प्रदर्शन और maintainability के लिए ज़रूरी है। व्यापारिक नियमों के अनुसार उचित cascade नियम, indexing और constraints लागू करें।

🎯 Vista Academy पर Practical DB Design सीखें

🌍 Primary & Foreign Keys — वास्तविक दुनिया में उपयोग

Primary Keys (PK) और Foreign Keys (FK) रिलेशनल डेटाबेस की नींव हैं। ये डेटा इंटीग्रिटी बनाते हैं, duplicates रोकते हैं, और विभिन्न entities के बीच रिश्ते स्थापित करते हैं। नीचे कुछ सामान्य वास्तविक जीवन के परिदृश्य दिए गए हैं:

🏪 Retail Systems

Customers (PK) को Orders (FK) से जोड़ा जाता है। यह सुनिश्चित करता है कि हर ऑर्डर किसी वैध ग्राहक से जुड़ा हो और ऑर्डर हिस्ट्री ट्रैक की जा सके।

🏦 Banking

Accounts (PK) को Transactions (FK) से लिंक किया जाता है। इससे सुनिश्चित होता है कि प्रत्येक ट्रांज़ैक्शन किसी मौजूद अकाउंट से जुड़ा हुआ है।

🎓 Education

Students (PK) को Enrollments और Courses (FK) के साथ जोड़ा जाता है। इससे अकादमिक रिकॉर्ड और course registrations में consistency बनी रहती है।

🚚 Logistics

Shipments (PK) को Delivery Tracking (FK) से लिंक किया जाता है। इससे वेयरहाउस, रूट और डिलीवरी स्टेटस अपडेट्स के बीच डेटा consistent रहता है।

Keywords: why do relational databases use primary keys and foreign keys, primary key foreign key examples, real-world use of primary and foreign key

❓ FAQs: Primary Key & Foreign Key

क्या Foreign Key को unique होना ज़रूरी है? / Does a Foreign Key have to be unique?

हिंदी: नहीं — Foreign Key अक्सर repeat हो सकती है क्योंकि कई child rows एक ही parent row को reference कर सकती हैं (1-to-many)। अगर आप uniqueness चाहते हैं तो उस कॉलम पर UNIQUE constraint लगाएँ।
English: No — a foreign key can repeat because many child rows can reference the same parent. Add a UNIQUE constraint if you require uniqueness.

क्या Foreign Key NULL हो सकती है? / Can a Foreign Key be NULL?

हिंदी: हाँ — जब तक आप कॉलम पर NOT NULL नहीं लगाते; NULL का मतलब है उस row का कोई parent रिकॉर्ड नहीं है।
English: Yes — unless the column is declared NOT NULL. NULL indicates the row currently has no parent relationship.

क्या Primary Key भी Foreign Key बन सकती है? / Can a Primary Key also be a Foreign Key?

हिंदी: हाँ — identifying relationships और strict 1:1 mappings में child टेबल की PK वही कॉलम हो सकती है जो parent टेबल की PK को reference करती है।
English: Yes — in some designs (identifying relationships or strict one-to-one mappings), a child table’s PK can also be an FK to the parent table.

ON DELETE का क्या असर होता है? / What happens on parent DELETE (ON DELETE)?

हिंदी: FK action पर निर्भर करता है — CASCADE child rows हटाता है, SET NULL child की FK value को NULL कर देता है, और RESTRICT/NO ACTION parent को हटने से रोकता है।
English: Behavior depends on the FK action — CASCADE deletes child rows, SET NULL sets the FK to NULL, and RESTRICT/NO ACTION prevents the delete.

तालिका में हर रिकॉर्ड की अनन्य पहचान क्या है? / What uniquely identifies each row in a table?

हिंदी: Primary Key ही हर row की canonical पहचान होती है।
English: The Primary Key is the canonical identifier for rows in a table.

📝 क्विज़: Primary Key vs Foreign Key

सभी प्रश्नों के उत्तर दीजिए — समाप्त करने पर आपका स्कोर और सही उत्तर दिखाई देंगे।
Answer all questions — your results and correct answers will appear when you finish.

प्रगति / Progress
0 / 10

🎓 Vista Academy Master Program in Data Analytics

Vista Academy’s Master Program in Data Analytics equips you with advanced skills in Data Analysis, Machine Learning, SQL, Python, Tableau, and Power BI. With hands-on projects and expert mentoring, this program prepares you for high-demand roles in Data Science and Analytics.

📍 Address: Vista Academy, 316/336, Park Rd, Laxman Chowk, Dehradun, Uttarakhand 248001

🚀 Take Your SQL Skills to the Next Level

📘 Explore Additional SQL Tutorials & Real-World Practice

Now that you’ve mastered Primary & Foreign Keys, it’s time to practice advanced SQL concepts. Explore the following tutorials and apply them on real datasets to level up your skills:

🚀 Keep practicing on real-world datasets and refining your skills. The more hands-on experience you gain, the stronger your SQL foundation will become!

Vista Academy – 316/336, Park Rd, Laxman Chowk, Dehradun – 248001
📞 +91 94117 78145 | 📧 thevistaacademy@gmail.com | 💬 WhatsApp
💬 Chat on WhatsApp: Ask About Our Courses