Оператори LIKE и NOT LIKE
Тема 3.2. Избиране на данни с помощта на клаузата SELECT
Всички SQL изрази, предназначени да избират данни от съществуващи таблици на база данни, започват с ключовата дума (оператор) SELECT (избиране). За прецизиране на заявката се използват допълнителни оператори, като FROM (от), WHERE (къде) и др.
Синтаксис на проста SELECT заявка:
[ ] указва оператори, които може да не присъстват в заявката. Тези оператори се използват за прецизиране на заявката за извличане на данни:
pWHERE (където) - показва записите, които трябва да бъдат включени в получената таблица (филтър за записи);
pGROUP BY (групиране по) - групира записите по стойностите на определени колони;
pHAVING (having, on condition) – показва групи от записи, които трябва да бъдат включени в резултантната таблица (групов филтър);
pORDER BY (сортиране по) - сортира (подрежда) записи.
Пример:
ИЗБЕРЕТЕ ИМЕ, ФАМИЛИЯ
Горната заявка извлича всички стойности на ИМЕ и ФАМИЛИЯ от таблицата STUDENTS. Резултатът е таблица, състояща се от 2 колони.
Редът на колоните в тази таблица съвпада с реда на полетата, посочени в заявката, а не с техния ред в таблицата STUDENTS.
Ако трябва да получите всички колони на таблицата, тогава вместо списъка с колони е достатъчно да посочите символа (*).
Пример:
ИЗБЕРЕТЕ*
Непосредствено след оператора SELECT, преди списъка с колони, можете да използвате ключовите думи ALL(all)и DISTINCT(diff), които указват кои записи да бъдат представени в получената таблица. Ако тези ключови думи не се използват, се предполага, че всички записи трябва да бъдат избрани (което също е същото като използването на ключовата дума ALL). INкогато се използва DISTINCT, в получената таблица се представят само уникални записи. В този случай, ако в изходната таблица има няколко идентични записа, тогава от тях се избира само първият.
Пример:
ИЗБЕРЕТЕ ОТДЕЛЕН ГРАД
Ако в клаузата FROM е указана повече от една таблица, тогава имената на колоните в клаузата SELECT трябва да съдържатпрефикси, за да покажат към коя таблица се отнасят. Префиксът е отделен от името на колоната с точка.
Пример:
ИзразSTUDENTS.NAMEсе отнася до колонаNAMEот таблицаSTUDENTS
Можете да предефинирате заглавията на колоните в получената таблица по ваш вкус, като им присвоите така нареченитепсевдоними. За да направите това, в списъка с колони, след съответната колона, напишете израз от формата:AS column-header
Пример:
ИЗБЕРЕТЕ ИМЕ КАТО Собствено име, ФАМИЛИЯ КАТО Фамилия
Псевдонимите също могат да бъдат зададени за всяка таблица след ключовата дума FROM. За целта е достатъчно да посочите псевдоним, разделен с интервал непосредствено след името на съответната таблица. Псевдонимите на таблици, които са по-кратки от техните имена, са полезни при сложни заявки.
Пример:
ИЗБЕРЕТЕ T1.NAME , T1.SURNAME, T2.SUM_STIPEND
ОТ СТУДЕНТИ Т1, СТИПЕНДИЯ Т2;
Клауза WHERE
Условията за търсене в клаузата WHERE са булеви изрази, т.е. приема една от три възможни стойности:true,false иNULL(това се случва, когато някои елементи в израза са null). Така в SQL имаме работа с тризначна логика.
При компилирането на логически изрази се използват специални ключови думи и символи на операции за сравнение, които се наричат предикати:
ХАРЕСВАНЕ, НЕКАТО;
Пример:
WHERE FURNAME = "Петров";
В резултат на изпълнението на заявката ще се получи таблица от една колона, съдържаща имената на всички студенти с име Петров, които са в таблицата STUDENTS.
Пример:
Подайте заявка за имената и фамилиите на студенти, обучаващи се 3-та година и получаващи стипендия:
ИЗБЕРЕТЕ ИМЕ, ФАМИЛИЯ
КЪДЕ KURS=3 И СТИПЕНДИЯ>0;
оператор BETWEEN
Предикатът BETWEEN (между) ви позволява да укажете израз за проверка дали дадена стойност е в диапазона, определен от граничните стойности.
Пример:
КЪДЕ ЧАСОВЕ МЕЖДУ 30 И 40;
Покажете имената на предметите, за изучаването на които е даден брой часове в диапазона от 30 до 40.
Граничните стойности са в обхвата на стойностите, спрямо които се прави сравнението.
Еквивалентен на горния е израз с предикати за сравнение: