[h=2]مقدمه SQL[/h] معرفی زبان SQL : - SQL مخفف عبارت Structured Query Language ( زبان جستجويي ساخت يافته ) است و به کاربر امکان اتصال و دسترسی یه اطلاعات موجود در يک پايگاه داده را می دهد . - زبان SQL قادر است تا برای يک پايگاه داده عمل جستجو و گزينش اطلاعات را انجام دهد و همچنين اطلاعات ذخيره شده در يک پايگاه داده را بازيابی ، حذف ، ذخيره ، اضافه و يا به روز کند . - زبان SQL يک استاندارد بين المللی است . [HR][/HR] نکات مهم : زبان SQL يک زبان برنامه نويسی و يا ايجاد بانک های اطلاعاتی به طور کامل نيست . بلکه برای دسترسی و ويرايش بانک های اطلاعاتی مورد استفاده قرار می گيرد . شما بايد قبلا پايگاه داده خود را ايجاد کرده باشيد و از SQL برای تغيير ساختار آن استفاده کنيد . قبل از استفاد از دستورات SQL ، بايد با ساختار و معماری پايگاه داده ها آشنايي کافی را داشته و بتوانيد در يک محيط مستقل مثل Access يا SQL Server يگ پايگاه داده را طراحی کرده و سپس با دستورات SQL ، به کنترل ، تغيير و استخراج اطلاعات از پايگاه داده مذکور نماييد . ما در قسمت آموزش SQL فقط به معرفی دستورات SQL پرداخته و با معماری و طراحی پايگاه داده ها کاری نداشته و فقط برخی از اصطلاحات و اجزاي مورد استفاده در سيستم های پايگاه داده ای را معرفی و به اختصار شرح می دهيم . [HR][/HR] راهنمايي ها : در صحفحات آموزش SQL از جدول های فرضی برای تامين اطلاعات جهت مثال های آموزشی استفاده کرده ايم که حکم يک پايگاه داده را داشته که ما به ويرايش و استخراج اطلاعات آن دست می زنيم . اسامی مورد استفاده در اين جدول ها کاملا فرضی هستند . در صفحات آموزش SQL پس از معرفی و آموزش هر دستور خاص سعی شده است تا با ارائه مثال نکات مختلف را در عمل نمايش دهيم . برای اين منظور از جدول هايي به نام Example استفاده کرده ايم . اين جداول دارای 2 بخش هسنتد . در بخش اول به نام کد ، کد واقعی مورد نياز برای اجرای دستور هدف در محيط SQL قرار داده شده و در بخش دوم به نام خروجی ، خروجی واقعی حاصل از آن دستور ارائه شده است . تمام مثال های قسمت آموزش SQL توسط نرم افزارهای Microsoft Access و SQL Server 2005 تست شده اند .
پاسخ : # آموزش زبان SQL [h=2]مقدمه SQL[/h] ساختار و اجزای مهم مورد استفاده در زبان SQL : 1 ) Table : جداول مهمترين عناصر سيستم های پايگاه داده هستند ، که برای ذخيره و نگهداری سازمان يافته اطلاعات مورد استفاده قرار می گيرند . Table ها دارای سطر و ستون هستند و توسط يک نام منحصر به فرد در سطح برنامه شناسايي می شوند . به سطرهاي يک جدول رکورد ( Record ) و به هر يک از خانه های ستون يک جدول فيلد ( Field ) می گويند . هر رکورد محجموعه ای از اطلاعات طبقه بندی شده درباره يک موجوديت خاص است و هر فيلد يکی از خصوصيات آن موجوديت را به همراه مقدار آن مشخص می کند . موجوديت پديده ، شی يا فردی در محيط پايگاه داده است که می خواهيم اطلاعات مربوط به آن را نگهداری کنيم . مثال : به طور مثال در محيط پايگاه داده دانشگاه ، انواع موجوديت ها عبارتند از : دانشجو ، درس ، استاد ، دانشکده و ... . هر فيلد در بر گيرنده يک صفت و ويژگی برای موجوديت می باشد ، که دارای 2 جزء اصلی است : اسم صفت خاصه : نام صفت مورد نظر را تعيين می کند . برای مثال فيلد نام ، نام خانوادگی ، شماره دانشجويي و ... در جدول اطلاعات مربوط به دانشجو . مقدار صفت خاصه : در برگيرنده مقدار برای صفت مورد نظر است . برای مثال مقدار " احمد " به عنوان مقدار برای فيلد نام . [HR][/HR] 2 ) Query : از Query برای ايجاد يک پرسش و جستجو در جدول و استخراج اطلاعات مورد نظر استفاده می شود . نتايج حاصل از يک Query در يک جدول موقت که دارای فيلد ها و سطر های واجد شرايط جستجو است ، نمايش داده می شود . مثال : به عنوان مثال می خواهيم ، مشخصات دانشجويانی که در ترم دوم سال تحصيلی 85 - 86 موفق به گذارندن درس پايگاه داده شده اند را از جدول دانشجويان استخراج کنيم . برای اين منظور از يک Query استفاده می کنيم . عمده دستورات SQL برای ايجاد و مديريت Query استفاده می شوند . در مباحث بعدی کار با يک Query را بررسی می کنيم . [HR][/HR] 3 ) SQL Data Manipulation Language ( DML )a زبان دستکاری اطلاعات SQL : اين بخش از دستورات SQL ، شامل دستوراتی برای به روز کردن ، ورود اطلاعات و يا حذف رکوردها در محيط پايگاه داده است . عمده دستئرات اين بخش عبارتند از : Select : برای استخراج اطلاعات از يک جدول بانک اطلاعاتی مورد استفاده قرار می گيرد . Update : برای به روز کردن اطلاعات يک جدول بانک اطلاعاتی مورد استفاده قرار می گيرد . Delete : برای حذف اطلاعات از يک جدول بانک اطلاعاتی مورد استفاده قرار می گيرد . Insert : برای ورود اطلاعات به يک جدول بانک اطلاعاتی مورد استفاده قرار می گيرد . [HR][/HR] 4 ) SQL Data Definition Language ( DDL )a زبان تعريف اطلاعات SQL : اين قسمت شامل دستورات زبان SQL برای ايجاد يا حذف جداول از بانک اطلاعاتی مورد استفاده قرار می گيرد . از اين قسمت همچنين می توان برای تعريف انديس ها ، کليد واژه ها ، ايجاد ارتباط و پيوند بين جدول ها و يا ايجاد محدوديت های دسترسی استفاده می شود . عمده دستورات اين بخش عبارتند از : Create Table : برای ايجاد يک جدول جديد به کار می رود . Alter Table : برای تغيير اطلاعات موجود در يک جدول به کار می رود . Drop Table : برای حذف يک يا چند جدول از بانک اطلاعاتی به کار می رود . [SUP]*[/SUP] Create Index : برای ايجاد انديس يا کليد واژه در يک جدول به کار می رود . [SUP]*[/SUP] Drop Index : برای حذف انديس يا کليد واژه در يک جدول به کار می رود . [SUP]*[/SUP] تعريف انديس Index : انديس عبارتست از يک شماره که به هر يک از فيلدها در سطرهای يک جدول اختصاص داده می شود . انديس ها در پشت پرده جداول ايجاد شده و از ديد کاربر کاملا مخفی هستند . استفاده از انديس ها باعث می شود تا برنامه بتواند مقادير سطرهای مختلف را بر حسب مقدار يک فيلد و بر حسب شماره انديس آنها از کم به زياد يا بر عکس مرتب کند و در عمليات جستجو باعث بالا رفتن سرعت جستجو می شود .
پاسخ : # آموزش زبان SQL [h=2]دستورات مقدماتی SQL[/h] دستور Select : دستور Select برای انتخاب و استخراج اطلاعات مورد نظر از يک يا چند جدول و سپس مشاهده نتايج در يک جدول موقت استفاده می شود . شکل کلی اين دستور به شکل زير است : Select نام ستون يا ستون های مورد نظر From نام جدول مثال : به طور مثال فقط می خواهيم ستون های Name و Family را از جدول Student ، مشاهده کنيم : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [/TABLE] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال[/TD] [/TR] [TR] [TD="class: body"] Select Name , Family From Student[/TD] [TD="class: header"] کد[/TD] [/TR] [TR] [TD="class: body"] [TABLE="class: ex, width: 250"] [TR] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [/TR] [TR] [TD="class: body"] Ahamd[/TD] [TD="class: body"] Rezaee[/TD] [/TR] [TR] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [/TR] [TR] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hoseini[/TD] [/TR] [TR] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی[/TD] [/TR] [/TABLE] نکته : برای انتخاب کليه ستون های جدول می توان از نشانگر * در قسمت نام ستون استفاده کرد . در اين صورت تمامی ستون های جدول در خروجی نمايش داده خواهند شد : Select * From Students واژه کليدی DISTINCT : چنانچه در ستون های مورد جستجو ، موارد تکراری وجود داشته باشد در نتيجه خروجی نمايش داده خواهند شد . برای جلوگيری از چنين موردی و عدم نمايش موارد تکراری پس از دستور Select عبارت DISTINCT نوشته می شود : [TABLE="class: ex, width: 250"] [TR] [TD="class: header, colspan: 2"] Orders Table[/TD] [/TR] [TR] [TD="class: header"] Company[/TD] [TD="class: header"] Order Number[/TD] [/TR] [TR] [TD="class: body"] Dell[/TD] [TD="class: body"] 1012[/TD] [/TR] [TR] [TD="class: body"] Sega[/TD] [TD="class: body"] 1014[/TD] [/TR] [TR] [TD="class: body"] Dell[/TD] [TD="class: body"] 1016[/TD] [/TR] [TR] [TD="class: body"] Sony[/TD] [TD="class: body"] 1018[/TD] [/TR] [/TABLE] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال[/TD] [/TR] [TR] [TD="class: header"] کد[/TD] [TD="class: header"] خروجی[/TD] [/TR] [TR] [TD="class: body"] Select DISTINCT Company From Orders[/TD] [TD="class: body"] [TABLE="class: ex, width: 100"] [TR] [TD="class: header"] Company[/TD] [/TR] [TR] [TD="class: body"] Dell[/TD] [/TR] [TR] [TD="class: body"] Sega[/TD] [/TR] [TR] [TD="class: body"] Sony[/TD] [/TR] [/TABLE] [/TD] [/TR] [TR] [TD="class: body"] Select Company From Orders [/TD] [TD="class: body"] [TABLE="class: ex, width: 100"] [TR] [TD="class: header"] Company[/TD] [/TR] [TR] [TD="class: body"] Dell[/TD] [/TR] [TR] [TD="class: body"] Sega[/TD] [/TR] [TR] [TD="class: body"] Dell[/TD] [/TR] [TR] [TD="class: body"] Sony [/TD] [/TR] [/TABLE] [/TD] [/TR] [/TABLE] [HR][/HR]
پاسخ : # آموزش زبان SQL [h=2]دستورات مقدماتی SQL[/h] دستور Where : دستور Where برای افزودن شرط يا شرط هايی جهت محدود کردن نتايج جستجو و استخراج نتايج دقيقتر استفاده می شود . اين ذستور بايد پس از دستور Select و تعيين ستون ها از جدول مورد نظر به کار رود . با استفاده از عملگرهای AND ، OR و پرانتز می توان چندين شرط را با هم ترکيب کرد . برنامه فقط سطرهايي از جدول را که با شرط های ارائه شده سازگاری دارند را نمايش خواهد داد . اين دستور با عملگرهای زير می تواند به کار رود : [TABLE="class: pr"] [TR] [TD="class: header"] عملگر[/TD] [TD="class: header"] مفهوم [/TD] [TD="class: header"] عملگر[/TD] [TD="class: header"] مفهوم [/TD] [/TR] [TR] [TD="class: prbody"] =[/TD] [TD="class: prbody"] برابر با - مساوی[/TD] [TD="class: prbody"] !=[/TD] [TD="class: prbody"] نا برابر با - نامساوی[/TD] [/TR] [TR] [TD="class: prbody"] >[/TD] [TD="class: prbody"] کوچکتر يا کمتر[/TD] [TD="class: prbody"] >=[/TD] [TD="class: prbody"] کوچکتر مساوی[/TD] [/TR] [TR] [TD="class: prbody"] <[/TD] [TD="class: prbody"] بزرگتر يا بيشتر[/TD] [TD="class: prbody"] <=[/TD] [TD="class: prbody"] بزرگتر مساوی[/TD] [/TR] [TR] [TD="class: prbody"] Between[/TD] [TD="class: prbody"] مابين دو مقدار[/TD] [TD="class: prbody"] Like[/TD] [TD="class: prbody"] تعيين يک قالب برای جستجو[/TD] [/TR] [/TABLE] مثال : انتخاب نام و نام خانوادگی دانشجويانی که شهر محل سکونت آنها تهران است از جدول Student به صورت زير انجام می شود : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [/TABLE] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال [/TD] [/TR] [TR] [TD="class: header"] کد[/TD] [TD="class: header"] خروجی[/TD] [/TR] [TR] [TD="class: body"] Select Name , Family From Students Where City = " Tehran " [/TD] [TD="class: body"] [TABLE="class: ex, width: 200"] [TR] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [/TR] [TR] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [/TR] [TR] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hoseini[/TD] [/TR] [TR] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [/TR] [/TABLE] [/TD] [/TR] [/TABLE] [HR][/HR] * اعمال بيش از يک شرط و ادغام شرط ها با عملگر AND . مثال : مشخصات نام و نام خانوادگی دانشجويانی که شهر آنها تهران بوده و نمره آنها بيش از پانزده است : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال [/TD] [/TR] [TR] [TD="class: header"] کد[/TD] [TD="class: header"] خروجی[/TD] [/TR] [TR] [TD="class: body"] Select Name , Family From Students Where City = " Tehran" AND Grade > 15 [/TD] [TD="class: body"] [TABLE="class: ex, width: 200"] [TR] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [/TR] [TR] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [/TR] [TR] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [/TR] [/TABLE] [/TD] [/TR] [/TABLE] نکته : در هنگام اعمال شرط جستجو ، بايد مقادير رشته ای ( متن ) بين دو علامت " " قرار گرفته ، ولی درباره موارد عددی اين کار لازم نيست . [HR][/HR] [h=2]* عبارت like :[/h] اين عبارت برای تعيين يک قالب خاص برای جستجو به کار می رود : مثال : نام دانشجويانی که شهر محل سکونت آنها با حرف K شروع می شود : Select Name From Students Where City like "K%" مثال : نام دانشجويانی که نام شهر محل سکونت آنها به an ختم می شود : Select Name From Student Where City Like "%an" مثال : نام دانشجويانی که شهر محل سکونت آنها دارای حروف st است : Select Name From Student Where City Like "%st%" مثال : نام دانشجويانی که شهر محل سکونت آنها 6 حرفی بوده و با حرف T شروع می شود : Select Name From Student Where City Like "T-----" نتيجه گيری : علامت % به معنای هر چند کاراکتر يا حرف دلخواه در قالب ارائه شده و علامت - نمايانگر يک کاراکتر دلخواه است .
پاسخ : # آموزش زبان SQL [h=2]دستورات مقدماتی SQL[/h] دستور Insert : این دستور برای وارد کردن و ايجاد يک رکورد جديد در جدول استفاده می شود . شکل کلی این دستور به شرح زير است : Insert into نام جدول Values ( مقدار 1 ، مقدار 2 ، ... ) *می توان تعيين کرد که مقادير مورد نظر به ترتيب به کدام ستون های جدول وارد شوند . برای اين منظور ابتدا نام ستون های مورد نظر را به ترتيب جلوی نام جدول در يک پرانتز وارد کرده و با کاما از هم جدا می کنيم . سپس مقادير متناظر را به همان ترتيب پس از واژه Vaues در پرانتز وارد می کنيم . نکته : چنانچه برای فيلد يا فيلدهايی مقداری در نظر گرفته نشود ، جای آنها در جدول خالی می ماند . فقط بايد به ترتيب نام ستون ها و مقادير دقت کرد . مثال : مشخصات نام و نام خانوادکی را برای يک دانشجو به نام اميد صفوی را در جدول Student وارد کنيد : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [/TABLE] - شرح دستور وارد کردن نام و وضعيت جديد جدول : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال[/TD] [/TR] [TR] [TD="class: body"] Insert into Student ( Name , Family ) Values ( "Omid" , "Safavi" ) [/TD] [TD="class: header"] کد[/TD] [/TR] [TR] [TD="class: body"] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [TR] [TD="class: body"] [/TD] [TD="class: body"] Omid[/TD] [TD="class: body"] Safavi [/TD] [TD="class: body"] [/TD] [TD="class: body"] [/TD] [TD="class: body"] [/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی[/TD] [/TR] [/TABLE]
پاسخ : # آموزش زبان SQL [h=2]دستورات مقدماتی SQL[/h] دستور Update : اين دستور برای تغيير اطلاعات موجود در يک فيلد و جايگزينی آن با يک مقدار جديد به کار می رود . شکل کلی اين دستور به صورت زير است : Update نام جدول Set نام فيلد = مقدار جديد Where نام فيلد = مقدار قبلی مثال : نام دانشجو احمد رضايي را به علی رضايي تغيير دهيد : Update Student Set Name =" Ali " Where Name = " Ahmad " - همچنين می توان برای تعيين رکوردی که می خواهيم تغيير دهيم ، از مقدار يک فيلد ديگر به غير از فيلدی که می خواهد تغيير کنيد استفاده کنيم . در اين حالت از فيلد مذکور ، برای آدرس دهی رکورد مورد نظر استفاده می شود . مثال : نام دانشجو با شماره دانشجويی 41252214 را به علی تغيير دهيد : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [/TABLE] - اعمال دستور تغيير و وضعيت جديد جدول : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال[/TD] [/TR] [TR] [TD="class: body"] Update Student Set Name = " Ali " Where StudentID = " 41252214 "[/TD] [TD="class: header"] کد[/TD] [/TR] [TR] [TD="class: body"] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ali [/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی[/TD] [/TR] [/TABLE] [HR][/HR] تغيير اطلاعات در بيش از يک فيلد در رکورد : در اين حالت تمامی مقادير جديدی که می خواهيم تغيير دهيم ، جلوی واژه کليدی Set به ترتيب نوشته و با کاما از هم جدا می کنيم . سپس به همان ترتيب ، فيلدها با مقادير قبلی را در جلوی واژه Where می نوسيم . شکل کلی آن به صورت زير ااست : Update نام جدول Set فيلد 1 = مقدار جديد 1 ، فيلد 2 = مقدار جديد 2 ، ... . Where فيلد 1 = مقدار قبلی 1 ، فيلد 2 = مقدار قبلی 2 ، ... . - همچنين می توان فقط از يک فيلد در قسمت شرط برای آدرس دهی رکورد مورد نظر استفاده کرد . مثال : نام ، نام خانوادگی و رشته تحصيلی دانشجو به شماره دانشجويي 41252214 را به ترتيب به علی ، سعيدی و نرم افزار تغيير دهيد : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [/TABLE] - اعمال دستور تغيير و وضعيت جديد جدول : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال [/TD] [/TR] [TR] [TD="class: body"] Update Student Set Name = " Ali " , Family = " Saeedi " , Major =" Soft Ware " Where StudentID = 41252214 [/TD] [TD="class: header"] کد[/TD] [/TR] [TR] [TD] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ali[/TD] [TD="class: body"] Saeedi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی[/TD] [/TR] [/TABLE]
پاسخ : # آموزش زبان SQL [h=2]دستورات اوليه SQL[/h] دستور Delete : از اين دستور برای حذف اطلاعات يک رکورد در جدول استفاده می شود . شکل کلی اين دستور به شکل زير است : Delete From نام جدول Where نام و مقدار يک فيلد از رکورد مورد نظر مثال : رکورد اطلاعات دانشجو به شماره دانشجويي 10724113 را حذف کنيد : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [/TABLE] - اعمال دستور حذف و وضعيت جديد جدول : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال[/TD] [/TR] [TR] [TD="class: body"] Delete From Students Where StudentID = "10724113 " [/TD] [TD="class: header"] کد[/TD] [/TR] [TR] [TD="class: body"] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی[/TD] [/TR] [/TABLE] [HR][/HR] [h=3]* حذف کليه رکوردهای يک جدول :[/h] اين امکان وجود دارد که بدون حذف يک جدول ، کليه رکوردهای درون آن را پاک کرد . اين به منزله خالی کردن جدول از اطلاعات است ، ولی ساختار ، انديس ها و ويژگی های جدول دست نخورده باقی مانده و فقط مقادير درون آن از بين می رود . شکل کلی اين دستور به صورت زير است : Delete From نام جدول يا Delete * From نام جدول مثال : حذف کليه رکوردهای جدول Student : Delete From Student
پاسخ : # آموزش زبان SQL [h=2]دستورات اوليه SQL[/h] دستور Order By : اطلاعات خروجی در دستور select به طور کلی بی نظم است و مقادير خروجی در ستون های جدول بر حسب مقدار هيج ستونی مرتب نيستند . اين دستور برای مرتب کردن اطلاعات جدول بر اساس مقادير يک يا چند ستون برحسب شاخص هايی مثل ترتيب حروف الفبا ، بزرگتر يا کوچکتر بودن اعداد و ... استفاده می شود . شکل کلی اين دستور به صورت زير است : Select نام فيلدهای مورد نظر From جدول مورد نظر Order By فيلد مورد نظر * فيلدهای معرفی شده در دستور Select از جدول مذکور نمايش داده شده و اطلاعات بر حسب ستون مقابل دستور Order By مرتب می شوند . - عبارت ASC : به کار بردن اين دستور پس از دستور Order By باعث مرتب شدن اطلاعات درون جدول از کم به زياد می شود که البته اتخاب پيش فرض SQL است و نيازی به درج آن نيست . عبارت DESC : به کار بردن اين واژه پس از دستور Order By باعث مرتب شدن اطلاعات جدول از زِياد به کم در اعداد و در حروف از z تا a می شود ، که در صورت نياز درج آن ضروری است . مثال : از جدول Student ، مشخصات نام و نام خانوادگی دانشجويان رشته نرم افزار را بر حسب حروف الفبا نمايش دهيد : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [/TABLE] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال[/TD] [/TR] [TR] [TD="class: body"] Select Name , Family From Student Where Major ="Soft Ware" Order By Family [/TD] [TD="class: header"] کد[/TD] [/TR] [TR] [TD="class: body"] [TABLE="class: ex, width: 200"] [TR] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [/TR] [TR] [TD="class: header"] Sahar[/TD] [TD="class: header"] Ahmadi[/TD] [/TR] [TR] [TD="class: header"] Ehsan[/TD] [TD="class: header"] Amiri[/TD] [/TR] [TR] [TD="class: header"] Hesam[/TD] [TD="class: header"] Razavi[/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی[/TD] [/TR] [/TABLE] [HR][/HR] نکته : همچنين می توان يک جدول را بر حسب بيش از يک فيلد مرتب کرد ، برای اين منظور پس از دستور Order By نام تمام فيلدهای مورد نظر را نوشته و آنها را با کاما از هم دا می کنيم . اولويت مرتب سازی با فيلدهای است که نام آنها زودتر ذکر شده باشند . مثال : جدول مشخصات دانشجويان را بر حسب فيلد نام ( بر حسب حروف از a تا z ) و بر حسب نمره ( از کم به زياد ) مرتب کنيد : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 15[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 19[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 20[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 14[/TD] [/TR] [/TABLE] نکته : در جدول خروجی مثال زير به ارتباط مقادير ستون های Family , Grade توجه کنيد . باوجود اينکه نمره درسی دانشجو حسام رضوی از احمد رضايی کمتر است ، ولی به دليل اينکه اولويت مرتب سازی با نام خانوادگی است ، نام رضوی بالاتر از رضايی قرار گرفته است . [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال[/TD] [/TR] [TR] [TD="class: body"] Select Name , Family , Grade From Student Order By Family ASC , Grade DESC [/TD] [TD="class: header"] کد [/TD] [/TR] [TR] [TD="class: body"] [TABLE="class: ex, width: 300"] [TR] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] Sahar [/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] 20[/TD] [/TR] [TR] [TD="class: body"] Ehsan [/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] 19[/TD] [/TR] [TR] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hoseini[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] 16[/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی[/TD] [/TR] [/TABLE] نکته : می توان در دستور Order By به جای ذکر نام ستون ها از يک عدد به جای آن استفاده کرد . عدد استفاده شده شماره قرار گيری ستون مورد نظر در دستور Select است . برای مثال اولين ستون دستور Select عدد 1 و دومين ستون عدد 2 و ... را خواهند داشت . بازنویسی دستور بالا با استفاده از اين روش به صورت زير خواهد بود : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال [/TD] [/TR] [TR] [TD="class: body"] Select Name , Family , Grade from Student Order By 2 ASC , 3 DESC [/TD] [TD="class: header"] کد[/TD] [/TR] [/TABLE]
پاسخ : # آموزش زبان SQL [h=2]دستورات پيشرفته SQL[/h] دستور AND & OR : از And و Or برای ترکيب شرط ها در دستور Where استفاده می شود . گاهی اوقات اطلاعات مورد نياز ما در دستور Select دارای چندين شرط مختلف است . به طور مثال ما مشخصات دانشجويان ترم دوم رشته نرم افزار که معدل آنها بيش از 15 است را می خواهيم . در اين حالت بايستی هر يک از شرط های مسئله را به تنهايی تعريف کرده و سپس آنها را با هم ترکيب کنيم . برنامه به ارزيابی هر يک از شرط ها پرداخته ، سپس نتايج حاصله را با هم ترکيب کرده و خروجی را تعيين می کند . عملگر And برای اجرای دستور نياز دارد تا تمام شرط های تعيين شده برای آن درست باشد . در حالی که عمگر Or فقط نياز دارد که حداقل يکی از شرط های آن درست باشد . در جداول زير چگونگی برقراری نتيجه نهايی در هنگام استفاده از اين دو اوپراتور را مشاهده می کنيم : در حالت 2 شرط : [TABLE="width: 100%"] [TR] [TD] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 3"] OR [/TD] [/TR] [TR] [TD="class: header"] شرط 1 [/TD] [TD="class: header"] شرط 2 [/TD] [TD="class: header"] نتيجه [/TD] [/TR] [TR] [TD="class: body"] درست [/TD] [TD="class: body"] درست [/TD] [TD="class: body"] درست [/TD] [/TR] [TR] [TD="class: body"] درست [/TD] [TD="class: body"] غلط [/TD] [TD="class: body"] درست [/TD] [/TR] [TR] [TD="class: body"] غلط [/TD] [TD="class: body"] درست [/TD] [TD="class: body"] درست [/TD] [/TR] [TR] [TD="class: body"] غلط [/TD] [TD="class: body"] غلط [/TD] [TD="class: body"] غلط [/TD] [/TR] [/TABLE] [/TD] [TD] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 3"] AND [/TD] [/TR] [TR] [TD="class: header"] شرط 1 [/TD] [TD="class: header"] شرط 2 [/TD] [TD="class: header"] نتيجه [/TD] [/TR] [TR] [TD="class: body"] درست [/TD] [TD="class: body"] درست [/TD] [TD="class: body"] درست [/TD] [/TR] [TR] [TD="class: body"] درست [/TD] [TD="class: body"] غلط [/TD] [TD="class: body"] غلط [/TD] [/TR] [TR] [TD="class: body"] غلط [/TD] [TD="class: body"] درست [/TD] [TD="class: body"] غلط [/TD] [/TR] [TR] [TD="class: body"] غلط [/TD] [TD="class: body"] غلط [/TD] [TD="class: body"] غلط [/TD] [/TR] [/TABLE] [/TD] [/TR] [/TABLE] چگونگی حالت های فوق را در مثال های زير بررسی می کنيم : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table [/TD] [/TR] [TR] [TD="class: header"] Student ID [/TD] [TD="class: header"] Name [/TD] [TD="class: header"] Family [/TD] [TD="class: header"] Major [/TD] [TD="class: header"] City [/TD] [TD="class: header"] Grade [/TD] [/TR] [TR] [TD="class: body"] 41252214 [/TD] [TD="class: body"] Ahmad [/TD] [TD="class: body"] Rezaee [/TD] [TD="class: body"] Hard Ware [/TD] [TD="class: body"] Tehran [/TD] [TD="class: body"] 18 [/TD] [/TR] [TR] [TD="class: body"] 10724113 [/TD] [TD="class: body"] Ehsan [/TD] [TD="class: body"] Amiri [/TD] [TD="class: body"] Soft Ware [/TD] [TD="class: body"] Karaj [/TD] [TD="class: body"] 14 [/TD] [/TR] [TR] [TD="class: body"] 10254861 [/TD] [TD="class: body"] Zahra [/TD] [TD="class: body"] Hosini [/TD] [TD="class: body"] Hard Ware [/TD] [TD="class: body"] Tehran [/TD] [TD="class: body"] 17 [/TD] [/TR] [TR] [TD="class: body"] 27365187 [/TD] [TD="class: body"] Sahar [/TD] [TD="class: body"] Ahmadi [/TD] [TD="class: body"] Soft Ware [/TD] [TD="class: body"] Bam [/TD] [TD="class: body"] 16 [/TD] [/TR] [TR] [TD="class: body"] 35654415 [/TD] [TD="class: body"] Hesam [/TD] [TD="class: body"] Razavi [/TD] [TD="class: body"] Soft Ware [/TD] [TD="class: body"] Tehran [/TD] [TD="class: body"] 19 [/TD] [/TR] [/TABLE] مثال 1 : مشخصات دانشجويانی را از جدول Student ارائه دهيد که نمره آنها بيش از 15 و رشته تحصيلی آنها نرم افزار باشد : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال [/TD] [/TR] [TR] [TD="class: body"] Select * From Student Where Major = 'Soft Ware' AND Grade > 15 ; [/TD] [TD="class: header"] کد [/TD] [/TR] [TR] [TD="class: body"] [TABLE="class: ex"] [TR] [TD="class: header"] Student ID [/TD] [TD="class: header"] Name [/TD] [TD="class: header"] Family [/TD] [TD="class: header"] Major [/TD] [TD="class: header"] City [/TD] [TD="class: header"] Grade [/TD] [/TR] [TR] [TD="class: body"] 27365187 [/TD] [TD="class: body"] Sahar [/TD] [TD="class: body"] Ahmadi [/TD] [TD="class: body"] Soft Ware [/TD] [TD="class: body"] Bam [/TD] [TD="class: body"] 16 [/TD] [/TR] [TR] [TD="class: body"] 35654415 [/TD] [TD="class: body"] Hesam [/TD] [TD="class: body"] Razavi [/TD] [TD="class: body"] Soft Ware [/TD] [TD="class: body"] Tehran [/TD] [TD="class: body"] 19 [/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی [/TD] [/TR] [/TABLE] مثال 2 : مشخصات دانشجويانی را از جدول Student ارائه دهيد که نمره آنها بيش از 17 بوده يا رشته تحصيلی آنها نرم افزار باشد : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال [/TD] [/TR] [TR] [TD="class: body"] Select * From Student where Major = 'Soft Ware' OR Grade > 17 ; [/TD] [TD="class: header"] کد [/TD] [/TR] [TR] [TD="class: body"] [TABLE="class: ex"] [TR] [TD="class: header"] Student ID [/TD] [TD="class: header"] Name [/TD] [TD="class: header"] Family [/TD] [TD="class: header"] Major [/TD] [TD="class: header"] City [/TD] [TD="class: header"] Grade [/TD] [/TR] [TR] [TD="class: body"] 41252214 [/TD] [TD="class: body"] Ahmad [/TD] [TD="class: body"] Rezaee [/TD] [TD="class: body"] Hard Ware [/TD] [TD="class: body"] Tehran [/TD] [TD="class: body"] 18 [/TD] [/TR] [TR] [TD="class: body"] 35654415 [/TD] [TD="class: body"] Hesam [/TD] [TD="class: body"] Razavi [/TD] [TD="class: body"] Soft Ware [/TD] [TD="class: body"] Tehran [/TD] [TD="class: body"] 19 [/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی [/TD] [/TR] [/TABLE] [HR][/HR] نکته مهم : همچنين می توان با استفاده از عملگر پرانتز چندين شرط مختلف را به صورت دسته های مجزا تعريف کرده و سپس همه آنها را با هم ترکيب کرد . در اين حالت شرط های هر گروه ابتدا در داخل پرانتز با هم ترکيب شده ، سپس نتيجه حاصله به عنوان نتيجه نهايي آن گروه شرط به دستور Where ارسال می شود و درنهايت نتايج تمام گروه ها با هم ترکيب می شوند . مثال مهم : از جدول Student مشخصات دانشجويانی را ارائه دهيد که نمره آنها 18 و رشته تحصيلی آنها سخت افزار بوده يا نمره آنها 16 و رشته تحصيلی شان نرم افزار باشد : [TABLE="class: ex"] [TR] [TD="class: header"] مثال [/TD] [/TR] [TR] [TD="class: body"] Select * From Student Where ( ( Grade = 18 AND Major = 'Hard Ware' ) OR ( Garde = 16 AND Major = 'Soft Ware' ) ) " ; [/TD] [TD="class: header"] کد [/TD] [/TR] [TR] [TD="class: body"] [TABLE="class: ex"] [TR] [TD="class: header"] Student ID [/TD] [TD="class: header"] Name [/TD] [TD="class: header"] Family [/TD] [TD="class: header"] Major [/TD] [TD="class: header"] City [/TD] [TD="class: header"] Grade [/TD] [/TR] [TR] [TD="class: body"] 41252214 [/TD] [TD="class: body"] Ahmad [/TD] [TD="class: body"] Rezaee [/TD] [TD="class: body"] Hard Ware [/TD] [TD="class: body"] Tehran [/TD] [TD="class: body"] 18 [/TD] [/TR] [TR] [TD="class: body"] 27365187 [/TD] [TD="class: body"] Sahar [/TD] [TD="class: body"] Ahmadi [/TD] [TD="class: body"] Soft Ware [/TD] [TD="class: body"] Bam [/TD] [TD="class: body"] 16 [/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی [/TD] [/TR] [/TABLE] [HR][/HR]
پاسخ : # آموزش زبان SQL [h=2]دستوات پيشرفته SQL[/h] دستور In : اين دستور برای مشاهده اطلاعات رکوردهايی از جدول به کار می رود که شما مقدار دقيق حداقل يکی از فيلدهای آنرا می دانيد . شکل کلی اين دستور به صورت زير است : Select نام ستون From نام جدول Where نام فيلد IN ( مقدار 1 ، مقدار 2 و ... ) [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 10724113[/TD] [TD="class: body"] Ehsan[/TD] [TD="class: body"] Amiri[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Karaj[/TD] [TD="class: body"] 14[/TD] [/TR] [TR] [TD="class: body"] 10254861[/TD] [TD="class: body"] Zahra[/TD] [TD="class: body"] Hosini[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 17[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [TR] [TD="class: body"] 35654415[/TD] [TD="class: body"] Hesam[/TD] [TD="class: body"] Razavi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 19[/TD] [/TR] [/TABLE] مثال : از جدول Student مشخصات دانشجويانی را بدهيد که نام خانوادگی آنها احمدی يا رضايی است : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] مثال [/TD] [/TR] [TR] [TD="class: body"] Select * From student Where Family IN ( "Ahmadi" , "Rezaee" ); [/TD] [TD="class: header"] کد[/TD] [/TR] [TR] [TD="class: body"] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 6"] Student Table[/TD] [/TR] [TR] [TD="class: header"] Student ID[/TD] [TD="class: header"] Name[/TD] [TD="class: header"] Family[/TD] [TD="class: header"] Major[/TD] [TD="class: header"] City[/TD] [TD="class: header"] Grade[/TD] [/TR] [TR] [TD="class: body"] 41252214[/TD] [TD="class: body"] Ahmad[/TD] [TD="class: body"] Rezaee[/TD] [TD="class: body"] Hard Ware[/TD] [TD="class: body"] Tehran[/TD] [TD="class: body"] 18[/TD] [/TR] [TR] [TD="class: body"] 27365187[/TD] [TD="class: body"] Sahar[/TD] [TD="class: body"] Ahmadi[/TD] [TD="class: body"] Soft Ware[/TD] [TD="class: body"] Bam[/TD] [TD="class: body"] 16[/TD] [/TR] [/TABLE] [/TD] [TD="class: header"] خروجی[/TD] [/TR] [/TABLE]