SQL Server Training with AdventureWorks Sample Database

آموزش گام‌به‌گام SQL Server با دیتابیس نمونه‌ی AdventureWorks | از مبتدی تا پیشرفته | (قسمت ۱)


درس ۱: آشنایی با دستور SELECT و انتخاب ستون‌ها

🎯 هدف درس:

در این درس با دستور پایه‌ای SELECT در SQL Server آشنا می‌شوید. این دستور برای استخراج داده‌ها از جداول پایگاه داده به‌کار می‌رود و زیربنای تمامی کوئری‌های SQL محسوب می‌شود.

📘 مفهوم نظری:

در این بخش ۱۰ شکل رایج از استفاده دستور SELECT را بررسی می‌کنیم. در هر مورد ابتدا دستور را می‌بینید، سپس کاربرد و مثال واقعی از پایگاه داده نمونه AdventureWorks آورده شده است.

۱. انتخاب تمام ستون‌ها از یک جدول:

SELECT * FROM TableName;

کاربرد: نمایش کامل داده‌های جدول بدون محدودیت.

SELECT TOP (10) *
FROM Person.Person;

۲. انتخاب ستون‌های خاص:

SELECT Column1, Column2 FROM TableName;

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

SELECT TOP (10) FirstName, LastName
FROM Person.Person;

۳. تعیین نام مستعار برای ستون‌ها (Alias):

SELECT ColumnName AS AliasName FROM TableName;

کاربرد: تغییر نام موقت ستون‌ها برای نمایش خواناتر یا در گزارش‌ها.

SELECT TOP (10)
  FirstName AS [First Name],
  LastName  AS [Last Name]
FROM Person.Person;

۴. ترکیب چند ستون در یک خروجی (Concatenation):

SELECT Column1 + ' ' + Column2 AS NewColumn FROM TableName;

کاربرد: ترکیب مقادیر چند ستون برای ساخت خروجی جدید (مثل نام کامل).

SELECT TOP (10)
  FirstName + ' ' + LastName AS FullName
FROM Person.Person;

۵. ساخت ستون محاسبه‌شده:

SELECT Expression AS NewColumn FROM TableName;

کاربرد: ایجاد ستون جدید بر اساس محاسبه یا ترکیب سایر مقادیر.

SELECT TOP (10)
  Name,
  ListPrice,
  ListPrice * 1.09 AS PriceWithTax
FROM Production.Product;

۶. حذف داده‌های تکراری:

SELECT DISTINCT ColumnName FROM TableName;

کاربرد: حذف رکوردهای تکراری از نتایج خروجی.

SELECT DISTINCT JobTitle
FROM HumanResources.Employee;

۷. محدود کردن تعداد رکوردها:

SELECT TOP (N) Columns FROM TableName;

کاربرد: برای دریافت فقط بخشی از نتایج (مثلاً اولین ۵ یا ۱۰ ردیف).

SELECT TOP (5) ProductID, Name, ListPrice
FROM Production.Product;

۸. مرتب‌سازی نتایج همراه با SELECT:

SELECT Columns FROM TableName ORDER BY Column;

کاربرد: نمایش داده‌ها به ترتیب خاص (صعودی یا نزولی).

SELECT TOP (10) Name, ListPrice
FROM Production.Product
ORDER BY ListPrice DESC;

۹. استفاده از فیلتر ساده با WHERE:

SELECT Columns FROM TableName WHERE Condition;

کاربرد: انتخاب فقط ردیف‌هایی که شرط مشخصی را دارند.

SELECT TOP (10) Name, ListPrice
FROM Production.Product
WHERE ListPrice > 1000;

۱۰. انتخاب از چند جدول (مقدماتی):

SELECT Table1.Col, Table2.Col FROM Table1, Table2;

کاربرد: ترکیب داده‌ها از چند جدول (بدون JOIN، صرفاً جهت معرفی مفهومی).

SELECT TOP (10)
  p.FirstName, p.LastName, e.JobTitle
FROM Person.Person p, HumanResources.Employee e
WHERE p.BusinessEntityID = e.BusinessEntityID;

🧠 تمرین‌های عملی:

  • تمرین ۱: نمایش ۱۰ ردیف اول از جدول افراد با همه‌ی ستون‌ها.
  • تمرین ۲: نمایش نام و نام خانوادگی افراد از جدول Person.Person.
  • تمرین ۳: نمایش نام، قیمت و ستون محاسبه‌شده PriceWithTax برای ۵ محصول اول.
  • تمرین ۴: استخراج عنوان‌های شغلی منحصربه‌فرد از جدول Employee.
  • تمرین ۵ (چالشی): ایجاد ستون FullName (نام کامل) با ترکیب FirstName و LastName.

💡 پاسخ تمرین‌های عملی:

-- تمرین ۱
SELECT TOP (10) *
FROM Person.Person;

-- تمرین ۲
SELECT TOP (10) FirstName, LastName
FROM Person.Person;

-- تمرین ۳
SELECT TOP (5)
  Name,
  ListPrice,
  ListPrice * 1.09 AS PriceWithTax
FROM Production.Product;

-- تمرین ۴
SELECT DISTINCT JobTitle
FROM HumanResources.Employee;

-- تمرین ۵ (چالشی)
SELECT TOP (10)
  FirstName + ' ' + LastName AS FullName
FROM Person.Person;

📚 جمع‌بندی درس:

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

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *