لرن بلاگ

تصویر مربوط به مقاله دستور SELECT در MySQL

دستور SELECT در MySQL و نحوه استفاده آن

مقدمه

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

استفاده از دستور SELECT در MySQL

در MySQL شما می‌توانید دستور SELECT را بدون به کارگیری هیچ دستور یا عبارت دیگری استفاده کنید. برای مثال دستور زیر را در نظر بگیرید.

SELECT 1 + 1; 

در واقع این دستور تنها یک محاسبه ریاضی ساده انجام می‌دهد و خروجی آن در MySQL به شکل زیر خواهد بود.

+-------+
| 1 + 1 |
+-------+
|     2 |
+-------+
1 row in set (0.00 sec) 

MySQL در ساختار خود توابع گوناگونی دارد. این توابع برای کار با رشته‌ها1string functions، تاریخ و زمان2date functions و محاسبات ریاضی3math functions استفاده می‌شوند. شما می‌توانید از دستور SELECT برای اجرای این توابع استفاده کنید. مثلاً دستور زیر تابع ()NOW در MySQL را اجرا می‌کند. این تابع که به کمک دستور SELECT در MySQL اجرا می‌شود، تاریخ و زمان فعلی را در سروری که MySQL در آن قرار دارد، نشان می‌دهد.

SELECT NOW();

خروجی کد قبل به شکل زیر است.

+---------------------+
| NOW()               |
+---------------------+
| 2024-05-18 14:23:02 |
+---------------------+
1 row in set (0.00 sec)

تابع ()NOW نیاز به پارامتر خاصی ندارد. بنابراین تنها بعد از ذکر نام تابع، از پرانتزهای باز و بسته استفاده می‌کنیم.

فراخوانی تابع دارای پارامتر به کمک دستور SELECT در MySQL

همان‌طور که در مثال قبل ملاحظه کردید، تابع استفاده شده هیچ پارامتری نیاز نداشت. اما همه توابع در MySQL این‌گونه نیستند. برای مثال تابع ()CONCAT در MySQL برای به هم چسباندن کلمات یا متغیرهای رشته‌ای به کار می‌رود. با اجرای آن شما باید کلمه یا عبارت اول، دوم و … را که می‌خواهید همگی آن‌ها در کنار یکدیگر قرار بگیرند، به تابع معرفی کنید. این کار به کمک پارامترهایی که درون دو پرانتز باز و بسته تابع وارد می‌شوند، امکان‌پذیر است. در ادامه دستور مربوط به آن را مشاهده می‌کنید.

SELECT CONCAT('John',' ','Doe');

خروجی کد فوق به شکل زیر است.

+--------------------------+
| CONCAT('John',' ','Doe') |
+--------------------------+
| John Doe                 |
+--------------------------+
1 row in set (0.00 sec)

تغییر نام ستون در دستور SELECT

به صورت پیش‌فرض MySQL از عبارتی که بعد از دستور SELECT آورده می‌شود، به عنوان نام ستون نتایج استفاده می‌کند. این مسئله را در خروجی دستورهای قبلی نیز مشاهده می‌کنید. اگر می‌خواهید نام ستون مربوط به نتایج را تغییر دهید، باید از دستور AS به شکل زیر استفاده کنید.

SELECT expression AS column_alias;

البته استفاده از عبارت AS اختیاری است. یعنی اگر آن را به کار نبرید هم دستور SELECT در MySQL متوجه منظور شما می شود.

SELECT expression column_alias;

به عنوان مثال همان تابع ()CONCAT را می‌توان این‌گونه استفاده کرد.

SELECT CONCAT('John',' ','Doe') AS name;

در نتیجه خروجی کار به شکل زیر تغییر می‌کند.

+----------+
| name     |
+----------+
| John Doe |
+----------+
1 row in set (0.00 sec)

البته توجه کنید که اگر نام دلخواه شما نیاز به فاصله بین کلمات داشته باشد، باید کل آن را درون نشان نقل قول به شکل زیر قرار دهید.

SELECT CONCAT('Jane',' ','Doe') AS 'veryLong name';

خروجی مربوطه به شکل زیر خواهد بود.

+---------------+
| veryLong name |
+---------------+
| John Doe      |
+---------------+
1 row in set (0.00 sec)

استفاده از دستور SELECT FROM در MySQL

تاکنون در خصوص دستور SELECT در MySQL مطالبی را آموختید. این دستور را می توان به کمک عبارت FROM نیز به کار برد. به کمک این عبارت شما می‌توانید با جدول‌های موجود در پایگاه داده خود تعامل داشته باشید. ساختار کلی دستور SELECT FROM در MySQL به شکل زیر است.

SELECT select_list
FROM table_name;

در این ساختار کلی در بخش select_list شما نام ستون یا ستون‌هایی از جدول موردنظر را تعیین می‌کنید. اگر تعداد ستون‌ها بیشتر از یک مورد باشد آن‌ها را با علامت کاما ( , ) از یکدیگر جدا کنید. بعد از آن در قسمت table_name نام خود جدولی را که می‌خواهید داده‌ها از آن‌ها انتخاب شوند، ذکر می‌کنید.

اگر تنها از یک دستور استفاده می‌کنید، استفاده از علامت سمی‌کالون ( ; ) در انتهای دستور اختیاری است. اما اگر چندین دستور را می‌خواهید پشت سر هم بنویسید و به یکباره اجرا کنید، این علامت باید به‌کار رود تا MySQL متوجه پایان هر دستور بشود.

نکته دیگری که باید ذکر کنیم آن است که عبارت‌های SELECT و FROM از عبارت‌های کلیدی4keywords مربوط به MySQL و زبان SQL هستند. بر طبق قرارداد این کلمات کلیدی با حروف بزرگ لاتین نوشته می‌شوند. البته این مسئله تأثیری در اجرای کدها ندارد و الزامی نیست. یعنی می‌توانید به شکل زیر نیز دستور قبل را به کار ببرید.

select select_list
from table_name;

مثال استفاده از دستور SELECT FROM

مشابه دستور SELECT در MySQL در اینجا نیز با ذکر مثالی نحوه استفاده از دستور SELECT FROM را بیان می‌کنیم.
به عنوان مثال فرض کنید که در پایگاه داده خود، جدولی به نام employees برای ثبت اطلاعات کارمندان ایجاد کرده‌اید. جدول فرضی ما 8 ستون داشته و از تعداد زیادی سطر تشکیل شده است.

تصویر جدول مربوط به مثال دستور SELECT در MySQL

از دستور SELECT FROM می‌توانید به شکل زیر استفاده کنید تا نام خانوادگی تمامی کارمندان را برای شما خروجی بگیرد.

SELECT lastName
FROM employees;

خروجی دستور فوق به شکل زیر خواهد بود.

+-----------+
| lastName  |
+-----------+
| Murphy    |
| Patterson |
| Firrelli  |
| Patterson |
| Bondur    |
| Bow       |
| Jennings  |
...

اگر بخواهید اطلاعات چندین ستون را از جدول خروجی بگیرید، شکل دستور به صورت زیر خواهد بود.

SELECT 
   lastName, 
   firstName, 
   jobTitle
FROM
   employees;

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

+-----------+-----------+----------------------+
| lastname  | firstname | jobtitle             |
+-----------+-----------+----------------------+
| Murphy    | Diane     | President            |
| Patterson | Mary      | VP Sales             |
| Firrelli  | Jeff      | VP Marketing         |
| Patterson | William   | Sales Manager (APAC) |
| Bondur    | Gerard    | Sale Manager (EMEA)  |
...

اگر بخواهید تمامی ستون‌ها را لحاظ کنید و اطلاعات همه آن‌ها را استخراج کنید، یا باید تک تک ستون‌ها را در دستور SELECT FROM ذکر کنید،

SELECT employeeNumber,
       lastName,
       firstName,
       extension,
       email,
       officeCode,
       reportsTo,
       jobTitle
FROM   employees; 

یا آنکه از علامت * (ستاره) بعد از SELECT به شکل زیر استفاده کنید.

SELECT * 
FROM employees;

جمع‌بندی

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

پاورقی:

  • 1
    string functions
  • 2
    date functions
  • 3
    math functions
  • 4
    keywords
در صورتی که از خواندن مقاله فوق لذت برده‌اید، احتمالا مطالب کتاب های زیر نیز می تواند برای شما مفید باشد. توصیه لرن بلاگ آن است که چنین کتاب هایی را تهیه کرده یا در صورت وجود نسخه آنلاین، به مطالعه آنلاین آنها بپردازید: