SQL - извличане на данни блог Майкъл flonova

Ние продължаваме да се запознае с SQL и в този раздел ще научите няколко оператори, които могат да бъдат използвани за подобряване на търсенето на необходимата информация. Днес той ще бъде операторите IN, МЕЖДУ, е нула. Както е добре, ние ще разгледаме модели.

Нека започнем с оператора в. По принцип е възможно да се създадат заявки без него, но това опростява SQL код и го направи по-видими. Веднага разгледаме един пример:

В тази заявка, изберете всички записи, в които едно и също име Андрю или Иван, или Боб или Шварц. Това искане е напълно работеща, но представете си, че това е необходимо да бъдат прехвърлени 20 или повече имена. В този случай, по искане ще набъбне като глобус.

Това решава проблема на оператора на IN, която ви позволява да посочите списък с ценности, с които да се правят сравнения. Списъкът е даден в скоби, разделени със запетая. Ето как една и съща заявка ще изглежда с оператора в:

Такова искане е да се напише много по-лесно, и това отнема по-малко място. Ако се разгледа внимателно предишните две искането, че е възможно, без да ми обяснения за да разбере това, което прави операторът на ПО. В този случай той ще изведе всички записи, в които полето за име е едно от първите стойности, посочени в скоби след запетаята. В скоби след оператора в изброяваме валидни стойности, разделени със запетая, което е необходимо да се направи сравнение.

Ако използвате цифрово поле, кавичките трябва да бъдат премахнати. Така например, следната заявка избира всички документи, в които полето "idPosition" е равно на една от следните стойности 1,2,3,4,5:

Заедно с оператора в и за всички следващи оператори можете спокойно да използвате булеви оператори, като например в следната заявка, ние се обръщаме към всички линии, различни от тези, изброени в клауза в:

Тази заявка избира всички записи, където полето "idPosition" Не 1, 2, 3, 4, 5, че вече не е Булев оператор НЕ може да не е. С него ние да промени резултата от сравнението на обратното.

Числата в скоби могат да бъдат в произволен ред, но аз не съм напразно избра номера идват едно след друго. Просто искам плавен преход към следващия пример - използването на оператора МЕЖДУ. Смисълът на това твърдение е, че тя ви позволява да изберете всички записи, които съдържат определени стойности на полетата в рамките на определен обхват. Например, вие трябва да изберете всички редове, в които idPosition QT = 1 и по-малко или равно на 5. Това може да стане с помощта на следната заявка оператори за сравнение:

Но с помощта МЕЖДУ всичко е направено много по-красива и елегантна:

Както можете да видите, МЕЖДУ оператор също е необходима само за удобство и лесно можете да направите, без него. Както знаете, операторът определя набор от числа. Трябва да се помни, че крайните точки са включени в резултата от заявка.

Сега нека видим как можете да избирате данните, извън този обхват, без да използвате МЕЖДУ оператор. За да направите това, можете да използвате един от следните заявки:

Коя опция за използване - в зависимост от личните предпочитания. Но същия проблем с помощта МЕЖДУ решен по-елегантно. За да направите това, напишете НЕ МЕЖДУ, както е показано в следния пример:

Този оператор може да се използва с низ области. Например, вие трябва да изберете всички редове, когато името започва с буквата А до точка Б:

В резултат на това искане ще включва имена като Андрю и Борис. Базил в резултата не попада, защото това е името на нещо повече от буквата B.

Обръщаме се към оператора да е или по-точно, за невалидни и не е NULL, тъй като не е се използва самостоятелно. С това изявление, можете да проверите стойността на нула или различна от нула стойност. Не забравяйте, че има нулева стойност, не е равна на 0 или '' (празен низ). Нулева стойност NULL Не е попълнено поле, където няма ценности.

Това твърдение може наистина да е важно. Да предположим, че искате да изберете всички записи, където не се пълни областта Близкия. Това поле не може да се напълни, а понякога може да се наложи, за да разберете кои записи съдържа нулева стойност:

Когато са пълни с ценностите на базата данни, той не го изчисли на оператора, така че всички полета са попълнени и резултатът няма да получите един ред. От друга страна, фактът, че в резултат на това не се получи един ред, показва, че полето за данни е съвсем правилно и бащино име на всички записи, пълни.

За да търсите за всички различна от нула стойност се използва НЕ Е NULL оператор, например, следната заявка показва всички записи, където полето се пълни за съхранение на бащиното "vcSurName":

Благодарение на оператора NOT, напротив, ние молим за тези редове, в които не се съдържат областта нулев имената на стойностите.