SQL ауқымындағы деректерді таңдау

WHERE тармағын және BETWEEN шартын таныстыру

Құрылымдық сұрау тілі (SQL) деректер қорынан ақпаратты алу үшін теңшелетін сұрауларды жасау мүмкіндігімен дерекқор пайдаланушыларды қамтамасыз етеді. Алдыңғы мақалада біз SQL SELECT сұрауларын пайдаланып дерекқордан ақпаратты алуды зерттедік. Талқылауды кеңейтіп, белгілі бір шарттарға сәйкес келетін деректерді алу үшін озық сұрауларды қалай орындауға болатындығын қарастырайық.

Дерекқор өнімдерімен бірге оқулық ретінде жиі жіберілетін әдетте пайдаланылатын Northwind дерекқорына негізделген мысалды қарастырайық.

Дерекқордың Өнім кестесінен үзінді:

Өнім кестесі
ProductID ProductName Жеткізушінің коды QuantityPerUnit Тауар өлшемінің бағасы UnitsInStock
1 Чай 1 10 қорап x 20 қап 18.00 39
2 Chang 1 24 - 12 унция бөтелкелері 19.00 17
3 Анисидті сироп 1 12 - 550 мл бөтелкелер 10.00 13
4 Шеф Антонның Кажун дәмдеуіштері 2 48 - 6 унциялық банкалар 22.00 53
5 Шеф Антонның гумбо қоспасы 2 36 қорап 21.35 0
6 Үлкен әйелі бәйшешекке арналған спред 3 12 - 8 унциялық банкалар 25.00 120
7 Бобтың органикалық құрғақ алмұрт ағашы 3 12 - 1 лб pkgs. 30.00 15

Қарапайым шекара шарттары

Біздің сұрауымызда бірінші шектеу қарапайым шекаралық шарттарды қамтиды. Бұл әрекеттерді SELECT сұрауының WHERE тармағында стандартты операторлармен жасалған қарапайым шартты мәлімдемелерді пайдалана отырып көрсете аламыз, мысалы, <,>,> =, және <=.


Біріншіден, 20.00-нан астам UnitPrice бар дерекқордағы барлық өнімдердің тізімін шығаруға мүмкіндік беретін қарапайым сұрауды көрейік:

ТАҢДАУ Өнім атауы, UnitPrice FROM өнімдері WHERE UnitPrice> 20.00

Бұл төменде көрсетілген төрт өнімнің тізімін береді:

ProductName UnitPrice ------- -------- Chef Anton's Gumbo Mix 21.35 Шеф-аспаз Антонның каджуны дәмдеуіштері 22.00 Үлкеннің жұмыртқаның спреді 25.00 Бобтың органикалық құрғақ алмасы 30.00

WHERE сөйлемін жолдың мәндерімен қолдануға болады. Бұл, негізінен, таңбаларды сандарға теңестіреді, ал A мәні 1 мен Z мәнін білдіретін 26 мәнін теңестіреді. Мысалы, барлық өнімдерді U, V, W, X, Y немесе Z бастап келесі сұраныстан бастап көрсете аламыз:

ТауарларҮлгілерДүкенҚолдау Менің тіркелгімКіру Адамдар Күнтізбе WHERE ProductName> = 'T'

Нәтижені шығаратын:

ProductName ------- Бобтың органикалық құрғақ алмұрттары

Шекараларын қолданып диапазонды көрсету

WHERE тармағы бізге бірнеше шартты қолдану арқылы мәнге ауқымды шартты енгізуге мүмкіндік береді. Мысалы, егер біз жоғарыда көрсетілген сұранысқа ие болғымыз келсе және нәтижелерді 15.00-ден 20.00-ге дейінгі бағалармен шектейтін болсақ, келесі сұранысты пайдалана аламыз:

ТАҢДАУ Өнім атауы, UnitPrice FROM өнімдер WHERE UnitPrice> 15.00 және UnitPrice <20.00

Бұл төменде көрсетілген нәтиже береді:

ProductName UnitPrice ------- -------- Chai 18.00 Чанг 19.00

BETWEEN аралықты білдіретін

SQL-де BETWEEN синтаксисі қамтамасыз етіледі, ол бізге қосуға тура келетін шарттардың санын азайтады және сұрауды оқуға оңай етеді. Мысалы, жоғарыдағы екі WHERE шартын пайдаланудың орнына біз келесідей сұрауды білдіруіміз мүмкін:

ТауарларҮлгілерДүкенҚолдау, БірлікPrice Өнімдерден ҚАЙДА БАРЛЫҒЫ 15.00 және 20.00 аралығында

Біздің басқа шарттық пункттермен салыстырғанда BETWEEN жолдың мәндерімен де жұмыс істейді. Егер V, W немесе X бастап кез келген барлық елдердің тізімін шығарғымыз келсе, біз сұранысты пайдалана аламыз:

ТауарларҮнімінНАУАНЫҢ ТАҢДАУЫ Өнімнің атауы «A» және «D»

Нәтижені шығаратын:

Өнім атауы ------- Анисидегі сироп Чай Чан Чиф Антонның гумбо шебері Антонның кажун дәмдеуіштері

WHERE сөйлемі нәтижелерді белгілі бір ауқымдарға түсетін мәндерге шектеуге мүмкіндік беретін SQL тілінің күшті бөлігі болып табылады. Ол әдетте бизнес логикасын көрсетуге көмектеседі және әрбір дерекқордың кәсіби құралының бөлігі болуы керек.

SQL білімі жоқ адамдарға қол жетімді ету үшін жалпы ережелерді сақталатын процедураға қосу өте пайдалы.