عبارت‌ های SELECT و WHERE در زبان SQL — راهنمای جامع

۳۰۷ بازدید
آخرین به‌روزرسانی: ۲۱ خرداد ۱۴۰۳
زمان مطالعه: ۳ دقیقه
عبارت‌ های SELECT و WHERE در زبان SQL — راهنمای جامع

SQL یا «زبان کوئری‌های ساخت‌یافته» یکی از مهم‌ترین ابزارهای برقراری ارتباط با پایگاه‌های داده رابطه‌ای محسوب می‌شود. در این زبان دستورات مختلفی برای برقراری این ارتباط وجود دارد که در این نوشته ابتدایی‌ترین موارد یعنی عبارت‌های SELECT و WHERE در SQL را با هم بررسی خواهیم کرد:

997696

عبارت SELECT

عبارت SELECT احتمالاً یکی از دستورهایی است که بیشترین استفاده را در SQL دارد. وظیفه این عبارت، بازیابی داده‌ها از پایگاه داده است. در ادامه نمونه‌ای از یک عبارت SELECT ساده ارائه شده است:

SELECT * FROM Individual;

این عبارت SQL تلاش می‌کند تا همه ستون‌ها را از جدولی که individual نام دارد، استخراج کند. شاید از خود بپرسید ما از کجا می‌دانیم که این عبارت قصد دارد همه ستون‌ها را انتخاب کند؟ پاسخ این است که چون از ستاره (*) استفاده شده است. این یک روش سریع برای انتخاب همه ستون‌ها است و بسیار ساده‌تر از نوشتن نام تک‌تک ستون‌ها است. به خصوص در مواردی که تعداد زیادی ستون وجود داشته باشد، در سهولت امر بسیار کمک می‌کند.

البته این عبارت SELECT در SQL فرض می‌کند که جدولی به نام Individual وجود دارد. اگر چنین جدولی در پایگاه داده نباشد، یک خطا تولید خواهد شد. در ادامه جدولی که این عبارت می‌خواهد داده‌هایش را بازیابی کند ارائه شده است:

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

انتخاب از چندین جدول

شما می‌توانید هر بار از بیش از یک جدول انتخاب کنید. بدین منظور کافی است نام هر جدول را با کاما از هم جدا کنید. همچنین می‌توانید هر ارجاعی به ستون‌ها را با قرار دادن نام جدول در ابتدای آن که با یک نقطه از آن جدا می‌شود تعیین نمایید. فرض کنید ما جدول دیگری به نام Occupation به صورت زیر داریم که شامل شغل افراد است.

عبارت SQL

قصد داریم مواردی را از هر دو جدول Individual و Occupation انتخاب کنیم. نام هر ستون را با قرار دادن پیشوند نام جدول و یک نقطه در ابتدای آن مشخص می‌سازیم.

select * from Individual, Occupation

where Individual.FirstName = 'Homer';
SELECT * FROM Individual, Occupation

WHERE Individual.FirstName = 'Homer';

نتیجه

نمایش ستون‌های کمتر

اگر لازم نباشد که همه ستون‌ها نمایش یابند، می‌توانید تنها ستون‌هایی را که به آن‌ها نیاز دارید جدا کرده و نمایش دهید. این یک رویه برنامه‌نویسی خوب محسوب می‌شود، چون هر چه ستون‌هایی که برنامه‌تان باز می‌گرداند کمتر باشد، تأثیر منفی کمتری بر روی عملکرد برنامه می‌گذارد.

برای این که تنها آن ستون‌هایی که نیاز داریم نمایش یابند، کافی است به جای کاراکتر ستاره (*) فهرستی از نام ستون‌ها که با کاما از هم جدا شده‌اند قرار دهیم.

عبارت SQL

SELECT IndividualId, LastName, UserName FROM Individual

WHERE FirstName = 'Homer';

نتیجه

عبارت WHERE در SQL

بند (یا clause) به نام WHERE امکان محدود ساختن نتایج جستجو به مواردی که مطلوب ما هستند را فراهم می‌سازد. در بخش قبلی از عبارت SELECT در SQL برای بازیابی همه رکوردها از یک جدول پایگاه داده استفاده کردیم. این وضعیت در صورتی که بخواهیم همه رکوردها را ببینیم مطلوب است؛ اما چه می‌شود اگر تنها به برخی رکوردها علاقه‌مند باشیم؟ برای مثال چه می‌شود، اگر بخواهیم تنها آن افرادی را که نامشان Homer است از جدول استخراج کنیم؟

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

ساختار WHERE در SQL

ساختار یک دستور SQL که در آن از بند WHERE استفاده می‌شود به صورت زیر است:

SELECT * FROM table_name

WHERE column_name = 'criteria';

به عنوان مثال برای این که بخواهیم همه افرادی که نامشان Homer است از جدول Individual استخراج کنیم، باید از عبارت زیر کمک بگیریم:

SELECT * FROM Individual

WHERE FirstName = 'Homer';

جدول به صورت زیر است:

نتیجه اجرای کوئری فوق به صورت زیر بازگشت داده می‌شود:

شروط چندگانه

شما می‌توانید رکوردهای مختلف را به وسیله عملگرهایی بر اساس بیش از یک شرط فیلتر کنید. دو عملگر رایج‌تر به صورت AND و OR هستند.

عملگر AND

این عملگر کوئری را طوری فیلتر می‌کند که رکوردهایی بازگشت یابند که هر دو شرط اتصال یافته با AND را داشته باشند.

SELECT * FROM Individual

WHERE FirstName = 'Homer'

AND LastName = 'Brown';

نتیجه

عملگر OR

این عملگر کوئری را طوری فیلتر می‌کند تا تنها رکوردهایی باقی بمانند که یکی از دو شرطی که OR به هم متصل کرده است برقرار باشند.

SELECT * FROM Individual

WHERE FirstName = 'Homer'

OR LastName = 'Ozzbourne';

اگر به این نوشته علاقه‌مند بودید، پیشنهاد می‌کنیم مواد زیر را نیز ملاحظه کنید:

==

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
quackitquackit
نظر شما چیست؟

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