SQL۴ درس رایگان

آموزش SQL و پایگاه داده از صفر، با تمرین در مرورگر

در این دوره کوئری‌نویسی SQL را روی پایگاه دادهٔ یک فروشگاه آنلاین یاد می‌گیرید. هر کوئری را در مرورگر روی PostgreSQL اجرا می‌کنید و نتیجه را همان لحظه می‌بینید.

  • بدون نصب پایگاه داده
  • از اولین SELECT تا توابع پنجره‌ای و تراکنش
  • درس‌های اول رایگان است
ببینید چه می‌سازید
درس
۸۸
فصل
۱۹
ساعت آموزش
۲۰
پایان دوره
گواهی
نمونه: سه کتاب پرفروش
best_sellers.sqlسه کتاب پرفروش
-- سه کتاب پرفروش و درآمد هر کدام
SELECT b.title,
       SUM(oi.qty) AS sold,
       SUM(oi.qty * b.price) AS revenue
FROM order_items oi
JOIN books b ON b.id = oi.book_id
GROUP BY b.id, b.title
ORDER BY sold DESC, revenue DESC
LIMIT 3;
نتیجهٔ کوئری (۳ ردیف)
نتیجهٔ «سه کتاب پرفروش»
titlesoldrevenue
شازده کوچولو6720000
کد تمیز52050000
سمفونی مردگان3720000

اقلام سفارش‌ها به جدول کتاب‌ها وصل می‌شوند، فروش هر کتاب جمع زده می‌شود و سه کتاب پرفروش با درآمدشان می‌آیند. نمونه‌های دیگر

آنچه یاد می‌گیرید

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

هر فصل چند دستور تازه را با تمرین روی جدول‌های مشتری، محصول، سفارش و کارمند یاد می‌دهد.

  1. فصل ۱

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

    جدول، ردیف، کلید اصلی و کلید خارجی را می‌شناسید و اولین SELECT را با WHERE می‌نویسید.

  2. فصل ۲

    فیلتر و مرتب‌سازی

    شرط‌ها را با AND و OR ترکیب می‌کنید و نتیجه را با LIKE، IN، BETWEEN، ORDER BY و LIMIT محدود و مرتب می‌کنید.

  3. فصل ۳

    توابع و CASE

    مقدارهای تکراری را با DISTINCT کنار می‌گذارید، با متن و تاریخ کار می‌کنید و با CASE داده را دسته‌بندی می‌کنید.

  4. فصل ۴

    گزارش با GROUP BY

    تعداد، جمع و میانگین هر گروه را حساب می‌کنید و فرق WHERE و HAVING را یاد می‌گیرید.

  5. فصل ۵ و ۶

    اتصال جدول‌ها

    جدول‌ها را با JOIN به هم وصل می‌کنید، دام‌های رایج LEFT JOIN را می‌شناسید و نتیجهٔ دو کوئری را با UNION، INTERSECT و EXCEPT ترکیب می‌کنید.

  6. فصل ۷ و ۸

    زیرکوئری، CTE و کوئری بازگشتی

    کوئری چندمرحله‌ای را با زیرکوئری و WITH خوانا می‌نویسید و یک چارت سازمانی را با کوئری بازگشتی پیمایش می‌کنید.

  7. فصل ۹

    توابع پنجره‌ای

    در هر گروه رتبه می‌دهید، جمع تجمعی درآمد را می‌گیرید و فروش هر ماه را با ماه قبل مقایسه می‌کنید.

  8. فصل ۱۰ و ۱۱ و ۱۲

    NULL، ساختن جدول و تغییر داده

    رفتار NULL را در شرط و گروه‌بندی می‌شناسید، جدول و قید می‌سازید و داده را درج، ویرایش و حذف می‌کنید.

  9. فصل ۱۳ و ۱۴ و ۱۵

    ویو، ایندکس و سرعت کوئری

    ویو می‌سازید، می‌بینید ایندکس کجا به کار می‌آید و پلن اجرای کوئری را با EXPLAIN می‌خوانید.

  10. فصل ۱۶ و ۱۷ و ۱۸ و ۱۹

    تراکنش، طراحی و امنیت

    با تراکنش داده را سالم نگه می‌دارید، جدول‌ها را نرمال‌سازی می‌کنید، گزارش Pivot و خروجی JSON می‌سازید و جلوی تزریق SQL را می‌گیرید.

نمونه‌ها

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

این شش کوئری را برای همین صفحه روی دادهٔ یک کتاب‌فروشی آنلاین نوشته‌ایم. جدول‌ها و داده‌های هر کدام بالای کد آن است و ردیف‌های نتیجه کنارش.

روش کار

یک درس چطور پیش می‌رود

  1. ۱

    صورت تمرین را می‌خوانید

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

  2. ۲

    کوئری را اجرا می‌کنید

    کوئری در مرورگر روی PostgreSQL اجرا می‌شود و ردیف‌های نتیجه همان لحظه نشان داده می‌شود.

  3. ۳

    جواب را بررسی می‌کنید

    دکمهٔ بررسی کار شما را می‌سنجد. اگر جایی گیر کردید، راهنمای همان تمرین قدم‌به‌قدم کمکتان می‌کند.

مرورگر یا نصب

تمرین در مرورگر چه فرقی با نصب پایگاه داده دارد

پایگاه دادهٔ دوره همان PostgreSQL است که در مرورگر شما اجرا می‌شود.

تمرین در مرورگر چه فرقی با نصب پایگاه داده دارد
موضوعتمرین در دینا کدنصب روی رایانه
برای شروعیک مرورگر کافی است.باید PostgreSQL یا MySQL را نصب و تنظیم کنید.
داده برای تمرینپایگاه دادهٔ فروشگاه آماده است.جدول‌ها و داده را باید خودتان بسازید.
یک DELETE اشتباههر اجرا با دادهٔ تازه شروع می‌شود.داده‌ای که پاک شود برنمی‌گردد.
وقتی گیر می‌کنیدبررسی خودکار و راهنمای هر تمرینباید خودتان ایراد را پیدا کنید.

کوئری‌هایی که اینجا می‌نویسید روی هر سرور PostgreSQL همان نتیجه را می‌دهند.

سرفصل‌ها

سرفصل‌های دوره

۱۹ سرفصل، ۸۸ درس، ۶۱ تمرین

۱

مبانی پایگاه داده و مدل رابطه‌ای

۵ درس
۲

SELECT، WHERE، ORDER BY و LIMIT

۵ درس
  • خطِ لوله‌ی یک کوئری: FROM → WHERE → ORDER BY → LIMITتمرین
  • انتخاب ستون‌ها و نام مستعار با ASتمرین
  • فیلتر کردن ردیف‌ها با WHEREتمرین
  • تله‌ی AND/OR و قدرتِ پرانتزتمرین
  • LIKE، IN، BETWEEN و گرفتنِ Top-Nتمرین
۳

DISTINCT، توابع و CASE

۴ درس
  • شهرهای یکتا با DISTINCTتمرین
  • ساختن برچسب با توابع متنی و ||تمرین
  • استخراج سال با EXTRACT و گروه‌بندیتمرین
  • برچسب‌گذاری قیمت با CASEتمرین
۴

تجمیع: GROUP BY و HAVING

۶ درس
  • از «سطرها» به «خلاصه»: ذهنیت تجمیع
  • اولین خلاصه‌ها: COUNT، MIN، MAX، AVGتمرین
  • سه چهرهٔ COUNT و رازِ NULLتمرین
  • یک خلاصه برای هر گروه: GROUP BYتمرین
  • GROUP BY سخت‌گیر: خطایی که همه می‌گیرندتمرین
  • فیلترِ گروه‌ها با HAVING (و فرقش با WHERE)تمرین
۵

اتصال جدول‌ها (JOIN)

۵ درس
  • اولین JOIN: حاصل‌ضرب دکارتی و فیلترِ ONتمرین
  • پیش‌بینیِ تعدادِ ردیفِ خروجیِ JOINتمرین
  • LEFT JOIN و دامِ شرطِ WHERE روی جدولِ راستتمرین
  • دامِ تکثیرِ ردیف (fan-out) و دوبار-شماریتمرین
  • اتصالِ یک جدول به خودش (self-join): کارمند و مدیرشتمرین
۶

عملگرهای مجموعه‌ای

۴ درس
  • روی‌هم چیدن نتیجه‌ها: عملگرهای مجموعه‌ای
  • یکی‌کردن دو فهرست: UNION در برابر UNION ALLتمرین
  • اشتراک دو فهرست با INTERSECTتمرین
  • تفاضل دو فهرست با EXCEPTتمرین
۷

زیرکوئری‌ها

۶ درس
  • زیرکوئری چیست؟ کوئری درون کوئری
  • زیرکوئری اسکالر: گران‌تر از میانگینتمرین
  • زیرکوئری با IN: مشتری‌های دارای سفارش پرداخت‌شدهتمرین
  • زیرکوئری همبسته: گران‌تر از میانگینِ دسته‌ی خودشتمرین
  • تله‌ی NOT IN با NULL، و راه‌حل درست با NOT EXISTSتمرین
  • جدولِ مشتق: میانگین ارزشِ هر سفارشتمرین
۸

CTEها و بازگشتی

۴ درس
  • نام‌گذاری زیرکوئری با WITHتمرین
  • زنجیره‌ی چند CTEتمرین
  • ذهنیت بازگشت: راه‌رفتن روی سلسله‌مراتب
  • چارت سازمانی با CTE بازگشتیتمرین
۹

توابع پنجره‌ای (Window Functions)

۵ درس
  • GROUP BY در برابر OVER: قلب توابع پنجره‌ایتمرین
  • رتبه‌بندی محصولات داخل هر دسته با RANKتمرین
  • دو محصول گران هر دسته (Top-N در هر گروه)تمرین
  • جمع تجمعی درآمد (Running Total) با SUM() OVERتمرین
  • تغییر ماه‌به‌ماه فروش با LAGتمرین
۱۰

انواع داده و NULL

۵ درس
  • انواع داده و راز NULL: منطقِ سه‌ارزشی
  • چرا «= NULL» هیچ‌وقت کار نمی‌کندتمرین
  • دامِ مرگبارِ NOT IN با NULLتمرین
  • COALESCE و NULLIF: رام‌کردنِ NULLتمرین
  • NULL در گروه‌بندی، تجمیع و مرتب‌سازیتمرین
۱۱

تعریف داده (DDL): جدول‌ها و قیدها

۵ درس
  • از پرسیدن تا ساختن: دنیای DDL
  • جدول نظرات را بسازتمرین
  • یک ستون به مشتری‌ها اضافه کنتمرین
  • جدول کدهای تخفیفتمرین
  • DELETE، TRUNCATE و DROP: سه راهِ متفاوتِ پاک کردن
۱۲

دستکاری داده (DML) و UPSERT

۵ درس
  • INSERT: یک ردیف تازه به جدول اضافه کنتمرین
  • INSERT … SELECT: درج گروهی از روی یک کوئریتمرین
  • UPDATE با WHERE: تغییرِ هدفمندِ ردیف‌هاتمرین
  • DELETE با WHERE و دیوارِ کلیدِ خارجیتمرین
  • UPSERT: درج کن، اگر بود به‌روز کن (ON CONFLICT)تمرین
۱۳

ویوها (Views)

۴ درس
  • ویو چیست؟ یک کوئری که اسم می‌گیرد
  • ساختن ویوی paid_revenueتمرین
  • ویوی order_totals: مبلغ هر سفارشتمرین
  • ویوی معمولی در برابر مادی‌شده (Materialized)
۱۴

ایندکس‌ها

۴ درس
  • ایندکس چیست و چرا جست‌وجو را تند می‌کند؟
  • کِی ایندکس استفاده می‌شود و کِی نه (Sargability)
  • ایندکس‌های موجود را با pg_indexes فهرست کنتمرین
  • ایندکس‌های پوششی و جزئی — و این‌که چه ایندکسی بسازیم
۱۵

پلن اجرا و بهینه‌سازی

۴ درس
  • نقشه‌ی راهِ کوئری: EXPLAIN را بخوان
  • سه راهِ JOIN: حلقه، هَش، ادغام
  • آنتی‌پترن‌ها: چطور ناخواسته اندیس را می‌کُشی
  • بازنویسیِ آنتی‌پترن به شرطِ اندیس‌پذیرتمرین
۱۶

تراکنش‌ها و ACID

۴ درس
  • تراکنش: همه‌چیز یا هیچ‌چیز (BEGIN / COMMIT / ROLLBACK)
  • ثبت اتمیِ یک سفارش کامل در یک تراکنشتمرین
  • SAVEPOINT: عقب‌زدن بخشی از یک تراکنشتمرین
  • چهار ناهنجاری و چهار سطح ایزولاسیون
۱۷

نرمال‌سازی و طراحی شِما

۴ درس
  • وقتی جدول «چاق» می‌شود: وابستگی تابعی و سه فاجعه
  • نردبانِ نرمال‌سازی: از 1NF تا BCNF (شهودی)
  • تمرین: شکستنِ جدولِ تخت به جدول‌های نرمال + واسطتمرین
  • وقتی *عمداً* نرمال نمی‌کنیم: غیرنرمال‌سازی و مدلِ ستاره
۱۸

پیشرفته: Pivot و JSON

۶ درس
  • از ردیف به ستون: ایده‌ی Pivot
  • Pivot درآمد: هر دسته یک ستونتمرین
  • ماتریس Pivot: ماه × وضعیت سفارشتمرین
  • JSON در PostgreSQL: ساختن و خواندن
  • ساختن JSON: محصولات هر دسته به‌صورت آرایهتمرین
  • خواندن JSON: استخراج فیلد با ‎->‎ و ‎->>‎تمرین
۱۹

امنیت: تزریق SQL و حداقل دسترسی

۳ درس
  • تزریق SQL: وقتی ورودیِ کاربر تبدیل به دستور می‌شود
  • ببین تزریق دقیقاً چه چیزی را لو می‌دهدتمرین
  • درمان: پرس‌وجوی پارامتری‌شده و اصلِ حداقل دسترسی
شروع دوره

از همین امروز شروع کنید

درس‌های اول رایگان است و برای شروع پرداختی لازم نیست. هر وقت خواستید ادامه دهید، همین دوره را بخرید یا با اشتراک پرو همهٔ دوره‌ها را باز کنید.

این دوره شامل:
  • ۸۸ درس تعاملی
  • ۶۱ تمرین عملی
  • ۲۰ ساعت محتوای آموزشی
  • اجرای کد در مرورگر، بدون نصب
  • گواهی پایان دوره
  • دسترسی مادام‌العمر

نمونه‌ها را دوباره ببینید

رایگانبرای شروع

۴ درس ابتدایی رایگان است. برای ادامه، اشتراک بگیرید یا دوره را بخرید.

بدون نیاز به پرداخت مبلغی برای شروع

برای چه کسی

این دوره برای چه کسی است

  • برنامه‌نویس

    اگر برنامه‌تان داده نگه می‌دارد و می‌خواهید کوئری را خودتان بنویسید و بدانید چرا کند است.

  • تحلیل‌گر داده و کارشناس کسب‌وکار

    برای گرفتن گزارش فروش، مشتری و رشد ماهانه از پایگاه داده، بدون اینکه منتظر کس دیگری بمانید.

  • دانشجو

    برای درس پایگاه داده و پروژه‌هایی که با جدول و رابطه کار دارند.

پیش‌نیاز: یک رایانه و یک مرورگر. تجربهٔ برنامه‌نویسی لازم نیست.

بعد از این دوره

پرسش‌ها

پرسش‌های پرتکرار

SQL چیست و به چه کاری می‌آید؟
SQL زبان کار با پایگاه دادهٔ رابطه‌ای است. با آن داده را جست‌وجو می‌کنید، گزارش می‌گیرید، جدول می‌سازید و داده را تغییر می‌دهید. بیشتر نرم‌افزارها و وب‌سایت‌ها داده‌هایشان را در چنین پایگاه داده‌ای نگه می‌دارند.
برای یادگیری SQL باید برنامه‌نویسی بلد باشم؟
نه. دوره از معنای جدول و کلید شروع می‌شود و هر دستور را با یک تمرین کوتاه یاد می‌دهد.
این دوره با کدام پایگاه داده کار می‌کند؟
با PostgreSQL. پایه‌های SQL، مثل SELECT، JOIN، GROUP BY و زیرکوئری، در MySQL، SQL Server و SQLite هم تقریباً همین شکل را دارند.
توابع پنجره‌ای، ایندکس و تراکنش هم در دوره هست؟
بله. توابع پنجره‌ای مثل RANK، ROW_NUMBER و LAG یک فصل جدا دارند. ایندکس، پلن اجرا، تراکنش، نرمال‌سازی و جلوگیری از تزریق SQL هم هر کدام فصل خودشان را دارند.
آیا درس‌های رایگان دارد؟
بله. درس‌های ابتدایی دوره رایگان است و برای شروع پرداختی لازم نیست.
تمرین‌ها چطور بررسی می‌شوند؟
کوئری شما روی همان داده اجرا می‌شود و نتیجه‌اش با نتیجهٔ درست مقایسه می‌شود. اگر ستونی کم باشد، ردیفی اضافه باشد یا ترتیب ردیف‌ها فرق کند، همان را به شما می‌گوید.
در پایان دوره گواهی می‌گیرم؟
بله. وقتی همهٔ تمرین‌ها را تمام کنید، گواهی پایان دوره با یک شمارهٔ استعلام می‌گیرید که هر کسی می‌تواند درستی آن را در سایت بررسی کند.

همین امروز شروع کنید

اولین کوئری‌تان را همین امروز در مرورگر اجرا کنید. شروع رایگان است و در کمتر از دو دقیقه وارد محیط یادگیری می‌شوید.

آموزش SQL و پایگاه داده از صفر — دینا کد