دستور SELECT در SQL – راهنمای استفاده به زبان ساده + مثال

ساخت وبلاگ

زبان «پرس‌ و جوی ساختاریافته» (Structured Query Language) یا به اختصار، زبان SQL، به عنوان یکی از مهم‌ترین و محبوب‌ترین زبان‌ها به حساب می‌آید که از آن برای انجام عملیات مختلف بر روی داده‌های ذخیره شده در پایگاه‌های داده استفاده می‌شود. این زبان، دارای دستورات مختلفی برای کار با داده‌ها است که دستور SELECT در SQL‌ به عنوان یکی از پرکاربردترین آن‌ها شناخته می‌شود. این دستور برای بازیابی اطلاعات مختلف از جداول موجود در پایگاه داده کاربرد دارد. در مطلب حاضر، پس از ارائه توضیح مختصری پیرامون پایگاه داده و جزء اصلی آن، یعنی جدول، و شرح مختصری از رایج‌ترین دستورات زبان SQL، به روش‌های مختلف استخراج اطلاعات از جدول‌ها با استفاده از دستور SELECT در SQL‌ پرداخته می‌شود.

فهرست مطالب این نوشته

پایگاه داده چیست ؟

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

یکی از انواع پایگاه‌های داده، «پایگاه داده رابطه‌ای» (Relational Database) است. در این نوع پایگاه داده، داده‌هایی که به هم مرتبط هستند، در جداول مختلف ذخیره می‌شوند و بر اساس داده‌های مشترک جداول، رابطه‌ای میان جداول پایگاه داده وجود دارد.

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

جدول در پایگاه داده چیست ؟

جداول به عنوان اشیای پایگاه داده تلقی می‌شوند که داده‌ها را به‌صورت ساختاریافته در خود ذخیره می‌کنند. هر جدول شامل تعدادی سطر و ستون است. به هر سطر جدول، «رکورد» (Record) گفته می‌شود که اطلاعات منحصربفرد یک «موجودیت» (Entity) را دربر می‌گیرد. هر یک از ستون‌های جداول نیز ویژگی‌های تعریف شده را برای هر سطر نشان می‌دهند. به عنوان مثال، جدول اطلاعات دانش‌آموزان، نمونه‌ای از جدول در پایگاه داده است.

جدول اطلاعات دانش‌آموزان در SQL
مثالی از جدول اطلاعات دانش‌آموزان در SQL

در جدول فوق، هر سطر مربوط به اطلاعات یک موجودیت است (در این مثال منظور از موجودیت‌ها، دانش‌آموزان هستند) و ستون‌های جدول، ویژگی‌های موجودیت را نشان می‌دهند. در پایگاه‌ داده، مفهوم دیگری به نام «کلید» (Key) نیز وجود دارد که در هنگام ساخت جدول باید انواع کلیدها مشخص شوند. در پایگاه‌های داده رابطه‌ای، معمولاً یک ستون از جدول را به مقادیر منحصربه‌فردی اختصاص می‌دهند که با آن بتوان به هر یک از سطرها دسترسی داشت و به آن ستون، «کلید اصلی» (Primary Key) گفته می‌شود. به عبارتی، مقادیر این ستون، غیرتکراری هستند و به منظور ایجاد ارتباط بین جدول‌های مختلف در پایگاه داده، از مقادیر این ستون‌ها استفاده می‌شود. در جدول بالا، ستون stud_id می‌تواند به عنوان کلید اصلی جدول Students محسوب شود.

فرض کنید علاوه‌بر جدول Students، جدول دیگری با نام Departments وجود دارد که اطلاعات دانشکده‌ها و دانش‌آموزان هر دانشکده را ذخیره می‌کند. در این جدول، ستونی با نام stud_id نیز تعریف شده است که مقادیر آن با توجه به مقادیر ستون stud_id جدول Students مقداردهی می‌شود. در این حالت، ستون stud_id در جدول Departments به عنوان «کلید خارجی» (Foreign key) به حساب می‌آید و ارتباط این دو جدول با استفاده از کلید اصلی (در جدول Students) و کلید خارجی (در جدول Departments) برقرار می‌شود.

جدول اطلاعات دانشکده‌ها در SQL
مثالی از جدول اطلاعات دانشکده‌ها در SQL

به منظور دسترسی به داده‌های جداول و اعمال عملیات مختلف بر روی آن‌ها، از «زبان پرس و جوی | ساختاریافته» (Structured Query Language | SQL) استفاده می‌شود. در بخش بعدی، به طور مختصر به معرفی این زبان خواهیم پرداخت.

زبان SQL‌ چیست و مهم‌ترین دستورات آن چه هستند؟

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

مهم ترین دستورات SQL کدامند؟

زبان SQL دارای ۴ دستور مهم و کاربردی برای اعمال تغییرات و بازیابی اطلاعات از جداول موجود در پایگاه داده است که در ادامه به آن‌ها اشاره می‌شود:

  • دستور SELECT در SQL: از این دستور می‌توان برای بازیابی اطلاعات از جداول موجود در پایگاه داده استفاده کرد.
  • دستور INSERT در SQL: از این دستور به منظور درج سطر جدید در جدول استفاده می‌شود.
  • دستور UPDATE در SQL: این دستور را می‌توان برای ویرایش اطلاعات موجود در جدول استفاده کرد.
  • دستور DELETE در SQL: این دستور را برای حذف سطری از جدول می‌توان به کار برد.

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

دستور SELECT‌ در SQL چیست ؟

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

دستور SELECT در SQL

بازیابی اطلاعات جدول با دستور SELECT در SQL

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

  • بازیابی تمامی اطلاعات موجود در جدول
  • نمایش برخی از ستون‌های جداول پایگاه داده
  • استخراج اطلاعات غیرتکراری از جدول SQL با دستور UNIQUE
  • نمایش چندین سطر ابتدایی جدول SQL‌ در خروجی با دستور TOP
  • نمایش اولین و آخرین مقادیر ستون‌های جدول SQL با دستور FIRST و LAST
  • بازیابی اطلاعات از جدول SQL با استفاده از «توابع تجمیعی» (Aggregate Functions) در دستور SELECT
  • استخراج برخی از سطرهای جدول با استفاده از دستور WHERE
  • بازیابی اطلاعات جدول به‌صورت گروه‌بندی شده با دستور GROUP BY
  • استخراج برخی از اطلاعات گروه‌بندی شده از جدول با استفاده از دستور HAVING
  • بازیابی اطلاعات جدول با ترتیب صعودی و نزولی

در ادامه مطلب حاضر، به توضیح نحوه استفاده از دستور SELECT در SQL برای هر یک از حالات ذکر شده در بالا پرداخته می‌شود.

استخراج کل اطلاعات جدول با دستور SELECT در SQL

در تمامی دستورات SELECT از دو کلمه کلیدی SELECT و FROM استفاده می‌شود. در مقابل کلمه کلیدی SELECT‌، می‌توان مشخص کرد که اطلاعات چه ستون‌هایی از جدول باید بازیابی شوند. با استفاده از کلمه کلیدی FROM‌ نیز می‌توان نام جدولی را معین کرد که قرار است داده‌ها از آن استخراج شوند.

به منظور بازیابی کل اطلاعات جدول با استفاده از دستور SELECT در SQL می‌توان نام تمامی ستون‌های جدول را مقابل کلمه کلیدی SELECT نوشت. در ادامه، نحوه تعریف دستور SELECT‌ در SQL برای استخراج کل اطلاعات جدول ارائه شده است.

SELECT Column_Name_1, Column_Name_2, ....., Column_Name_N
FROM Table_Name; 

چنانچه جدولی با نام Students برای ذخیره‌سازی اطلاعات دانش‌آموزان وجود داشته باشد و ستون‌های Student_Id ،First_Name ،Address و Age را شامل شود، می‌توان از «سینتکس» (قاعده نحوی) بالا برای استخراج کل اطلاعات جدول به‌صورت زیر استفاده کرد:

SELECT Student_Id, First_Name, Address, Age
FROM Students; 

در جدول Students‌ اطلاعات هفت دانش‌آموز ذخیره شده است که با استفاده از دستور SELECT در SQL می‌توان آن‌ها را به صورت زیر بازیابی کرد.

مثالی از جدول اطلاعات دانش‌آموزان در SQL
مثالی از جدول اطلاعات دانش‌آموزان در SQL

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

SELECT *
FROM Students; 

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

استخراج برخی ستون های جدول با دستور SELECT در SQL

به منظور بازیابی اطلاعات برخی از ستون‌های جدول می‌توان در مقابل دستور SELECT، فقط نام ستون‌های مورد نظر را نوشت. در ادامه، مثالی از SQL برای بازیابی اطلاعات دو ستون Student_Id و First_Name از جدول Students ارائه شده است.

SELECT Student_Id, First_Name
FROM Students; 

خروجی دستور بالا در ادامه ملاحظه می‌شود.

مثالی از استخراج برخی ستون‌های جدول SQL‌با دستور Select

استخراج اطلاعات غیرتکراری از جدول SQL با دستور DISTINCT

چنانچه لازم باشد سطرهایی از جدول SQL استخراج شوند که مقادیر یکی از ستون‌های آن غیرتکراری باشد، از عبارت کلیدی DISTINCT در دستور SELECT استفاده می‌شود. قاعده نحوی این دستور در ادامه ملاحظه می‌شود.

SELECT DISTINCT column_name
FROM table_name; 

در ادامه جدولی با نام Customers‌ با داده‌های آن ملاحظه می‌شود.

مثالی از جدول اطلاعات مشتریان در SQL
مثالی از جدول اطلاعات مشتریان در SQL

به منظور استخراج نام تمامی کشورهای غیرتکراری از این جدول، می‌توان از کلمه کلیدی DISTINCT در دستور SELECT‌ به صورت زیر استفاده کرد.

SELECT DISTINCT country
FROM Customers;

خروجی دستور بالا در ادامه ملاحظه می‌شود.

کاربرد دستور DISTINCT در SQL

نمایش چندین سطر ابتدایی جدول SQL‌ با دستور TOP

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

SELECT TOP number | percent column_Name1, column_Name2, ....., column_NameN
FROM table_name
WHERE [Condition] ; 

جدول Cars را با داده‌های زیر در نظر بگیرید.

مثالی از جدول اطلاعات ماشین‌ها در SQL
مثالی از جدول اطلاعات ماشین‌ها در SQL

از این جدول می‌توان سه سطر نخست آن را با دستور زیر استخراج کرد.

SELECT TOP 3 Car_Name, Car_Color
FROM Cars; 

در ادامه خروجی دستور بالا ملاحظه می‌شود.

کاربرد دستور TOP در SQL

نمایش اولین و آخرین مقادیر ستون‌های جدول SQL با دستور FIRST و LAST

با دستور FIRST و LAST در دستور SELECT‌ می‌توان اولین و آخرین مقادیر ستون مورد نظر خود را بازیابی کرد. قاعده نحوی این دستورات در ادامه ملاحظه می‌شوند.

SELECT FIRST/LAST(customer_name) AS first_customer
FROM customers; 

به عنوان مثال، جدولی با نام Customers‌ را در نظر بگیرید که شامل داده‌های زیر است.

مثالی از جدول اطلاعات مشتریان در SQL
مثالی از جدول اطلاعات مشتریان در SQL

با استفاده از دستور SELECT و FIRST می‌توان به اولین نام مشتری، یعنی John، در این جدول به‌صورت زیر دست پیدا کرد.

SELECT FIRST (first_name)
FROM Customers; 

همچنین، می‌توان با دستور LAST و SELECT در SQL آخرین نام مشتری از جدول Customers، یعنی Betty، را با دستور زیر استخراج کرد.

SELECT LAST (first_name)
FROM Customers;

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

توابع تجمیعی، توابعی هستند که در دستور SELECT به کار می‌روند و بر روی مقادیر ستون مشخص شده، محاسباتی را انجام می‌دهند و در نهایت، خروجی را برمی‌گردانند. از این توابع معمولاً با دستوراتی نظیر GROUP BY و HAVING استفاده می‌شود که در بخش‌های بعدی مطلب حاضر، به کاربرد آن‌ها پرداخته خواهد شد. توابع تجمیعی SQL در ادامه فهرست شده‌اند:

در ادامه، به توضیح کاربرد هر یک از توابع تجمیعی ذکر شده، به همراه مثال پرداخته می‌شود.

تابع COUNT در دستور SELECT

تابع COUNT تعداد سطرها را در خروجی برمی‌گرداند. می‌توان قاعده نحوی زیر را به منظور استفاده از تابع COUNT دستور SELECT در SQL به کار برد.

SELECT COUNT(column_Name)
FROM Table_Name; 

به منظور درک بهتر عملکرد این تابع،‌ می‌توان مثالی از آن ارائه کرد. جدول Customers را با داده‌های زیر درنظر بگیرید.

مثالی از جدول اطلاعات مشتریان در SQL
مثالی از جدول اطلاعات مشتریان در SQL

با دستور زیر، می‌توان با استفاده از تابع COUNT، مقدار تعداد سطرهای جدول را در خروجی بازگرداند.

SELECT COUNT(*)
FROM Customers;

خروجی دستور بالا در ادامه ملاحظه می‌شود.

کاربرد تابع COUNT در SQL

همچنین، می‌توان برای ستونی که در خروجی نشان داده می‌شود، «نام مستعاری» (Alias) درنظر گرفت. بدین‌ منظور، می‌توان از کلمه کلیدی AS استفاده کرد و بعد از آن نام مستعار را تعریف کرد. در ادامه، مثالی از کاربرد نام مستعار برای نمایش خروجی تابع COUNT ملاحظه می‌شود.

SELECT COUNT(*) AS total_customers
FROM Customers;

خروجی دستور بالا در ادامه آمده است.

کاربرد ALIAS در SQL

تابع SUM در دستور SELECT

از تابع SUM به منظور جمع مقادیر یک ستون استفاده می‌شود. سینتکس این تابع در دستور SELECT به صورت زیر است.

SELECT SUM (Column_Name)
FROM Table_Name

به منظور درک بهتر چگونگی عملکرد این تابع،‌ می‌توان مثالی از آن ارائه کرد؛ جدول Orders را با داده‌های زیر درنظر بگیرید.

مثالی از جدول اطلاعات سفارشات مشتریان در SQL
مثالی از جدول اطلاعات سفارشات مشتریان در SQL

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

SELECT SUM(amount) AS total_sales
FROM Orders;

خروجی دستور بالا در ادامه ملاحظه می‌شود.

کاربرد تابع SUM در SQL

تابع AVG در دستور SELECT

تابع AVG یکی دیگر از توابع تجمیعی در SQL محسوب می‌شود که از آن می‌توان برای محاسبه میانگین مقادیر یک ستون استفاده کرد. قاعده نحوی این تابع در دستور SELECT به صورت زیر است.

SELECT AVG(Numerical_Column_Name)
FROM Table_Name ; 

به منظور درک بهتر عملکرد تابع AVG،‌ می‌توان مثالی از آن ارائه کرد؛ جدول Customers را با داده‌های زیر درنظر بگیرید.

مثالی از جدول اطلاعات مشتریان در SQL
مثالی از جدول اطلاعات مشتریان در SQL

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

SELECT AVG(age) AS average_age
FROM Customers;

خروجی دستور بالا به‌صورت زیر است.

کاربرد تابع AVG در SQL

تابع MIN برای دستور SELECT در SQL

تابع MIN نیز به عنوان یکی دیگر از توابع تجمیعی در SQL محسوب می‌شود که از آن می‌توان برای یافتن کوچک‌ترین مقدار یک ستون استفاده کرد. سینتکس این تابع در دستور SELECT به صورت زیر است.

SELECT MIN(Numerical_Column_Name)
FROM Table_Name ;

به منظور کسب درک بهتر از عملکرد این تابع،‌ می‌توان به عنوان مثال جدول Customers را با داده‌های زیر درنظر گرفت.

جدول اطلاعات مشتریان در SQL
مثالی از جدول اطلاعات مشتریان در SQL

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

SELECT MIN(age)
FROM Customers;

خروجی دستور بالا در ادامه ملاحظه می‌شود.

کاربرد تابع MIN در SQL

تابع MAX در دستور SELECT

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

SELECT MAX(Numerical_Column_Name)
FROM Table_Name ;

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

مثالی از جدول اطلاعات مشتریان در SQL
مثالی از جدول اطلاعات مشتریان در SQL

به وسیله تابع تجمیعی MAX می‌توان مشتری با بیش‌ترین سن را با دستور زیر از جدول Customers استخراج کرد.

SELECT MAX(age)
FROM Customers;

خروجی دستور بالا در ادامه ملاحظه می‌شود.

کاربرد تابع MAX در SQL

در ادامه، پس از معرفی فیلم‌های آموزشی مرتبط با پایگاه داده، به توضیح سایر روش‌های بازیابی اطلاعات با استفاده از دستور SELECT در SQL پرداخته می‌شود.

معرفی فیلم های آموزش پایگاه داده

فیلم آموزش پایگاه داده فرادرس

خبرنامه