Оператори 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.

Граничните стойности са в обхвата на стойностите, спрямо които се прави сравнението.

Еквивалентен на горния е израз с предикати за сравнение: