کد خبر : 3156 تاریخ انتشار : شنبه 3 اکتبر 2009 - 15:34

آموزش sql server – جلسه چهارم

Rate this post

4

سلام. خدمت دوستان عزيز بايد بگم كه در اين جلسه از آموزشمون قراره پركاربرد ترين و مهمترين دستورات 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.كد كالا هايي كه بيش از يك بار فروخته شده است.

موفق باشيد

دسته بندی : آموزش ، برنامه نویسی
برچسب ها :
دیدگاهتان را بنویسید

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

mani در تاریخ 9 اکتبر 2009 گفته : پاسخ دهید

دوست عزیز قالب لینک باکس تراک وقتی دانلود میشود داخل فایل تکس هیچ کدی نیست

طيبه در تاریخ 7 اکتبر 2009 گفته : پاسخ دهید

سلام خيلي خيلي عالي بود ببخشيد دير به دير سر مي زنم
سربلند باشيد

انسیه برمر در تاریخ 9 اکتبر 2009 گفته :

سلام طيبه جون
مرسي گلم.نمي گي دل ما تنگ ميشه .يه سر به من بزن عزيز
موفق باشي

ابراهیم در تاریخ 6 اکتبر 2009 گفته : پاسخ دهید

با تشکر از آموزش های خوبتون اگه می تونید آموزش کامل SQL رابه ایمیل بنده بفرستید

محمدرضا بقائی در تاریخ 6 اکتبر 2009 گفته : پاسخ دهید

چی شد جناب مسعود خان

امين در تاریخ 4 اکتبر 2009 گفته : پاسخ دهید

سلام وب سايتتون واقعا عاليه و مطالب خوبي داره اگه امكان داره لطفا با ما تبادل لينك كنين
عنوان لينك:دانلود ابزار طراحي وب
آدرس:www.amitismarket.com
اگه قبول كنين واقعا ممنون ميشم

بهمن قنبری در تاریخ 3 اکتبر 2009 گفته : پاسخ دهید

با سپاس فراوان از شما به خاطر مطالب بسیار مفید و آموزنده و آرزوی موفقیت شما.

در صورت امکان لینک وبلاگ من را در پیوند وبلاگتان به اسم “سیستم های مدار بسته ” قرار دهید.
با تشکر از شما
گروه فنی و مهندسی بهمن