Primary key and foreign key

Introduction to SQL — What is SQL? — History and standards (SQL-92, SQL:2011) — Popular RDBMS: MySQL, PostgreSQL, SQLite, SQL Server — SQL syntax and structure Database Basics — What is a database? — Tables, rows, columns — Primary key and foreign key — Relational model overview Creating and Managing Databases — CREATE DATABASE — USE, DROP DATABASE — Database naming conventions Creating and Managing Tables — CREATE TABLE syntax — Data types (INT, VARCHAR, DATE, etc.) — Constraints (NOT NULL, UNIQUE, DEFAULT) — DROP and ALTER TABLE Inserting Data — INSERT INTO syntax — Inserting single and multiple rows — Using DEFAULT values Querying Data (SELECT) — SELECT basics — Filtering with WHERE — Sorting with ORDER BY — DISTINCT keyword — LIMIT and OFFSET Filtering Data — Comparison operators (=, <>, >, etc.) — Logical operators (AND, OR, NOT) — BETWEEN, IN, LIKE — IS NULL / IS NOT NULL Updating and Deleting Data — UPDATE syntax — DELETE syntax — WHERE clause best practices — TRUNCATE vs DELETE Joins in SQL — INNER JOIN — LEFT JOIN — RIGHT JOIN — FULL OUTER JOIN — Self join and cross join Aggregate Functions — COUNT(), SUM(), AVG(), MIN(), MAX() — GROUP BY and HAVING — Filtering grouped data Subqueries — Subqueries in SELECT, WHERE, FROM — Correlated vs non-correlated subqueries Set Operations — UNION vs UNION ALL — INTERSECT and EXCEPT (if supported) Indexes — What is an index? — CREATE INDEX syntax — Unique index — Performance considerations Constraints and Keys — PRIMARY KEY — FOREIGN KEY — CHECK, DEFAULT — ON DELETE / ON UPDATE CASCADE Views — CREATE VIEW syntax — Updating data through views — Dropping views Stored Procedures — What is a stored procedure? — CREATE PROCEDURE — IN, OUT, INOUT parameters — Calling procedures Functions — User-defined functions (UDFs) — Differences from procedures — RETURN values and syntax Triggers — CREATE TRIGGER syntax — BEFORE / AFTER INSERT, UPDATE, DELETE — Use cases and examples Transactions and ACID — BEGIN, COMMIT, ROLLBACK — SAVEPOINT — Understanding ACID properties User and Permission Management — Creating users — GRANT and REVOKE privileges — Roles and security best practices Normalization and Database Design — 1NF, 2NF, 3NF — Denormalization — Designing efficient schemas Working with Dates and Time — DATE, TIME, DATETIME — DATE functions (NOW(), CURDATE(), DATEDIFF()) Common Built-in Functions — String functions (CONCAT, SUBSTRING, REPLACE) — Math functions (ROUND, FLOOR, CEIL) — Date functions (NOW, DATE_ADD, etc.) Performance Tuning — Query optimization — Using EXPLAIN — Reducing slow queries Real-World Projects — Student/course database — E-commerce schema — Blog or CMS backend — Library/book management system

Primary key and foreign key

Understand Primary key and foreign key in SQL for effective database querying and management.

Primary Key and Foreign Key

Primary Key and Foreign Key are fundamental concepts in relational databases used to uniquely identify records and establish relationships between tables.

What is a Primary Key?

A Primary Key is a column (or a combination of columns) that uniquely identifies each row in a table.

  • It must contain unique values.
  • It cannot contain NULL.
  • Each table should have one primary key.

Example: In a students table, the student_id column can be the primary key.

CREATE TABLE students (
  student_id INT PRIMARY KEY,
  name VARCHAR(100),
  age INT
);

What is a Foreign Key?

A Foreign Key is a column in one table that refers to the Primary Key in another table. It is used to establish a relationship between the two tables.

  • Helps maintain referential integrity.
  • Allows linking of related data across tables.

Example: In a marks table, student_id can be a foreign key referencing students(student_id).

CREATE TABLE marks (
  id INT PRIMARY KEY,
  student_id INT,
  subject VARCHAR(50),
  score INT,
  FOREIGN KEY (student_id) REFERENCES students(student_id)
);

Visual Relationship Example

students Table
student_id (PK) name
1Amit
2Priya
marks Table
id student_id (FK) subject score
11Math90
22Science85
Full Stack Development Course