آموزش برنامه نویسی



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

افزونه Multi Scrolling، یک پلاگین ساده برای اسکرول چندتایی در سایت هایی است که از نظر عمودی به دو پنل مجزا تقسیم می شوند. این پلاگین هم با مرورگرهایی که css3 را پشتیبانی می کنند و هم آنهایی که قدیمی تر هستند و همچنین ابزارهای لمسی مانند موبایل و تبلت سازگار است.

 

روش استفاده :

جهت استفاده از این پلاگین لازم است فایلهای css و js پلاگین را در پروژه خود قرار دهیم . همچنین لازم است فایل jquery.js نیز در کنار آنها موجود باشد. اگر میخواهید از افکتهایی easing (swing,linear) استفاده می کنید می توانید jquery UI را نیز استفاده کنید. برای نصب پلاگین multiScroll توسط ترمینال می توانید دستور زیر را در مکانی که می خواهیدنصب شود، فراخوانی کنید.

// With bower
bower install multiscroll.js
// With npm
npm install multiscroll.js

لینک هایی که لازم است در پروژه قرار دهید به شرح زیر هستند :

< link rel="stylesheet" type="text/css" rel="nofollow" href="jquery.multiscroll.css" / >
< script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" >< /script >
< !-- This following line is needed in case of using the default easing option or when using another
 one rather than "linear" or "swing". You can also add the full jQuery UI instead of this file if you prefer -- >
< script src="vendors/jquery.easings.min.js" >< /script >
< script type="text/javascript" src="jquery.multiscroll.js" >< /script >

اگر می خواهید پلاگین را دانلود کنید،روی لینک زیر را کلیک کنید :

CDNJS: https://cdnjs.com/libraries/multiscroll.js

 

کدهای HTML مربوط به پلاگین JQuery MultiScrolling در دوره آموزش طراحی سایت

هر بخش توسط یک عنصر div با کلاس section مشخص می شود. بخش اول که صفحه نخست سایت محسوب می شود، به صورت پیش فرض فعال است.

< div id="multiscroll" >
    < div class="ms-left" >
        < div class="ms-section" >Some section< /div >
        < div class="ms-section" >Some section< /div >
        < div class="ms-section" >Some section< /div >
    < /div >
    < div class="ms-right" >
        < div class="ms-section" >Some section< /div >
        < div class="ms-section" >Some section< /div >
        < div class="ms-section" >Some section< /div >
    < /div >
< /div >

جهت فعال کردن یک بخش در زمان بار گزاری صفحه، می توانید از کد زیر استفاده کنید.

< div class="ms-section active" >Some section< /div >

برای فراخوانی پلاگین در JQuery، دستور زیر را درون script می نویسیم.

$ (document).ready(function() {
    $ ('#multiscroll').multiscroll();
});

تمام گزینه های این پلاگین در قطعه کد زیر موجود است :

$ (document).ready(function() {
    $ ('#multiscroll').multiscroll({
        verticalCentered : true,
        scrollingSpeed: 700,
        easing: 'easeInQuart',
        menu: false,
        sectionsColor: [],
        navigation: false,
        navigationPosition: 'right',
        navigationColor: '#000',
        navigationTooltips: [],
        loopBottom: false,
        loopTop: false,
        css3: false,
        paddingTop: 0,
        paddingBottom: 0,
        normalScrollElements: null,
        scrollOverflow: false,
        scrollOverflowOptions: null,
        keyboardScrolling: true,
        touchSensitivity: 5,
        //responsive
        responsiveWidth: 0,
        responsiveHeight: 0,
        responsiveExpand: false,
        // Custom selectors
        sectionSelector: '.ms-section',
        leftSelector: '.ms-left',
        rightSelector: '.ms-right',
        //events
        onLeave: function(index, nextIndex, direction){},
        afterLoad: function(anchorLink, index){},
        afterRender: function(){},
        afterResize: function(){},
    });
});

 

آموزش طراحی سایت : آپشن های مربوط به افزونه JQeury MultiScrolling

  • آپشن VerticalCentered : وسط چین کردن عمودی محتوای بخش ها (پیش فرض true).
  • آپشن ScrollingSpeed : سرعت پیمایش برحسب میلی ثانیه (پیش فرص 700).
  • آپشن SectionsColor : تعیین رنگ پیشفرض برای بخشهای مختلف (پیش فرض none).
$ ('#pagepiling').pagepiling({
    sectionsColor: ['#f2f2f2', '#4BBFC3', '#7BAABE', 'whitesmoke', '#000'],
});
  • آپشن Anchors : این آپشن Id لینک هایی که به هر بخش متصل هستند را نمایش می دهد. از این لینک ها برای پیمایش به جلو و عقب استفاده می شود. (مقدار پیش فرض [ ]).
  • آپشن (default swing) Easing : افکت حرکتی پیمایش عمودی را مشخص می کند. جهت استفاده از این ویژگی لازم است jquery UI را نیز در پروژه خود قرار دهید. (مقدار پیش فرض swing).
  • آپشن LoopTop : مشخص کننده این مورد است که در بخش اول، پیمایش به سمت بالا ما را به سمت آخرین مورد هدایت کند یا خیر (مقدار پیش فرض false).
  • آپشن LoopBottom : مشخص کننده این مورد است که در بخش آخر پیمایش به سمت پایین ، ما را به سمت اولین بخش هدایت کند یا خیر (مقدار پیشفرض false).
  • آپشن Css3 : استفاده از css3 یا javascript برای پیمایش بین بخش ها ( مقدار پیش فرض tru).
  • آپشن NormalScrollElements : اگر می خواهید از اسکرول اتوماتیک روی بعضی عناصر جلوگیری کنید می توانید از این گزینه استفاده کنید، مقدار این گزینه به صورت رشته خواهد بود.
(normalScrollElements: '#element1, .element2')
  • آپشن TouchSensitivity : درصد طول و عرض پنجره های مرورگرها و میزانی که یک swipe باید اندازه گیری شود تا به بخش بعدی هدایت شویم (مقدار پیش فرض5 است).
  • آپشن AnimateAnchor : مشخص کننده این مورد است که اگر در url بخش خاصی با # مشخص شده بود، در هنگام بارگزاری با انیمیشن خاصی به آن بخش برود یا اینکه همان بخش زمان لود نمایش داده شود (مقدار پیش فرض true).
  • آپشن Direction : اسکرول افقی باشد یا عمودی (مقدار پیش فرض vertical).
  • آپشن Menu : یک انتخابگر که منو شامل لینکهایی که به بخش های مختلف متصل است را نمایش می دهد.
  • آپشن PaddingTop : فاصله از بالای بخش ها.
  • آپشن PaddingBottom : فاصله از پایین بخش ها.

 

آموزش متدهای مربوط به JQeury MultiScrolling در دوره آموزش طراحی سایت

متد moveSectionUp() : اسکرول به سمت بالا یک بخش.

$ .fn.pagepiling.moveSectionUp();

متد moveSectionDown() : اسکرول یک بخش به سمت پایین.

$ .fn.pagepiling.moveSectionDown();

متد moveTo(section) : اسکرول صفحه به بخش مشخص شده.

/*Scrolling to the section with the anchor link `firstSection`  */
$ .fn.pagepiling.moveTo('firstSection');
//Scrolling to the 3rd section in the site
$ .fn.pagepiling.moveTo(3);
//Which is the same as
$ .fn.pagepiling.moveTo(3);

متد setAllowScrolling(boolean) : حذف امکان اسکرول بین بخش توسط موس یا حالت لمسی.

$ .fn.pagepiling.setAllowScrolling(false);

متد setKeyboardScrolling(boolean) : افزودن یا حذف امکان اسکرول بین بخش توسط دکمه های کیبورد.

$ .fn.pagepiling.setKeyboardScrolling(false);

متد setScrollingSpeed(milliseconds) : سرعت اسکرول برحسب میلی ثانیه.

$ .fn.pagepiling.setScrollingSpeed(700);

با دیگر مقالات در زمینه آموزش طراحی وبسایت همراه ما باشید


در این مقاله از مجموعه مقالات آموزش طراحی سایت می آموزیم که چطور خطاهای احتمالی در جاوا اسکریپت را مدیریت کنیم.

  • دستور try به شما امکان می دهد قطعه کد (code block) را به منظور یافتن خطاهای احتمالی بررسی و آزمایش کنید.
  • دستور catch به شما اجازه می دهد خطا را مدیریت کرده و اقدامات اصلاحی را در صورت رخداد خطا مشخص کنیم.
  • دستور throw قابلیت ایجاد خطاهای سفارشی را به شما می دهد.
  • دستور Finally به شما اجازه می دهد کد را پس از (اجرای دستورات) try و catch، صرف از نظر از نتیجه آن، اجرا کنید.
    هنگامی که کدهای جاوا اسکریپت را اجرا می کنید، ممکن است با خطاهای مختلفی مواجه شویم. این خطاها ممکن است از وجود اشکال هایی در کدنویسی برنامه نشات بگیرد که توسط برنامه نویس نوشته شده، ممکن است از ورودی اشتباه و غیر مجازی باشد که توسط کاربر وارد شده و یا دیگر چیزهای غیر قابل پیش بینی.


نمونه یک :

< p id="demo">adddlert is not defined< /p>

try {

adddlert("Welcome guest!");

}

catch(err) {

document. getElementById("demo") = err.message;

}

 

دستورات try & catch و کاربرد آن در زبان جاوا اسکریپت

  • دستور try به برنامه نویس اجازه می دهد قطعه کدی که احتمال می دهد در آن خطا وجود داشته باشد را مشخص کند. این قطعه کد در حین اجرا برای خطایابی تست می شود.
  • دستور catch نیز یک قطعه کد تعریف می کند که در صورت برخورد با خطا در ساختار (try block)، اجرا می شود.
  • عبارت try، به شما اجازه می دهد تا، خطاهای یک بلاک از دستورات را تست کنید.
  • اگر خطایی در قسمت try رخ دهد، در آن صورت دستوراتی که در در ساختار catch تعریف کردید، اجرا می شوند.
    توجه داشته باشید که دستورات try و catch با هم و به صورت جفت بکار می روند.
try { ‎

Block of code to try

‎}

catch(err) { ‎

Block of code to handle errors

}

پرتاب خطا (throw error) در دوره آموزش طراحی سایت

هنگامی که خطایی رخ می دهد، جاوا اسکریپت به صورت خودکار متوقف شده و یک پیغام خطا صادر می کند.
در برنامه نویسی برای این منظور یک واژه ی تخصصی به نام throw تعریف شده است.

 

دستور throw

این دستور امکان ایجاد یک خطاهای سفارشی (custom error) را در اختیار برنامه نویس قرار می دهد. اصطلاح تخصصی که برای این منظور (ایجاد خطای سفارشی) در نظر گرفته شده throwing an exception می باشد. دستور throw باید همراه try و catch استفاده شود. Exception (استثنا) می تواند یک شی String، Number، یک Boolean و یا یک Object باشد.

throw "Too big"    // throw a text 
        throw 500;          // throw a number‎

 

اگر throw را به همراه try و catch بکار ببرید، می توانید جریان برنامه را تحت کنترل خود درآورده و پیغام های خطا سفارشی ایجاد کنید.

 

آموزش طراحی سایت : اعتبارسنجی ورودی (input validation)

مثال زیر ورودی را بررسی و اعتبار سنجی می کند. در صورت غلط بودن مقدار، یک پیغام خطا (استثنا( صادر (throw) می شود. پیغام خطای تولید شده، توسط ساختار (دستور) catch دریافت یا مهار (catch) شده و پیغام خطای سفارشی به دنبال آن نمایش داده می شود.

نمونه دو :

function myFunction() {
    var message, x;
    message = document.getElementById("message");
    message = ""
    x = document.getElementById("demo").value;
    try { 
        if(x == "")  throw "empty"
        if(isNaN(x)) throw "not a number"
        x = Number(x);
        if(x < 5)    throw "too low"
        if(x > 10)   throw "too high"
    }
    catch(err) {
        message = "Input is " + err;
    }

 

دستور Finally

این دستور به شما اجازه می دهد کد را پس از اجرای ساختارهای try & catch و صرف نظر از نتیجه ی بدست آمده اجرا کنید.

با دیگر مقالات در زمینه آموزش طراحی وبسایت همراه ما باشید


در این مقاله از مجموعه مقالات آموزش طراحی سایت به بررسی عبارات با قاعده در جاوا اسکریپت می پردازیم

 

عبارات با قاعده (Regular Expressions) رشته یا توالی از کاراکترها هستند که یک یگ الگو جستجو (search pattern) تعریف می کنند. برای انجام عملیات جستجو برای کلمات و یا کاراکترهای مورد نظر در متن یک صفحه می توان از این عبارات کمک گرفت. الگوی جستجو را می توان برای انجام عملیاتی همچون جستجو در متن و جایگزینی نوشته هایی در متن مورد استفاده قرار داد.

 

عبارت با قاعده (regular expression) چیست؟

عبارت با قاعده (Regular Expression) شی ای است که درباره ی الگوی کاراکترها شرح می دهد. زمانی که در یک متن به دنبال داده یا اطلاعات معینی به جستجو می پردازید، می توانید از یک الگوی خاص برای کلمه ی مورد جستجو استفاده نمایید. یک کاراکتر تنها، می تواند یک الگوی ساده باشد. یک الگوی پیچیده تر ممکن است شامل کاراکترهای بیشتری باشد و از آن می توان برای اجرای عملیاتی همچون تجزیه کردن، قالب دهی، بررسی کردن و جایگزینی استفاده کرد.

 

دستور نگارش (syntax)

‎/pattern/modifiers;‎

مثال :

var patt = / tahlildadeh /i;‎

توضیح مثال : /w3schools/i یک عبارت با قاعده است. w3schools نیز یک یک الگو است که در جستجو به کار می رود. i یک modifier می باشد (باعث می شود جستجو به کوچک بزرگی حروف حساسیت نشان ندهد).

 

استفاده از توابع رشته ای (string methods) در دوره آموزش طراحی سایت

عبارات با قاعده در جاوا اسکریپت اغلب با دو متد رشته ای ()search و ()replace بکار می رود.
متد () Search : جهت جستجو برای کشف وجود یا عدم وجود یک کلمه خاص در یک متغیر رشته ای بکار گرفته می شود.
متد () Replace : از این متد به منظور جستجو به دنبال یک حرف یا کلمه خاص در یک متغیر رشته ای و جایگزینی آن با یک مقدار جدید استفاده می شود.

مثال :

var str = "Visit Tahlildadeh"
        var n = str.search(/Tahlildadeh/i);‎

نتیجه :

نمونه یک :

function myFunction() {
    var str = "Visit Tahlildadeh!" 
    var n = str.search(/Tahlildadeh/i);
    document.getElementById("demo") = n;
}

تابع جستجو (search method) همچنین می تواند یک رشته به عنوان آرگومان جستجو بپذیرد. آرگومان گفته شده به یک عبارت با قاعده (regular expression) تبدیل می شود.

 

مثال :

با استفاده از یک رشته به عنوان آرگومان ورودی تابع () search برای یافتن واژه ی "Tahlildadeh" در string جستجو انجام می دهیم.

نمونه دو :

var str = "Visit Tahlildadeh!"
var n = str.search(Tahlildadeh);

در این مثال با استفاده از تابع () replace یک عبارت با قاعده ی case-insensitive (Tahlildadeh) را جایگزین کلمه ی Microsoft می کنیم.

 

نمونه سه :

function myFunction() {
          var str = document.getElementById("demo");
          var txt = str.replace(/microsoft/i, "Tahlildadeh");
          document.getElementById("demo") = txt;
      }

تابع () replace نیز می تواند مانند متد () search یک رشته به عنوان آرگومان ورودی می پذیرد.

 

نمونه چهار :

function myFunction() {
    var str = document.getElementById("demo");
    var txt = str.replace("Microsoft", "Tahlildadeh");
    document.getElementById("demo") = txt;
}

اگر به مثال های بالا خوب دقت کرده باشید متوجه می شوید که می توان به جای string argument (آرگومان رشته ای) از آرگومان های regular expression در توابع یاد شده استفاده کرد. با بهره گیری از عبارات با قاعده می توان جستجو را قوی تر یا به مراتب کارآمدتر ساخت(برای مثال آن را نسبت به کوچک بزرگی حروف بی تفاوت کرد).

 

آموزش طراحی سایت : تعریف/تنظیم کننده های نحوه جستجو (modifier) در عبارات با قاعده

عبارت Modifier یک کاراکتر است که با استفاده از آن جستجو به دنبال کلمه یا حرف مد نظر را case-insensitive (بی تفاوت به کوچک و بزرگی حروف) کرده یا آن را سراسری (global) می کنیم.

  • حرف i : بیانگر case-insensitive (حساس نبودن به کوچک و بزرگی حروف) بودن جستجو است.
  • حرف g : نشانگر سراسری بودن جستجو می باشد (جستجو پس از یافتن مورد اول متوقف نمی شود).
  • حرف m : جستجو را در چندین خط انجام می دهد.

 

الگوی عبارات با قاعده (regular expression pattern)

الگو (Pattern) عبارتی است که در متن می خواهیم به دنبال آن بگردیم. با استفاده از کاراکتر [] می توان مجموعه ای از کاراکترها را جستجو کرد (یافت).

  • عبارت [abc] : هر کاراکتری که درون (محصور در) [] باشد را پیدا می کند.
  • عبارت [9-0] : هر عددی که بین براکت باز و بسته محصور شده باشد را پیدا می کند.
  • عبارت (x|y) : هر کاراکتر ی (جایگزین) که با " | " از هم جدا شده باشند را پیدا می کند.

 

متا کاراکتر (Metacharacter) کاراکتری است که معنای به خصوصی برای برنامه ی کامپیوتری داشته باشد.

  • متا کاراکتر \d : یک عدد را پیدا می کند.
  • متا کاراکتر \s : یک کاراکتر خط فاصله را می یابد.
  • متا کاراکتر \b : مورد مد نظر (match) را در ابتدا یا انتهای یک کلمه می یابد.
  • متا کاراکتر \ux : کاراکتر Unicode که توسط عدد مبنای 16 (hexadecimal) x مشخص شده را می یابد.

 

کمیت سنج ها (Quantifiers) مقادیر یا کمیت را تعیین می کنند.

  • کمیت سنج n+ : با رشته ای match می شود که دربردانده ی حداقل یک n باشد.
  • کمیت سنج n : با رشته ای match می شود که دربردارنده ی 0 یا بیشتر تکرار (نمونه) از n باشد.
  • کمیت سنج n? : با رشته ای match می شود که دربردارنده ی 0 یا بیشتر تکرار (نمونه) از n باشد.

 

استفاده از شی RegExp در دوره آموزش طراحی وب : شی ای است دارای توابع و خواص از پیش تعریف شده ای است.

 

متد ()Test : این تابع در یک رشته به دنبال الگوی موردنظر جستجو انجام داده سپس بسته به نتیجه، مقدار true یا false باز می گرداند. به عبارتی دیگر، متد ()test، یک رشته را داخل یک مقدار مشخص جستجو کرده و براساس نتیجه، true یا false برمی گرداند.

 

مثال :

در این مثال، در یک رشته به دنبال "e" می گردد.

نمونه پنج :

function myFunction() {
    text = document.getElementById("p01");
    document.getElementById("demo") = /e/.test(text);
}

به این خاطر که "e" در رشته ی مورد نظر یافت می شود، خروجی کد true خواهد بود.
نیازی نیست عبارت با قاعده را درون یک متغیر قرار دهید. دو خط کد مثال بالا را می توان در یک خط (به طور خلاصه) نوشت.

/e/.test("The best things in life are free!");‎

 

تابع ()exec : این متد داخل یک رشته به دنبال الگوی مورد نظر جستجو انجام داده، سپس نوشته ی یافت شده را بر می گرداند یا به عبارت دیگر متد ()exec، یک رشته را داخل یک مقدار مشخص جستجو می کند و با توجه به نتیجه ی حاصل، مقدار جستجو شده یا false را بازیابی می کند. حال در صورتی که مورد (match) یافت نشد، متد ذکر شده null باز می گرداند.

 

مثال :

در این مثال، در یک رشته به دنبال "e" می گردد.

نمونه شش :

function myFunction() {
    text = document.getElementById("p01");
    document.getElementById("demo") = /e/.exec(text);
}

به این خاطر که "e" در رشته ی مورد نظر یافت می شود، خروجی کد e خواهد بود.

 

با دیگر مقالات ما در زمینه آموزش طراحی وبسایت همراه ما باشید


در این مقاله از سری مقاله های دوره آموزش سی شارپ به بررسی OverLoading Method در سی شارپ می پردزایم:

 

بسیاری از زبان های برنامه نویسی از تکنیک ای به نام پارامترهای پیش فرض /اختیاری (defult/optional parameters) پشتیبانی می کنند. این تکنیک به برنامه امکان می دهد تا با تعیین مقدار پیش فرض برای یک یا چند پارامتر تابع، آن ها را در هنگام مقدار دهی انتخاب کند. این روش برای افزودن انعطاف پذیری به کد برنامه، بسیار کاربرد دارد.

برای مثال، می خواهید قابلیت کارکرد را به تابع ای که یک یا چند پارامتر ورودی دارد، بدهید. در اینگونه موارد، به دلیل عدم ارسال تعداد مورد نیاز پارامتر در هنگام فراخوانی، ممکن است کد شما درست اجرا نشود. برای حل این مسئله، می توانید از امکان جدید تعیین پارامترهای اختیاری یا optional استفاده کنید. در این روش، شما برای برخی پارامترها یک مقدار پیش فرضی یا default تعیین کرده که حتی اگر در هنگام فراخوانی تابع، مقداری برای آن ارسال نشد، کد دچار مشکل نشود.

پارامترهای پیش فرض (default parameters) در زبان C# 4.0 معرفی شدند، اما تا قبل از آن برنامه نویسان از تکنیکی تقریبا مشابه به نام method overloading استفاده می کردند. در این حالت، برنامه نویس چندین تابع هم نام ولی با مجموعه پارامترهای مختلف را تعریف می کند. برای مثال متد اول یک پارامتر و متد دوم دو پارامتر دریافت می کند.

 

مثالی از متد OverLoading در آموزش سی شارپ

یک مثال مناسب برای این روش، تابع Substring از کلاس String Class است. به صورت زیر :

string Substring (int startIndex)
string Substring (int startIndex, int length)

 

شما می توانید تابع فوق را با یک یا دو پارامتر فراخوانی کنید. اگر تابع را با یک پارامتر فراخوانی کنید حالت اول و اگر با دو پارامتر فراخوانی کنید، حالت دوم اجرا می شود.
بنابراین با تعیین شکل های مختلف از یک تابع، می توانید حجم کد نویسی را تا حدود زیادی کاهش دهیم. برای این منظور، کاری می کنیم تا متد ساده و معمولی، کد سایر متدها را تولید و اجرا کند. به مثال زیر دقت کنید :

class SillyMath
{
    public static int Plus(int number1, int number2)
    {
        return Plus(number1, number2, 0);
    }
    public static int Plus(int number1, int number2, int number3)
    {
        return number1 + number2 + number3;
    }
}

 

در کد مثال فوق، تابع Plus را با دو حالت تعریف کرده ایم. در حالت اول، تابع دو پارامتر را جهت جمع کردن 2 عدد دریافت می کند، درحالی که حالت دوم سه پارامتر دارد. درواقع کار اصلی را نسخه 3 پارامتری تابع انجام می دهد. اگر بخواهیم دو عدد را جمع کنیم، خیلی ساده، تابع با حالت 3 پارامتری را فراخوانی کرده و عدد 0 را به پارامتر سوم پاس می دهیم. تا به عنوان مقدار پیش فرض برای آن استفاده شود. کد مثال فوق، منظور ما در بخش قبل را نشان می دهد.
حال اگر بخواهید تا 4 عدد را با هم جمع کنید، می توانید یک نسخه 4 پارامتری دیگر را نیز به برنامه اضافه کنید. به صورت کد زیر :

class SillyMath
{
    public static int Plus(int number1, int number2)
    {
        return Plus(number1, number2, 0);
    }
    public static int Plus(int number1, int number2, int number3)
    {
        return Plus(number1, number2, number3, 0);
    }
    public static int Plus(int number1, int number2, int number3, int number4)
    {
        return number1 + number2 + number3 + number4;
    }
}

 

مثال فوق خیلی ساده تکنیک method overloading را در C# نشان داده و نحوه ارتباط دادن توابع با هم را بیان می کند.

با دیگر آموزش های ما در ارتباط با دوره آموزش سی شارپ همراه باشید


به بخش جدید آموزش سی شارپ خوش آمدید.

در این درس قصد داریم تا شما را با مفهوم تابع سازنده Constructor و destructor در C# و کاربرد آن ها آشنا کنیم.

تابع سازنده یا Constructor متد ویژه ای است که هر بار به محض ساخته شدن یک شی یا object از کلاس، اجرا می شود. درواقع از تابع سازنده برای مقداردهی اولیه متغیرها یا اجرای یک کد ثابت استفاده می شود. یک تابع سازنده هیچ گاه مقدار خروجی یا return ندارد و به همین دلیل در تعریف آن، هیچ نوع متغیری جهت return تعریف نمی شود. ساختار کلی تعریف تابع سازنده Constructor در کلاس های C# به صورت زیر است :

public ClassName()

به همین روش تابع سازنده کلاس Car را به صورت زیر نیز می توانید تعریف کنید :

public Car()

 

در مثال عملی این درس، کلاسی به نام Car داریم که دارای یک تابع سازنده بوده که یک پارامتر متنی String را به عنوان ورودی دریافت می کند. البته تابع های سازنده در C# می توانند overload نیز شوند. یعنی این که ما چندین تابع سازنده هم نام برای یک کلاس داشته باشیم، ولی پارامترهای ورودی آن ها با هم متفاوت باشد. کلاس زیر یک کد عمل را نشان می دهد :

public Car()

{

}

public Car(string color)

{

this.color = color;

}

یک تابع سازنده، می تواند تابع سازنده دیگر را فراخوانی کند که به صورت های مختلف ممکن است کد زیر یک مثال در این زمینه ارائه داده است :

public Car()

{

Console.WriteLine("Constructor with no parameters called!");

}

public Car(string color) : this()

{

this.color = color;

Console.WriteLine("Constructor with color parameter called!");

}

اگر متد مثال فوق را اجرا کنید، خواهید دید که تابع سازنده ای که هیچ پارامتری را به عنوان ورودی ندارد، ابتدا اجرا می شود. از این حالت برای مقداردهی اشیا (objects) یک کلاس با یک تابع سازنده پیش فرض استفاده می شود. اگر بخواهید که تابع سازنده دار ای پارامتر فراخوانی شود، می توانید به صورت کد زیر عمل کنید :

public Car(string color) : this()

{

this.color = color;

Console.WriteLine("Constructor with color parameter called!");

}

public Car(string param1, string param2) : this(param1)

{

}

اگر شما تابع سازنده ای که دارای 2 پارامتر است را فراخوانی کنید، پارامتر اول برای فراخوانی تابع سازنده ای که دارای 1 پارامتر است، استفاده می شود.

 

آموزش کار با تابع تخریب کننده یا Destructor در C# :

تابع تخریب کننده یا Destructor در زبان C#، متدی است که در هنگام از بین رفتن یک شی از کلاس، اجرا می شود. زبان C#، یک زبان پاک کننده خودکار سیستم یا garbage collector است. به این معنی که اشیایی که دیگر در برنامه نیاز ندارید را جهت خالی کردن حافظه و آزاد نمودن سیستم، پاک می کند. از طرف دیگر در برخی موارد شاید نیاز داشته باشید تا یک Clean up در سیستم انجام دهید، اینجاست که تابع های تخریب کننده Destructor به کار می آیند. تابع های تخریب کننده چندان شبیه سایر متدها در زبان C# نیستند. در کد عملی زیر یک مثال از تابع تخریب کننده نشان داده شده است :

~Car()

{

Console.WriteLine("Out");

}

به محض این که شی ایجاد شده از کلاس، توسط تمیز کننده خودکار garbage collector جمع آوری شده، متد فوق فراخوانی می شود.


به بخش جدید آموزش سی شارپ خوش آمدید.

در این درس قصد داریم تا شما را با مفهوم کلاس ( class ) در C# و کاربرد آن ها آشنا کنیم. همچنین به بیان نحوه تعریف کلاس ها در برنامه و تعیین خواص و متدها برای آن ها خواهیم پرداخت. اول از همه با مفهوم کلاس Class در C# شروع می کنیم. یک کلاس، مجموعه ای از خاصیت ها، متغیرها و متدهای مرتبط با هم است. یک کلاس خصوصیات ذکر شده را توصیف و پیاده سازی کرده و برای استفاده از آن در کد برنامه، بایستی یک نسخه از آن را (که به آن شی یا object می گویند) بسازید. بر روی شی یا object ایجاد شده، می توانید متغیرها و متدهای کلاس را به کار ببرید. هر تعداد که نیاز داشته باشید می توانید شی یا object از روی کلاس ساخته و در نقاط مختلف کد برنامه استفاده کنید. مبحث شی گرایی یا object oriented یک مقوله بسیار گسترده است که در این درس، درس های دیگر این بخش به مهم ترین جزئیات آن خواهیم پرداخت.

در این بخش و در مثال Hello World مشاهده می کنیم که از یک کلاس در کد برنامه استفاده شده است و در C# تقریبا همه چیز بر مبنای کلاس ها ایجاد می شوند. در کد این درس قصد داریم تا کلاس خود را گسترش داده و با انواع امکانات آن آشنا شویم :

using System;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

Car car;

car = new Car("Red");

Console.WriteLine(car.Describe());

car = new Car("Green");

Console.WriteLine(car.Describe());

Console.ReadLine();

}

}

class Car

{

private string color;

public Car(string color)

{

this.color = color;

}

public string Describe()

{

return "This car is " + Color;

}

public string Color

{

get { return color; }

set { color = value; }

}

}

}

آموزش سی شارپ : همانطور که مشاهده می کنید، در کد فوق یک کلاس جدید به نام Car ایجاد کرده ایم. برای سهولت کار، این کلاس جدید را به همراه کلاس Program در فایل اصلی برنامه قرار داده ایم، اما روش رایج این است که هر کلاس درون فایلی جداگانه هم نام خود کلاس ایجاد شود. کلاس Car دارای یک متغیر (ویژگی) به نام Color است که برای تعیین رنگ خودرو به کار می رود. ویژگی Color به صورت خصوصی یا private تعیین شده که به این معناست که توابع و کلاس های خارج از تابع Car امکان دسترسی مستقیم به این خاصیت را ندارند. فقط توابع و متدهای داخل کلاس Car می توانند به خاصیت Color دسترسی مستقیم داشته باشند.

نکته :

اگر تابع یا کلاسی خارج از کلاس Car بخواهد به خاصیت خصوصی یا private به نام Color دسترسی داشته باشد، بایستی از یک Property برای این منظور استفاده کند. یک Property به نام Color در انتهای کد کلاس Car تعریف شده که وظیفه خواندن و نوشتن این خاصیت را بر عهده داشته و به سایر کلاس ها و توابع برنامه اجازه دسترسی به آن را می دهد.

همچنین کلاس Car دارای یک تابع سازنده یا Constructor می باشد. تابع سازنده، متدی است که وظیفه ساخت یک نمونه شی از کلاس مربوطه و برگردندن آن را به عهده داشته و به محض ساخته شدن یک نمونه شیء از کلاس اجرا می شود. تابع سازنده کلاس Car دارای یک پارامتر بوده که برای مقداردهی اولیه شی Car با خاصیت Color بزرگ قرمز (Red) به کار می رود. بنابراین هر شی از کلاس Car که ساخته شود، رنگ قرمز را به صورت پیش فرض برای خاصیت Color خود خواهد داشت. برای نشان دادن درستی این مسئله نیز تابع Describe طراحی شده که نام هر شی یا object ساخته شده با مقدار رنگ آن را در خروجی نشان می دهد.

 

آموزش ویژگی های کلاس (C# Properties)

ویژگی (Property) در C# به شما امکان کنترل روش دسترسی و تغییر متغیرهای یک کلاس را می دهد. استفاده از ویژگی در C#، راه توصیه شده و درست جهت دسترسی به متغیرهای یک کلاس، به وسیله متدها یا توابع خارج از کلاس جاری، در زبان برنامه نویسی شی گرا object oriented می باشد. به عبارت دیگر، وقتی که یک متد یا کلاس دیگری در برنامه، بخواهد به متغیر یک کلاس دسترسی داشته باشد، بهتر است به جای این که مستقیما متغیر را استفاده کند، از طریق یک ویژگی یا Property در کلاس خود متغیر، به آن دسترسی داشته باشد. در مثال آموزشی درس قبل (کار با کلاس ها) برای اولین بار روش استفاده از یک ویژگی یا Property را نشان دادیم. یک ویژگی یا Property همانند ترکیبی از یک متغیر Variable و یک متد method است. ویژگی نمی تواند پارامتری را دریافت کند، اما به وسیله آن می توانید قبل از ارسال و دریافت متغیر، مقدار آن را تغییر دهید. هر ویژگی یا Property از دو قسمت اصلی get و set تشکیل شده که همانند کد مثال زیر درون مجموعه Property تعریف می شوند :

private string color;

public string Color

{

get { return color; }

set { color = value; }

}

متد get مقدار متغیر را خوانده و آن را به برنامه بر می گرداند، از طرف دیگر متد set هم مقدار مورد نظر را به متغیر نسبت می دهد. مثال اول، ساده ترین حالت تعریف Property در C# است، اما می توانید آن را گسترش نیز بدهید.

نکته مهم در آموزش سی شارپ:

مسئله مهم در هنگام تعریف یک ویژگی یا Property این است که تعریف یکی از متدهای set یا get نیز کفایت می کند و در صورت تعریف یکی، تعریف متد دیگر اختیاری است. این مسئله، امکان تعریف ویژگی های فقط خواندنی read-only و یا فقط نوشتنی write-only را می دهد.

در کد زیر یک مثال کامل تر از نحوه تعریف ویژگی ها در C# را نشان داده ایم :

public string Color

{

get

{

return color.ToUpper();

}

set

{

if(value == "Red")

color = value;

else

Console.WriteLine("This car can only be red!");

}

}

در کد مثال فوق، ویژگی را کمی گسترش دادیم. در کد جدید، متغیر Color در هنگام return، به دلیل استفاده از متد ToUpper() به صورت حروف بزرگ، برگردانده می شود. از طرف دیگر، با استفاده از دستور شرطی if، فقط مقدار رنگ red” برای متغیر Color پذیرفته می شود.

آموزش سی شارپ ادامه دارد


در این مقاله از سری مقاله های آموزش SQL Server به آموزش کپی کردن اطلاعات از یک جدول به جدول دیگر می پردازیم، برای این کار می توانید از دو دستور Select Into و Insert Into Select استفاده کنید. در ادامه به شرح هر یک از این دستورات و تفاوت آنها با یکدیگر می پردازیم :

 

آموزش دستور Select Into

در SQL می توانید اطلاعات را از یک جدول به داخل جدول دیگری کپی نمایید. دستور SELECT INTO داده ها را از یک جدول بر می دارد و در جدولی دیگر وارد می کند.

 

فرم دستور Select Into

می توانیم تمام ستون ها را به یک جدول جدید وارد کنیم :

SELECT *
INTO newtable [IN externaldb]
FROM table1;

 

یا می توانیم تنها ستون مورد نظر خود را به جدول جدیدی وارد کنیم :

SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;

 

جدول جدید با نام ستون ها و تنظیماتی که در عبارت SELECT برای آن تعریف شده است ایجاد می گردد. برای اضافه کردن نام های جدید می توانید از عبارت AS استفاده نمایید.

 

مثال استفاده از دستور Select Into

دستور زیر از جدول Customers یک بکاپ تهیه می کند :

SELECT *
INTO CustomersBackup2013
FROM Customers;

 

همچنین می توانیم از عبارت IN برای کپی کردن جدول به پایگاه داده دیگر استفاده کنیم :

SELECT *
INTO CustomersBackup2013 IN 'Backup.mdb'
FROM Customers;

 

دستور زیر تنها مشتریانی که نام کشورشان آلمان است را در جدول جدید کپی می کند :

SELECT *
INTO CustomersBackup2013
FROM Customers
WHERE Country='Germany';
SELECT *
INTO CustomersBackup2013
FROM Customers
WHERE Country='Germany';

 

دستور زیر داده را از بیشتر از یک جدول به جدول جدید وارد می کند :

SELECT Customers.CustomerName, Orders.OrderID
INTO CustomersOrderBackup2013
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID;

 

نکته :

از عبارت SELECT INTO میتوان برای ایجاد یک جدول خالی جدید با بهره گیری از طرح های ظاهری جدول های دیگر استفاده کرد. برای اینکار تنها کافی است تا دستور WHERE را به عبارت خود اضافه کنیم، این کار سبب می شود تا query ارسال شده بدون پاسخ بازگردد :

SELECT *
INTO newtable
FROM table1
WHERE 1=0;

 

آموزش Insert Into Select

در SQL می توان اطلاعات را از یک جدول به جدول دیگر کپی کرد. عبارت INSERT INTO SELECT داده ها را از یک جدول کپی کرده و در جدول دیگری وارد می نماید. سطر های جدول مقصد در این پروسه بدون هیچگونه تغییر باقی می ماند.

 

فرم عبارت Insert Into Select

با استفاده ازعبارت زیر می توانیم تمام ستون ها را از یک جدول به جدول دیگری کپی کنیم :

INSERT INTO table2
SELECT * FROM table1;

 

یا می توانیم با استفاده از عبارت زیر تنها ستون های مورد نظر خود را در جدول دیگری کپی کنیم :

INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

 

نحوه استفاده از عبارت Insert Into Select در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:

 

آنچه در زیر می بینید گزیده ای است از جدول "Suppliers" :

 

مثال استفاده از عبارت INSERT INTO SELECT

عبارت زیر تنها تعدادی کمی از ستون ها را از جدول Suppliers به جدول Customers کپی می کند:

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;

 

عبارت زیر تنها عرضه کنندگان آلمانی را از جدول Suppliers به جدول Customers کپی می کند :

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers
WHERE Country='Germany';

 

با دیگر مقالات ما در زمینه آموزش SQL Server همراه باشید


 

در این مقاله از سری مقاله های آموزش SQL Server به آموزش انواع join می پردازیم :

عملگر UNION نتیجه دو یا چند دستور SELECT را با یکدیگر ترکیب می کند.

عملگر UNION برای ترکیب نتایج دو یا چند دستور SELECT استفاده می شود.

توجه داشته باشید که هر دستور SELECT در عملگر UNION باید تعداد ستونهای یکسانی را برگردانند. همچنین ستونها باید Data Type یکسانی داشته باشند. علاوه بر این ستونها در هر دستور SELECT باید به یک صورت مرتب شده باشند.

 

فرم عملگر UNION

SELECT column_name(s) FROM table1

نکته:

عملگر UNION تنها داده هایی را به صورت پیش فرض انتخاب می کند که از یکدیگر متمایز باشند. برای اینکه داده های تکراری را هم بیاوریم از کلید واژه ALL به همراه UNION استفاده کنید.

فرم عملگر UNION ALL

SELECT column_name(s) FROM table1

نکته: نام ستون ها در جدول نتایج معمولا برابر نام ستونها در دستور SELECT اول در عملگر UNION می باشد.

نحوه استفاده از کلید واژه UNION در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.

جدول زیر از میان جدول "Customers" انتخاب شده است:

 

 

آنچه در زیر می بینید گزیده ای است از جدول "Suppliers":

 

مثال استفاده از کلید واژه UNION

عبارت SQL زیر نام تمام شهر های مختلف را (تنها از بین مقادیر مشخص) از ستون "City" و از میان جداول Customers و Suppliers انتخاب می کند:

SELECT City FROM Customers

SELECT City FROM Suppliers

ORDER BY City;

نکته:

عملگر UNION نمی تواند برای لیست کردن تمام شهر های دو جدول مورد استفاده قرار گیرد. اگر تعدادی از مشتریان و عرضه کنندگانAnchor دارای نام شهر یکسانی باشند، نام آن شهر تنها یکبار در لیست قرار

می گیرد. UNION تنها مقادیر غیر تکراری را انتخاب می کند. برای انتخاب مقادیر تکراری از UNION ALL استفاده کنید.

مثال استفاده از عملگر UNION ALL

آموزش SQL Server : عبارت SQL زیر از عملگر UNION ALL برای انتخاب تمام (حتی مقادیر تکراری) شهر ها از جداول Customers و Suppliers استفاده می کند:

SELECT City FROM Customers

UNION ALL

SELECT City FROM Suppliers

ORDER BY City;

مثال استفاده از عملگر UNION ALL همراه با دستور WHERE

عبارت SQL زیر از عملگر UNION ALL برای انتخاب تمام (حتی مقادیر تکراری) شهر های آلمانAnchor از جداول Customers و Suppliers استفاده می کند:

SELECT City, Country FROM Customers

WHERE Country='Germany'

UNION ALL

SELECT City, Country FROM Suppliers

WHERE Country='Germany'

ORDER BY City;

آموزش SQL Server ادامه دارد


در این مقاله از سری مقاله های آموزش SQL Server به آموزش انواع join می پردازیم :

کلید واژه Join برای ترکیب سطر های دو یا چند جدول به کار می رود. ایج ترین نوع Join –Inner join (پیوند داخلی) است که تمام سطر هایی از جدول های گوناگون را که از شرط Join پیروی می کنند فرا می خواند. بیایید نگاهی به گزیده ای از جدول "Orders"( سفارشات) در پایین بیاندازیم.

 

حالا نگاهی به گزیده ای از جدول "Customers" در زیر بیاندازید:

 

دقت داشته باشید که ستون "Customers ID" در جدول "Orders" به ستون "Customers ID" در جدول "Customers" اشاره دارد. رابطه بین دو جدول بالا ستون "Customer ID" می باشد. بنابراین اگر ما عبارت SQL زیر را که شامل (INNER JOIN) می باشد اجرا کنیم.

SELECT Orders.OrderID, Customers.CompanyName
, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;

 

آموزش JOIN

قبل از اینکه مثال ها را ادامه دهیم انواع پیوندهایی که می توان از آنها استفاده کرد را به همراه تفاوت های آن ها بیان می کنیم.

  • کلید واژه INNER JOIN : سطرهایی را که در هر دو جدول تناظر دارند را بر می گرداند.
  • کلید واژه LEFT JOIN : تمامی سطرها را از جدول سمت چپ و همچنین سطر هایی را از جدول سمت راست که با جدول سمت چپ متناظر هستند را فرا می خواند.
  • کلید واژه RIGHT JOIN : تمام سطر ها را از جدول سمت راست و همچنین سطرهایی را از جدول سمت چپ که با جدول سمت راست متناظر هستند را فرا می خواند.
  • کلید واژه FULL JOIN : تمام ردیف های موجود در جداول را با وجود حتی یک همخوانی میان جداول فرا می خواند.

 

آموزش INNER JOIN

کلید واژه INNER JOIN سطرهایی از هر دو جدول را انتخاب می کند که حداقل یک داده متناظر در ستون های مرتبط با هم داشته باشد.

فرم عبارت INNER JOIN

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
یا:
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

نکته :

تفاوتی بین JOIN و INNER JOIN وجود ندارد یا به عبارت دیگر INNER JOIN همان JOIN است.

 

نحوه استفاده از کلید واژه INNER JOIN در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:

 

جدول زیر نیز گزیده ای از جدول "Orders" می باشد:

 

آموزش انواع join : مثال استفاده از کلید واژه INNER JOIN

عبارت SQL زیر تمام مشتریان را همراه با شماره سفارشاتشان لیست می کند:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

نکته :

عبارت کلیدی INNER JOIN سطرهایی که حداقل یک تناظر در دو جدول داشته باشند را برمی گرداند. اگر سطری در جدول Customers وجود دارد که تناظری با جدول Orders ندارد، آن سطر لیست نمی شود.

 

آموزش دستور LEFT JOIN

کلید واژه LEFT JOIN تمام سطر های جدول سمت چپ (table1) و آندسته از سطر های جدول سمت راست (table2) را که با جدول سمت چپ متناظر است فرا می خواند. اگر در جدول سمت راست سطر متناظری وجود نداشته باشد نتیجه در سمت راست صفرAnchor خواهد بود.

فرم کلید واژه LEFT JOIN

 SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
یا :
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

نکته :

در برخی از پایگاه های داده LEFT JOIN به نام LEFT OUTER JOIN نیز نامیده می شود.

 

نحوه استفاده از کلید واژه LEFT JOIN در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:

 

آنچه در زیر می بینید گزیده ای است از جدول "Orders":

 

مثال استفاده از کلید واژه LEFT JOIN

عبارت SQL زیر تمام مشتریان و سفارشاتشان را لیست می کند:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

نکته :

کلید واژه LEFT JOIN تمام سطرهای جدول سمت چپ (Customers) را برمی گرداند حتی اگر هیچ داده متناظری برای آن در جدول سمت راست (Orders) وجود نداشته باشد.

 

آموزش دستور RIGHT JOIN

کلید واژه RIGHT JOIN تمام سطر های جدول سمت راست (table2) و آندسته از سطر های جدول سمت چپ (table1) را که با جدول سمت راست متناظر است فرا می خواند. اگر در جدول سمت چپ سطر متناظری وجود نداشته باشد نتیجه در سمت چپ صفرAnchor خواهد بود.

فرم کلید واژه RIGHT JOIN

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
یا :
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;

نکته :

در برخی از پایگاه های داده RIGHT JOIN به نام RIGHT OUTER JOIN نیز نامیده می شود.

نحوه استفاده از کلید واژه RIGHT JOIN در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Orders" انتخاب شده است:

 

آنچه در زیر می بینید گزیده ای است از جدول "EmployeesAnchor":

 

مثال استفاده از کلید واژه RIGHT JOIN

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

SELECT Orders.OrderID, Employees.FirstName
FROM Orders
RIGHT JOIN Employees
ON Orders.EmployeeID=Employees.EmployeeID
ORDER BY Orders.OrderID;

نکته :

کلید واژه RIGHT JOIN تمام سطرهای جدول سمت راست (Employees) را برمی گرداند حتی اگر هیچ داده متناظری برای آن در جدول سمت چپ (Orders) وجود نداشته باشد.

 

آموزش OUTER JOIN

کلید واژه FULL OUTER JOIN تمام ردیف های جدول سمت چپ (table1) و سمت راست (table2) را فرا می خواند. کلید واژه FULL OUTER JOIN نتایج بدست آمده از پیوند های چپ و راستAnchor را با یکدیگر ترکیب می کند.

فرم کلید واژه FULL OUTER JOIN

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

 

نحوه استفاده از کلید واژه FULL OUTER JOIN در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:

 

مثال استفاده از کلید واژه FULL OUTER JOIN

عبارت SQL زیر تمام مشتریان و سفارشاتشان را انتخاب می کند:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

 

نتیجه بدست آمده از عبارت بالاAnchor به شکل زیر می باشد:

 

نکته :

کلید واژه FULL OUTER JOIN تمام سطرهای جدول سمت چپ (Customers) و تمام سطرهای موجود در جدول سمت راست (Orders) را بر می گرداند. اگر سطری در جدول Customers وجود دارد که تناظری در جدول Orders ندارد یا اگر سطری در جدول Orders وجود دارد که تناظری در جدول Customers ندارد با این وجود این سطرها نیز در جدول نتیجه نمایش داده خواهند شد.

 

با دیگر مقاله های ما در زمینه آموزش SQL Server همراه باشید


در این مقاله از مجموعه مقاله های آموزش SQL Server به آموزش دستورات in و between در SQL Server می پردازیم

 

عملگر IN در sql server

عملگر IN به شما این امکان را می دهد که چندین ارزش )مقدار) را در عبارت WHERE مشخص کنید. فرم عملگر IN به صورت زیر است :

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,.);

 

نحوه استفاده از عملگر IN در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:

آموزش دستور in در SQL Server : مثال استفاده از عملگر IN

عبارت SQL زیر مشتریانی را انتخاب می کند که نام شهر هایشان "Paris" با "London" باشد:

SELECT * FROM Customers
WHERE City IN ('Paris','London');

 

آموزش SQL Server : عملگر BETWEEN در sql server

عملگر BETWEEN برای انتخاب مقادیر بین یک محدوده استفاده می شود. عملگر BETWEEN برای انتخاب مقادیر بین یک محدوده استفاده می شود. مقدارها می توانند اعداد، متن و یا تاریخ باشند.

 

فرم عملگر BETWEEN

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

 

نحوه استفاده از عملگر BETWEEN در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "ProductsAnchor" انتخاب شده است:

آموزش دستور between در SQL Server : مثال استفاده از عملگر BETWEEN

عبارت SQL زیر تمام محصولاتی را که قیمت آنها بین 10 و 20 باشد را انتخاب می کند:

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;

 

آموزش دستور between در SQL Server : مثال استفاده از عملگر NOT BETWEEN

برای نمایش محصولاتی که خارج از محدوده مثال قبل باشد از NOT BETWEEN استفاده می کنیم:

SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;

 

آموزش دستور between در SQL Server : مثال استفاده از عملگر BETWEEN همراه با IN

عبارت SQL زیر محصولاتی را که در محدوده قیمتی 10 و 20 بوده را انتخاب می کند ولی محصولاتی که "Category ID" آنها 1، 2 یا 3 باشد را نشان نمی دهد:

SELECT * FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3);

 

آموزش دستور between در SQL Server : مثال استفاده از عملگر BETWEEN همراه با مقادیر متنی

عبارت SQL زیر محصولاتی را که نام آنها با هر کدام از حروف مابین "C" و "M" آغاز شده باشد را انتخاب می کند:

SELECT * FROM Products
WHERE ProductName BETWEEN 'C' AND 'M';

 

آموزش دستور between در SQL Server : مثال استفاده از عملگر BETWEEN NOT همراه با مقادیر متنی

عبارت SQL زیر محصولاتی را که نام آنها با حرفی غیر از حروف مابین "C" و "M" آغاز شده باشد را انتخاب می کند:

SELECT * FROM Products
WHERE ProductName NOT BETWEEN 'C' AND 'M';

 

جدول زیر گزیده ای است از جدول "Order":

آموزش دستور between در SQL Server : مثال استفاده از عملگر BETWEEN همراه Date Value

مقدار SQL زیر تمام سفارشاتی را که در بین تاریخ های "04-July-1996" و "09-July-1996" انجام شده است انتخاب می کند:

SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;

 

توجه داشته باشید که عملگر BETWEEN در پایگاه های داده مختلف نتایج گوناگونی خواهد داشت. در بعضی از پایگاه داده ها عملگر BETWEEN فیلدهای بین دو مقدار را بجز مقادیر ابتدا و انتهای محدوده را انتخاب می کند. در بعضی دیگر از پایگاه داده ها عملگر BETWEEN فیلدهای بین دو مقدار رابه همراه مقادیر ابتدا و انتهای محدوده را انتخاب می کند. در بعضی دیگر از پایگاه داده ها عملگر BETWEEN فیلدهای بین دو مقدار رابه همراه مقدار ابتدایی و بدون مقدار انتهایی محدوده را انتخاب می کند.

بنابراین: پایگاه داده خود را کنترل کنید که چگونه با عملگر BETWEEN رفتار می کند!

 

با دیگر مقالات ما در زمینه آموزش SQL Server همراه باشید


تبلیغات

آخرین ارسال ها

آخرین جستجو ها

زرگر دیـکــداش فرافایل، مرکز دانلود فایل های دانشگاهی طراحی مطب دندانپزشکی و دکوراسیون کلینیک معرفی برندها و شرکت های معتبر تمامی درمان با ورزش سایه های نور و.... آموزش سری کتابهای تاپ ناچ دانلود فیلم و سریال دوبله فارسی سرو دانلود بیولایف متنوع ترین و متفاوت ترین سایت داروسازی فارسی زبان در حهان