From 68c0d7bbc0a4acbd730ed4ba1006f084446d478b Mon Sep 17 00:00:00 2001 From: Imran Imtiaz Date: Fri, 5 Dec 2025 09:09:53 +0400 Subject: [PATCH] Refactor SQL script with primary keys and constraints Updated the employees and departments tables to include primary keys and foreign key constraints. Reorganized the SQL script for clarity and added comments for better understanding. --- cross.sql | 70 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 26 deletions(-) diff --git a/cross.sql b/cross.sql index cd3ee62..b95ec58 100644 --- a/cross.sql +++ b/cross.sql @@ -1,31 +1,49 @@ -CREATE TABLE employees ( - emp_id INT, - emp_name VARCHAR(50), - dept_id INT -); +-- =============================== +-- CREATE TABLES WITH PRIMARY KEYS +-- =============================== +DROP TABLE IF EXISTS employees; +DROP TABLE IF EXISTS departments; CREATE TABLE departments ( - dept_id INT, - dept_name VARCHAR(50) + dept_id INT PRIMARY KEY, + dept_name VARCHAR(50) NOT NULL ); --- Inserting sample data -INSERT INTO employees VALUES (1, 'John Doe', 101); -INSERT INTO employees VALUES (2, 'Jane Smith', 102); - -INSERT INTO departments VALUES (101, 'Human Resources'); -INSERT INTO departments VALUES (102, 'Marketing'); - - - -SELECT * from employees; -SELECT * from departments; - --- CROSS JOIN -SELECT * FROM employees -CROSS JOIN departments; - --- NATURAL JOIN -SELECT * FROM employees -NATURAL JOIN departments; +CREATE TABLE employees ( + emp_id INT PRIMARY KEY, + emp_name VARCHAR(50) NOT NULL, + dept_id INT NOT NULL, + FOREIGN KEY (dept_id) REFERENCES departments(dept_id) +); +-- =============================== +-- INSERT SAMPLE DATA +-- =============================== +INSERT INTO departments (dept_id, dept_name) VALUES +(101, 'Human Resources'), +(102, 'Marketing'); + +INSERT INTO employees (emp_id, emp_name, dept_id) VALUES +(1, 'John Doe', 101), +(2, 'Jane Smith', 102); + +-- =============================== +-- SIMPLE SELECT QUERIES +-- =============================== +SELECT * FROM employees; +SELECT * FROM departments; + +-- =============================== +-- CROSS JOIN (Cartesian Product) +-- =============================== +SELECT e.emp_id, e.emp_name, d.dept_id, d.dept_name +FROM employees e +CROSS JOIN departments d; + +-- =============================== +-- INNER JOIN USING dept_id +-- =============================== +SELECT e.emp_id, e.emp_name, d.dept_id, d.dept_name +FROM employees e +INNER JOIN departments d + ON e.dept_id = d.dept_id;