آموزش SQL-جستجوی هوشمندتر با where

خیلی وقت ها نیاز داریم تا اطلاعات خاصی رو از دیتابیس انتخاب کنیم و یا اینکه اطلاعات مورد نظر خودمون رو درون دیتابیس جستجو کنیم! عمل جستجو کردن (یا انتخاب کردن با شرط خاص) با اظافه کردن قسمت where به دستورات SQL قابل انجام هست. در اموزش های قبلی دستورات select , insert , update رو گفتیم , همونطور که دوستان عزیز میدونن میشه به انتهای دستور select و update قسمت where رو اظافه کرد. اگه با SQL اشنایی ندارید و یا با دستوراتی که در اموزش های قبلی گفته شده اشنایی ندارید میتونید از اینجا اونا رو بخونید(کلیک کنید) و بعد از مطالعه کردن باز به همین پست برگردید 😀

در این اموزش قصد دارم تا چند مورد از کاربردی ترین دستوراتی که میتونید توی قسمت where استفاده کنید رو بهتون معرفی کنم , این دستورات شامل موارد زیر میشن:

  • دستور in
  • دستور between
  • دستور like
  • دستور not

اموزش و بررسی دستور in در SQL :

برای استفاده از این دستور شما یک مجموعه مقادیر در نظر میگیرید (چیزی شبیه ارایه) , این دستور باعث میشه که اگه داده ی شما برابر با یکی از مجموعه مقادیر در نظر گرفته شده بود از دیتابیس گرفته بشه. به مثال زیر دقت کنید:

در دستورات بالا ما از جدول customers که مشتریامون توی اون قرار دارند(فرض کنید) میایم اون مشتری هایی که شهرشون (city) برابر با tehran و یا rasht و یا gorgan (تهران یا رشت یا گرگان) هست رو انتخاب میکنیم 😀 شما میتونستید این کار رو با or های متوالی انجام بدید ولی اگه موارد زیاد باشه استفاده از دستور in باعث میشه که کد شما تمیز تر باشه و اینکه کمتر کد تایپ میکنید کار سریعتر انجام میشه 🙂 کد بالا رو اگه با or بنویسیم به صورت زیر میشه :

پس تا اینجا گفتیم که دستور In برای انتخاب از بین مجموعه مقادیر (چیزی شبیه ارایه) استفاده میشه و اگه داده ی ما با یکی از این مقادیر برابر باشه از دیتابیس خونده میشه و به ما داده میشه.

اموزش و بررسی دستور between در SQL :

این دستور در مواقعی استفاده میشه که شما یک بازه ی خاصی دارید و میخواید داده های شما در اون بازه قرار بگیرن! مثلا اگه سایت های فروش انلاین رو دیده باشید (مثلا دیجی کالا) یه قسمتی دارند که شما میتونید بازه ی قیمت مورد نظر خودتون رو انتخاب کنید , مثلا تمامی کالاهایی که قیمت بین ۱۰۰ هزار تومان تا ۱۵۰ هزار تومان رو دارن به شما نمایش داده بشن! این کار رو میشه با استفاده از دستور between انجام داد , به مثال زیر دقت کنید:

در مثال بالا ما از جدول products که محصولاتمون توش قرار داره میایم و کالاهایی که فیلد price انها بین بازه ی ۱۰۰۰۰۰ (صدهزار) و ۱۵۰۰۰۰ (صدوپنجاه هزار) هست رو انتخاب میکنیم 😀 به همین راحتی! شما میتونید دستور بالا رو با استفاده از ترکیب کردن دوتا شرط به همراه and انجام بدید اما سرعت دستور between بیشتر خواهد بود و کد شما تمیزتر و حرفه ای تر به نظر میرسه! دستور بالا با استفاده از and به صورت زیر خواهد بود:

در دستور بالا ما میگیم محصولاتی که قیمت انها (Price) بیشتر از ۱۰۰ هزار و کمتر از ۱۵۰ هزار هست رو انتخاب کنه. این کار با دستور between تمیزتر و سریعتر انجام خواهد گرفت مخصوصا اگه محصولات شما به مرور زمان بیشتر بشه.

اموزش و بررسی دستور like در SQL :

این دستور خیلی کاربردی و مهم هست و در بیشتر برنامه هایی که در اینده مینویسید استفاده میشه! این دستور برای مقایسه ی داده های رشته ای (متنی) به کار میره , نحوه ی کار به این صورت است که شما میگید اگه یک رشته ی متنی شبیه متن مورد نظر شما بود انتخاب بشه! دستور like دوتا کاراکتر خاص داره که به صورت زیر هستند:

کاراکتر % : نمایشگر مجموعه ی از ۰ تا بی نهایت کاراکت هست! (در ادامه با مثال توضیح میدم)

کاراکتر _ : نمایشگر یک کاراکتر است! (در ادامه توضیح میدم)

خب حالا میریم یه سری مثال میزنیم , به مثال زیر دقت کنید:

دستور بالا باعث میشه تمامی مشتریانی که شهر انها (city) دارای کاراکتر s در انتهایشان باشه انتخاب بشن! علامت % یعنی هرکاراکتری قبل از s باشه اشکال نداره. اگه شهر چیزی مثل fars باشه که اخرش s داشته باشه انتخاب میشه , حالا به مثال زیر دقت کنید:

در مثال بالا اگه نام شهر دارای کاراکتر s باشه انتخاب میشه! مهم نیست که این کاراکتر کجا باشه! اون دوتا % که قبل و بعد از s گذاشتیم به معنای این هست که قبل یا بعد از s اگه کاراکتر دیگه ای بود اشکال نداره 😀 الان اگه اسم شهر چیزی مثل fars یا rafsanjan یا kordestan باشه که توش s داشته باشه انتخاب میشه!

در مثال بالا تمامی مشتری هایی که نامشون شامل ad باشه انتخاب میشن! مثلا اگه mohamad یا ahmad یا adris باشه انتخاب میشن.

کاراکتر _ نیز میتونه جایگزین یک کاراکتر باشه! به مثال زیر دقت کنید:

در مثال بالا تمامی شهر هایی که سه حرفی باشن و اخرشون li داشته باشه انتخاب میشن! اون _ (اندرلاین) نمایانگر یک کاراکتر هست اما نوع کاراکتر مشخص نشده! یعنی اینکه بجاش میشه هرچیزی باشه , مثلا اگه نام شهر ali یا eli یا kli و یا هرچیزی که سه حرفی باشه و اخرش li داشته  باشه انتخاب میشه!

در مثال بالا اگه اسم شهر مثلا به صورت lonoon یا laneon یا lkn2on (یا خیلی موارد دیگه که ذکر نمیکنم) باشه انتخاب میشه , امیدوارم که متوجه شده باشید 🙂 دوستانی که خوب متوجه نشدن میتونن از بخش نظرات پایین همین پست سوال کنند تا پاسخ بگیرن.

اموزش و بررسی دستور not در SQL :

دستور not همونطور که خودتون به ذهنتون رسیده همه چیز رو منفی میکنه! منفی منظورم ریاضی نیست 😐 منظور نات کردن منطقی است. یعنی بایدها رو به نبایدها تبدیل میکنه. به مثال زیر دقت کنید:

در مثال بالا اگه مشتریان ما (customers) نام کشورشون شامل کلمات land نباشه انتخاب میشن 😀 خیلی باحال و تمیز! عملگر not رو میتونید با دستورات in و between نیز به کار ببرید.

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

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

به اشتراک بگذارید:Email this to someoneShare on FacebookTweet about this on TwitterShare on Google+Digg thisShare on LinkedInPin on PinterestShare on StumbleUponFlattr the authorShare on RedditBuffer this pageShare on TumblrPrint this pageShare on YummlyShare on VK

می‌خواهید دیدگاهتان را بیان کنید؟