SQL

دستور SELECT در SQL 

دستور SELECT در SQL برای بازیابی (خواندن) داده‌های خاص از یک یا چند جدول استفاده می‌شود. این یکی از اصلی‌ترین دستورات در SQL است که برای استخراج اطلاعات مورد نیاز از پایگاه داده به کار می‌رود.

اجزای دستور SELECT:

  • SELECT: کلمه کلیدی که نشان می‌دهد می‌خواهید داده‌ها را بازیابی کنید.
  • column_name1, column_name2, …: (اختیاری) لیستی از ستون‌هایی که می‌خواهید بازیابی شوند. علامت * به معنای بازیابی تمام ستون‌ها است.
  • FROM table_name: نام جدولی که می‌خواهید داده‌ها را از آن بازیابی کنید.
  • WHERE (condition): (اختیاری) شرطی را تعیین می‌کند که مشخص می‌کند کدام رکوردها باید بازیابی شوند.
  • ORDER BY column_name ASC/DESC: (اختیاری) ترتیب خروجی را بر اساس یک یا چند ستون مرتب می‌کند. ASC برای مرتب‌سازی صعودی و DESC برای نزولی استفاده می‌شود.
  • GROUP BY column_name: (اختیاری) رکوردها را بر اساس یک یا چند ستون گروه بندی می‌کند.
  • HAVING (condition): (اختیاری) شرطی را برای گروه‌های ایجاد شده با GROUP BY اعمال می‌کند.

مثال:

فرض کنید جدول زیر را برای ذخیره اطلاعات دانشجویان داریم:

SQL
CREATE TABLE students (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(۲۵۵) NOT NULL,
  email VARCHAR(۲۵۵) NOT NULL,
  gpa DECIMAL(۳,۲)
);

برای بازیابی نام و ایمیل تمام دانشجویان دستور زیر را اجرا می‌کنیم:

SQL
SELECT name, email
FROM students;

نکات:

  • می‌توانید از * برای بازیابی تمام ستون‌های جدول استفاده کنید.
  • می‌توانید از شرط WHERE برای بازیابی رکوردهای خاص بر اساس معیارهای مشخص استفاده کنید.
  • می‌توانید از دستور ORDER BY برای مرتب‌سازی خروجی بر اساس یک یا چند ستون استفاده کنید.
  • می‌توانید از دستور GROUP BY برای گروه بندی رکوردها بر اساس یک یا چند ستون و سپس اعمال شرط بر روی گروه‌ها با HAVING استفاده کنید.

مثال‌  ۲:

  • بازیابی اطلاعات دانشجویانی که gpa آن‌ها بالاتر از ۳.۵ است:
SQL
SELECT *
FROM students
WHERE gpa > ۳.۵;
  • بازیابی نام و ایمیل دانشجویان به ترتیب حروف الفبا:
SQL
SELECT name, email
FROM students
ORDER BY name ASC;
  • محاسبه میانگین gpa دانشجویان بر اساس رشته تحصیلی:
SQL
SELECT department, AVG(gpa) AS average_gpa
FROM students
GROUP BY department;

مثال ۳

فرض کنید جدول زیر را برای ذخیره اطلاعات کارمندان داریم:

SQL
CREATE TABLE employees (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(۲۵۵) NOT NULL,
  email VARCHAR(۲۵۵) NOT NULL,
  department VARCHAR(۵۰) NOT NULL,
  salary DECIMAL(۱۰,۲) NOT NULL,
  hire_date DATE NOT NULL
);

مثال ۱: بازیابی نام و ایمیل تمام کارمندان

SQL
SELECT name, email
FROM employees;

مثال ۲: بازیابی اطلاعات کارمندان با حقوق بیشتر از ۱۰ میلیون تومان

SQL
SELECT *
FROM employees
WHERE salary > ۱۰۰۰۰۰۰۰;

مثال ۳: بازیابی نام و حقوق کارمندان به ترتیب حقوق

SQL
SELECT name, salary
FROM employees
ORDER BY salary DESC;

مثال ۴: محاسبه میانگین حقوق کارمندان در هر بخش

SQL
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department;

مثال ۵: بازیابی اطلاعات کارمندانی که در سال ۱۴۰۲ استخدام شده‌اند

SQL
SELECT *
FROM employees
WHERE hire_date BETWEEN '۲۰۲۳-۰۳-۲۱' AND '۲۰۲۴-۰۳-۲۰';

مثال ۶: بازیابی اطلاعات ۵ کارمند با حقوق بالا

SQL
SELECT *
FROM employees
ORDER BY salary DESC
LIMIT ۵;

مثال ۷: استفاده از توابع در SELECT

SQL
SELECT name, CONCAT(name, "@example.com") AS email
FROM employees;

مثال ۸: استفاده از subquery در SELECT

SQL
SELECT name, department
FROM employees
WHERE department IN (
  SELECT department
  FROM departments
  WHERE location = "تهران"
);

نکات:

  • در مثال‌های بالا، فقط تعدادی از کاربردهای مختلف دستور SELECT نشان داده شده است.
  • می‌توانید از ترکیب دستورات مختلف SQL برای بازیابی اطلاعات پیچیده‌تر از پایگاه داده استفاده کنید.
۵/۵ ( ۱ امتیاز )
نمایش بیشتر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا