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 سه معیار ثابت برای ارزیابی نمونهها هستند.