فصل 6 از 24 درس 1 از 1

SELECT و بازیابی اطلاعات

SELECT و بازیابی اطلاعات

بخشی از آموزش جامع SQL Server

محتوای درس SELECT و بازیابی اطلاعات

T-SQL | Projection، Alias و Expression

SELECT Result Set را می‌سازد و Projection تعیین می‌کند چه داده‌ای به Consumer برگردد. انتخاب Columnهای موردنیاز بهتر از SELECT * است و Contract خروجی را روشن نگه می‌دارد.

متن این فصل با رویکرد مرجع فنی و قابل استفاده در پروژه واقعی تنظیم شده است؛ مثال‌ها در امتداد مدل StoreDb نوشته شده‌اند و اصطلاحات اصلی SQL Server و T-SQL به‌صورت یکدست به‌کار می‌روند.

1. مفاهیم و قراردادهای اصلی

SELECT Result Set را می‌سازد و Projection تعیین می‌کند چه داده‌ای به Consumer برگردد. انتخاب Columnهای موردنیاز بهتر از SELECT * است و Contract خروجی را روشن نگه می‌دارد.

در طراحی پایگاه داده، Syntax تنها بخشی از مسئله است. نوع داده، Constraint، الگوی دسترسی، Transaction و هزینه اجرای Query باید هم‌زمان با نیاز Domain در نظر گرفته شوند.

مفهومکارکرد
SELECTساخت Result Set
Projectionانتخاب Columnها
Aliasنام خروجی
Expressionمقدار محاسباتی
DISTINCTحذف Duplicate خروجی
CASEخروجی شرطی

2. ساختار و Syntax پایه

نام Table با Schema و Alias کوتاه نوشته می‌شود. Columnهای موردنیاز صریح انتخاب و Expressionها با Alias معنادار نام‌گذاری می‌شوند.

SELECT
    p.Id AS ProductId,
    p.Name AS ProductName,
    p.Price,
    p.Stock,
    p.Price * p.Stock AS InventoryValue
FROM dbo.Products AS p;

3. سناریوی StoreDb

برای نمایش مشتری، FullName و Contact قابل محاسبه است. COALESCE مقدار جایگزین برای NULL تولید می‌کند و CONCAT مدیریت رشته را ساده می‌کند.

نمونه‌های این فصل بر مدل فروشگاهی StoreDb بنا شده‌اند تا ارتباط مفاهیم میان فصل‌ها حفظ شود و Queryها در یک Context یکپارچه قابل بررسی باشند.

SELECT
    c.Id,
    CONCAT(c.FirstName, N' ', c.LastName) AS FullName,
    COALESCE(c.Email, c.Mobile, N'ثبت نشده') AS Contact
FROM dbo.Customers AS c;

4. اصول طراحی و Performance

طراحی پایدار باید هم صحت داده و هم هزینه اجرای عملیات را پوشش دهد. انتخاب ساده‌تر زمانی ترجیح دارد که Contract داده را روشن‌تر و رفتار Optimizer را قابل پیش‌بینی‌تر نگه دارد.

  • فقط Columnهای مصرف‌شده بازگردانده شوند.
  • Alias بخشی از Contract گزارش/API در نظر گرفته شود.
  • Expression مالی با Type دقیق محاسبه شود.
  • ترتیب خروجی بدون ORDER BY فرض نشود.

5. خطاهای رایج و نکات ایمنی

دستورهای SQL می‌توانند مستقیماً داده و ساختار را تغییر دهند؛ بنابراین بازبینی Context، تعداد Rowهای هدف و اثر Transaction قبل از اجرای تغییرات اهمیت عملی دارد.

  • SELECT * در Query پایدار Application.
  • اتکا به نام Column مبهم پس از JOIN.
  • DISTINCT برای پنهان کردن Duplicate ناشی از طراحی غلط.
  • تبدیل داده در Presentation بدون Contract روشن.

6. چک‌لیست نهایی فصل

  • Projection صریح است.
  • Aliasها معنادارند.
  • NULL در خروجی آگاهانه مدیریت می‌شود.
  • Expression و CASE قابل استفاده‌اند.

7. جمع‌بندی

خروجی این فصل باید به تصمیمی قابل اتکا در طراحی یا Query منجر شود؛ صحت داده، قابلیت نگهداری و رفتار Performance سه معیار ثابت برای ارزیابی نمونه‌ها هستند.