
سلام. خدمت دوستان عزيز بايد بگم كه در اين جلسه از آموزشمون قراره پركاربرد ترين و مهمترين دستورات SQL را آموزش بدهم.پس سعي كنيد خوب ياد بگيريد( البته مثل هميشه همراه با مثال و تمرين )
انواع Query يا پرس وجو
1.پرس و جوي عمومي (انتخاب همه اطلاعات جدول)
نام جدول select * from
مثال:
select * from student
تمامي ركورد هاي جدول دانش اموز را نمايش مي دهد.
2.پرس و جوي فيلد هاي خاصي از جدول
نام جدول from …,نام فيلد2 , نام فيلد1 select
3.انتخاب فيلد هاي خاص و نمايش آنها با نام هاي جديد در خروجي
نام جدول from …, ‘نام جديد براي فيلداول ‘ as نام فيلد1 select
4.مرتب سازي پرس وجو
نام فيلد orther by نام جدول from نام فيلد ها select
پرس جو براساس نام فيلدي كه در جلوي orther by نوشته شده است مرتب مي شود.
5.استفاده از عملگر هاي منطقي در شرط نمايش orther by
شرط 2 (and/or/not ) شرط1 where نام فيلد orther by نام جدول select * from
6.نمايش query با حذف مقادير تكراري
…. نام جدول from …, نام فيلد select distinct
7.استفاده از litrall يا رشته همراه با پرس وجو
…. نام جدول from …. , نام فيلد 1, ‘ select ‘litrall1
8. استفاده از عملگر like
توسط عملگر like مي توانيم يك الگو يا شكل كلي براي ارزيابي مقاديري كه مي خواهيم تعريف كنيم كه در صورت مطابقت با الگو نمايش داده شوند.
‘الگو’ where like [نام فيلد orther by] نام جدول select * from
9.استفاده از gruop by
هرگاه بخواهيم نتيجه نمايش پرس وجو بر اساس يك فيلد دسته بندي شود نام آن را در جلوي عبارت gruop by مي نويسيم. توجه كنيد نام فيلد جلوي gruop by حتما بايد در جلوي دستورselect نوشته شود ودر صورت استفاده از فيلد هاي ديگر بايد از توابع جمعي استفاده كنيم.
نكته:هميشه و هميشه هنگامي كه از توابع جمعي استفاده مي كنيم حتما بايد از كلمه gruop by استفاده شود.
توابع جمعي:
()sum: جمع
()avg: ميانگين
() max: پيدا كردن بزرگترين مقدار
()min: پيدا كردن كوچكترين مقدار
() cuont: شمارش تعداد
نام فيلد group by نام جدول select * from
مثال:
جمع نمرات هر دانش آموز با سن بالاي 15 (دسته بندي بر اساس نام و فاميل)
select std_name , std_family,sum(grade) from student
where age>15 gruop by std_name,std_family
10.استفاده از group by اعمال شرط having بر روي آن
براي شرط دسته بندي ركورد ها استفاده مي شود. عبارت having شرط نمايش مقادير دسته ها را مشخص مي كند و بعد از دسته بندي شدن اعمال مي شود ولي شرط جلوي where روي تمامي ركورد ها و قبل از دسته بندي شدن اعمال مي شود.
شرط having نام فيلد group by نام جدول select * from
مثال:
جمع نمرات دانش اموزاني بالاي 15 سال كه جمع نمرا ت آنها از 16 بيشتر شده است .
select std_name , std_family,sum(grade) from student
where age>15 gruop by std_name,std_family having sum(*)>16
نكته : معمولا having هرشرطي را با توابع جمعي بيان مي كند در غير اين صورت فقط مي توان در شرط از نام فيلدي استفاده كرد كه در جلوي عبارت group by نوشته شده است.
11.استفاده ا ز عملگر in
جهت تعيين شرط با محدوده اي از مقادير(عمليات in شبيه عملگر or مي باشد)
(‘رشته 3′,’رشته 2′,’رشته 1’) in نام فيلد where نام جدول select * from
12.استفاده از عملگر top:
هرگاه بخواهيم حداكثر تعداد ركورد هاي نمايشي را در خروجي نمايش دهيم از اين عملگر استفاده مي كنيم.
select top 5 grade from student
5نمره اول جدول دانش آموز را برمي گرداند.
تذكر:براي نمايش درصدري از ركورد ها در خروجي بعد از كلمه top ابتدا عدد و سپس كلمه percent را مي نويسم .
select top 5 percent grade from student
5درصد اول نمرات جدول دانش آموز را برمي گرداند.
13.براي بررسي مقادير فيلد ها با مقدار null در شرط نمايش ركورد ها
is null/is not null نام فيلد where نام جدول select * from
14.استفاده از عبارت comput by:
توسط اين عبارت يك عمليات را روي ركورد هاي دسته بند ي شده توسط توابع جمعي انجام مي دهيم.هنگام استفاده از اين عملگر حتما بايد عبارت orther by را نوشته و فيلد جلوي comput حتمابايد جلوي orther آمده باشد.
شرط where نام جدول select * from
نام فيلد orther by
نام فيلد دسته بندي شده by توابع جمعي compute
تفاوت gruop by و comput by :
comput نتيجه عمليات روي ركورد هاي دسته بندي شده را به صورت تفكيك شده نمايش مي دهد.
15.استفاده از عبارت into:
نتيجه پرس وجو در يك جدول موقت ذخيره ميشود كه نام آن جدول حتما بايد ذكر شود.نشانه يك جدول موقت عبارت# مي باشد.جدول موقت مي تواند توسط دستور select مقادير خود را نمايش دهد.
…. نام جدول اصلي from نام جدول موقت select * into
ايجاد جستجوي هاي فرعي :
هر گاه قسمت where يك دستور select با يكي از عملگر هاي زير select ديگري را بنويسيم يك پرس و جو يفرعي ايجاد كرده ايم.
in: بررسي وجود مقادير يك فيلد در يك مجموعه جواب كه خروجي select فرعي است.
(دستورات پرس و جوي فرعي ) inنام فيلد where نام جدول select * from
any: مقادير يك فيلد توسط عملگر “=” با مقدار جواب select داخلي مقايسه مي شود.
(دستورات پرس و جوي فرعي )= نام فيلد where نام جدول select * from
all:مقادير يك فيلد توسط عملگرهاي “=<>” با مقدار جواب select داخلي مقايسه مي شود.
(دستورات پرس و جوي فرعي ) =/</> نام فيلد where نام جدول select * from
exists/not exists:وجود مقادير يك فيلد يا عدم وجود آن كه بامقدار جواب select داخلي مقايسه مي شود.
(دستورات پرس و جوي فرعي ) exists/not exists نام فيلد where نام جدول select * from
مثال:
ابتدا جداول زير را بسازيد.
جدول فروشنده(saller):
با فيلد هاي:saller_ name,saller _num
جدول محصولات(product):
با فيلد هاي:pro_ name,pro _num
جدول فروش(salle):
با فيلد هاي:saller_ num,pro _num,number
1.نام فروشندگاني كه يكي از كالاهايي كه احمدي فروخته است را فروخته اند نمايش داده شود.
پاسخ:
باتوجه به اين كه اطلاعات در دو جدول جداگانه ذخيره شده بايد از پرس و جوي هاي فرعي استفاده كنيم.
select saller_name from saller
where saller.saller_num=salle.saller num
(اين دستور ارتباط بين جداول را ابتدا چك مي كند)
and pro _num in
select pro_num from salle )
where saller.saller_num=salle.saller num and
(‘saller_name=’ahmadi
و در آخر سعي كنيد اين دو تمرين را حل كنيد تا در جلسه بعد پاسخ خودتون و پاسخ من روباهم مقايسه كنيم.
2.نام فروشندگاني كه هيچ كالاي نفروخته اند نمايش داده شود.
3.كد كالا هايي كه بيش از يك بار فروخته شده است.
موفق باشيد
دوست عزیز قالب لینک باکس تراک وقتی دانلود میشود داخل فایل تکس هیچ کدی نیست
سلام خيلي خيلي عالي بود ببخشيد دير به دير سر مي زنم
سربلند باشيد
سلام طيبه جون
مرسي گلم.نمي گي دل ما تنگ ميشه .يه سر به من بزن عزيز
موفق باشي
با تشکر از آموزش های خوبتون اگه می تونید آموزش کامل SQL رابه ایمیل بنده بفرستید
چی شد جناب مسعود خان
سلام وب سايتتون واقعا عاليه و مطالب خوبي داره اگه امكان داره لطفا با ما تبادل لينك كنين
عنوان لينك:دانلود ابزار طراحي وب
آدرس:www.amitismarket.com
اگه قبول كنين واقعا ممنون ميشم
با سپاس فراوان از شما به خاطر مطالب بسیار مفید و آموزنده و آرزوی موفقیت شما.
در صورت امکان لینک وبلاگ من را در پیوند وبلاگتان به اسم “سیستم های مدار بسته ” قرار دهید.
با تشکر از شما
گروه فنی و مهندسی بهمن