Facebook Pixel
Searching...
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Learning SQL

Learning SQL

توسط Alan Beaulieu 2005 312 صفحات
3.97
500+ امتیازها
گوش دادن
گوش دادن

نکات کلیدی

1. اصول SQL: جداول، پرس‌وجوها و دستکاری داده‌ها

یک پایگاه داده چیزی جز مجموعه‌ای از اطلاعات مرتبط نیست.

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

عملیات CRUD. SQL چهار عملیات اساسی برای تعامل با داده‌ها ارائه می‌دهد:

  • CREATE: وارد کردن رکوردهای جدید به جداول
  • READ: بازیابی داده‌ها با استفاده از دستورات SELECT
  • UPDATE: اصلاح رکوردهای موجود
  • DELETE: حذف رکوردها از جداول

ساختار پرس‌وجو. یک پرس‌وجوی معمولی SQL شامل موارد زیر است:

  • SELECT: مشخص می‌کند کدام ستون‌ها بازیابی شوند
  • FROM: منبع جدول(ها) را شناسایی می‌کند
  • WHERE: سطرها را بر اساس شرایط فیلتر می‌کند
  • ORDER BY: مجموعه نتایج را مرتب می‌کند

2. اتصال جداول: باز کردن روابط در پایگاه‌های داده رابطه‌ای

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

انواع اتصال‌ها. SQL چندین روش برای ترکیب داده‌ها از جداول مختلف ارائه می‌دهد:

  • INNER JOIN: فقط سطرهای مطابق از هر دو جدول را برمی‌گرداند
  • LEFT/RIGHT OUTER JOIN: شامل تمام سطرها از یک جدول، حتی بدون تطابق
  • FULL OUTER JOIN: شامل تمام سطرها از هر دو جدول
  • CROSS JOIN: تمام ترکیب‌های ممکن (ضرب دکارتی) را تولید می‌کند

شرایط اتصال. عبارت ON مشخص می‌کند که جداول چگونه به هم مرتبط هستند، معمولاً با استفاده از روابط کلید اصلی و خارجی. برای مثال:

SELECT customers.name, orders.order_date
FROM customers
INNER JOIN orders ON customers.id = orders.customer_id

اتصال جداول متعدد. پرس‌وجوهای پیچیده اغلب شامل اتصال سه یا چند جدول برای جمع‌آوری اطلاعات مرتبط از سراسر طرح پایگاه داده هستند.

3. فیلتر کردن و گروه‌بندی داده‌ها: پالایش نتایج پرس‌وجو

یک عبارت where ممکن است شامل یک یا چند شرط باشد که با عملگرهای and و or جدا شده‌اند.

قدرت عبارت WHERE. فیلتر کردن به شما امکان می‌دهد فقط داده‌های مورد نیاز خود را بازیابی کنید:

  • عملگرهای مقایسه: =, <>, <, >, BETWEEN, IN, LIKE
  • عملگرهای منطقی: AND, OR, NOT
  • تطابق الگو: با استفاده از کاراکترهای جایگزین (% و _) با LIKE

توابع تجمعی. SQL توابعی برای خلاصه‌سازی داده‌ها ارائه می‌دهد:

  • COUNT(): تعداد سطرها
  • SUM(): مجموع مقادیر عددی
  • AVG(): میانگین مقادیر عددی
  • MIN()/MAX(): کوچک‌ترین/بزرگ‌ترین مقادیر

GROUP BY و HAVING. این عبارات امکان تحلیل زیرمجموعه‌های داده را فراهم می‌کنند:

  • GROUP BY: سطرها را بر اساس مقادیر ستون‌ها به گروه‌ها سازماندهی می‌کند
  • HAVING: گروه‌ها را فیلتر می‌کند (مشابه WHERE، اما برای داده‌های گروه‌بندی شده)

4. زیرپرس‌وجوها: قدرت تو در تو برای بازیابی داده‌های پیچیده

یک زیرپرس‌وجو، پرس‌وجویی است که درون یک عبارت SQL دیگر قرار دارد (که در ادامه به آن عبارت حاوی می‌گویم).

انواع زیرپرس‌وجوها:

  • اسکالر: یک مقدار واحد را برمی‌گرداند
  • ستون: یک ستون از چندین سطر را برمی‌گرداند
  • سطر: یک سطر از چندین ستون را برمی‌گرداند
  • جدول: چندین ستون و سطر را برمی‌گرداند

مکان‌های زیرپرس‌وجو:

  • SELECT: برای ستون‌های محاسبه‌شده
  • FROM: به عنوان جداول مشتق‌شده
  • WHERE: برای فیلتر کردن پویا
  • HAVING: برای فیلتر کردن نتایج گروه‌بندی شده

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

5. SQL پیشرفته: نماها، تراکنش‌ها و متاداده

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

نماها. جداول مجازی بر اساس دستورات SELECT:

  • ساده‌سازی پرس‌وجوهای پیچیده
  • ارائه امنیت داده با محدود کردن دسترسی
  • ارائه رابط‌های ثابت به عنوان طرح‌ها تکامل می‌یابند

تراکنش‌ها. اطمینان از یکپارچگی داده‌ها برای عملیات چند مرحله‌ای:

  • BEGIN: شروع یک تراکنش
  • COMMIT: ذخیره دائمی تغییرات
  • ROLLBACK: لغو تغییرات در صورت بروز خطا

متاداده. اطلاعات درباره ساختار پایگاه داده:

  • فرهنگ داده: ذخیره تعاریف اشیاء پایگاه داده
  • طرح اطلاعات: روش استاندارد برای دسترسی به متاداده
  • کاتالوگ‌های سیستم: جداول متاداده خاص پایگاه داده

6. ایندکس‌گذاری و محدودیت‌ها: بهینه‌سازی عملکرد پایگاه داده

ایندکس‌ها مکانیزمی هستند که سرور پایگاه داده برای کنترل استفاده همزمان از منابع داده استفاده می‌کند.

ایندکس‌ها. بهبود عملکرد پرس‌وجو:

  • B-tree: ساختار درخت متوازن، مناسب برای اکثر انواع داده
  • Bitmap: کارآمد برای ستون‌هایی با کاردینالیتی پایین
  • Full-text: بهینه‌سازی شده برای جستجوی اسناد متنی

محدودیت‌ها. اعمال قوانین یکپارچگی داده:

  • کلید اصلی: اطمینان از شناسایی یکتای سطرها
  • کلید خارجی: حفظ یکپارچگی ارجاعی بین جداول
  • یکتا: جلوگیری از مقادیر تکراری در یک ستون
  • بررسی: اعمال شرایط خاص بر روی مقادیر ستون

بهینه‌سازی پرس‌وجو. تکنیک‌هایی برای بهبود عملکرد:

  • تحلیل برنامه‌های اجرایی
  • استفاده از ایندکس‌های مناسب
  • اجتناب از اسکن کامل جدول در صورت امکان
  • بهینه‌سازی عملیات JOIN

7. تحلیل با SQL: توابع پنجره برای بینش‌های داده

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

توابع پنجره. انجام محاسبات بر روی مجموعه‌ای از سطرها:

  • عبارت OVER: تعریف پنجره‌ای از سطرها برای عملیات
  • PARTITION BY: گروه‌بندی سطرها برای تحلیل
  • ORDER BY: تعیین ترتیب سطرها درون پارتیشن‌ها

توابع رتبه‌بندی:

  • ROW_NUMBER(): اختصاص شماره‌های یکتا به سطرها
  • RANK(): اختصاص رتبه‌ها با فاصله برای تساوی‌ها
  • DENSE_RANK(): اختصاص رتبه‌ها بدون فاصله

توابع تجمعی پنجره:

  • SUM(), AVG(), COUNT() بر روی پنجره‌ها
  • مجموع‌های جاری و میانگین‌های متحرک

توابع جابجایی:

  • LAG(): دسترسی به داده از سطرهای قبلی
  • LEAD(): دسترسی به داده از سطرهای بعدی

آخرین به‌روزرسانی::

نقد و بررسی

3.97 از 5
میانگین از 500+ امتیازات از Goodreads و Amazon.

کتاب یادگیری SQL به خاطر معرفی واضح مبانی SQL، تمرین‌های عملی و پوشش چندین سیستم پایگاه داده، نقدهای مثبتی دریافت کرده است. خوانندگان از توضیحات مختصر آن قدردانی می‌کنند و آن را برای مبتدیان و به عنوان یک refresher مفید می‌دانند. برخی به کمبود پوشش بهینه‌سازی پرس‌وجو و موضوعات پیشرفته محدود انتقاد کرده‌اند. این کتاب به خاطر قابلیت خواندن و رویکرد ساختاریافته‌اش ستایش می‌شود، هرچند برخی اشاره می‌کنند که می‌تواند در برخی زمینه‌ها عمق بیشتری داشته باشد. به‌طور کلی، این کتاب منبعی ارزشمند برای کسانی است که به SQL تازه‌کار هستند یا به دنبال تقویت درک خود از این زبان هستند.

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

آلن بیولی یک مدیر پایگاه داده و مهندس نرم‌افزار با تجربه است که در زمینه‌ی SQL و پایگاه‌های داده‌ی رابطه‌ای تخصص دارد. او با سیستم‌های مختلف مدیریت پایگاه داده، از جمله اوراکل، مای‌اس‌کیوال و مایکروسافت اس‌کیوال سرور کار کرده است. بیولی به خاطر توانایی‌اش در توضیح مفاهیم فنی پیچیده به شیوه‌ای واضح و قابل فهم شناخته می‌شود. علاوه بر فعالیت‌های نویسندگی آلن بیولی، او در پروژه‌های متعدد مرتبط با پایگاه داده مشارکت داشته و در آموزش و راهنمایی سایر متخصصان پایگاه داده نیز نقش داشته است. تجربه‌ی عملی او در این حوزه، نوشتارهایش را غنی می‌سازد و کتاب‌های او به‌ویژه برای کسانی که به دنبال به‌کارگیری مفاهیم SQL در سناریوهای واقعی هستند، ارزشمند است.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Feb 27,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
50,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →