آموزش SQL؛ بخش چهارم - دستور Select برای بازیابی اطلاعات را در بخش چهارم این آموزش ببینید.
در بخش اول آموزش SQL با مفهوم کلی پایگاه داده، بانک اطلاعاتی رابطهای و مفاهیم و تعریفهای اولیه آشنا شدیم. در بخش دوم آموزش SQL هم نحوه ایجاد بانک اطلاعاتی و ایجاد جداول را با هم آموختیم. در بخش سوم آموزش SQL نحوه ورود اطلاعات به پایگاه داده با استفاده از دستور INSERT را آموزش دادیم و حالا در بخش چهارم میخواهیم به سراغ مهمترین و کاربردیترین دستور، یعنی دستور SELECT برویم. با سری آموزش SQL همراه فیسیت باشید.
مهمترین دستور SQL؛ دستور SELECT
تا به این جا از دادههای بانک اطلاعات استفادهای نکردیم بلکه تنها آنها ایجاد کردیم. دستور SELECT اما برای بازیابی هر اطلاعات خاصی از بانک اطلاعاتی است. فرم کلی دستور SELECT به صورت زیر است.
SELECT [DISTINCT] field_name [WHERE condition] [GROUP BY field_name] [HAVING condition] [ORDER BY field_name];
DISTINCT: ستونهای تکراری را از جدول جواب حذف میکند، در حالت عادی این سطرهای تکراری هم نمایش داده میشوند
[]: عباراتی که درون علامت براکت قرار گرفتهاند الزامی نیستند و برخی کوییریها به این بخشها نیازی ندارند
WHERE: هر گاه بخواهید روی ستونها جدول جواب شرطی بگذارید، آن را جلو WHERE قرار میدهیم.
GROUP BY: این بخش گروه بندی روی یک عنصر را به عهده دارد، مثلا وقتی بخواهید شمار قطعاتی (QTY) که از هر قطعه تهیه شده است را حساب کنید از این دستور استفاده میکنید.
HAVING: این بخش در صورت وجود عبارت GROUP BY میتواند در کوییری ظاهر شود و دقیقا حکم WHERE را دارد.
ORDER BY: این عبارت برای مرتب کردن جدول جواب بر اساس یک یا چند تا از ستونها به کار میرود.
نکته: شاید بخواهید همه ستونهای یک جدول را در جدول جواب بیاورید، در این شرایط لازم نیست که همه فیلدها را عنوان کنید بلکه کافی است تا علامت * را به جای همه فیلدها بنویسید.
عملی SQL را یاد بگیریم
تا به این جا به صورت کامل با دستور SELECT آشنا شدید. حالا بیایید یک پرس و جوی ساده را با هم بنویسیم. با فیسیت همراه باشید.
پرس و جوی 1: شماره همه تولید کنندگانی که قطعه P2 را تولید کردهاند و تعداد تولیدشان از این قطعه بیشتر از 200 عدد است را بدست آورید.
شماره تولیدکنندگان تنها فیلدی است که در جدول جواب باید وجود داشته باشد بنابراین به S_NUM نیاز داریم. از سوی دیگر شماره قطعات یعنی P_NUM هم لازم است. از سوی دیگر باید تعداد قطعات را هم داشته باشیم پس به QTY هم نیاز داریم. پس عملا تنها جدول SP برای این پرس و جو کافی است.
شرط این پرس و جو مرکب است، یعنی P_NUM برابر با P2 باشد و تعداد آن هم بالای 200 باشد. در کل این کوییری به صورت زیر خواهد بود:
select S_NUM from SP where P_NUM=”P2” and QTY>200;
پرس و جوی 2: شماره قطعه تمام قطعاتی که توسط بیش از یک تهیه کننده، تهیه شدهاند را پیدا کنید.
در جدول جواب تنها فیلد شماره قطعه، یعنی P_NUM ظاهر میشود. برای نوشتن این کوییری اما به تهیه کنندهها هم نیاز داریم و البته این که بفهمیم یک قطعه چند تهیه کننده داشت باشد.بنابراین باید اطلاعات را بر اساس P# گروه بندی کنیم. سپس روی P# شرط بگذاریم که تعدادش بیشتر از 1 باشد، یعنی بیشتر از تهیه کننده آن را تولید کرده باشد.
همه این اطلاعات در جدول SP موجود است اما برای این دست کوییریها باید از توابع تجمعی استفاده کنیم. یکی از توابع COUNT است که ما به آن نیاز داریم که تعداد سطرهایی که روی آن گروه بندی شده است را میشمارد.
Select P# from SP Group By P# Having Count(*) >1;
ما را در شبکههای اجتماعی مختلف تلگرام، توییتر، اینستاگرام، سروش همراهی کنید.
منبع خبر: فیسیت
ثبت نظر