Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Команда SELECT

Все запросы в SQL конструируются на базе одной команды – SELECT. Ее можно расширять для выполнения сложных обработок.

SELECT name1, name2, … - список столбцов, представляемых в результате

FROM Table name; связаны

Перенос на другую строку ничего не меняет в команде.

*- означает все.

Если поменять местами порядок слов, то в таком порядке получается результат.

 

Устранение избыточности данных

Допустим, SELECT выбирает один столбец из таблицы. В нем могут быть повторяющиеся значения, которые не нужны в результате запроса. Если в запрос

SELECT snum

FROM Orders;

Если добавить аргумент DISTINCT, то

SELECT DISTINCT snum

FROM Orders;

Исключит дублирующиеся значения из результата.

Противоположным аргументом является ALL – он включает все значения (по умолчанию - ALL).

Определение выборки – предложение WHERE

Предложение WHERE команды SELECT позволяет определить предикат, условие, которое может быть либо истинным, либо ложным для каждой строки. Команды извлекает только те, для которых предикат имеет значение “истина”.

Предположим, нужно узнать имена всех продавцов в London:

SELECT sname, city

FROM Sales people

WHERE city = ‘London’;

Заметим, что столбец city включается, в результат за счет появления в предложении SELECT, а не в WHERE.

Пример на числовое поле:

SELECT * FROM Customers

WHERE rating = 100;

Понятно, что применение WHERE не исключает DISTINCT и наоборот.

Допустимы и другие операторы:

>, <, >=, <=, <>

‘а’ <’n’ означает, что ‘а’ предшествует ‘n’ в алфавитном порядке.

Булевы операторы: AND, OR, NOT

Пример: SELECT * FROM Customers

WHERE city = ‘London’

AND rating > 200;

Пример на OR:

SELECT * FROM Customers

WHERE city = ‘London’

OR NOT rating > 200;

Или записи у которых город Лондон, или если rating не больше 200.

NOT должен предшествовать булеву выражению, значение которого он должен изменить (но не перед оператором сравнения rating NOT >200). SQL применяет NOT только к тому выражению, которое непосредственно следует за ним. Если нужно охватить больше, то ставятся круглые скобки:

… WHERE NOT (city = ‘London’ OR rating > 200);

Проследим логику в намеренно усложненном примере:

SELECT *

FROM Orders

WHERE NOT ((odate = 10/03/1990 AND snum > 1002)

OR amt > 2000.00);

Способ оценки сложного выражения следующий: оценить булево выражение, имеющее наибольшую глубину вхождения в круглые скобки, скомбинировать результаты в одно булево выражение, а затем связать его значение со значением выражений, имеющих меньшую глубину вхождения в скобки.

Рассмотрим приведенный пример:

Наибольшая глубина вхождения у предиката:

odate = 10/03/1990 AND snum > 1002, который дает “истину” для строк, удовлетворяющим обоим условиям. Обозначим его как В1. Это выражение соединено с amt > 2000,00 В2 с помощью OR и образует выражение В3. Оно полностью в круглых скобках перед NOTи вместе с ним образует В4 – предикат запроса.

<== предыдущая лекция | следующая лекция ==>
Язык SQL | Оператор LIKE
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 315; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.