مبانی کوئری

اصول نوشتن، اجرا و مدیریت کوئری‌های SQL با استفاده از ویرایشگر قدرتمند کوئری HarborDB.

Guides
آخرین به‌روزرسانی: ۲۷ بهمن ۱۴۰۴

به دنیای کوئری‌های SQL در HarborDB خوش آمدید! این راهنما اصول نوشتن، اجرا و مدیریت کوئری‌های SQL را با استفاده از ویرایشگر قدرتمند کوئری HarborDB به شما آموزش می‌دهد.

معرفی SQL در HarborDB

ویرایشگر کوئری HarborDB طراحی شده است تا نوشتن و اجرای کوئری‌های SQL را بصری و کارآمد کند. چه در حال بازیابی داده‌ها، به‌روزرسانی رکوردها یا ایجاد اشیاء پایگاه داده باشید، HarborDB یک جریان کاری ساده با ویژگی‌هایی مانند رنگ‌آمیزی نحوی، تکمیل خودکار و نتایج لحظه‌ای فراهم می‌کند.

ویژگی‌های کلیدی ویرایشگر کوئری

  • رنگ‌آمیزی نحوی: کلمات کلیدی SQL، توابع و مقادیر ثابت با رنگ‌های متفاوت برای خوانایی بیشتر
  • تکمیل خودکار: نام جداول، نام ستون‌ها و کلمات کلیدی SQL در حین تایپ پیشنهاد می‌شوند
  • تب‌های متعدد: همزمان با چندین کوئری در تب‌های جداگانه کار کنید
  • پنل نتایج: نتایج کوئری را بلافاصله زیر ویرایشگر مشاهده کنید
  • گزینه‌های صادرسازی: نتایج را با یک کلیک به CSV یا JSON صادر کنید
  • تاریخچه کوئری: به کوئری‌های اخیراً اجرا شده دسترسی داشته باشید
  • نشانک‌ها: کوئری‌های پرکاربرد را برای دسترسی سریع ذخیره کنید

نوشتن اولین کوئری

دستور SELECT پایه

اساسی‌ترین کوئری SQL، داده‌ها را از یک جدول بازیابی می‌کند:

SELECT * FROM users;

این کوئری:

  • SELECT *: تمام ستون‌های جدول را برمی‌گرداند
  • FROM users: جدولی که باید کوئری شود را مشخص می‌کند
  • ;: دستور را خاتمه می‌دهد (در HarborDB اختیاری است)

انتخاب ستون‌های خاص

برای بازیابی فقط ستون‌های خاص:

SELECT first_name, last_name, email FROM users;

محدود کردن نتایج

هنگام کار با جداول بزرگ، محدود کردن نتایج یک شیوه خوب است:

SELECT * FROM orders LIMIT 10;

رابط ویرایشگر کوئری

اجزای اصلی

  1. ناحیه ویرایشگر: کوئری‌های SQL خود را اینجا بنویسید
  2. نوار ابزار: کنترل‌های اجرا، لغو، قالب‌بندی و صادرسازی
  3. پنل نتایج: نتایج کوئری و اطلاعات اجرا را نمایش می‌دهد
  4. نوار وضعیت: اطلاعات اتصال، تعداد ردیف‌ها و زمان اجرا را نشان می‌دهد

میانبرهای صفحه‌کلید

| میانبر | عملکرد | | ------------- | ------------------------ | | ⌘ + R | اجرای کوئری | | ⌘ + . | لغو کوئری | | ⌘ + T | تب کوئری جدید | | ⌘ + W | بستن تب فعلی | | ⌘ + S | ذخیره کوئری | | ⌘ + F | جستجو در کوئری | | ⌘ + / | تغییر وضعیت کامنت | | Tab | تورفتگی انتخاب شده | | Shift + Tab | حذف تورفتگی انتخاب شده |

اجرای کوئری‌ها

اجرای گام به گام

  1. کوئری خود را بنویسید در ویرایشگر
  2. روی دکمه Run کلیک کنید (▶) یا ⌘ + R فشار دهید
  3. نتایج را مشاهده کنید در پنل نتایج
  4. اطلاعات اجرا را بررسی کنید در نوار وضعیت

اجرای جزئی کوئری

می‌توانید فقط بخشی از کوئری را اجرا کنید:

  1. متنی که می‌خواهید اجرا کنید را انتخاب کنید
  2. کلیک راست کنید و "Execute Selection" را انتخاب کنید
  3. یا از میانبر صفحه‌کلید ⌘ + Shift + R استفاده کنید

نتایج اجرا

پس از اجرای یک کوئری، خواهید دید:

  • جدول نتایج: داده‌ها در یک جدول قابل مرتب‌سازی و فیلتر نمایش داده می‌شوند
  • تعداد ردیف‌ها: تعداد کل ردیف‌های برگشتی
  • زمان اجرا: مدت زمانی که کوئری برای اجرا نیاز داشت
  • پیام‌ها: هر پیامی از PostgreSQL (به ویژه برای کوئری‌های DML)

فیلتر کردن داده‌ها با WHERE

عبارت WHERE پایه

SELECT * FROM products WHERE price > 100;

شرایط چندگانه

SELECT * FROM orders
WHERE status = 'shipped'
  AND order_date >= '2024-01-01';

تطابق الگو با LIKE

SELECT * FROM customers
WHERE email LIKE '%@gmail.com';

SELECT * FROM products
WHERE name LIKE 'Pro%';

مقادیر NULL

-- یافتن ردیف‌هایی که email آنها NULL است
SELECT * FROM users WHERE email IS NULL;

-- یافتن ردیف‌هایی که email آنها NULL نیست
SELECT * FROM users WHERE email IS NOT NULL;

مرتب‌سازی نتایج با ORDER BY

ترتیب صعودی (پیش‌فرض)

SELECT * FROM products ORDER BY price;

ترتیب نزولی

SELECT * FROM products ORDER BY price DESC;

ستون‌های مرتب‌سازی چندگانه

SELECT * FROM employees
ORDER BY department, last_name, first_name;

کار با نتایج

مشاهده نتایج

  • اسکرول: با ماوس یا صفحه‌کلید در نتایج حرکت کنید
  • مرتب‌سازی: روی سرستون‌ها کلیک کنید برای مرتب‌سازی صعودی/نزولی
  • فیلتر: روی سرستون‌ها کلیک راست کنید برای فیلتر کردن مقادیر
  • تغییر اندازه: حاشیه ستون‌ها را بکشید برای تنظیم عرض
  • مرتب‌سازی مجدد: سرستون‌ها را بکشید برای تنظیم ترتیب

عملیات سلولی

  • کپی سلول: دوبار روی سلول کلیک کنید یا ⌘ + C فشار دهید
  • ویرایش سلول: دوبار کلیک کنید و ویرایش کنید (فقط برای تغییرات محلی)
  • مشاهده محتوای کامل: موس را روی سلول‌های کوتاه شده نگه دارید تا tooltip را ببینید

صادرسازی نتایج

  1. روی دکمه Export کلیک کنید در نوار ابزار
  2. فرمت را انتخاب کنید: CSV یا JSON
  3. مقصد را انتخاب کنید: ذخیره در فایل یا کپی در کلیپ‌بورد
  4. گزینه‌ها را پیکربندی کنید: جداکننده‌ها، رمزگذاری، سرستون‌ها

ذخیره و سازماندهی کوئری‌ها

ذخیره کوئری‌ها

  1. روی Save کلیک کنید (⌘ + S) یا آیکون ذخیره
  2. مکان را انتخاب کنید: فایل محلی یا کتابخانه HarborDB
  3. متادیتا اضافه کنید: نام، توضیحات، برچسب‌ها

کتابخانه کوئری

کوئری‌های ذخیره شده را در پوشه‌ها سازماندهی کنید:

  • موارد مورد علاقه: کوئری‌های پرکاربرد را با ستاره علامت‌گذاری کنید
  • اخیر: به طور خودکار کوئری‌های اخیراً استفاده شده را ردیابی کنید
  • برچسب‌ها: کوئری‌ها را با برچسب‌های سفارشی دسته‌بندی کنید

الگوهای کوئری

الگوهای قابل استفاده مجدد برای کوئری‌های رایج ایجاد کنید:

-- الگو: یافتن کاربران غیرفعال
SELECT user_id, email, last_login
FROM users
WHERE last_login < CURRENT_DATE - INTERVAL '90 days'
  AND active = true;

الگوهای رایج کوئری

شمارش رکوردها

SELECT COUNT(*) FROM users;
SELECT COUNT(DISTINCT country) FROM customers;

جمع‌آوری داده‌ها

SELECT
  category,
  COUNT(*) as product_count,
  AVG(price) as avg_price,
  MIN(price) as min_price,
  MAX(price) as max_price
FROM products
GROUP BY category;

کوئری‌های تاریخ/زمان

-- سفارش‌های امروز
SELECT * FROM orders WHERE order_date = CURRENT_DATE;

-- 7 روز گذشته
SELECT * FROM logs
WHERE log_date >= CURRENT_DATE - INTERVAL '7 days';

-- بر اساس ماه
SELECT
  EXTRACT(MONTH FROM order_date) as month,
  COUNT(*) as order_count
FROM orders
GROUP BY EXTRACT(MONTH FROM order_date)
ORDER BY month;

اتصال جداول

SELECT
  o.order_id,
  o.order_date,
  c.first_name,
  c.last_name,
  c.email
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
WHERE o.status = 'completed';

بهترین شیوه‌ها

1. با SELECT * شروع کنید

هنگام کاوش یک جدول جدید، از SELECT * برای دیدن تمام ستون‌ها استفاده کنید، سپس به ستون‌های خاص اصلاح کنید.

2. از LIMIT استفاده کنید

همیشه هنگام کوئری جداول ناشناخته از LIMIT استفاده کنید تا از نتایج سنگین جلوگیری کنید.

3. کوئری‌های خود را قالب‌بندی کنید

از قالب‌بندی یکنواخت برای خوانایی استفاده کنید:

  • کلمات کلیدی با حروف بزرگ
  • تورفتگی برای کوئری‌های پیچیده
  • شکست خط برای عبارات طولانی

4. کد خود را کامنت کنید

برای کوئری‌های پیچیده کامنت اضافه کنید:

-- محاسبه درآمد ماهانه بر اساس دسته محصول
-- به استثنای سفارش‌های بازپرداختی و حساب‌های تست
SELECT
  DATE_TRUNC('month', order_date) as month,
  category,
  SUM(amount) as total_revenue
FROM orders
WHERE status != 'refunded'
  AND customer_id NOT IN (SELECT customer_id FROM test_accounts)
GROUP BY DATE_TRUNC('month', order_date), category
ORDER BY month DESC, total_revenue DESC;

5. با WHERE 1=0 تست کنید

برای دیدن ساختار ستون بدون دریافت داده:

SELECT * FROM large_table WHERE 1=0;

رفع مشکلات رایج

"Relation does not exist"

  • املای نام جدول و حساسیت به حروف بزرگ و کوچک را بررسی کنید
  • تأیید کنید که به پایگاه داده صحیح متصل هستید
  • اطمینان حاصل کنید که دسترسی‌های مناسب را دارید

"Column does not exist"

  • نام ستون‌ها در عبارت SELECT را تأیید کنید
  • اشتباهات تایپی را بررسی کنید
  • ابتدا از SELECT * برای دیدن تمام ستون‌های موجود استفاده کنید

کوئری‌های کند

  • برای تست عملکرد LIMIT اضافه کنید
  • فهرست‌های (index) گمشده را بررسی کنید
  • از EXPLAIN برای تحلیل برنامه کوئری استفاده کنید
  • عوامل عملکرد سمت سرور را در نظر بگیرید

خطاهای اتصال

  • تأیید کنید که اتصال فعال است
  • اتصال شبکه را بررسی کنید
  • تأیید کنید که سرور PostgreSQL در حال اجرا است

مراحل بعدی

اکنون که مبانی کوئری را درک کرده‌اید:

  1. تمرین کنید با جداول پایگاه داده خودتان
  2. کاوش کنید راهنمای تکنیک‌های پیشرفته کوئری
  3. یاد بگیرید درباره صادرسازی داده‌ها
  4. امتحان کنید تکنیک‌های بهینه‌سازی عملکرد

مرجع سریع

عبارات اساسی SQL

  • SELECT - انتخاب ستون‌های برگشتی
  • FROM - مشخص کردن جدول کوئری
  • WHERE - فیلتر کردن ردیف‌ها
  • ORDER BY - مرتب‌سازی نتایج
  • LIMIT - محدود کردن تعداد ردیف‌ها
  • GROUP BY - جمع‌آوری داده‌ها
  • HAVING - فیلتر کردن داده‌های جمع‌آوری شده

توابع رایج

  • COUNT() - شمارش ردیف‌ها
  • SUM() - جمع مقادیر
  • AVG() - میانگین مقادیر
  • MIN()/MAX() - یافتن حداقل/حداکثر
  • COALESCE() - مدیریت مقادیر NULL
  • CONCAT() - ترکیب رشته‌ها
  • EXTRACT() - دریافت اجزای تاریخ

آیا این مفید بود؟

با ارائه بازخورد به ما کمک کنید این مستندات را بهبود بخشیم.