https://github.com/rakibul263/mysql-database
đ SQL-āĻāϰ āĻā§āĻāĻāĻŋāύāĻžāĻāĻŋ (MySQL āϏāĻš) āĻāĻ đī¸ āϰā§āĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠SQL-āĻāϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻā§āĻāĻāĻŋāύāĻžāĻāĻŋ āĻŦāĻŋāώ⧠āĻŦāĻžāĻāϞāĻž āĻāĻžāώāĻžā§ đ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤ āĻāĻāĻžāύ⧠đĸī¸ MySQL-āĻāϰ āĻĒā§āϰā§ā§āĻāύā§ā§ āĻā§ā§ā§āϰāĻŋāĻā§āϞ⧠āϏāĻāϝā§āĻā§āϤ āĻāϰāĻž āĻšā§ā§āĻā§ â
https://github.com/rakibul263/mysql-database
database mysql-database sql
Last synced: 8 months ago
JSON representation
đ SQL-āĻāϰ āĻā§āĻāĻāĻŋāύāĻžāĻāĻŋ (MySQL āϏāĻš) āĻāĻ đī¸ āϰā§āĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠SQL-āĻāϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻā§āĻāĻāĻŋāύāĻžāĻāĻŋ āĻŦāĻŋāώ⧠āĻŦāĻžāĻāϞāĻž āĻāĻžāώāĻžā§ đ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤ āĻāĻāĻžāύ⧠đĸī¸ MySQL-āĻāϰ āĻĒā§āϰā§ā§āĻāύā§ā§ āĻā§ā§ā§āϰāĻŋāĻā§āϞ⧠āϏāĻāϝā§āĻā§āϤ āĻāϰāĻž āĻšā§ā§āĻā§ â
- Host: GitHub
- URL: https://github.com/rakibul263/mysql-database
- Owner: rakibul263
- Created: 2025-02-19T04:57:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-19T17:30:39.000Z (over 1 year ago)
- Last Synced: 2025-02-19T18:26:31.891Z (over 1 year ago)
- Topics: database, mysql-database, sql
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
All About MySQL
### **`CREATE TABLE` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
SQL-āĻ `CREATE TABLE` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§ **āĻāĻāĻāĻŋ āύāϤā§āύ āĻā§āĻŦāĻŋāϞ āϤā§āϰāĻŋ āĻāϰāϤā§**āĨ¤
---
## **â
`CREATE TABLE` āĻāϰ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻ āύ (Syntax)**
```sql
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
column3 datatype constraints,
...
);
```
đš **`table_name`** â āύāϤā§āύ āĻā§āĻŦāĻŋāϞā§āϰ āύāĻžāĻŽ
đš **`column1, column2, ...`** â āĻāϞāĻžāĻŽā§āϰ āύāĻžāĻŽ
đš **`datatype`** â āĻāϞāĻžāĻŽā§āϰ āĻāύā§āϝ āĻĄāĻžāĻāĻž āĻāĻžāĻāĻĒ (āϝā§āĻŽāύ: `INT`, `VARCHAR`, `DATE`, `DECIMAL` āĻāϤā§āϝāĻžāĻĻāĻŋ)
đš **`constraints`** â āĻāϞāĻžāĻŽā§āϰ āϰā§āϞ (āϝā§āĻŽāύ: `PRIMARY KEY`, `NOT NULL`, `UNIQUE` āĻāϤā§āϝāĻžāĻĻāĻŋ)
---
## **â
`employees` āĻā§āĻŦāĻŋāϞ āϤā§āϰāĻŋ āĻāϰāĻž**
```sql
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
department VARCHAR(30),
age INT CHECK (age >= 18),
salary DECIMAL(10,2),
join_date DATE
);
```
đš **`id`** â Primary Key (āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ ā§§, ⧍, ā§Š... āĻšāĻŦā§)
đš **`name`** â āύāĻžāĻŽ (`VARCHAR(50)`, āĻāĻžāϞāĻŋ āϰāĻžāĻāĻž āϝāĻžāĻŦā§ āύāĻž)
đš **`department`** â āĻŦāĻŋāĻāĻžāĻ (`VARCHAR(30)`, āĻāĻžāϞāĻŋ āϰāĻžāĻāĻž āϝāĻžāĻŦā§)
đš **`age`** â āĻŦā§āϏ (āĻāĻŽāĻĒāĻā§āĻˇā§ ā§§ā§Ž āĻšāϤ⧠āĻšāĻŦā§)
đš **`salary`** â āĻŦā§āϤāύ (`DECIMAL(10,2)` āĻ
āϰā§āĻĨāĻžā§, ā§§ā§Ļ āĻĄāĻŋāĻāĻŋāĻā§āϰ āĻŽāϧā§āϝ⧠⧍ āĻĄāĻŋāĻāĻŋāĻ āĻĻāĻļāĻŽāĻŋāĻā§āϰ āĻĒāϰ)
đš **`join_date`** â āϝā§āĻāĻĻāĻžāύā§āϰ āϤāĻžāϰāĻŋāĻ
---
## **â
`CREATE TABLE`-āĻāϰ āϏāĻžāĻĨā§ āĻāύā§āĻĄāĻŋāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž**
### **ā§§. āϝāĻĻāĻŋ āĻā§āĻŦāĻŋāϞāĻāĻŋ āĻāĻā§ āĻĨā§āĻā§āĻ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻĄāĻŋāϞāĻŋāĻ āĻāϰ⧠āύāϤā§āύ āĻāϰ⧠āϤā§āϰāĻŋ āĻāϰāĻŦā§**
```sql
DROP TABLE IF EXISTS employees;
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
department VARCHAR(30),
age INT CHECK (age >= 18),
salary DECIMAL(10,2),
join_date DATE
);
```
đš **`DROP TABLE IF EXISTS employees;`** â āϝāĻĻāĻŋ `employees` āĻā§āĻŦāĻŋāϞ āĻāĻā§ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻŽā§āĻā§ āĻĢā§āϞ⧠āύāϤā§āύ āĻāϰ⧠āϤā§āϰāĻŋ āĻāϰāĻŦā§
---
### **⧍. āϝāĻĻāĻŋ āĻā§āĻŦāĻŋāϞāĻāĻŋ āĻāĻā§ āĻĨā§āĻā§ āύāĻž āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āύāϤā§āύ āϤā§āϰāĻŋ āĻāϰāĻŦā§**
```sql
CREATE TABLE IF NOT EXISTS employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
department VARCHAR(30),
age INT CHECK (age >= 18),
salary DECIMAL(10,2),
join_date DATE
);
```
đš **`IF NOT EXISTS`** â āϝāĻĻāĻŋ `employees` āĻā§āĻŦāĻŋāϞ āύāĻž āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āύāϤā§āύ āĻāϰ⧠āϤā§āϰāĻŋ āĻāϰāĻŦā§
---
### **`INSERT INTO` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
SQL-āĻ `INSERT INTO` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§ **āĻā§āĻŦāĻŋāϞ⧠āύāϤā§āύ āĻĄāĻžāĻāĻž āϏāĻāϝā§āĻā§āϤ āĻāϰāϤā§**āĨ¤
---
## **â
`INSERT INTO` āĻāϰ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻ āύ (Syntax)**
```sql
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
```
đš **`table_name`** â āϝ⧠āĻā§āĻŦāĻŋāϞ⧠āĻĄāĻžāĻāĻž āĻāύāϏāĻžāϰā§āĻ āĻāϰāĻž āĻšāĻŦā§
đš **`column1, column2, ...`** â āϝ⧠āĻāϞāĻžāĻŽāĻā§āϞā§āϰ āĻāύā§āϝ āĻĄāĻžāĻāĻž āĻĻā§āĻā§āĻž āĻšāĻŦā§
đš **`value1, value2, ...`** â āϝ⧠āĻŽāĻžāύāĻā§āϞ⧠āĻāύāϏāĻžāϰā§āĻ āĻšāĻŦā§
---
## **â
`employees` āĻā§āĻŦāĻŋāϞ⧠⧍ā§Ļ āĻāύ āĻāϰā§āĻŽā§āϰ āĻĄāĻžāĻāĻž āĻāύāϏāĻžāϰā§āĻ āĻāϰāĻž**
```sql
INSERT INTO employees (name, department, age, salary, join_date) VALUES
('Samiul', 'IT', 25, 50000.00, '2022-03-15'),
('Fahim', 'HR', 30, 45000.50, '2021-07-10'),
('Ayesha', 'Finance', 28, 55000.75, '2022-10-05'),
('Rifat', 'IT', 27, 48000.00, '2023-01-12'),
('Tanjim', 'Marketing', 29, 47000.00, '2022-06-20'),
('Nabila', 'HR', 26, 42000.00, '2023-04-11'),
('Hasib', 'IT', 31, 52000.50, '2021-09-14'),
('Jannat', 'Finance', 24, 51000.00, '2022-02-07'),
('Rakib', 'IT', 28, 50000.00, '2023-03-18'),
('Mou', 'Marketing', 27, 46000.00, '2022-12-05'),
('Sabbir', 'Finance', 29, 53000.00, '2021-08-25'),
('Raihan', 'HR', 32, 41000.00, '2022-07-17'),
('Shamim', 'IT', 26, 47000.50, '2023-05-21'),
('Jui', 'Marketing', 30, 49000.00, '2022-11-09'),
('Tarek', 'Finance', 28, 52000.00, '2021-06-30'),
('Afia', 'HR', 25, 43000.00, '2023-08-14'),
('Mamun', 'IT', 33, 54000.75, '2022-09-19'),
('Tanvir', 'Marketing', 27, 48000.00, '2023-02-22'),
('Faria', 'Finance', 26, 51000.00, '2022-04-16'),
('Mehedi', 'HR', 29, 45000.00, '2023-07-29');
```
đš āĻāĻāĻžāύ⧠**⧍ā§Ļ āĻāύ āĻāϰā§āĻŽā§āϰ āϤāĻĨā§āϝ āĻāύāϏāĻžāϰā§āĻ āĻāϰāĻž āĻšā§ā§āĻā§**
đš **`id` āĻāϞāĻžāĻŽ `AUTO_INCREMENT` āĻĨāĻžāĻāϞā§** āϏā§āĻāĻŋ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϏāĻāĻā§āϝāĻž āĻ
ā§āϝāĻžāϏāĻžāĻāύ āĻāϰāĻŦā§
---
## **â
āϏāĻŦ āĻāϞāĻžāĻŽā§ āĻāύāϏāĻžāϰā§āĻ āĻāϰāĻž (āĻā§āύ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϞāĻžāĻŽ āĻāϞā§āϞā§āĻ āύāĻž āĻāϰā§)**
```sql
INSERT INTO employees VALUES
(21, 'Kamal', 'IT', 30, 52000.00, '2023-06-12');
```
đš **āϏāĻŦ āĻāϞāĻžāĻŽā§āϰ āĻāύā§āϝ āĻŽāĻžāύ āĻĻāĻŋāϤ⧠āĻšāĻŦā§**
đš **`id` āĻāϞāĻžāĻŽā§ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āϏāĻāĻā§āϝāĻž āϝā§āĻā§āϤ āĻšāϞ⧠āĻĒā§āϰāĻĨāĻŽ āĻāϞāĻžāĻŽ āĻŦāĻžāĻĻ āĻĻā§āĻā§āĻž āĻāĻāĻŋāϤ**
---
## **â
āĻāĻāĻžāϧāĻŋāĻ `INSERT` āĻāĻāϏāĻžāĻĨā§ āĻāĻžāϞāĻžāύ⧠(Bulk Insert)**
```sql
INSERT INTO employees (name, department, age, salary, join_date) VALUES
('Arif', 'IT', 28, 49000.00, '2023-01-05'),
('Mahin', 'Finance', 27, 53000.00, '2022-08-23'),
('Saima', 'HR', 26, 44000.00, '2023-10-10');
```
đš **āĻāĻāĻāĻŋ `INSERT INTO` āϏā§āĻā§āĻāĻŽā§āύā§āĻā§ āĻāĻāĻžāϧāĻŋāĻ āϰ⧠āĻāύāϏāĻžāϰā§āĻ āĻāϰāĻž āϝāĻžā§**
---
## **â
`INSERT` + `SELECT` (āĻ
āύā§āϝ āĻā§āĻŦāĻŋāϞ āĻĨā§āĻā§ āĻĄāĻžāĻāĻž āĻāĻĒāĻŋ āĻāϰāĻž)**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āĻ
āύā§āϝ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāϞ āĻĨā§āĻā§ āĻĄāĻžāĻāĻž āĻāĻĒāĻŋ āĻāϰ⧠`employees` āĻā§āĻŦāĻŋāϞ⧠āϰāĻžāĻāϤ⧠āĻāĻžāĻ**:
```sql
INSERT INTO employees (name, department, age, salary, join_date)
SELECT full_name, dept, years, pay, start_date FROM old_employees;
```
đš āĻāĻāĻŋ **`old_employees` āĻā§āĻŦāĻŋāϞ āĻĨā§āĻā§ āĻĄāĻžāĻāĻž āύāĻŋā§ā§ `employees` āĻā§āĻŦāĻŋāϞ⧠āϏāĻāϝā§āĻā§āϤ āĻāϰāĻŦā§**
---
## **â
āĻāύāϏāĻžāϰā§āĻ āĻāϰāĻžāϰ āĻĒāϰ āĻĄāĻžāĻāĻž āĻā§āĻ āĻāϰāĻž (`SELECT` āĻĻāĻŋā§ā§)**
```sql
SELECT * FROM employees;
```
đš **`employees` āĻā§āĻŦāĻŋāϞ⧠āύāϤā§āύ āϝā§āĻ āĻāϰāĻž āĻĄāĻžāĻāĻž āĻĻā§āĻāĻžāĻŦā§**
---
### **`UPDATE` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
SQL-āĻ `UPDATE` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§ **āĻ
āĻŦāϏā§āĻĨāĻžāύ⧠āĻĨāĻžāĻāĻž āĻĄāĻžāĻāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤā§**āĨ¤
---
## **â
`UPDATE` āĻāϰ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻ āύ (Syntax)**
```sql
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
```
đš **`table_name`** â āϝ⧠āĻā§āĻŦāĻŋāϞā§āϰ āĻĄāĻžāĻāĻž āĻāĻĒāĻĄā§āĻ āĻāϰāĻŦā§āύ
đš **`SET`** â āϝā§āϏāĻŦ āĻāϞāĻžāĻŽā§āϰ āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻāĻžāύ
đš **`WHERE`** â āĻā§āύ āϰ⧠(row) āĻāĻĒāĻĄā§āĻ āĻšāĻŦā§, āϏā§āĻāĻž āĻ āĻŋāĻ āĻāϰāϤā§
â ī¸ **IMPORTANT:**
**`WHERE` āύāĻž āĻĻāĻŋāϞ⧠āĻĒā§āϰ⧠āĻā§āĻŦāĻŋāϞā§āϰ āĻĄāĻžāĻāĻž āĻāĻĒāĻĄā§āĻ āĻšā§ā§ āϝāĻžāĻŦā§!** āϏāĻžāĻŦāϧāĻžāύ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
---
## **â
ā§§. āĻāĻ āĻāϞāĻžāĻŽ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž**
āϧāϰāĻŋ, āĻāĻŽāϰāĻž **ID ā§§** āύāĻŽā§āĻŦāϰ āĻāϰā§āĻŽā§āϰ āĻŦā§āϤāύ āĻŦāĻžā§āĻŋā§ā§ **ā§Ŧā§Ļā§Ļā§Ļā§Ļ** āĻāϰāϤ⧠āĻāĻžāĻ:
```sql
UPDATE employees
SET salary = 60000
WHERE id = 1;
```
đš **Result:** `id = 1` āĻāϰ **`salary` 60000** āĻ āĻāĻĒāĻĄā§āĻ āĻšāĻŦā§āĨ¤
---
## **â
⧍. āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **ID ⧍** āύāĻŽā§āĻŦāϰ āĻāϰā§āĻŽā§āϰ **āĻŦā§āϤāύ āĻ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ** āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻāĻžāĻ:
```sql
UPDATE employees
SET salary = 48000, department = 'Marketing'
WHERE id = 2;
```
đš **Result:** `id = 2` āĻāϰ **āĻŦā§āϤāύ** āĻāĻŦāĻ **āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ** āĻāĻĒāĻĄā§āĻ āĻšāĻŦā§āĨ¤
---
## **â
ā§Š. āĻļāϰā§āϤ āĻ
āύā§āϝāĻžā§ā§ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āϝāĻžāϰāĻž IT āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§ āĻāĻā§āύ, āϤāĻžāĻĻā§āϰ āĻŦā§āϤāύ ā§§ā§Ļ% āĻŦāĻžā§āĻžāϤ⧠āĻāĻžāĻ**:
```sql
UPDATE employees
SET salary = salary * 1.10
WHERE department = 'IT';
```
đš **Result:** **IT āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āϏāĻŦ āĻāϰā§āĻŽā§āϰ āĻŦā§āϤāύ ā§§ā§Ļ% āĻŦāĻžā§āĻŦā§āĨ¤**
---
## **â
ā§Ē. āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϤāĻžāϰāĻŋāĻā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻāĻĒāĻĄā§āĻ āĻāϰāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āϝāĻžāϰāĻž ⧍ā§Ļ⧍⧍ āϏāĻžāϞā§āϰ āĻāĻā§ āĻā§ā§āύ āĻāϰā§āĻā§, āϤāĻžāĻĻā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ 'Senior' āĻāϰāϤ⧠āĻāĻžāĻ**:
```sql
UPDATE employees
SET department = 'Senior'
WHERE join_date < '2022-01-01';
```
đš **Result:** **⧍ā§Ļ⧍⧍ āϏāĻžāϞā§āϰ āĻāĻā§ āĻā§ā§āύ āĻāϰāĻž āĻāϰā§āĻŽā§āĻĻā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ 'Senior' āĻšāĻŦā§āĨ¤**
---
## **â
ā§Ģ. `UPDATE` āĻāϰāĻžāϰ āĻĒāϰ āĻĄāĻžāĻāĻž āĻā§āĻ āĻāϰāĻž (`SELECT`)**
```sql
SELECT * FROM employees;
```
đš **āĻāĻĒāĻĄā§āĻā§āĻĄ āĻĄāĻžāĻāĻž āĻĻā§āĻāĻžāύā§āϰ āĻāύā§āϝ `SELECT` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤**
---
## **â
ā§Ŧ. `UPDATE` + `LIMIT` (āϏā§āĻŽāĻŋāϤ āϰ⧠āĻāĻĒāĻĄā§āĻ āĻāϰāĻž)**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āĻļā§āϧ⧠āĻĒā§āϰāĻĨāĻŽ ā§Ģ āĻāύā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ 'Test' āĻāϰāϤ⧠āĻāĻžāĻ**:
```sql
UPDATE employees
SET department = 'Test'
LIMIT 5;
```
đš **Result:** **āĻĒā§āϰāĻĨāĻŽ ā§Ģ āĻāύ āĻāϰā§āĻŽā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ 'Test' āĻšāĻŦā§āĨ¤**
---
## **â
ā§. `UPDATE` + `ORDER BY` (āϏāĻžāĻāĻŋā§ā§ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž)**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āϏāϰā§āĻŦāύāĻŋāĻŽā§āύ āĻŦā§āϤāύā§āϰ āĻāϰā§āĻŽā§āϰ āĻŦā§āϤāύ ā§Ēā§Ģā§Ļā§Ļā§Ļ āĻāϰāϤ⧠āĻāĻžāĻ**:
```sql
UPDATE employees
SET salary = 45000
ORDER BY salary ASC
LIMIT 1;
```
đš **Result:** **āϏāĻŦāĻā§ā§ā§ āĻāĻŽ āĻŦā§āϤāύ āĻĒāĻžāĻā§āĻž āĻāϰā§āĻŽā§āϰ āĻŦā§āϤāύ ā§Ēā§Ģā§Ļā§Ļā§Ļ āĻšāĻŦā§āĨ¤**
---
## **â
āϏāĻāĻā§āώā§āĻĒā§ `UPDATE` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āϏā§āĻŦāĻŋāϧāĻž**
â **āĻĄāĻžāĻāĻž āϏāĻšāĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āϝāĻžā§**
â **āĻļāϰā§āϤ āĻ
āύā§āϝāĻžā§ā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϰ⧠āĻāĻĒāĻĄā§āĻ āĻāϰāĻž āϝāĻžā§**
â **āĻāĻžāĻŖāĻŋāϤāĻŋāĻ āĻ
āĻĒāĻžāϰā§āĻļāύ (āϝā§āĻŽāύ: `salary * 1.10`) āĻāϰāĻž āϝāĻžā§**
### **`WHERE` Clause āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
`WHERE` āĻā§āϞāĻ SQL-āϤ⧠**āĻļāϰā§āϤ āύāĻŋāϰā§āϧāĻžāϰāĻŖā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ**āĨ¤ āϝāĻāύ āĻāĻŽāϰāĻž āĻā§āύ⧠āĻā§āĻŦāĻŋāϞ āĻĨā§āĻā§ **āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĄā§āĻāĻž āĻĢāĻŋāϞā§āĻāĻžāϰ** āĻāϰāϤ⧠āĻāĻžāĻ, āϤāĻāύ `WHERE` āĻā§āϞāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻāĻŋ āĻŽā§āϞāϤ `SELECT`, `UPDATE`, `DELETE` āĻāĻŦāĻ `INSERT` āϏā§āĻā§āĻāĻŽā§āύā§āĻā§āϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
---
### **āĻāĻĻāĻžāĻšāϰāĻŖ ā§§: āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāĻž**
āϧāϰāĻž āϝāĻžāĻ, āĻāĻŽāϰāĻž `IT` āĻŦāĻŋāĻāĻžāĻā§ āĻāϰā§āĻŽāϰāϤ āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āĻĻā§āĻāϤ⧠āĻāĻžāĻāĨ¤
```sql
SELECT * FROM Employees WHERE department = 'IT';
```
đ āĻāĻ āĻāĻŋāĻāϰāĻŋāĻāĻŋ `Employees` āĻā§āĻŦāĻŋāϞ āĻĨā§āĻā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ `IT` āĻŦāĻŋāĻāĻžāĻā§ āĻāĻžāĻ āĻāϰāĻž āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āϤāĻĨā§āϝ āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
### **āĻāĻĻāĻžāĻšāϰāĻŖ ⧍: ā§Šā§Ļ āĻŦāĻāϰā§āϰ āĻŦā§āĻļāĻŋ āĻŦāϝāĻŧāϏ⧠āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āϤāĻžāϞāĻŋāĻāĻž**
```sql
SELECT * FROM Employees WHERE age > 30;
```
đ āĻāĻ āĻāĻŋāĻāϰāĻŋ āϏā§āĻāϏāĻŦ āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āϤāĻĨā§āϝ āĻĻā§āĻāĻžāĻŦā§ āϝāĻžāĻĻā§āϰ āĻŦāϝāĻŧāϏ **ā§Šā§Ļ āĻŦāĻāϰā§āϰ āĻŦā§āĻļāĻŋ**āĨ¤
---
### **āĻāĻĻāĻžāĻšāϰāĻŖ ā§Š: āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŦā§āϤāύāϏā§āĻŽāĻžāϰ āĻŽāϧā§āϝ⧠āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āϤāĻžāϞāĻŋāĻāĻž**
āϧāϰāĻŋ, āĻāĻŽāϰāĻž āĻāĻŽāύ āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āĻĻā§āĻāϤ⧠āĻāĻžāĻ āϝāĻžāĻĻā§āϰ āĻŦā§āϤāύ **ā§Ēā§Ļā§Ļā§Ļā§Ļ āĻĨā§āĻā§ ā§Ģā§Ļā§Ļā§Ļā§Ļ** āĻāϰ āĻŽāϧā§āϝā§āĨ¤
```sql
SELECT * FROM Employees WHERE salary BETWEEN 40000 AND 50000;
```
đ āĻāĻ āĻāĻŋāĻāϰāĻŋ āĻļā§āϧ⧠āϤāĻžāĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§ āϝāĻžāĻĻā§āϰ āĻŦā§āϤāύ ā§Ēā§Ļā§Ļā§Ļā§Ļ āĻĨā§āĻā§ ā§Ģā§Ļā§Ļā§Ļā§Ļ āĻāĻžāĻāĻžāϰ āĻŽāϧā§āϝ⧠āĻāĻā§āĨ¤
---
### **āĻāĻĻāĻžāĻšāϰāĻŖ ā§Ē: `HR` āĻŦāĻŋāĻāĻžāĻ āĻŦāĻžāĻĻā§ āĻ
āύā§āϝāĻĻā§āϰ āϤāĻĨā§āϝ**
āĻāĻŽāϰāĻž āϝāĻĻāĻŋ `HR` āĻŦāĻŋāĻāĻžāĻā§āϰ āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āĻŦāĻžāĻĻ āĻĻāĻŋāϝāĻŧā§ āĻŦāĻžāĻāĻŋ āϏāĻāϞāĻā§ āĻĻā§āĻāϤ⧠āĻāĻžāĻ:
```sql
SELECT * FROM Employees WHERE department <> 'HR';
```
(āĻāĻāĻžāύ⧠`<>` āĻ
āϰā§āĻĨ **"āϏāĻŽāĻžāύ āύāϝāĻŧ"**)
---
### **āĻāĻĻāĻžāĻšāϰāĻŖ ā§Ģ: ⧍ā§Ļ⧍⧧ āϏāĻžāϞā§āϰ āĻĒāϰ⧠āϝā§āĻ āĻĻā§āĻāϝāĻŧāĻž āĻāϰā§āĻŽāĻāĻžāϰā§āϰāĻž**
```sql
SELECT * FROM Employees WHERE join_date > '2021-12-31';
```
đ āĻāĻ āĻāĻŋāĻāϰāĻŋāĻāĻŋ **⧍ā§Ļ⧍⧍ āĻŦāĻž āĻāϰ āĻĒāϰā§** āϝā§āĻ āĻĻā§āĻāϝāĻŧāĻž āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
### **āĻāĻĻāĻžāĻšāϰāĻŖ ā§Ŧ: āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āύāĻžāĻŽā§ āĻāϰā§āĻŽāĻāĻžāϰ⧠āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž `Rahim Islam` āύāĻžāĻŽā§āϰ āĻāϰā§āĻŽāĻāĻžāϰā§āϰ āϤāĻĨā§āϝ āĻāĻžāύāϤ⧠āĻāĻžāĻ:
```sql
SELECT * FROM Employees WHERE name = 'Rahim Islam';
```
đ āĻāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ **Rahim Islam**-āĻāϰ āϤāĻĨā§āϝ āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
### **āĻāĻĻāĻžāĻšāϰāĻŖ ā§: āĻāĻāĻžāϧāĻŋāĻ āĻļāϰā§āϤ āĻāĻāϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž (`AND` āĻāĻŦāĻ `OR`)**
â
**āϝāĻĻāĻŋ āĻāĻŽāϰāĻž `IT` āĻŦāĻŋāĻāĻžāĻā§āϰ āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ āϝāĻžāĻĻā§āϰ āĻŦāϝāĻŧāϏ ⧍ā§Ģ āĻŦāĻāϰā§āϰ āĻŦā§āĻļāĻŋ:**
```sql
SELECT * FROM Employees WHERE department = 'IT' AND age > 25;
```
đ āĻāĻāĻŋ āĻļā§āϧ⧠`IT` āĻŦāĻŋāĻāĻžāĻā§āϰ **āϝāĻžāĻĻā§āϰ āĻŦāϝāĻŧāϏ ⧍ā§Ģ āĻŦāĻāϰā§āϰ āĻŦā§āĻļāĻŋ** āϤāĻžāĻĻā§āϰ āϤāĻĨā§āϝ āĻĻā§āĻāĻžāĻŦā§āĨ¤
â
**āϝāĻĻāĻŋ āĻāĻŽāϰāĻž `HR` āĻŦāĻž `Finance` āĻŦāĻŋāĻāĻžāĻā§āϰ āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āĻĻā§āĻāϤ⧠āĻāĻžāĻ:**
```sql
SELECT * FROM Employees WHERE department = 'HR' OR department = 'Finance';
```
đ āĻāĻāĻŋ `HR` āĻāĻŦāĻ `Finance` āĻŦāĻŋāĻāĻžāĻā§ āĻāϰā§āĻŽāϰāϤ āϏāĻāϞ āĻāϰā§āĻŽāĻāĻžāϰā§āϰ āϤāĻĨā§āϝ āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
### **āĻāĻĒāϏāĻāĻšāĻžāϰ**
đš `WHERE` āĻā§āϞāĻ **āĻĄāĻžāĻāĻžāĻŦā§āĻ āĻĨā§āĻā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĄā§āĻāĻž āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§**āĨ¤
đš āĻāĻāĻŋ `=`, `>`, `<`, `>=`, `<=`, `<>`, `BETWEEN`, `AND`, `OR` āĻāϤā§āϝāĻžāĻĻāĻŋ āĻ
āĻĒāĻžāϰā§āĻāϰā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻžāĻ āĻāϰā§āĨ¤
đš āĻāĻŽāϰāĻž `WHERE` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŦāĻŋāĻāĻžāĻ, āĻŦāϝāĻŧāϏ, āĻŦā§āϤāύ, āϝā§āĻāĻĻāĻžāύā§āϰ āϤāĻžāϰāĻŋāĻ āĻāϤā§āϝāĻžāĻĻāĻŋāϰ āĻāĻŋāϤā§āϤāĻŋāϤ⧠āĻāϰā§āĻŽāĻāĻžāϰā§āĻĻā§āϰ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤
### **`BETWEEN` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
`BETWEEN` **āĻĻā§āĻāĻŋ āĻŽāĻžāύā§āϰ āĻŽāϧā§āϝ⧠āĻĄāĻžāĻāĻž āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāϤā§** āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻāĻŋ **inclusive**, āĻ
āϰā§āĻĨāĻžā§ **āĻļā§āϰā§āϰ āĻŽāĻžāύ āĻ āĻļā§āώā§āϰ āĻŽāĻžāύ āĻĻā§āĻā§āĻ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§**āĨ¤
#### **āϏāĻžāϧāĻžāϰāĻŖ āĻāĻ āύ (Syntax)**
```sql
SELECT column_name FROM table_name
WHERE column_name BETWEEN value1 AND value2;
```
āĻāĻāĻžāύ⧠`value1` āĻāĻŦāĻ `value2` āĻāϰ āĻŽāϧā§āϝ⧠āĻĨāĻžāĻāĻž āϏāĻŦ āĻĄāĻžāĻāĻž **āϰāĻŋāĻāĻžāϰā§āύ** āĻāϰāĻŦā§āĨ¤
---
### ***āĻĒā§āϰā§āϝāĻžāĻāĻāĻŋāĻā§āϝāĻžāϞ āĻāĻĻāĻžāĻšāϰāĻŖ***
āϧāϰāĻž āϝāĻžāĻ, āĻāĻŽāϰāĻž `Employees` āĻā§āĻŦāĻŋāϞ āĻĨā§āĻā§ **āϝāĻžāϰāĻž ā§Ēā§Ļ,ā§Ļā§Ļā§Ļ āĻĨā§āĻā§ ā§Ģā§Ļ,ā§Ļā§Ļā§Ļ āĻāĻžāĻāĻžāϰ āĻŽāϧā§āϝ⧠āĻŦā§āϤāύ āĻĒāĻžāϝāĻŧ āϤāĻžāĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ**:
```sql
SELECT * FROM Employees
WHERE salary BETWEEN 40000 AND 50000;
```
āĻāĻāĻŋ **ā§Ēā§Ļ,ā§Ļā§Ļā§Ļ āĻĨā§āĻā§ ā§Ģā§Ļ,ā§Ļā§Ļā§Ļ āĻāϰ āĻŽāϧā§āϝ⧠āĻĨāĻžāĻāĻž āϏāĻāϞ salary** āϏāĻš employee āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
### **āϤāĻžāϰāĻŋāĻā§āϰ āĻāύā§āϝ `BETWEEN` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
āϧāϰā§āύ, āĻāĻŽāϰāĻž ⧍ā§Ļ⧍⧍ āϏāĻžāϞā§āϰ āĻŽāϧā§āϝ⧠āĻāϝāĻŧā§āύ āĻāϰāĻž āĻāϰā§āĻŽā§āĻĻā§āϰ āĻĻā§āĻāϤ⧠āĻāĻžāĻ:
```sql
SELECT * FROM Employees
WHERE join_date BETWEEN '2022-01-01' AND '2022-12-31';
```
āĻāĻāĻžāύā§, **`join_date` āϝāĻĻāĻŋ ā§§āϞāĻž āĻāĻžāύā§āϝāĻŧāĻžāϰāĻŋ ⧍ā§Ļ⧍⧍ āĻĨā§āĻā§ ā§Šā§§āĻļā§ āĻĄāĻŋāϏā§āĻŽā§āĻŦāϰ ⧍ā§Ļ⧍⧍ āĻāϰ āĻŽāϧā§āϝ⧠āĻĒāĻĄāĻŧā§, āϤāĻžāĻšāϞ⧠āϏā§āĻ āϏāĻŦ āϰ⧠āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻŦā§**āĨ¤
---
### **`BETWEEN` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āϏā§āĻŦāĻŋāϧāĻž:**
â
**āĻā§āĻĄ āĻā§āĻ āĻšāϝāĻŧ** â `BETWEEN` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āϏāĻšāĻā§āĻ āϰā§āĻā§āĻ āϏā§āĻ āĻāϰāĻž āϝāĻžāϝāĻŧ
â
**āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻāĻžāϞ⧠āĻšāϝāĻŧ** â āĻāĻāĻŋ **āĻāύā§āĻĄā§āĻā§āϏ** āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻžāϰā§āϝāĻāϰāĻāĻžāĻŦā§ āĻĄāĻžāĻāĻž āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰā§
â
**āĻŦā§āĻāϤ⧠āϏāĻšāĻ** â āĻāĻāĻŋ `>=` āĻāĻŦāĻ `<=` āĻāϰ āϏāĻŽāϤā§āϞā§āϝ, āϤāĻŦā§ āĻāĻŽ āĻāĻāĻŋāϞ
---
### **`BETWEEN` āĻāϰ āĻŦāĻŋāĻāϞā§āĻĒ (`>=` āĻāĻŦāĻ `<=`)**
āĻāĻĒāϰ⧠āĻĻā§āĻāϝāĻŧāĻž query āύāĻŋāĻā§āϰ āĻŽāϤ āĻāϰā§āĻ āϞā§āĻāĻž āϝāĻžāϝāĻŧ:
```sql
SELECT * FROM Employees
WHERE salary >= 40000 AND salary <= 50000;
```
āĻāĻŋāύā§āϤ⧠**`BETWEEN` āĻāĻŽāĻĒā§āϝāĻžāĻā§āĻ āĻāĻŦāĻ āϏāĻšāĻāĻŦā§āϧā§āϝ**, āϤāĻžāĻ āĻāĻāĻŋāĻ āĻŦā§āĻļāĻŋ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤
### **`IN` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
SQL-āĻ `IN` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ **āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϤāĻžāϞāĻŋāĻāĻžāϰ āĻŽāϧā§āϝ⧠āĻĨāĻžāĻāĻž āĻŽāĻžāύāĻā§āϞā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞ āĻāĻā§ āĻāĻŋāύāĻž āϤāĻž āĻā§āĻ āĻāϰāϤā§**āĨ¤ āĻāĻāĻŋ `OR` āĻāύā§āĻĄāĻŋāĻļāύā§āϰ āϏāĻšāĻāϤāϰ āĻŦāĻŋāĻāϞā§āĻĒāĨ¤
---
### **āϏāĻžāϧāĻžāϰāĻŖ āĻāĻ āύ (Syntax)**
```sql
SELECT column_name FROM table_name
WHERE column_name IN (value1, value2, value3, ...);
```
āĻāĻāĻŋ **`column_name` āϝāĻĻāĻŋ `value1`, `value2`, āĻŦāĻž `value3` āĻāϰ āĻā§āύ⧠āĻāĻāĻāĻŋāϰ āϏāĻŽāĻžāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āϏā§āĻ āϰ⧠āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻŦā§**āĨ¤
---
### **āĻĒā§āϰā§āϝāĻžāĻāĻāĻŋāĻā§āϝāĻžāϞ āĻāĻĻāĻžāĻšāϰāĻŖ**
āϧāϰāĻž āϝāĻžāĻ, āĻāĻŽāϰāĻž **"HR", "IT", āĻāĻŦāĻ "Finance"** āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻāĨ¤
â
**`IN` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§:**
```sql
SELECT * FROM Employees
WHERE department IN ('HR', 'IT', 'Finance');
```
āĻāĻāĻŋ **āĻļā§āϧā§āĻŽāĻžāϤā§āϰ HR, IT, āĻāĻŦāĻ Finance āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āĻāϰā§āĻŽā§āĻĻā§āϰ āϰā§āĻāϰā§āĻĄ āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻŦā§**āĨ¤
â **`OR` āĻĻāĻŋāϝāĻŧā§ āĻāϰāϞā§:**
```sql
SELECT * FROM Employees
WHERE department = 'HR' OR department = 'IT' OR department = 'Finance';
```
`IN` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āĻā§āĻĄ āĻā§āĻ āĻāĻŦāĻ āϏāĻšāĻ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤
---
### **`IN` āϏāĻāĻā§āϝāĻž āĻŦāĻž āϤāĻžāϰāĻŋāĻā§āϰ āϏāĻžāĻĨā§āĻ āĻāĻžāĻ āĻāϰā§**
āĻāĻŽāϰāĻž āϝāĻĻāĻŋ **āϝāĻžāϰāĻž ⧍ā§Ģ, ā§Šā§Ļ, āĻ
āĻĨāĻŦāĻž ā§Šā§Ģ āĻŦāĻāϰ āĻŦāϝāĻŧāϏ⧠āϤāĻžāĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ**, āϤāĻžāĻšāϞā§:
```sql
SELECT * FROM Employees
WHERE age IN (25, 30, 35);
```
āĻāĻāĻŋ **⧍ā§Ģ, ā§Šā§Ļ āĻŦāĻž ā§Šā§Ģ āĻŦāĻāϰ āĻŦāϝāĻŧāϏ⧠āĻāϰā§āĻŽā§āĻĻā§āϰ āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻŦā§**āĨ¤
āϤāĻžāϰāĻŋāĻā§āϰ āĻā§āώā§āϤā§āϰā§āĻ āĻāĻžāĻ āĻāϰā§:
```sql
SELECT * FROM Employees
WHERE join_date IN ('2022-01-10', '2023-04-18', '2021-07-01');
```
āĻāĻāĻŋ āĻļā§āϧ⧠**āĻāĻ āϤāĻŋāύāĻāĻŋ āϤāĻžāϰāĻŋāĻā§ āĻāϝāĻŧā§āύ āĻāϰāĻž āĻāϰā§āĻŽā§āĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§**āĨ¤
---
### **`IN` āĻāĻŦāĻ `NOT IN`**
#### â
**`IN` â āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŽāĻžāύāĻā§āϞā§āĻā§ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§**
```sql
SELECT * FROM Employees
WHERE department IN ('IT', 'Finance');
```
āĻāĻāĻŋ **āĻļā§āϧā§āĻŽāĻžāϤā§āϰ IT āĻāĻŦāĻ Finance āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§**āĨ¤
#### â **`NOT IN` â āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŽāĻžāύāĻā§āϞ⧠āĻŦāĻžāĻĻ āĻĻā§āϝāĻŧ**
```sql
SELECT * FROM Employees
WHERE department NOT IN ('IT', 'Finance');
```
āĻāĻāĻŋ **IT āĻāĻŦāĻ Finance āĻŦāĻžāĻĻ āĻĻāĻŋāϝāĻŧā§ āĻŦāĻžāĻāĻŋ āϏāĻŦ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§**āĨ¤
---
### **`IN` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āϏā§āĻŦāĻŋāϧāĻž**
â
**āĻā§āĻĄ āĻā§āĻ āĻšāϝāĻŧ** â `IN` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠`OR` āĻŦāĻžāϰāĻŦāĻžāϰ āϞāĻŋāĻāϤ⧠āĻšāϝāĻŧ āύāĻž
â
**āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻāĻžāϞ⧠āĻšāϤ⧠āĻĒāĻžāϰā§** â āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŽāĻžāύāĻā§āϞā§āϰ āĻāύā§āϝ **āĻāύāĻĄā§āĻā§āϏ** āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĻā§āϰā§āϤ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāĻž āϝāĻžāϝāĻŧ
â
**āĻŦā§āĻāĻž āϏāĻšāĻ** â āĻāĻāĻžāϧāĻŋāĻ āĻŽāĻžāύ āĻā§āĻ āĻāϰāĻžāϰ āϏāĻšāĻāϤāϰ āĻāĻĒāĻžāϝāĻŧ
### **`LIKE` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
SQL-āĻ `LIKE` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ **āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻŽāĻŋāϞāĻŋāϝāĻŧā§ (pattern matching) āĻĄāĻžāĻāĻž āĻā§āĻāĻāϤā§**āĨ¤ āĻāĻāĻŋ **`WHERE`-āĻāϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ** āĻāĻŦāĻ āϏāĻžāϧāĻžāϰāĻŖāϤ **`%` āĻ `_` wildcard** āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
---
## **â
`LIKE` āĻāϰ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻ āύ (Syntax)**
```sql
SELECT column_name FROM table_name
WHERE column_name LIKE 'pattern';
```
āĻāĻāĻžāύ⧠**`pattern` āĻŽāĻžāύā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞāϞ⧠āϏā§āĻ āϰ⧠āĻā§āϞ⧠āϰāĻŋāĻāĻžāϰā§āύ āĻšāĻŦā§āĨ¤**
---
## **đš `LIKE`-āĻ Wildcard āĻā§āϞ⧠āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
| Wildcard | āĻāĻžāĻ |
|----------|------------------------------------------------|
| `%` | **āĻļā§āύā§āϝ āĻŦāĻž āϝā§āĻā§āύ⧠āϏāĻāĻā§āϝāĻ āĻā§āϝāĻžāϰā§āĻā§āĻāĻžāϰ** āϰāĻŋāĻĒā§āϰā§āĻā§āύā§āĻ āĻāϰ⧠|
| `_` | **āĻļā§āϧā§āĻŽāĻžāϤā§āϰ ā§§āĻāĻŋ āĻā§āϝāĻžāϰā§āĻā§āĻāĻžāϰ** āϰāĻŋāĻĒā§āϰā§āĻā§āύā§āĻ āĻāϰ⧠|
---
## **đ¸ `%` Wildcard āĻĻāĻŋāϝāĻŧā§ āĻāĻĻāĻžāĻšāϰāĻŖ**
### **ā§§ī¸âŖ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻ
āĻā§āώāϰ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āĻĄāĻžāĻāĻž āĻā§āĻāĻāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻāĻŽāύ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ **āϝāĻžāĻĻā§āϰ āύāĻžāĻŽ 'S' āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāϝāĻŧā§āĻā§**
```sql
SELECT * FROM Employees
WHERE name LIKE 'S%';
```
đĸ āĻāĻāĻŋ **S** āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āϏāĻŦ āύāĻžāĻŽ āĻĻā§āĻāĻžāĻŦā§ (āϝā§āĻŽāύ: **Samiul, Shamima, Shakila** āĻāϤā§āϝāĻžāĻĻāĻŋ)āĨ¤
---
### **⧍ī¸âŖ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻ
āĻā§āώāϰ āĻĻāĻŋāϝāĻŧā§ āĻļā§āώ āĻšāĻāϝāĻŧāĻž āĻĄāĻžāĻāĻž āĻā§āĻāĻāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻāĻŽāύ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ **āϝāĻžāĻĻā§āϰ āύāĻžāĻŽ 'n' āĻĻāĻŋāϝāĻŧā§ āĻļā§āώ āĻšāϝāĻŧā§āĻā§**
```sql
SELECT * FROM Employees
WHERE name LIKE '%n';
```
đĸ āĻāĻāĻŋ **n** āĻĻāĻŋāϝāĻŧā§ āĻļā§āώ āĻšāĻāϝāĻŧāĻž āϏāĻŦ āύāĻžāĻŽ āĻĻā§āĻāĻžāĻŦā§ (āϝā§āĻŽāύ: **Jahan, Fahim, Rakibul** āĻāϤā§āϝāĻžāĻĻāĻŋ)āĨ¤
---
### **ā§Šī¸âŖ āύāĻžāĻŽā§āϰ āĻŽāĻžāĻāĻāĻžāύ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϝāĻžāϰā§āĻā§āĻāĻžāϰ āĻĨāĻžāĻāϞ⧠āĻā§āĻāĻāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻāĻŽāύ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ **āϝāĻžāĻĻā§āϰ āύāĻžāĻŽā§āϰ āĻŽāĻžāĻā§ 'ah' āĻāĻā§**
```sql
SELECT * FROM Employees
WHERE name LIKE '%ah%';
```
đĸ āĻāĻāĻŋ āĻāĻŽāύ āύāĻžāĻŽ āĻĻā§āĻāĻžāĻŦā§ **āϝā§āĻā§āϞā§āϰ āĻŽāĻžāĻā§ 'ah' āĻāĻā§** (āϝā§āĻŽāύ: **Shamima, Mahmud, Fahim** āĻāϤā§āϝāĻžāĻĻāĻŋ)āĨ¤
---
## **đš `_` Wildcard āĻĻāĻŋāϝāĻŧā§ āĻāĻĻāĻžāĻšāϰāĻŖ**
### **ā§§ī¸âŖ āĻ āĻŋāĻ ā§§āĻāĻŋ āĻā§āϝāĻžāϰā§āĻā§āĻāĻžāϰ āϰāĻŋāĻĒā§āϞā§āϏ āĻāϰāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻāĻŽāύ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ **āϝāĻžāĻĻā§āϰ āύāĻžāĻŽā§āϰ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻā§āϝāĻžāϰā§āĻā§āĻāĻžāϰ 'a'**
```sql
SELECT * FROM Employees
WHERE name LIKE '_a%';
```
đĸ āĻāĻāĻŋ āĻāĻŽāύ āύāĻžāĻŽ āĻĻā§āĻāĻžāĻŦā§ **āϝā§āĻā§āϞā§āϰ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻā§āϝāĻžāϰā§āĻā§āĻāĻžāϰ 'a'** (āϝā§āĻŽāύ: **Karim, Fahim, Samiul** āĻāϤā§āϝāĻžāĻĻāĻŋ)āĨ¤
---
### **⧍ī¸âŖ āĻļā§āώā§āϰ āĻāĻ āĻā§āϝāĻžāϰā§āĻā§āĻāĻžāϰ āĻĢāĻŋāĻā§āϏāĻĄ āϰā§āĻā§ āĻā§āĻāĻāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻāĻŽāύ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ **āϝāĻžāĻĻā§āϰ āύāĻžāĻŽā§āϰ āĻļā§āώā§āϰ āĻāĻā§ 'a' āĻāĻā§**
```sql
SELECT * FROM Employees
WHERE name LIKE '%a_';
```
đĸ āĻāĻāĻŋ āĻāĻŽāύ āύāĻžāĻŽ āĻĻā§āĻāĻžāĻŦā§ **āϝā§āĻā§āϞā§āϰ āĻļā§āώā§āϰ āĻāĻā§ 'a' āĻāĻā§** (āϝā§āĻŽāύ: **Ayesha, Sumaiya** āĻāϤā§āϝāĻžāĻĻāĻŋ)āĨ¤
---
## **đš `NOT LIKE` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻāĻŽāύ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ **āϝāĻžāĻĻā§āϰ āύāĻžāĻŽ 'S' āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāϝāĻŧāύāĻŋ**
```sql
SELECT * FROM Employees
WHERE name NOT LIKE 'S%';
```
đĸ āĻāĻāĻŋ **S āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āύāĻžāĻŽ āĻŦāĻžāĻĻ āĻĻāĻŋāϝāĻŧā§ āĻŦāĻžāĻāĻŋ āϏāĻŦ āĻĻā§āĻāĻžāĻŦā§**āĨ¤
---
## **â
`LIKE` āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āϏā§āĻŦāĻŋāϧāĻž**
â **Flexible search:** āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻ
āĻā§āώāϰ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰā§, āĻļā§āώ āĻŦāĻž āĻŽāĻžāĻā§ āĻāĻŋāĻā§ āĻĨāĻžāĻāϞ⧠āĻā§āĻāĻāϤ⧠āĻĒāĻžāϰā§
â **Wildcards:** `%` āĻāĻŦāĻ `_` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻžāϏā§āĻāĻŽ āĻĒā§āϝāĻžāĻāĻžāϰā§āύ āĻŽāĻŋāϞāĻžāύ⧠āϝāĻžāϝāĻŧ
â **Text filtering:** āύāĻžāĻŽ, āĻ āĻŋāĻāĻžāύāĻž āĻŦāĻž āĻ
āύā§āϝ āϏā§āĻā§āϰāĻŋāĻ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻā§āĻŦāĻ āĻĻāϰāĻāĻžāϰāĻŋ
---
### **`AND`, `OR`, āĻāĻŦāĻ `NOT` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
SQL-āĻ `AND`, `OR`, āĻāĻŦāĻ `NOT` **āϞāĻāĻŋāĻā§āϝāĻžāϞ āĻ
āĻĒāĻžāϰā§āĻāϰ** āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āĻāĻŦāĻ `WHERE` āĻā§āϞāĻā§āϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§ **āĻŦāĻŋāĻāĻŋāύā§āύ āĻāύā§āĻĄāĻŋāĻļāύ āĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ**āĨ¤
---
## **â
ā§§. `AND` āĻ
āĻĒāĻžāϰā§āĻāϰ (āĻĻā§āĻāĻŋ āĻļāϰā§āϤ āĻāĻāϏāĻžāĻĨā§ āĻĒā§āϰāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§)**
- `AND` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠**āϏāĻŦ āĻļāϰā§āϤ āĻāĻāϏāĻžāĻĨā§ āĻŽāĻŋāϞ⧠āĻā§āϞ⧠āϤāĻŦā§āĻ āĻĄāĻžāĻāĻž āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻŦā§**āĨ¤
- āĻ
āϰā§āĻĨāĻžā§, **āĻāĻā§ āĻļāϰā§āϤāĻ āϏāϤā§āϝ āĻšāϤ⧠āĻšāĻŦā§**āĨ¤
### **āĻāĻĻāĻžāĻšāϰāĻŖ:**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **IT āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§ āĻāĻžāĻ āĻāϰāĻž āĻāĻŦāĻ ā§Šā§Ļ āĻŦāĻāϰ āĻŦāĻž āϤāĻžāϰ āĻŦā§āĻļāĻŋ āĻŦā§āϏā§āϰ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ**:
```sql
SELECT * FROM Employees
WHERE department = 'IT'
AND age >= 30;
```
đš **Result:** `department = 'IT'` āĻāĻŦāĻ `age >= 30`â**āĻāĻā§ āĻļāϰā§āϤ āĻŽāĻŋāϞāϞā§** āϤāĻŦā§āĻ āϰ⧠āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻŦā§āĨ¤
---
## **â
⧍. `OR` āĻ
āĻĒāĻžāϰā§āĻāϰ (āĻāĻāĻāĻŋ āĻļāϰā§āϤ āĻŽāĻŋāϞāϞā§āĻ āĻšāĻŦā§)**
- `OR` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠**āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻļāϰā§āϤ āĻŽāĻŋāϞāϞā§āĻ** āĻĄāĻžāĻāĻž āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻŦā§āĨ¤
- āĻ
āϰā§āĻĨāĻžā§, **āϝ⧠āĻā§āύ⧠āĻāĻāĻāĻŋāĻ āϏāϤā§āϝ āĻšāϤ⧠āĻšāĻŦā§**āĨ¤
### **āĻāĻĻāĻžāĻšāϰāĻŖ:**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āϝāĻžāϰāĻž HR āĻŦāĻž IT āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§ āĻāĻžāĻ āĻāϰ⧠āϤāĻžāĻĻā§āϰ āĻā§āĻāĻāϤ⧠āĻāĻžāĻ**:
```sql
SELECT * FROM Employees
WHERE department = 'HR'
OR department = 'IT';
```
đš **Result:** `HR` **āĻ
āĻĨāĻŦāĻž** `IT` āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āϝā§āĻā§āύ⧠āĻāϰā§āĻŽā§ āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
## **â
ā§Š. `NOT` āĻ
āĻĒāĻžāϰā§āĻāϰ (āĻļāϰā§āϤ āύāĻž āĻŽāĻŋāϞāϞ⧠āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāĻŦā§)**
- `NOT` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠**āĻļāϰā§āϤā§āϰ āĻāϞā§āĻā§ āĻŽāĻžāύ āĻŦā§āϰ āĻāϰā§**āĨ¤
- āĻ
āϰā§āĻĨāĻžā§, **āϝ⧠āĻļāϰā§āϤ āϏāϤā§āϝ, āϏā§āĻāĻžāĻā§ āĻŽāĻŋāĻĨā§āϝāĻž āĻŦāĻžāύāĻŋā§ā§ āĻĢā§āϞā§**āĨ¤
### **āĻāĻĻāĻžāĻšāϰāĻŖ:**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āϝāĻžāϰāĻž IT āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§ āύā§āĻ, āϤāĻžāĻĻā§āϰ āĻĻā§āĻāϤ⧠āĻāĻžāĻ**:
```sql
SELECT * FROM Employees
WHERE NOT department = 'IT';
```
đš **Result:** `IT` āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§ **āĻŦāĻžāĻāĻŋ āϏāĻŦ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§**āĨ¤
---
## **â
`AND`, `OR`, āĻāĻŦāĻ `NOT` āĻāĻāϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž**
āĻāĻŽāϰāĻž āĻāĻžāĻ āϝ⧠**āϝāĻžāϰāĻž IT āĻŦāĻž Finance āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§ āĻāĻžāĻ āĻāϰ⧠āĻāĻŦāĻ āϝāĻžāĻĻā§āϰ āĻŦā§āϏ ⧍ā§Ģ āĻŦāĻāϰā§āϰ āĻŦā§āĻļāĻŋ, āϤāĻžāϰāĻž āϝā§āύ āĻĻā§āĻāĻžāύ⧠āĻšā§**:
```sql
SELECT * FROM Employees
WHERE (department = 'IT' OR department = 'Finance')
AND age > 25;
```
đš **Result:**
- `department = 'IT'` **āĻ
āĻĨāĻŦāĻž** `department = 'Finance'` â **āϝā§āĻā§āύ⧠āĻāĻāĻāĻŋ āĻšāϤ⧠āĻšāĻŦā§**
- **āĻāĻŦāĻ** `age > 25` â **āĻŦā§āϏ ⧍ā§Ģ-āĻāϰ āĻŦā§āĻļāĻŋ āĻšāϤ⧠āĻšāĻŦā§**
---
## **â
`NOT` āϏāĻš `AND` āĻāĻŦāĻ `OR` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āϝāĻžāϰāĻž HR āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§ āύā§āĻ āĻāĻŦāĻ āϝāĻžāĻĻā§āϰ āĻŦā§āϏ ā§Šā§Ļ āĻŦāĻāϰā§āϰ āĻŦā§āĻļāĻŋ, āĻļā§āϧ⧠āϤāĻžāĻĻā§āϰ āĻĻā§āĻāϤ⧠āĻāĻžāĻ**:
```sql
SELECT * FROM Employees
WHERE NOT department = 'HR'
AND age > 30;
```
đš **Result:**
- **HR āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻŦāĻžāĻĻ āϝāĻžāĻŦā§**
- **āϝāĻžāĻĻā§āϰ āĻŦā§āϏ ā§Šā§Ļ āĻŦāĻāϰā§āϰ āĻŦā§āĻļāĻŋ āĻļā§āϧ⧠āϤāĻžāĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§**
---
## **â
āϏāĻāĻā§āώā§āĻĒā§ āĻĒāĻžāϰā§āĻĨāĻā§āϝ:**
| āĻ
āĻĒāĻžāϰā§āĻāϰ | āĻāĻžāĻ |
|----------|------------------------------------------------|
| `AND` | **āϏāĻŦ āĻļāϰā§āϤ āϏāϤā§āϝ āĻšāϤ⧠āĻšāĻŦā§** (āĻĻā§āĻāĻŋ āĻļāϰā§āϤāĻ āĻŽāĻŋāϞāϤ⧠āĻšāĻŦā§) |
| `OR` | **āϝā§āĻā§āύ⧠āĻāĻ āĻļāϰā§āϤ āϏāϤā§āϝ āĻšāϞā§āĻ āĻšāĻŦā§** |
| `NOT` | **āĻļāϰā§āϤā§āϰ āĻāϞā§āĻā§ āĻŽāĻžāύ āĻŦā§āϰ āĻāϰā§** |
---
### **`ORDER BY` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
SQL-āĻ `ORDER BY` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§ **āĻĄāĻžāĻāĻž āϏāĻžāĻāĻžāύā§āϰ āĻāύā§āϝ**āĨ¤ āĻāĻāĻŋ **āĻŦā§ āĻĨā§āĻā§ āĻā§āĻ āĻŦāĻž āĻā§āĻ āĻĨā§āĻā§ āĻŦā§ āĻā§āϰāĻŽā§ āϏāĻžāĻāĻžāϤ⧠āĻĒāĻžāϰā§**āĨ¤
---
## **â
`ORDER BY` āĻāϰ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻ āύ (Syntax)**
```sql
SELECT column_name FROM table_name
ORDER BY column_name [ASC | DESC];
```
đš `ASC` (Ascending) â **āĻā§āĻ āĻĨā§āĻā§ āĻŦā§** (default)
đš `DESC` (Descending) â **āĻŦā§ āĻĨā§āĻā§ āĻā§āĻ**
---
## **â
ā§§. `ORDER BY` āĻĻāĻŋā§ā§ āύāĻžāĻŽ āĻā§āϰāĻŽāĻžāύā§āϏāĻžāϰ⧠āϏāĻžāĻāĻžāύā§**
āϧāϰāĻŋ, āĻāĻŽāϰāĻž **āĻāϰā§āĻŽā§āĻĻā§āϰ āύāĻžāĻŽ āĻŦāϰā§āĻŖāĻžāύā§āĻā§āϰāĻŽāĻŋāĻ (A-Z) āϏāĻžāĻāĻžāϤ⧠āĻāĻžāĻ**:
```sql
SELECT * FROM Employees
ORDER BY name;
```
āĻāĻāĻŋ **`name` āĻāϞāĻžāĻŽā§āϰ āĻŽāĻžāύ A āĻĨā§āĻā§ Z āĻĒāϰā§āϝāύā§āϤ āϏāĻžāĻāĻžāĻŦā§**āĨ¤
---
## **â
⧍. `ORDER BY` āĻĻāĻŋā§ā§ āĻŦā§āϤāύ āĻ
āύā§āϝāĻžā§ā§ āϏāĻžāĻāĻžāύ⧠(Ascending & Descending)**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āĻāϰā§āĻŽā§āĻĻā§āϰ āĻŦā§āϤāύ (salary) āĻ
āύā§āϝāĻžā§ā§ āĻā§āĻ āĻĨā§āĻā§ āĻŦā§ (Ascending)** āϏāĻžāĻāĻžāϤ⧠āĻāĻžāĻ:
```sql
SELECT * FROM Employees
ORDER BY salary ASC;
```
đĸ āĻāĻāĻŋ **āϏāĻŦāĻā§ā§ā§ āĻāĻŽ āĻŦā§āϤāύ āĻĨā§āĻā§ āĻŦā§āĻļāĻŋ āĻŦā§āϤāύā§āϰ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§**āĨ¤
đš **āĻŦā§ āĻĨā§āĻā§ āĻā§āĻ (Descending) āϏāĻžāĻāĻžāϤā§:**
```sql
SELECT * FROM Employees
ORDER BY salary DESC;
```
đĸ āĻāĻāĻŋ **āϏāĻŦāĻā§ā§ā§ āĻŦā§āĻļāĻŋ āĻŦā§āϤāύ āĻĒāĻžāĻā§āĻž āĻāϰā§āĻŽā§āĻā§ āϏāĻŦāĻžāϰ āĻāĻĒāϰ⧠āĻĻā§āĻāĻžāĻŦā§**āĨ¤
---
## **â
ā§Š. āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽā§āϰ āĻāĻĒāϰ `ORDER BY`**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻ
āύā§āϝāĻžā§ā§ āϏāĻžāĻāĻžāϤ⧠āĻāĻžāĻ āĻāĻŦāĻ āĻāĻāĻ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āĻā§āϤāϰ⧠āĻŦā§āϏ āĻ
āύā§āϝāĻžā§ā§ (Ascending) āϏāĻžāĻāĻžāϤ⧠āĻāĻžāĻ**:
```sql
SELECT * FROM Employees
ORDER BY department ASC, age ASC;
```
đš āĻāĻāĻŋ **āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻ
āύā§āϝāĻžā§ā§ āϏāĻžāĻāĻžāĻŦā§ āĻāĻŦāĻ āĻāĻāĻ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āĻŽāϧā§āϝ⧠āĻŦā§āϏ āĻ
āύā§āϝāĻžā§ā§ āϏāĻžāĻāĻžāĻŦā§**āĨ¤
---
## **â
ā§Ē. `ORDER BY` `WHERE` āĻāϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž**
āϝāĻĻāĻŋ āĻāĻŽāϰāĻž **āϝāĻžāϰāĻž IT āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§ āĻāĻžāĻ āĻāϰā§, āĻļā§āϧ⧠āϤāĻžāĻĻā§āϰ āĻŦā§āϤāύ āĻ
āύā§āϝāĻžā§ā§ āϏāĻžāĻāĻžāϤ⧠āĻāĻžāĻ**:
```sql
SELECT * FROM Employees
WHERE department = 'IT'
ORDER BY salary DESC;
```
đš āĻāĻāĻŋ **āĻļā§āϧā§āĻŽāĻžāϤā§āϰ IT āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§ āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āĻŦā§āϤāύ āĻ
āύā§āϝāĻžā§ā§ āĻŦā§ āĻĨā§āĻā§ āĻā§āĻ āϏāĻžāĻāĻžāĻŦā§**āĨ¤
---
## **â
āϏāĻāĻā§āώā§āĻĒā§ `ORDER BY` āĻāϰ āϏā§āĻŦāĻŋāϧāĻž**
â **āĻĄāĻžāĻāĻž āϏāĻžāĻāĻžāύ⧠āϏāĻšāĻ āĻšā§**
â **Ascending āĻŦāĻž Descending āϝā§āĻā§āύā§āĻāĻžāĻŦā§ āϏāĻžāĻāĻžāύ⧠āϝāĻžā§**
â **āĻŦā§ āĻĄāĻžāĻāĻžāĻŦā§āĻā§ āϰāĻŋāĻĒā§āϰā§āĻ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ**
---
### **`NULL` āĻāĻŦāĻ `NOT NULL` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
SQL-āĻ **`NULL`** āĻŽāĻžāύ⧠āĻšāϞ⧠**āĻā§āύ⧠āĻĄāĻžāĻāĻž āύā§āĻ āĻŦāĻž āĻ
āĻāĻžāύāĻž āĻŽāĻžāύ**, āĻāϰ **`NOT NULL`** āĻŽāĻžāύ⧠āĻšāϞ⧠**āĻ āĻāϞāĻžāĻŽā§ āĻ
āĻŦāĻļā§āϝāĻ āĻĄāĻžāĻāĻž āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§**āĨ¤
---
## **â
`NULL` āĻ `NOT NULL` āĻāϰ āϏāĻžāϧāĻžāϰāĻŖ āĻŦā§āϝāĻžāĻā§āϝāĻž**
- **`NULL`** â āϝāĻĻāĻŋ āĻā§āύ⧠āĻāϞāĻžāĻŽā§ **āĻŽāĻžāύ āύāĻž āĻĨāĻžāĻā§**, āϤāĻžāĻšāϞ⧠āϏā§āĻāĻŋ `NULL` āĻšāĻŦā§āĨ¤
- **`NOT NULL`** â āϝāĻĻāĻŋ āĻā§āύ⧠āĻāϞāĻžāĻŽā§ `NOT NULL` āĻĻā§ā§āĻž āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠**āϏā§āĻ āĻāϞāĻžāĻŽā§ āĻ
āĻŦāĻļā§āϝāĻ āĻĄāĻžāĻāĻž āĻĻāĻŋāϤ⧠āĻšāĻŦā§**āĨ¤
---
## **â
`NULL` āĻ `NOT NULL` āĻā§āĻŦāĻŋāϞ āϤā§āϰāĻŋāϤ⧠āĻāĻŋāĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§?**
```sql
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL, -- āĻāĻāĻžāύ⧠āĻ
āĻŦāĻļā§āϝāĻ āύāĻžāĻŽ āĻĻāĻŋāϤ⧠āĻšāĻŦā§
department VARCHAR(30) NULL, -- āĻāĻāĻžāύ⧠āĻĄāĻžāĻāĻž āύāĻž āĻĻāĻŋāϞā§āĻ āĻšāĻŦā§
age INT CHECK (age >= 18),
salary DECIMAL(10,2) NOT NULL, -- āĻ
āĻŦāĻļā§āϝāĻ āĻŦā§āϤāύ āĻĻāĻŋāϤ⧠āĻšāĻŦā§
join_date DATE NULL -- āϤāĻžāϰāĻŋāĻ āĻĻā§āĻā§āĻž āĻŦāĻžāϧā§āϝāϤāĻžāĻŽā§āϞāĻ āύāĻž
);
```
đš **`NOT NULL` āĻĨāĻžāĻāĻž āĻŽāĻžāύā§** â āĻ āĻāϞāĻžāĻŽā§ āĻĄāĻžāĻāĻž **āĻ
āĻŦāĻļā§āϝāĻ āĻĻāĻŋāϤ⧠āĻšāĻŦā§**āĨ¤
đš **`NULL` āĻĨāĻžāĻāĻž āĻŽāĻžāύā§** â āĻ āĻāϞāĻžāĻŽā§ āĻĄāĻžāĻāĻž **āύāĻž āĻĻāĻŋāϞā§āĻ āĻāϞāĻŦā§**āĨ¤
---
## **â
`NULL` āĻĄāĻžāĻāĻž āĻāύāϏāĻžāϰā§āĻ āĻāϰāĻž**
```sql
INSERT INTO employees (name, department, age, salary, join_date)
VALUES ('Samiul', NULL, 25, 50000.00, '2022-03-15');
```
đš āĻāĻāĻžāύ⧠**`department` āĻāϞāĻžāĻŽā§ `NULL` āϰāĻžāĻāĻž āĻšā§ā§āĻā§**āĨ¤
---
## **â
`NOT NULL` āĻāϞāĻžāĻŽā§ `NULL` āĻĻāĻŋāϞ⧠āĻā§ āĻšāĻŦā§?**
```sql
INSERT INTO employees (name, department, age, salary, join_date)
VALUES (NULL, 'IT', 25, 50000.00, '2022-03-15');
```
â **Error: Column 'name' cannot be null**
đš āĻāĻžāϰāĻŖ **`name` āĻāϞāĻžāĻŽā§ `NOT NULL` āĻĻā§ā§āĻž āĻāĻā§**, āϤāĻžāĻ `NULL` āĻĻā§āĻā§āĻž āϝāĻžāĻŦā§ āύāĻžāĨ¤
---
## **â
`NULL` āĻā§āĻ āĻāϰāĻž (WHERE āϏāĻš)**
đš **`IS NULL` āĻĻāĻŋā§ā§ āĻā§āĻ āĻāϰāĻž āĻšā§ āĻā§āύ āĻāϞāĻžāĻŽ `NULL` āĻāĻā§ āĻāĻŋāύāĻž**
```sql
SELECT * FROM employees WHERE department IS NULL;
```
đš **āϝā§āϏāĻŦ āĻāϰā§āĻŽā§āϰ `department` `NULL`, āĻļā§āϧ⧠āϤāĻžāĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§**
đš **`IS NOT NULL` āĻĻāĻŋā§ā§ `NULL` āύāĻž āĻĨāĻžāĻāĻž āĻĄāĻžāĻāĻž āĻā§āĻāĻāϤ⧠āĻĒāĻžāϰāĻŋ**
```sql
SELECT * FROM employees WHERE department IS NOT NULL;
```
đš **āϝāĻžāĻĻā§āϰ `department` āĻ āĻŽāĻžāύ āĻāĻā§, āĻļā§āϧ⧠āϤāĻžāĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§**
---
## **â
`NULL` āĻĢāĻŋāϞā§āĻĄ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž (`UPDATE` āϏāĻš)**
```sql
UPDATE employees
SET department = 'HR'
WHERE department IS NULL;
```
đš **āϝāĻžāĻĻā§āϰ `department` `NULL`, āϤāĻžāĻĻā§āϰ `HR` āϏā§āĻ āĻāϰāĻž āĻšāĻŦā§**
---
## **â
`NULL` āĻā§ `DEFAULT` āĻŽāĻžāύ āϏā§āĻ āĻāϰāĻž**
```sql
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
department VARCHAR(30) DEFAULT 'Unknown',
age INT CHECK (age >= 18),
salary DECIMAL(10,2) NOT NULL,
join_date DATE NULL
);
```
đš **āϝāĻĻāĻŋ `department`-āĻ āĻā§āύ⧠āĻŽāĻžāύ āύāĻž āĻĻā§āĻā§āĻž āĻšā§, āϤāĻžāĻšāϞ⧠āϏā§āĻŦā§āĻāĻā§āϰāĻŋā§āĻāĻžāĻŦā§ 'Unknown' āĻšā§ā§ āϝāĻžāĻŦā§**
---
### đĨ **āϏāĻāĻā§āώā§āĻĒā§ `NULL` āĻāĻŦāĻ `NOT NULL`**
â **`NULL`** â āĻāϞāĻžāĻŽā§ āĻā§āύ⧠āĻĄāĻžāĻāĻž āύāĻž āĻĨāĻžāĻāϞ⧠`NULL` āĻšāϤ⧠āĻĒāĻžāϰā§
â **`NOT NULL`** â āĻāϞāĻžāĻŽā§ āĻĄāĻžāĻāĻž āĻĨāĻžāĻāĻž āĻŦāĻžāϧā§āϝāϤāĻžāĻŽā§āϞāĻ
â **`IS NULL`** â `NULL` āĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ
â **`IS NOT NULL`** â `NULL` āύāĻž āĻĨāĻžāĻāĻž āĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ
â **`UPDATE` āĻĻāĻŋā§ā§ `NULL` āĻĢāĻŋāϞā§āĻĄ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž āϝāĻžā§**
---
### **đš `ON` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§? (āĻĒā§āϰā§āĻŖāĻžāĻā§āĻ āĻāĻĻāĻžāĻšāϰāĻŖ)**
āĻāĻŽāϰāĻž āĻĻā§āĻāĻŋ āĻā§āĻŦāĻŋāϞ āϤā§āϰāĻŋ āĻāϰāĻŦā§:
1. **`employees`** â āĻāϰā§āĻŽā§āĻĻā§āϰ āϤāĻĨā§āϝ āĻĨāĻžāĻāĻŦā§
2. **`departments`** â āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āϤāĻĨā§āϝ āĻĨāĻžāĻāĻŦā§
āĻāϰāĻĒāϰ āĻāĻŽāϰāĻž **`ON` āϏāĻš `JOIN` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§** āĻāϰā§āĻŽā§āĻĻā§āϰ āϏāĻžāĻĨā§ āϤāĻžāĻĻā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻŽāĻŋāϞāĻŋā§ā§ āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
### **â
`CREATE TABLE` - āĻā§āĻŦāĻŋāϞ āϤā§āϰāĻŋ āĻāϰāĻž**
```sql
CREATE TABLE departments (
id INT PRIMARY KEY,
department_name VARCHAR(50) NOT NULL
);
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
department_id INT,
FOREIGN KEY (department_id) REFERENCES departments(id)
);
```
đš **`departments` āĻā§āĻŦāĻŋāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āύāĻžāĻŽ āĻĨāĻžāĻāĻŦā§āĨ¤**
đš **`employees` āĻā§āĻŦāĻŋāϞ⧠`department_id` āĻĢāĻŋāϞā§āĻĄ āĻāĻā§**, āϝāĻž `departments` āĻā§āĻŦāĻŋāϞā§āϰ `id` āĻāϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤāĨ¤
---
### **â
`INSERT INTO` - āĻĄāĻžāĻāĻž āϝā§āĻ āĻāϰāĻž**
```sql
INSERT INTO departments (id, department_name) VALUES
(101, 'IT'),
(102, 'HR'),
(103, 'Marketing');
INSERT INTO employees (id, name, department_id) VALUES
(1, 'Arafat', 101),
(2, 'Samiul', 102),
(3, 'Shuvo', 103),
(4, 'Alex', NULL);
```
đš **`departments` āĻā§āĻŦāĻŋāĻ˛ā§ ā§ŠāĻāĻŋ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āϝā§āĻ āĻāϰāĻž āĻšāϞā§āĨ¤**
đš **`employees` āĻā§āĻŦāĻŋāϞ⧠ā§Ē āĻāύ āĻāϰā§āĻŽā§ āϝā§āĻ āĻāϰāĻž āĻšāϞā§āĨ¤**
đš **Alex-āĻāϰ `department_id` `NULL`, āĻŽāĻžāύ⧠āϏ⧠āĻā§āύ⧠āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§ āύā§āĻāĨ¤**
---
### **â
`ON` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠`INNER JOIN`**
```sql
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.id;
```
đš **āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϝāĻžāĻĻā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻāĻā§, āϤāĻžāĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§āĨ¤**
#### **đ Output:**
| name | department_name |
|--------|---------------|
| Arafat | IT |
| Samiul | HR |
| Shuvo | Marketing |
đš **Alex āύā§āĻ, āĻāĻžāϰāĻŖ āϤāĻžāϰ `department_id` `NULL`āĨ¤**
---
### **â
`ON` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠`LEFT JOIN`**
```sql
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.id;
```
đš **āϏāĻŦ āĻāϰā§āĻŽā§ āĻĻā§āĻāĻžāĻŦā§, āĻāĻŽāύāĻāĻŋ āϝāĻžāĻĻā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āύā§āĻ āϤāĻžāĻĻā§āϰāĻāĨ¤**
#### **đ Output:**
| name | department_name |
|--------|---------------|
| Arafat | IT |
| Samiul | HR |
| Shuvo | Marketing |
| Alex | NULL |
đš **Alex-āĻāϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āύā§āĻ, āϤāĻžāĻ `NULL` āĻĻā§āĻāĻžāĻŦā§āĨ¤**
---
### **â
`ON` āĻāĻŦāĻ `USING` āĻāϰ āĻĒāĻžāϰā§āĻĨāĻā§āϝ**
đš **āϝāĻĻāĻŋ āĻāĻā§ āĻā§āĻŦāĻŋāϞ⧠āĻāϞāĻžāĻŽā§āϰ āύāĻžāĻŽ āĻāϞāĻžāĻĻāĻž āĻšā§, āϤāĻžāĻšāϞ⧠`ON` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšā§āĨ¤**
đš **āϝāĻĻāĻŋ āĻāĻā§ āĻā§āĻŦāĻŋāϞ⧠āĻāĻāĻ āύāĻžāĻŽā§āϰ āĻāϞāĻžāĻŽ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠`USING` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§āĨ¤**
#### **`ON` āĻĻāĻŋā§ā§ JOIN (āϝā§āĻšā§āϤ⧠āĻāϞāĻžāĻŽā§āϰ āύāĻžāĻŽ āĻāĻŋāύā§āύ)**
```sql
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.id;
```
#### **`USING` āĻĻāĻŋā§ā§ JOIN (āϝāĻĻāĻŋ āĻāĻā§ āĻā§āĻŦāĻŋāϞ⧠`department_id` āĻĨāĻžāĻā§)**
```sql
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
USING (department_id);
```
---
### đĨ **āϏāĻāĻā§āώā§āĻĒā§ `ON`**
â **`ON` āĻŽā§āϞāϤ `JOIN` āĻāϰ āĻā§āώā§āϤā§āϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§āĨ¤**
â **`ON` āϝāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšā§?** â āϝāĻāύ āĻĻā§āĻ āĻā§āĻŦāĻŋāϞā§āϰ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻāϞāĻžāĻŽā§āϰ āύāĻžāĻŽ āĻāĻŋāύā§āύ āĻšā§āĨ¤
â **`INNER JOIN`** â āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϝāĻžāĻĻā§āϰ āĻŽāĻŋāϞ āĻĒāĻžāĻā§āĻž āϝāĻžā§, āϤāĻžāĻĻā§āϰ āĻĻā§āĻāĻžā§āĨ¤
â **`LEFT JOIN`** â āϏāĻŦ āĻāϰā§āĻŽā§ āĻĻā§āĻāĻžā§, āĻāĻŽāύāĻāĻŋ āϝāĻžāĻĻā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āύā§āĻ, āϤāĻžāĻĻā§āϰāĻāĨ¤
â **`USING` āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§, āϝāĻāύ āĻāϞāĻžāĻŽā§āϰ āύāĻžāĻŽ āĻāĻāĻ āĻšā§āĨ¤**
---
### **đš `ON` āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§? (āĻĒā§āϰā§āĻŖāĻžāĻā§āĻ āĻāĻĻāĻžāĻšāϰāĻŖ)**
āĻāĻŽāϰāĻž āĻĻā§āĻāĻŋ āĻā§āĻŦāĻŋāϞ āϤā§āϰāĻŋ āĻāϰāĻŦā§:
1. **`employees`** â āĻāϰā§āĻŽā§āĻĻā§āϰ āϤāĻĨā§āϝ āĻĨāĻžāĻāĻŦā§
2. **`departments`** â āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āϤāĻĨā§āϝ āĻĨāĻžāĻāĻŦā§
āĻāϰāĻĒāϰ āĻāĻŽāϰāĻž **`ON` āϏāĻš `JOIN` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§** āĻāϰā§āĻŽā§āĻĻā§āϰ āϏāĻžāĻĨā§ āϤāĻžāĻĻā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻŽāĻŋāϞāĻŋā§ā§ āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
### **â
`CREATE TABLE` - āĻā§āĻŦāĻŋāϞ āϤā§āϰāĻŋ āĻāϰāĻž**
```sql
CREATE TABLE departments (
id INT PRIMARY KEY,
department_name VARCHAR(50) NOT NULL
);
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
department_id INT,
FOREIGN KEY (department_id) REFERENCES departments(id)
);
```
đš **`departments` āĻā§āĻŦāĻŋāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āύāĻžāĻŽ āĻĨāĻžāĻāĻŦā§āĨ¤**
đš **`employees` āĻā§āĻŦāĻŋāϞ⧠`department_id` āĻĢāĻŋāϞā§āĻĄ āĻāĻā§**, āϝāĻž `departments` āĻā§āĻŦāĻŋāϞā§āϰ `id` āĻāϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤāĨ¤
---
### **â
`INSERT INTO` - āĻĄāĻžāĻāĻž āϝā§āĻ āĻāϰāĻž**
```sql
INSERT INTO departments (id, department_name) VALUES
(101, 'IT'),
(102, 'HR'),
(103, 'Marketing');
INSERT INTO employees (id, name, department_id) VALUES
(1, 'Arafat', 101),
(2, 'Samiul', 102),
(3, 'Shuvo', 103),
(4, 'Alex', NULL);
```
đš **`departments` āĻā§āĻŦāĻŋāĻ˛ā§ ā§ŠāĻāĻŋ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āϝā§āĻ āĻāϰāĻž āĻšāϞā§āĨ¤**
đš **`employees` āĻā§āĻŦāĻŋāϞ⧠ā§Ē āĻāύ āĻāϰā§āĻŽā§ āϝā§āĻ āĻāϰāĻž āĻšāϞā§āĨ¤**
đš **Alex-āĻāϰ `department_id` `NULL`, āĻŽāĻžāύ⧠āϏ⧠āĻā§āύ⧠āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§ āύā§āĻāĨ¤**
---
### **â
`ON` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠`INNER JOIN`**
```sql
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.id;
```
đš **āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϝāĻžāĻĻā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻāĻā§, āϤāĻžāĻĻā§āϰ āĻĻā§āĻāĻžāĻŦā§āĨ¤**
#### **đ Output:**
| name | department_name |
|--------|---------------|
| Arafat | IT |
| Samiul | HR |
| Shuvo | Marketing |
đš **Alex āύā§āĻ, āĻāĻžāϰāĻŖ āϤāĻžāϰ `department_id` `NULL`āĨ¤**
---
### **â
`ON` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠`LEFT JOIN`**
```sql
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.id;
```
đš **āϏāĻŦ āĻāϰā§āĻŽā§ āĻĻā§āĻāĻžāĻŦā§, āĻāĻŽāύāĻāĻŋ āϝāĻžāĻĻā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āύā§āĻ āϤāĻžāĻĻā§āϰāĻāĨ¤**
#### **đ Output:**
| name | department_name |
|--------|---------------|
| Arafat | IT |
| Samiul | HR |
| Shuvo | Marketing |
| Alex | NULL |
đš **Alex-āĻāϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āύā§āĻ, āϤāĻžāĻ `NULL` āĻĻā§āĻāĻžāĻŦā§āĨ¤**
---
### **â
`ON` āĻāĻŦāĻ `USING` āĻāϰ āĻĒāĻžāϰā§āĻĨāĻā§āϝ**
đš **āϝāĻĻāĻŋ āĻāĻā§ āĻā§āĻŦāĻŋāϞ⧠āĻāϞāĻžāĻŽā§āϰ āύāĻžāĻŽ āĻāϞāĻžāĻĻāĻž āĻšā§, āϤāĻžāĻšāϞ⧠`ON` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšā§āĨ¤**
đš **āϝāĻĻāĻŋ āĻāĻā§ āĻā§āĻŦāĻŋāϞ⧠āĻāĻāĻ āύāĻžāĻŽā§āϰ āĻāϞāĻžāĻŽ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠`USING` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§āĨ¤**
#### **`ON` āĻĻāĻŋā§ā§ JOIN (āϝā§āĻšā§āϤ⧠āĻāϞāĻžāĻŽā§āϰ āύāĻžāĻŽ āĻāĻŋāύā§āύ)**
```sql
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.id;
```
#### **`USING` āĻĻāĻŋā§ā§ JOIN (āϝāĻĻāĻŋ āĻāĻā§ āĻā§āĻŦāĻŋāϞ⧠`department_id` āĻĨāĻžāĻā§)**
```sql
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
USING (department_id);
```
---
### đĨ **āϏāĻāĻā§āώā§āĻĒā§ `ON`**
â **`ON` āĻŽā§āϞāϤ `JOIN` āĻāϰ āĻā§āώā§āϤā§āϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§āĨ¤**
â **`ON` āϝāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšā§?** â āϝāĻāύ āĻĻā§āĻ āĻā§āĻŦāĻŋāϞā§āϰ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻāϞāĻžāĻŽā§āϰ āύāĻžāĻŽ āĻāĻŋāύā§āύ āĻšā§āĨ¤
â **`INNER JOIN`** â āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϝāĻžāĻĻā§āϰ āĻŽāĻŋāϞ āĻĒāĻžāĻā§āĻž āϝāĻžā§, āϤāĻžāĻĻā§āϰ āĻĻā§āĻāĻžā§āĨ¤
â **`LEFT JOIN`** â āϏāĻŦ āĻāϰā§āĻŽā§ āĻĻā§āĻāĻžā§, āĻāĻŽāύāĻāĻŋ āϝāĻžāĻĻā§āϰ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āύā§āĻ, āϤāĻžāĻĻā§āϰāĻāĨ¤
â **`USING` āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§, āϝāĻāύ āĻāϞāĻžāĻŽā§āϰ āύāĻžāĻŽ āĻāĻāĻ āĻšā§āĨ¤**
---
### **đš SQL-āĻ `DUPLICATE TABLE` āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻāĻĒāĻžā§**
đš **āĻā§āύ⧠āĻā§āĻŦāĻŋāϞā§āϰ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻ āĻĄāĻžāĻāĻž āĻā§āϞā§āύ (Copy) āĻāϰāĻžāϰ āĻāύā§āϝ `CREATE TABLE ... AS` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤**
đš **āĻā§āύ⧠āĻā§āĻŦāĻŋāϞā§āϰ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻā§āϞā§āύ āĻāϰāϤ⧠`CREATE TABLE ... LIKE` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤**
---
## **â
ā§§. āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻā§āĻŦāĻŋāϞ āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻāϰāĻž (`CREATE TABLE ... AS`)**
đš **āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻā§āĻŦāĻŋāϞā§āϰ āϏāĻāϞ āĻĄāĻžāĻāĻž āϏāĻš āύāϤā§āύ āĻā§āĻŦāĻŋāϞ āϤā§āϰāĻŋ āĻāϰāϤā§:**
```sql
CREATE TABLE employees_duplicate AS
SELECT * FROM employees;
```
đš **`employees_duplicate` āύāĻžāĻŽā§ āύāϤā§āύ āĻā§āĻŦāĻŋāϞ āϤā§āϰāĻŋ āĻšāĻŦā§, āϝā§āĻāĻžāύ⧠`employees` āĻā§āĻŦāĻŋāϞā§āϰ āϏāĻŦ āĻĄāĻžāĻāĻž āĻĨāĻžāĻāĻŦā§āĨ¤**
#### **đ Output (āύāϤā§āύ `employees_duplicate` āĻā§āĻŦāĻŋāϞ)**
| id | name | department | salary |
|----|------|-----------|--------|
| 1 | Arafat | IT | 50000 |
| 2 | Samiul | HR | 40000 |
| 3 | Shuvo | Marketing | 45000 |
---
## **â
⧍. āĻļā§āϧ⧠āĻā§āĻŦāĻŋāϞā§āϰ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻāϰāĻž (`CREATE TABLE ... LIKE`)**
đš **āĻļā§āϧ⧠āĻā§āĻŦāĻŋāϞā§āϰ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻā§āϞā§āύ āĻāϰāϤ⧠āĻāĻžāĻāϞā§:**
```sql
CREATE TABLE employees_structure LIKE employees;
```
đš **āĻāϤ⧠āĻļā§āϧ⧠āĻāϞāĻžāĻŽā§āϰ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻāĻĒāĻŋ āĻšāĻŦā§, āĻāĻŋāύā§āϤ⧠āĻā§āύ⧠āĻĄāĻžāĻāĻž āĻĨāĻžāĻāĻŦā§ āύāĻžāĨ¤**
#### **đ Output (āύāϤā§āύ `employees_structure` āĻā§āĻŦāĻŋāϞ, āĻāĻŋāύā§āϤ⧠āĻāĻžāϞāĻŋ)**
| id | name | department | salary |
|----|------|-----------|--------|
| | | | |
đš **āĻā§āύ⧠āĻĄāĻžāĻāĻž āύā§āĻ, āĻāĻžāϰāĻŖ `LIKE` āĻļā§āϧ⧠āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻāĻĒāĻŋ āĻāϰā§, āĻĄāĻžāĻāĻž āύāĻžāĨ¤**
---
## **â
ā§Š. āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻŋāĻā§ āĻāϞāĻžāĻŽā§āϰ āĻĄāĻžāĻāĻž āĻāĻĒāĻŋ āĻāϰāĻž**
đš **āϧāϰā§āύ, āĻļā§āϧ⧠`name` āĻāĻŦāĻ `salary` āĻĄāĻžāĻāĻž āϏāĻš āύāϤā§āύ āĻā§āĻŦāĻŋāϞ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻāĻžāĻ:**
```sql
CREATE TABLE high_salary_employees AS
SELECT name, salary FROM employees WHERE salary > 40000;
```
đš **āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϝāĻžāĻĻā§āϰ `salary > 40000` āϤāĻžāϰāĻž `high_salary_employees` āĻā§āĻŦāĻŋāϞ⧠āĻĨāĻžāĻāĻŦā§āĨ¤**
#### **đ Output (āύāϤā§āύ `high_salary_employees` āĻā§āĻŦāĻŋāϞ)**
| name | salary |
|--------|--------|
| Arafat | 50000 |
| Shuvo | 45000 |
---
## **â
ā§Ē. āĻā§āĻŦāĻŋāϞ āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻāϰāĻžāϰ āĻĒāϰ⧠āύāϤā§āύ āĻĄāĻžāĻāĻž āϝā§āĻ āĻāϰāĻž**
```sql
INSERT INTO employees_duplicate (id, name, department, salary)
VALUES (4, 'Alex', 'Finance', 42000);
```
đš **āĻāϤ⧠`employees_duplicate` āĻā§āĻŦāĻŋāϞ⧠āύāϤā§āύ āϰ⧠āϝā§āĻ āĻšāĻŦā§, āĻāĻŋāύā§āϤ⧠`employees` āĻā§āĻŦāĻŋāϞ āĻ
āĻā§āώāϤ āĻĨāĻžāĻāĻŦā§āĨ¤**
---
## đĨ **āϏāĻāĻā§āώā§āĻĒā§ `DUPLICATE TABLE`**
â **`CREATE TABLE new_table AS SELECT * FROM old_table;`** â āĻā§āĻŦāĻŋāϞā§āϰ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻ āĻĄāĻžāĻāĻž āĻāĻĒāĻŋ āĻāϰāĻŦā§āĨ¤
â **`CREATE TABLE new_table LIKE old_table;`** â āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻāĻĒāĻŋ āĻāϰāĻŦā§, āĻā§āύ⧠āĻĄāĻžāĻāĻž āĻĨāĻžāĻāĻŦā§ āύāĻžāĨ¤
â **āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϞāĻžāĻŽā§āϰ āĻĄāĻžāĻāĻž āĻāĻĒāĻŋ āĻāϰāϤ⧠`SELECT column1, column2 FROM table` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§āĨ¤**
---
### **đš `dummy_employee` āύāĻžāĻŽā§ `employees` āĻā§āĻŦāĻŋāϞā§āϰ āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž**
đš **āĻāĻĒāύāĻŋ `employees` āĻā§āĻŦāĻŋāϞā§āϰ āϏāĻŦ āĻĄāĻžāĻāĻž āĻ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻāĻĒāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āύāĻŋāĻā§āϰ āĻĻā§āĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋāϤā§:**
---
### **â
`CREATE TABLE ... AS SELECT * FROM` (āĻĄāĻžāĻāĻž āĻ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻāĻĒāĻŋ āĻāϰāĻŦā§)**
```sql
CREATE TABLE dummy_employee AS
SELECT * FROM employees;
```
đš **āĻāĻāĻŋ `employees` āĻā§āĻŦāĻŋāϞā§āϰ āϏāĻŦ āĻāϞāĻžāĻŽ āĻ āĻĄāĻžāĻāĻž `dummy_employee` āĻā§āĻŦāĻŋāϞ⧠āĻāĻĒāĻŋ āĻāϰāĻŦā§āĨ¤**
---
### **â
`CREATE TABLE ... LIKE` (āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻāĻĒāĻŋ āĻāϰāĻŦā§, āĻĄāĻžāĻāĻž āĻĨāĻžāĻāĻŦā§ āύāĻž)**
```sql
CREATE TABLE dummy_employee LIKE employees;
```
đš **āĻāϤ⧠`dummy_employee` āĻā§āĻŦāĻŋāϞ `employees` āĻāϰ āĻŽāϤā§āĻ āĻšāĻŦā§, āĻāĻŋāύā§āϤ⧠āĻā§āύ⧠āĻĄāĻžāĻāĻž āĻĨāĻžāĻāĻŦā§ āύāĻžāĨ¤**
đš **āĻĄāĻžāĻāĻž āϝā§āĻ āĻāϰāϤ⧠āĻāĻžāĻāϞā§:**
```sql
INSERT INTO dummy_employee SELECT * FROM employees;
```
---
### **â
āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻžāϰ āĻāύā§āϝ `SELECT` āĻāϰ⧠āĻĻā§āĻā§āύ:**
```sql
SELECT * FROM dummy_employee;
```
đš **āĻāϤ⧠`dummy_employee` āĻā§āĻŦāĻŋāϞā§āϰ āϏāĻŦ āĻĄāĻžāĻāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύāĨ¤**
---
### **đš `dummy_employee` āĻā§āĻŦāĻŋāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠`LIMIT` āĻŦā§āĻāĻŋā§ā§ āĻĻā§āĻā§āĻž**
āĻāĻāύ āĻĨā§āĻā§ **`dummy_employee`** āĻā§āĻŦāĻŋāϞ āύāĻŋā§ā§ āĻāĻžāĻ āĻāϰāĻŦā§ āĻāĻŦāĻ `LIMIT` āϏāĻŽā§āĻĒāϰā§āĻā§ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
## **â
`LIMIT` āĻĻāĻŋā§ā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻāĻā§āϝāĻ āϰ⧠āĻĻā§āĻāĻžāύā§**
đš āĻĒā§āϰāĻĨāĻŽ **ā§Ģ āĻāύ āĻāϰā§āĻŽā§** āĻĻā§āĻāĻžāϤ⧠āĻāĻžāĻāϞā§:
```sql
SELECT * FROM dummy_employee
LIMIT 5;
```
đš **đ Output:**
| id | name | department | salary |
|----|------|-----------|--------|
| 1 | Arafat | IT | 50000 |
| 2 | Samiul | HR | 40000 |
| 3 | Shuvo | Marketing | 45000 |
| 4 | Alex | Finance | 42000 |
| 5 | John | IT | 46000 |
---
## **â
`LIMIT` + `ORDER BY` (āϏāĻŦāĻā§ā§ā§ āĻŦā§āĻļāĻŋ āĻŦā§āϤāύā§āϰ ā§Š āĻāύ āĻāϰā§āĻŽā§ āĻĻā§āĻāĻžāύā§)**
```sql
SELECT * FROM dummy_employee
ORDER BY salary DESC
LIMIT 3;
```
đš **đ Output:**
| id | name | department | salary |
|----|------|-----------|--------|
| 1 | Arafat | IT | 50000 |
| 5 | John | IT | 46000 |
| 3 | Shuvo | Marketing | 45000 |
---
## **â
`LIMIT` + `OFFSET` (āĻĻā§āĻŦāĻŋāϤā§ā§ āĻĒā§āώā§āĻ āĻžāϰ āĻĄāĻžāĻāĻž āĻāύāϤā§)**
đš āĻĒā§āϰāĻĨāĻŽ **ā§ĢāĻāĻŋ āϰ⧠āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§ āĻĒāϰā§āϰ ā§ĢāĻāĻŋ āϰ⧠āĻĻā§āĻāϤ⧠āĻāĻžāĻāϞā§:**
```sql
SELECT * FROM dummy_employee
LIMIT 5 OFFSET 5;
```
đš **đ Output:**
| id | name | department | salary |
|----|------|-----------|--------|
| 6 | Michael | HR | 39000 |
| 7 | Sarah | IT | 42000 |
| 8 | David | Finance | 41000 |
| 9 | Emma | HR | 43000 |
| 10 | James | IT | 40000 |
---
## **â
`LIMIT` + `WHERE` (āĻļāϰā§āϤ āĻĻāĻŋā§ā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻāĻā§āϝāĻ āϰ⧠āĻĻā§āĻāĻžāύā§)**
đš **āĻļā§āϧā§āĻŽāĻžāϤā§āϰ `IT` āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āĻĒā§āϰāĻĨāĻŽ ⧍ āĻāύ āĻāϰā§āĻŽā§ āĻĻā§āĻāϤ⧠āĻāĻžāĻāϞā§:**
```sql
SELECT * FROM dummy_employee
WHERE department = 'IT'
LIMIT 2;
```
đš **đ Output:**
| id | name | department | salary |
|----|------|-----------|--------|
| 1 | Arafat | IT | 50000 |
| 5 | John | IT | 46000 |
---
## **â
`LIMIT` + `DELETE` (āĻļā§āϧ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻāĻā§āϝāĻ āϰ⧠āĻŽā§āĻāϤā§)**
đš āϝāĻĻāĻŋ **āĻļā§āϧ⧠āĻĒā§āϰāĻĨāĻŽ ā§Š āĻāύ āĻāϰā§āĻŽā§ āĻĄāĻŋāϞāĻŋāĻ āĻāϰāϤ⧠āĻāĻžāĻ:**
```sql
DELETE FROM dummy_employee
ORDER BY id ASC
LIMIT 3;
```
đš **đ Result:** āĻĒā§āϰāĻĨāĻŽ ā§Š āĻāύ āĻāϰā§āĻŽā§ **āĻŽā§āĻā§ āϝāĻžāĻŦā§āĨ¤**
---
## **đĨ āϏāĻāĻā§āώā§āĻĒā§ `LIMIT`**
â **`LIMIT n`** â āĻĒā§āϰāĻĨāĻŽ `n` āϏāĻāĻā§āϝāĻ āϰ⧠āĻĻā§āĻāĻžā§āĨ¤
â **`LIMIT n OFFSET m`** â āĻĒā§āϰāĻĨāĻŽ `m` āϰ⧠āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§ āĻĒāϰā§āϰ `n` āϰ⧠āĻĻā§āĻāĻžā§āĨ¤
â **`ORDER BY` + `LIMIT`** â āĻŦā§ āĻŦāĻž āĻā§āĻ āĻŽāĻžāύā§āϰ āĻļā§āϰā§āώ `n` āĻāĻž āϰ⧠āĻĻā§āĻāĻžāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤
â **`WHERE` + `LIMIT`** â āĻļāϰā§āϤ āĻ
āύā§āϝāĻžā§ā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻāĻā§āϝāĻ āϰ⧠āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰā§āĨ¤
â **`DELETE` + `LIMIT`** â āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻāĻā§āϝāĻ āϰ⧠āĻĄāĻŋāϞāĻŋāĻ āĻāϰā§āĨ¤
---
### **đš SQL-āĻ `OFFSET` āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
đš **`OFFSET` āϏāĻžāϧāĻžāϰāĻŖāϤ `LIMIT` āĻāϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§, āϝāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻāĻā§āϝāĻ āϰ⧠āϏā§āĻāĻŋāĻĒ (āĻŦāĻžāĻĻ) āĻāϰ⧠āĻĒāϰā§āϰ āĻĄāĻžāĻāĻž āĻĻā§āĻāĻžāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤**
đš āĻāĻāĻŋ **āĻĒā§āĻāĻŋāύā§āĻļāύ (pagination)** āĻāϰāĻžāϰ āĻāύā§āϝ āĻ
āύā§āĻ āĻŦā§āĻļāĻŋ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§āĨ¤
---
## **â
`LIMIT` vs `LIMIT + OFFSET`**
đ **āĻā§āĻŦāϞ `LIMIT` āĻĻāĻŋāϞā§:** āĻĒā§āϰāĻĨāĻŽ `n` āϏāĻāĻā§āϝāĻ āϰ⧠āĻĻā§āĻāĻžāĻŦā§āĨ¤
đ **`LIMIT + OFFSET` āĻĻāĻŋāϞā§:** āĻĒā§āϰāĻĨāĻŽ `OFFSET` āϏāĻāĻā§āϝāĻ āϰ⧠āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§, āĻĒāϰā§āϰ `LIMIT` āϏāĻāĻā§āϝāĻ āϰ⧠āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
## **â
`OFFSET` āϏāĻš `dummy_employee` āĻā§āĻŦāĻŋāϞ⧠āĻāĻžāĻ āĻāϰāĻž**
### **ā§§ī¸âŖ āĻĒā§āϰāĻĨāĻŽ ā§Ģ āĻāύ āĻāϰā§āĻŽā§ āĻĻā§āĻāĻžāύ⧠(`LIMIT` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§)**
```sql
SELECT * FROM dummy_employee
LIMIT 5;
```
đš **Result:**
| id | name | department | salary |
|----|------|-----------|--------|
| 1 | Arafat | IT | 50000 |
| 2 | Samiul | HR | 40000 |
| 3 | Shuvo | Marketing | 45000 |
| 4 | Alex | Finance | 42000 |
| 5 | John | IT | 46000 |
---
### **⧍ī¸âŖ āĻĒā§āϰāĻĨāĻŽ ā§ĢāĻāĻŋ āϰ⧠āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§, āĻĒāϰā§āϰ ā§ĢāĻāĻŋ āϰ⧠āĻĻā§āĻāĻžāύ⧠(`OFFSET` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§)**
```sql
SELECT * FROM dummy_employee
LIMIT 5 OFFSET 5;
```
đš **Result:**
| id | name | department | salary |
|----|--------|-----------|--------|
| 6 | Michael | HR | 39000 |
| 7 | Sarah | IT | 42000 |
| 8 | David | Finance | 41000 |
| 9 | Emma | HR | 43000 |
| 10 | James | IT | 40000 |
đ **āĻāĻāĻžāύ⧠āĻĒā§āϰāĻĨāĻŽ ā§ĢāĻāĻŋ āϰ⧠āĻŦāĻžāĻĻ āĻĻā§āĻā§āĻž āĻšā§ā§āĻā§, āϤāĻžāĻ āϰā§āĻāĻžāϞā§āĻ āĻļā§āϰ⧠āĻšā§ā§āĻā§ `id = 6` āĻĨā§āĻā§āĨ¤**
---
### **ā§Šī¸âŖ ā§§ā§ĻāĻāĻŋ āϰ⧠āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§, āĻĒāϰā§āϰ ā§ĢāĻāĻŋ āϰ⧠āĻĻā§āĻāĻžāύā§**
```sql
SELECT * FROM dummy_employee
LIMIT 5 OFFSET 10;
```
đš **Result:**
| id | name | department | salary |
|----|------|-----------|--------|
| 11 | Robert | Finance | 45000 |
| 12 | Sophia | HR | 39000 |
| 13 | William | IT | 47000 |
| 14 | Olivia | Marketing | 41000 |
| 15 | Daniel | IT | 43000 |
đ **āĻāĻŦāĻžāϰ āĻĒā§āϰāĻĨāĻŽ ā§§ā§ĻāĻāĻŋ āϰ⧠āĻŦāĻžāĻĻ āĻĻā§āĻā§āĻž āĻšā§ā§āĻā§, āϤāĻžāĻ āϰā§āĻāĻžāϞā§āĻ āĻļā§āϰ⧠āĻšā§ā§āĻā§ `id = 11` āĻĨā§āĻā§āĨ¤**
---
## **â
`ORDER BY` + `OFFSET` (āĻŦā§āĻļāĻŋ āĻŦā§āϤāύā§āϰ āĻāϰā§āĻŽā§āĻĻā§āϰ āĻŽāϧā§āϝ⧠ā§Ģ-ā§§ā§Ļ āύāĻŽā§āĻŦāϰ āĻ
āĻŦāϏā§āĻĨāĻžāύ⧠āĻĨāĻžāĻāĻž āĻāϰā§āĻŽā§āϰāĻž)**
```sql
SELECT * FROM dummy_employee
ORDER BY salary DESC
LIMIT 5 OFFSET 5;
```
đš **Result:**
| id | name | department | salary |
|----|------|-----------|--------|
| 6 | Michael | HR | 39000 |
| 7 | Sarah | IT | 42000 |
| 8 | David | Finance | 41000 |
| 9 | Emma | HR | 43000 |
| 10 | James | IT | 40000 |
đ **āĻāĻāĻžāύ⧠āĻŦā§āĻļāĻŋ āĻŦā§āϤāύā§āϰ **āĻļā§āϰā§āώ ā§Ģ āĻāύ āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§, āĻĒāϰā§āϰ ā§Ģ āĻāύāĻā§ āĻĻā§āĻāĻžāύ⧠āĻšā§ā§āĻā§āĨ¤**
---
## **â
`DELETE` + `OFFSET` (āĻĒā§āϰāĻĨāĻŽ ā§Ģ āĻāύ āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§, āĻĒāϰā§āϰ ā§Š āĻāύ āĻāϰā§āĻŽā§ āĻĄāĻŋāϞāĻŋāĻ āĻāϰāĻž)**
```sql
DELETE FROM dummy_employee
ORDER BY id ASC
LIMIT 3 OFFSET 5;
```
đ **āĻāϤ⧠āĻĒā§āϰāĻĨāĻŽ ā§Ģ āĻāύ āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§, āĻĒāϰā§āϰ ā§Š āĻāύ āĻāϰā§āĻŽā§ āĻĄāĻŋāϞāĻŋāĻ āĻšāĻŦā§āĨ¤**
---
## **đĨ āϏāĻāĻā§āώā§āĻĒā§ `OFFSET`**
â **`LIMIT n`** â āĻĒā§āϰāĻĨāĻŽ `n` āϏāĻāĻā§āϝāĻ āϰ⧠āĻĻā§āĻāĻžāĻŦā§āĨ¤
â **`LIMIT n OFFSET m`** â āĻĒā§āϰāĻĨāĻŽ `m` āϏāĻāĻā§āϝāĻ āϰ⧠āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§, āĻĒāϰā§āϰ `n` āϏāĻāĻā§āϝāĻ āϰ⧠āĻĻā§āĻāĻžāĻŦā§āĨ¤
â **`ORDER BY` + `OFFSET`** â āĻā§āύ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϰāĻŽā§ (āϏāϰā§āĻŦā§āĻā§āĻ āĻŦāĻž āϏāϰā§āĻŦāύāĻŋāĻŽā§āύ) āĻāĻŋāĻā§ āϰ⧠āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§ āĻĻā§āĻāĻžāύ⧠āϝāĻžā§āĨ¤
â **`DELETE` + `OFFSET`** â āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻāĻā§āϝāĻ āϰ⧠āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§ āĻāĻŋāĻā§ āϰ⧠āĻŽā§āĻā§ āĻĢā§āϞāĻž āϝāĻžā§āĨ¤
---
### **đš `GROUP BY` āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
**`GROUP BY`** SQL-āĻāϰ āĻāĻāĻāĻŋ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻā§āϞāĻ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĄāĻžāĻāĻžāĻā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽā§āϰ āĻāĻŋāϤā§āϤāĻŋāϤ⧠**āĻā§āϰā§āĻĒ** āĻāϰāĻž āĻšā§ āĻāĻŦāĻ āϏāĻžāϧāĻžāϰāĻŖāϤ **āĻ
ā§āϝāĻžāĻā§āϰāĻŋāĻā§āĻ āĻĢāĻžāĻāĻļāύ** (āϝā§āĻŽāύ `SUM`, `AVG`, `COUNT`, `MIN`, `MAX`) āĻāϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§āĨ¤ āĻāĻāĻŋ āĻāĻĒāύāĻžāĻā§ āĻĄāĻžāĻāĻž āĻā§āϰā§āĻĒ āĻāϰ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻā§āϰā§āĻĒā§āϰ āĻāĻĒāϰ āĻĢāĻžāĻāĻļāύ āĻĒā§āϰā§ā§āĻ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤
---
### **â
`GROUP BY` āĻāϰ āϏā§āĻāĻŽā§āύā§āĻ:**
1. **`GROUP BY` āĻāĻāĻāĻŋ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽ āύāĻŋā§ā§ āĻā§āϰā§āĻĒ āĻāϰā§āĨ¤**
2. **āĻ
ā§āϝāĻžāĻā§āϰāĻŋāĻā§āĻ āĻĢāĻžāĻāĻļāύ** āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻā§āϰā§āĻĒā§āϰ āĻāĻĒāϰ āĻāĻžāĻ āĻāϰā§āĨ¤
3. **`HAVING`** (āϝāĻž `WHERE` āĻāϰ āĻŽāϤā§) āĻā§āϰā§āĻĒā§āϰ āĻāĻĒāϰ āĻļāϰā§āϤ āĻĻā§ā§, āĻāĻŋāύā§āϤ⧠`WHERE` āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϰā§āĻāϰā§āĻĄāĻā§āϞā§āϰ āĻāĻĒāϰ āĻāĻžāĻ āĻāϰā§āĨ¤
---
### **â
āĻāĻĻāĻžāĻšāϰāĻŖ ā§§: `GROUP BY` āĻāĻ āĻāϞāĻžāĻŽ āĻĻāĻŋā§ā§**
āϧāϰāĻž āϝāĻžāĻ **`dummy_employee`** āĻā§āĻŦāĻŋāϞ⧠āĻāϰā§āĻŽā§āĻĻā§āϰ āĻŦā§āϤāύ āĻĻā§āĻāĻžāύā§āϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, **āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻ
āύā§āϝāĻžā§ā§ āĻā§ āĻŦā§āϤāύ** āĻĻā§āĻāϤ⧠āĻāĻžāĻāĨ¤
#### **`GROUP BY` āĻĻāĻŋā§ā§ `department` āĻ
āύā§āϝāĻžā§ā§ āĻā§ āĻŦā§āϤāύ āĻŦā§āϰ āĻāϰāĻž:**
```sql
SELECT department, AVG(salary) AS avg_salary
FROM dummy_employee
GROUP BY department;
```
đš **Result:**
| department | avg_salary |
|------------|------------|
| IT | 47000.00 |
| HR | 42000.00 |
| Marketing | 43000.00 |
| Finance | 42000.00 |
---
### **â
āĻāĻĻāĻžāĻšāϰāĻŖ ⧍: `GROUP BY` āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽ āĻĻāĻŋā§ā§**
āϧāϰāĻž āϝāĻžāĻ, āĻāĻĒāύāĻŋ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻāĻŦāĻ āĻŦā§āϤāύ āĻ
āύā§āϏāĻžāϰ⧠āĻāϰā§āĻŽā§āĻĻā§āϰ **āĻāĻŖāύāĻž** āĻāϰāϤ⧠āĻāĻžāύāĨ¤ āĻāĻĒāύāĻŋ āĻĻā§āĻāĻŋ āĻāϞāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ â `department` āĻāĻŦāĻ `salary`āĨ¤
#### **`GROUP BY` āĻĻāĻŋā§ā§ `department` āĻāĻŦāĻ `salary` āĻ
āύā§āϝāĻžā§ā§ āĻŽā§āĻ āĻāϰā§āĻŽā§ āĻāĻŖāύāĻž:**
```sql
SELECT department, salary, COUNT(*) AS total_employees
FROM dummy_employee
GROUP BY department, salary;
```
đš **Result:**
| department | salary | total_employees |
|------------|--------|-----------------|
| IT | 50000 | 2 |
| HR | 39000 | 1 |
| Marketing | 45000 | 1 |
| Finance | 42000 | 1 |
| IT | 46000 | 1 |
| HR | 43000 | 1 |
| Marketing | 41000 | 1 |
---
### **â
`GROUP BY` + `HAVING`**
**`HAVING`** āĻšāϞ āĻāĻāĻāĻŋ āĻļāϰā§āϤ āϝāĻž **`GROUP BY`** āĻāϰ āĻĒāϰ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§, āĻāĻŦāĻ āĻāĻāĻŋ āĻā§āϰā§āĻĒ āĻāϰāĻž āϰā§āĻāϰā§āĻĄā§āϰ āĻāĻĒāϰ āĻļāϰā§āϤ āĻĒā§āϰā§ā§āĻ āĻāϰā§āĨ¤ āĻāĻāĻŋ **`WHERE`** āĻāϰ āĻŽāϤ⧠āĻāĻžāĻ āĻāϰā§, āϤāĻŦā§ **`WHERE`** āĻā§āĻŦāϞ āϰā§āĻāϰā§āĻĄā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§, āĻāϰ **`HAVING`** āĻā§āϰā§āĻĒā§āϰ āĻāύā§āϝāĨ¤
#### **āĻāĻĻāĻžāĻšāϰāĻŖ:**
āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻžāĻā§āĻā§āύ, āĻāĻŽāύ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻāĻā§āϞ⧠āĻĻā§āĻāĻžāϤ⧠āϝā§āĻāĻžāύ⧠āĻā§ āĻŦā§āϤāύ ā§Ēā§Ģā§Ļā§Ļā§Ļ āĻāĻžāĻāĻžāϰ āĻŦā§āĻļāĻŋ:
```sql
SELECT department, AVG(salary) AS avg_salary
FROM dummy_employee
GROUP BY department
HAVING AVG(salary) > 45000;
```
đš **Result:**
| department | avg_salary |
|------------|------------|
| IT | 47000.00 |
---
### **â
`GROUP BY` + `ORDER BY`**
āĻāĻĒāύāĻŋ **`GROUP BY`** āĻāϰ āϏāĻžāĻĨā§ **`ORDER BY`** āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻā§āϰā§āĻĒā§āϰ āϰā§āĻāĻžāϞā§āĻāĻā§āϞ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻ
āϰā§āĻĄāĻžāϰ⧠āϏāĻžāĻāĻžāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
#### **āĻāĻĻāĻžāĻšāϰāĻŖ:**
**`department` āĻ
āύā§āϝāĻžā§ā§ āĻā§ āĻŦā§āϤāύ āĻĻā§āĻāĻžāύā§āϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, `avg_salary` āĻ
āύā§āϏāĻžāϰ⧠āϏāĻžāĻāĻžāύā§:**
```sql
SELECT department, AVG(salary) AS avg_salary
FROM dummy_employee
GROUP BY department
ORDER BY avg_salary DESC;
```
đš **Result:**
| department | avg_salary |
|------------|------------|
| IT | 47000.00 |
| Marketing | 43000.00 |
| Finance | 42000.00 |
| HR | 42000.00 |
---
### **đĨ āϏāĻāĻā§āώā§āĻĒā§ `GROUP BY`:**
- **`GROUP BY column`** â āĻāĻāĻāĻŋ āĻāϞāĻžāĻŽ (āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϰā§āĻāϰā§āĻĄāĻā§āϞ⧠āĻā§āϰā§āĻĒ āĻāϰā§āĨ¤
- **`HAVING`** â `GROUP BY` āĻāϰ āĻĒāϰ⧠āĻļāϰā§āϤ āĻĻā§ā§ (āĻā§āϰā§āĻĒā§āϰ āĻāĻĒāϰ)āĨ¤
- **`ORDER BY`** â āĻā§āϰā§āĻĒāĻā§āϞāĻŋāĻā§ āϏāĻžāĻāĻžāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§āĨ¤
- **āĻ
ā§āϝāĻžāĻā§āϰāĻŋāĻā§āĻ āĻĢāĻžāĻāĻļāύ** (āϝā§āĻŽāύ `AVG`, `SUM`, `COUNT`, `MIN`, `MAX`) āĻā§āϰā§āĻĒā§āϰ āĻāĻĒāϰ āĻāĻžāĻ āĻāϰā§āĨ¤
---
### **đš SQL-āĻ `MIN`, `MAX`, `COUNT`, `AVG`, `SUM` āĻĢāĻžāĻāĻļāύ**
āĻāĻ āĻĢāĻžāĻāĻļāύāĻā§āϞ⧠SQL āĻ **āĻ
ā§āϝāĻžāĻā§āϰāĻŋāĻā§āĻ āĻĢāĻžāĻāĻļāύ** (Aggregate Functions) āĻšāĻŋāϏā§āĻŦā§ āĻĒāϰāĻŋāĻāĻŋāϤ, āϝā§āĻā§āϞāĻŋ āĻĄāĻžāĻāĻžāϰ āĻāĻĒāϰ āĻāĻŖāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§āĨ¤ āĻāĻā§āϞ⧠āϏāĻžāϧāĻžāϰāĻŖāϤ **`GROUP BY`** āĻāĻŦāĻ **`WHERE`** āĻāϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§, āĻāĻŋāύā§āϤ⧠āĻāĻāĻāĻāĻžāĻŦā§ āĻĄāĻžāĻāĻžāϰ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻāĻā§āϏāĻā§āϰā§āϝāĻžāĻā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻž āϝāĻžā§āĨ¤
---
### **â
ā§§. `MIN` (āϏāϰā§āĻŦāύāĻŋāĻŽā§āύ āĻŽāĻžāύ)**
đš **`MIN` āĻĢāĻžāĻāĻļāύ āĻāĻāĻāĻŋ āĻāϞāĻžāĻŽā§ āϏāϰā§āĻŦāύāĻŋāĻŽā§āύ āĻŽāĻžāύ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰā§āĨ¤**
#### **āĻāĻĻāĻžāĻšāϰāĻŖ:**
**`dummy_employee` āĻā§āĻŦāĻŋāϞā§āϰ `salary` āĻāϞāĻžāĻŽ āĻĨā§āĻā§ āϏāϰā§āĻŦāύāĻŋāĻŽā§āύ āĻŦā§āϤāύ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāĻž:**
```sql
SELECT MIN(salary) AS min_salary FROM dummy_employee;
```
đš **Result:**
| min_salary |
|------------|
| 39000 |
---
### **â
⧍. `MAX` (āϏāϰā§āĻŦā§āĻā§āĻ āĻŽāĻžāύ)**
đš **`MAX` āĻĢāĻžāĻāĻļāύ āĻāĻāĻāĻŋ āĻāϞāĻžāĻŽā§ āϏāϰā§āĻŦā§āĻā§āĻ āĻŽāĻžāύ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰā§āĨ¤**
#### **āĻāĻĻāĻžāĻšāϰāĻŖ:**
**`dummy_employee` āĻā§āĻŦāĻŋāϞā§āϰ `salary` āĻāϞāĻžāĻŽ āĻĨā§āĻā§ āϏāϰā§āĻŦā§āĻā§āĻ āĻŦā§āϤāύ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāĻž:**
```sql
SELECT MAX(salary) AS max_salary FROM dummy_employee;
```
đš **Result:**
| max_salary |
|------------|
| 50000 |
---
### **â
ā§Š. `COUNT` (āĻĄāĻžāĻāĻž āϏāĻāĻā§āϝāĻž āĻā§āύāĻž)**
đš **`COUNT` āĻĢāĻžāĻāĻļāύ āĻā§āύ⧠āĻāϞāĻžāĻŽā§ āĻŽā§āĻ āϰā§āĻāϰā§āĻĄā§āϰ āϏāĻāĻā§āϝāĻž āĻāĻŖāύāĻž āĻāϰā§āĨ¤**
#### **āĻāĻĻāĻžāĻšāϰāĻŖ:**
**`dummy_employee` āĻā§āĻŦāĻŋāϞā§āϰ āĻŽā§āĻ āĻāϰā§āĻŽā§āϰ āϏāĻāĻā§āϝāĻž āĻāĻžāύāĻžāϰ āĻāύā§āϝ:**
```sql
SELECT COUNT(*) AS total_employees FROM dummy_employee;
```
đš **Result:**
| total_employees |
|-----------------|
| 15 |
---
### **â
ā§Ē. `AVG` (āĻā§ āĻŽāĻžāύ)**
đš **`AVG` āĻĢāĻžāĻāĻļāύ āĻā§āύ⧠āĻāϞāĻžāĻŽā§āϰ āĻā§ āĻŽāĻžāύ āĻŦā§āϰ āĻāϰā§āĨ¤**
#### **āĻāĻĻāĻžāĻšāϰāĻŖ:**
**`dummy_employee` āĻā§āĻŦāĻŋāϞā§āϰ `salary` āĻāϞāĻžāĻŽā§āϰ āĻā§ āĻŦā§āϤāύ āĻŦā§āϰ āĻāϰāĻž:**
```sql
SELECT AVG(salary) AS avg_salary FROM dummy_employee;
```
đš **Result:**
| avg_salary |
|------------|
| 43500.00 |
---
### **â
ā§Ģ. `SUM` (āĻŽā§āĻ āĻŽāĻžāύ)**
đš **`SUM` āĻĢāĻžāĻāĻļāύ āĻā§āύ⧠āĻāϞāĻžāĻŽā§ āϏāĻŦ āĻŽāĻžāύā§āϰ āϝā§āĻāĻĢāϞ āĻŦā§āϰ āĻāϰā§āĨ¤**
#### **āĻāĻĻāĻžāĻšāϰāĻŖ:**
**`dummy_employee` āĻā§āĻŦāĻŋāϞā§āϰ `salary` āĻāϞāĻžāĻŽā§āϰ āĻŽā§āĻ āĻŦā§āϤāύ āĻŦā§āϰ āĻāϰāĻž:**
```sql
SELECT SUM(salary) AS total_salary FROM dummy_employee;
```
đš **Result:**
| total_salary |
|--------------|
| 652500 |
---
### **đ āĻāĻāϤā§āϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ**
**āϝāĻĻāĻŋ āϏāĻŦ āĻĢāĻžāĻāĻļāύ āĻāĻāϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāĻžāύ:**
```sql
SELECT
MIN(salary) AS min_salary,
MAX(salary) AS max_salary,
COUNT(*) AS total_employees,
AVG(salary) AS avg_salary,
SUM(salary) AS total_salary
FROM dummy_employee;
```
đš **Result:**
| min_salary | max_salary | total_employees | avg_salary | total_salary |
|------------|------------|-----------------|------------|--------------|
| 39000 | 50000 | 15 | 43500.00 | 652500 |
---
### **đĨ āϏāĻāĻā§āώā§āĻĒā§ āĻĢāĻžāĻāĻļāύāĻā§āϞā§:**
- **`MIN(column)`** â āĻāϞāĻžāĻŽā§āϰ āϏāϰā§āĻŦāύāĻŋāĻŽā§āύ āĻŽāĻžāύāĨ¤
- **`MAX(column)`** â āĻāϞāĻžāĻŽā§āϰ āϏāϰā§āĻŦā§āĻā§āĻ āĻŽāĻžāύāĨ¤
- **`COUNT(*)`** â āĻŽā§āĻ āϰā§āĻāϰā§āĻĄ āϏāĻāĻā§āϝāĻžāĨ¤
- **`AVG(column)`** â āĻāϞāĻžāĻŽā§āϰ āĻā§ āĻŽāĻžāύāĨ¤
- **`SUM(column)`** â āĻāϞāĻžāĻŽā§āϰ āϏāĻŦ āĻŽāĻžāύā§āϰ āϝā§āĻāĻĢāϞāĨ¤
---
### **đš `DISTINCT` āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§?**
SQL-āĻ **`DISTINCT`** āĻāĻāĻāĻŋ āĻāĻŋāĻā§āĻžāϰā§āĻĄ āϝāĻž **āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ (āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤ) āĻŽāĻžāύ** āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§, āĻāĻāĻ āĻŦāĻž āĻ
āύāύā§āϝ (unique) āĻŽāĻžāύāĻā§āϞ⧠āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻŽā§āϞāϤ āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻĄā§āĻāĻž āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§ āĻāĻŦāĻ āĻāĻĒāύāĻŋ āϝā§āĻā§āύ⧠āĻāϞāĻžāĻŽā§ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽā§ **āĻĄāĻŋāϏā§āĻāĻŋāĻāĻā§āĻ** āĻŽāĻžāύ āĻĻā§āĻāϤ⧠āĻāĻžāĻāϞ⧠āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
---
### **â
`DISTINCT` āĻŦā§āϝāĻŦāĻšāĻžāϰ:**
**`DISTINCT`** āĻāĻŋāĻā§āĻžāϰā§āĻĄāĻāĻŋ āĻāĻĒāύāĻŋ **`SELECT`** āĻā§āĻāϰāĻŋ āĻĻāĻŋā§ā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āĻāĻŦāĻ āĻāĻāĻŋ āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻŽāĻžāύ āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§ āĻĢāϞāĻžāĻĢāϞ āĻĻā§āĻāĻžā§āĨ¤
---
### **â
āĻāĻĻāĻžāĻšāϰāĻŖ ā§§: āĻāĻ āĻāϞāĻžāĻŽā§ āĻĄāĻŋāϏā§āĻāĻŋāĻāĻā§āĻ āĻŽāĻžāύ**
āϧāϰāĻž āϝāĻžāĻ, āĻāĻĒāύāĻŋ **`dummy_employee`** āĻā§āĻŦāĻŋāϞā§āϰ `department` āĻāϞāĻžāĻŽ āĻĨā§āĻā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻ
āύāύā§āϝ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻāĻā§āϞ⧠āĻĻā§āĻāϤ⧠āĻāĻžāύāĨ¤
```sql
SELECT DISTINCT department FROM dummy_employee;
```
đš **Result:**
| department |
|------------|
| IT |
| HR |
| Marketing |
| Finance |
āĻāĻāĻžāύ⧠**`DISTINCT`** āĻāĻŋāĻā§āĻžāϰā§āĻĄāĻāĻŋ **āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ** āĻāϞāĻžāĻŽā§ āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻŽāĻžāύ āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§āĻā§ āĻāĻŦāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻ
āύāύā§āϝ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āύāĻžāĻŽāĻā§āϞ⧠āĻĻā§āĻāĻŋā§ā§āĻā§āĨ¤
---
### **â
āĻāĻĻāĻžāĻšāϰāĻŖ ⧍: āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽā§ āĻĄāĻŋāϏā§āĻāĻŋāĻāĻā§āĻ āĻŽāĻžāύ**
āĻāĻĒāύāĻŋ **`department`** āĻāĻŦāĻ **`salary`** āĻāϞāĻžāĻŽ āĻĻā§āĻā§āϤ⧠**āĻĄāĻŋāϏā§āĻāĻŋāĻāĻā§āĻ** āĻŽāĻžāύ āĻĻā§āĻāϤ⧠āĻāĻžāĻāϞā§:
```sql
SELECT DISTINCT department, salary FROM dummy_employee;
```
đš **Result:**
| department | salary |
|------------|--------|
| IT | 50000 |
| HR | 39000 |
| Marketing | 45000 |
| Finance | 42000 |
| IT | 46000 |
| HR | 43000 |
āĻāĻāĻžāύā§, **`DISTINCT`** āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻāĻŦāĻ āĻŦā§āϤāύā§āϰ āĻāĻāύāĻŋāĻ (āĻ
āύāύā§āϝ) āĻāĻŽā§āĻŦāĻŋāύā§āĻļāύāĻā§āϞ⧠āĻĻā§āĻāĻŋā§ā§āĻā§, āĻ
āϰā§āĻĨāĻžā§ **āĻāĻāĻ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻāĻŦāĻ āĻŦā§āϤāύ āĻāĻāĻžāϧāĻŋāĻ āĻŦāĻžāϰ āύāĻž āĻĻā§āĻāĻŋā§ā§, āĻāĻāĻŦāĻžāϰ āĻĻā§āĻāĻŋā§ā§āĻā§āĨ¤**
---
### **â
`DISTINCT` + `COUNT`**
āϧāϰāĻž āϝāĻžāĻ, āĻāĻĒāύāĻŋ **āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āϏāĻāĻā§āϝāĻž** āĻāĻžāύāĻžāϤ⧠āĻāĻžāύ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āĻāύā§āϝ āĻāĻāĻžāϧāĻŋāĻ āĻāϰā§āĻŽā§ āĻĨāĻžāĻāϞā§āĻ, āĻļā§āϧā§āĻŽāĻžāϤā§āϰ **āĻ
āύāύā§āϝ** āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻā§āϰ āϏāĻāĻā§āϝāĻž āĻāĻžāĻāĻā§āύāĨ¤
```sql
SELECT COUNT(DISTINCT department) AS unique_departments
FROM dummy_employee;
```
đš **Result:**
| unique_departments |
|--------------------|
| 4 |
āĻāĻāĻžāύ⧠**`COUNT(DISTINCT department)`** **āĻĄāĻŋāϏā§āĻāĻŋāĻāĻā§āĻ āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ** āĻā§āύ⧠āϏāĻāĻā§āϝāĻž āĻĻā§āĻāĻŋā§ā§āĻā§āĨ¤
---
### **đ `DISTINCT` āĻāϰ āĻāĻŋāĻā§ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻĒā§ā§āύā§āĻ:**
- **āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽ:** āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽā§ **`DISTINCT`** āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āϤāĻžāĻšāϞ⧠āĻā§āĻŦāϞāĻŽāĻžāϤā§āϰ āĻ āĻāϞāĻžāĻŽā§āϰ **āĻāĻŽā§āĻŦāĻŋāύā§āĻļāύ** āĻšāĻŋāϏā§āĻŦā§āĻ āĻ
āύāύā§āϝ (unique) āĻŽāĻžāύ āĻĻā§āĻāĻžāĻŦā§āĨ¤
- **`DISTINCT`** āĻā§āĻŦāϞ **`SELECT`** āĻā§āĻāϰāĻŋāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§, āĻĄā§āĻāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻŦāĻž āĻŽā§āĻā§ āĻĢā§āϞāĻžāϰ āĻā§āώā§āϤā§āϰ⧠āύā§āĨ¤
- **āĻā§āύ⧠āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āύāĻž āĻĨāĻžāĻāϞā§:** āϝāĻāύ āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻŽāĻžāύ āĻĨāĻžāĻā§ āύāĻž, āϤāĻāύ `DISTINCT` āĻāĻžāĻ āĻāϰāĻŦā§ āύāĻž āĻāĻŦāĻ **āϏāĻžāϧāĻžāϰāĻŖ `SELECT`** āĻā§āĻāϰāĻŋāϰ āĻŽāϤ āϰā§āĻāĻžāϞā§āĻ āĻĻā§āĻāĻžāĻŦā§āĨ¤
---
### **đĨ āϏāĻāĻā§āώā§āĻĒā§:**
- **`DISTINCT`** â āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻŽāĻžāύ āĻŦāĻžāĻĻ āĻĻāĻŋā§ā§ āĻ
āύāύā§āϝ (unique) āĻŽāĻžāύ āĻĻā§āĻāĻžā§āĨ¤
- āĻāĻāĻ āĻāϞāĻžāĻŽ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻāϞāĻžāĻŽā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§āĨ¤
- **`DISTINCT`** āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞā§, āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻŽāĻžāύ āĻŦāĻžāĻĻ āĻĻā§āĻā§āĻž āĻšā§ āĻāĻŦāĻ āĻĢāϞāĻžāĻĢāϞ āĻšāĻŋāϏā§āĻŦā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻ āĻŦāĻž āĻ
āύāύā§āϝ āĻŽāĻžāύ āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻšā§āĨ¤
---