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


SQL یا «زبان کوئریهای ساختیافته» یکی از مهمترین ابزارهای برقراری ارتباط با پایگاههای داده رابطهای محسوب میشود. در این زبان دستورات مختلفی برای برقراری این ارتباط وجود دارد که در این نوشته ابتداییترین موارد یعنی عبارتهای SELECT و WHERE در SQL را با هم بررسی خواهیم کرد:
عبارت 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';
اگر به این نوشته علاقهمند بودید، پیشنهاد میکنیم مواد زیر را نیز ملاحظه کنید:
- معرفی زبان SQL — راهنمای جامع
- آموزش کار با دستورات پایگاه داده در SQL Server
- ۱۳ دستور SQL مهم که هر برنامهنویسی باید بداند
- مجموعه آموزشهای مهندسی نرم افزار
- پایگاه داده و سیستم های مدیریت اطلاعات
- آموزش آشنایی با دستورات اصلی SQL در اندروید
- اتصال رشتهها در SQL و روشهای استفاده هوشمند از آن
- آموزش SQL Server Management Studio | کامل، رایگان و گام به گام
==