Ներկայացնել WHERE կետը եւ BETWEEN վիճակը
Կառուցվածքային հարցման լեզու (SQL) ապահովում է տվյալների բազայի օգտագործողներին տվյալների շտեմարաններից տեղեկություն ստանալու համար հարմարեցված հարցումներ ստեղծելու ունակություն: Ավելի վաղ հոդվածում մենք ուսումնասիրեցինք SQL SELECT հարցումներից օգտվողների տվյալների բազայից դուրս բերելու մասին : Եկեք ընդարձակենք այդ քննարկումները եւ ուսումնասիրեք, թե ինչպես կարող եք կատարել առաջադեմ հարցումներ , ստանալու հատուկ պայմաններին համապատասխանող տվյալներ:
Եկեք քննենք մի օրինակ, որը հիմնված է օգտագործված Northwind բազայի վրա, որը սովորաբար առաքում է տվյալների բազայի արտադրանքների որպես ձեռնարկ:
Ահա տվյալների բազայի արտադրանքի աղյուսակից մի հատված.
ProductID- ը | Ապրանքային անուն | Մատակարարող ID | Քանակականություն | Միավոր գինը | Միավորներ |
---|---|---|---|---|---|
1 | Չայ | 1 | 10 տուփ x 20 տոպրակներ | 18.00 | 39 |
2 | Chang | 1 | 24 - 12 ունց շիշ | 19.00 | 17 |
3 | Անիսիդային օշարակ | 1 | 12 - 550 մլ շիշ | 10.00 | 13 |
4 | Chef Անտոնի կաջուն համեմունք | 2 | 48 - 6 ունց բանկա | 22.00 | 53 |
5 | Chef Անտոնի Gumbo Mix- ը | 2 | 36 տուփ | 21.35 | 0 |
6 | Տատիկի ծաղրածուի տարածումը | 3 | 12 - 8 ունց բանկա | 25.00 | 120 |
7 | Հորեղբոր Բոբի օրգանական չորացրած տանձ | 3 | 12-ից 1 նիշ pkgs: | 30.00 | 15 |
Պարզ սահմանային պայմաններ
Առաջին սահմանափակումները, որոնք մենք կներկայացնենք մեր հարցմանը, ներառում են պարզ սահմանային պայմաններ: Մենք կարող ենք նշել դրանք SELECT հարցման WHERE կետում `օգտագործելով ստանդարտ օպերատորների հետ կառուցված պարզ հայտարարություններ, ինչպիսիք են <,>,> =, եւ <=:
Նախ, եկեք փորձենք մի պարզ հարց, որը թույլ է տալիս մեզ արտացոլել տվյալների բազայում առկա բոլոր ապրանքները, որոնք ունեն UnitPrice ավելի քան 20.00:
Սա արտադրում է չորս արտադրանքի ցանկ, ինչպես ներկայացված է ստորեւ:
ProductName UnitPrice ------- -------- Chef Անտոնի Gumbo Mix 21.35 Chef Անտոնի կաժունի համեմունքներ 22.00 Տատիկի բոյզենի տարածումը 25.00 Uncle Bob- ի օրգանական չորացրած տանձ 30.00Մենք կարող ենք նաեւ օգտագործել WHERE կետը լարային արժեքներով: Սա հիմնականում հավասարեցնում է նիշերի թվերին, իսկ A- ի արժեքը, որը ներկայացնում է արժեքը 1-ը եւ Z- ը, 26 արժեքը: Օրինակ, մենք կարող ենք ցույց տալ բոլոր ապրանքները U, V, W, X, Y կամ Z- ի հետ, հետեւյալ հարցմամբ.
Ընտրել ProductName FROM PRODUCTS WHERE ProductName> = 'T'Արդյունք է առաջացնում.
ProductName ------- Uncle Bob- ի օրգանական չորացրած տանձԱրտահայտելով միջակայքները, օգտագործելով սահմանները
WHERE- ի դրույթը նաեւ թույլ է տալիս կիրառել մի շարք պայմաններ արժեքի վրա, օգտագործելով բազմաթիվ պայմաններ: Օրինակ, եթե մենք ուզում ենք վերցնել մեր հարցումը վերը նշված եւ արդյունքների սահմանափակումները 15.00-ից մինչեւ 20.00-ի միջեւ ընկած ժամանակահատվածում, կարող ենք օգտագործել հետեւյալ հարցումը.
SELECT ProductName, UnitPrice FROM ապրանքներ WHERE UnitPrice> 15.00 եւ UnitPrice <20.00Սա առաջացնում է արդյունքը ստորեւ:
ProductName Unit Գինը ------- -------- Chai 18.00 Chang 19.00Ցույց տալ միջակայքները BETWEEN- ով
SQL- ն նաեւ տալիս է BETWEEN սինթետիկի դյուրանցում, որը նվազեցնում է այն պայմանների քանակը, որոնք մենք պետք է ներառենք եւ հարցումը ավելի ընթեռնելի: Օրինակ, վերը նշված WHERE- ի երկու պայմանները փոխելու փոխարեն մենք կարող էինք արտահայտել նույն հարցումը, ինչպես, օրինակ,
SELECT ProductName, UnitPrice FROM ապրանքներ WHERE UnitPrice միջեւ 15.00 եւ 20.00Ինչպես մեր մյուս պայմանների դրույթները, BETWEEN- ն աշխատում է նաեւ լարային արժեքներով: Եթե ցանկանում ենք արտադրել V, W կամ X- ով սկսած բոլոր երկրների ցանկը, կարող ենք օգտագործել հետեւյալ հարցումը.
ԸՆԴՀԱՆՈՒՐ ԴՐՈՒՅԹՆԵՐՆ ԸՆԴՀԱՆՈՒՐ ԴՐՈՒՅԹՆԵՐԸ ՑԱՆԿԱՆՈՒՄ ԵՆ «Ապրանք» եւ «Դ» միջեւԱրդյունք է առաջացնում.
ProductName ------- Aniseed Syrup Chai Chang Chef Անտոնի Gumbo խառնուրդ Chef Անտոնի Cajun համեմունքWHERE- ի դրույթը հանդիսանում է SQL լեզվի հզոր մասը, որը թույլ է տալիս սահմանափակել արդյունքները որոշակի միջակայքերում ընկած արժեքների նկատմամբ: Դա շատ հաճախ օգտագործվում է օգնելու գործնական տրամաբանությունը արտահայտել եւ պետք է լինի յուրաքանչյուր բազայի մասնագիտական գործիքի մաս:
Հաճախ օգտակար է ընդգրկել ընդհանուր դրույթներ պահեստային ընթացակարգի մեջ , այն մատչելի դարձնելու համար, առանց SQL գիտելիքների: