Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Предложения оператора SELЕСТ и последовательность их использования



Предложение Описание
SELECT Столбцы или выражения, которые должны быть возвращены. Выбирает данные из указанных столбцов.
FROM Таблица для возвращения данных. Выбирает данные из перечисленных таблиц.
WHERE Фильтрация на уровне строк, где строки из указанных таблиц должны удовлетворять заданному перечню условий отбора строк.
GROUP BY Определение группы. Группирует по указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегатированное значение. Могут использоваться функции SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение), AVG (среднее значение).
HAVING Фильтрация на уровне групп. Фильтрует группы, которые удовлетворяют указанному перечню условий отбора групп.
ORDER BY Упорядочевание результатов сортировки

 

Символы, использующиеся в языке SQL.

 

* Выборка всех полей таблицы в команде SELECT, а также подсчет всех записей в агрегатной функции COUNT ()
( ) Группировка выражений, изменение приоритета операторов и вызов функций. Смысл круглых скобок в значительной степени зависит от контекста
[ ] Выборка конкретного элемента массива или объявление типа массива (например, в команде CREATE TABLE)
; Признак завершения команды SQL. Внутри команд может использоваться только в строковых константах и защищенных идентификаторах
, Разделитель элементов в списке
. Десятичный разделитель в вещественных константах, а также квалификатор имен полей
: Определение срезов в массивах
$ Обозначение позиционного параметра в определении функции

 

Выборка данных.

Чтобы при помощи оператора SELECT извлечь данные из таблицы нужно знать как минимум 2 вещи:

Что выбрать?

Откуда?

Искомое имя таблицы указывается сразу после слова SELECT, а ключевое слово FROM указывает на имя таблицы, из которой выбираются данные.

SELECT [Город], [Заметки]

FROM [Поставщики бетона];

SELECT переводится, как выбрать, отобрать. Оператор предназначен для выборки информации из таблиц, возвращает все указанные строки таблицы без фильтрации и сортировки.

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

Например, чтоб получить полное содержание таблицы " Клиенты" достаточно: SELЕСТ*FRОМ Клиенты

Сортировка данных.

При отсутствии сортировки данные обычно выводятся в том порядке, в котором они находятся в таблице.

Предложение ORDER BY используется для точной сортировки данных. В этом предложении указывается имя одного или нескольких столбцов, по которым сортируются результаты.

Порядок сортировки можно задать и по относительному положению столбца (по номеру) в списке SELECT.

Сортировка по убыванию

SELECT [Город], [Заметки]

FROM ПоставщикиБетона

ORDER BY [Город] DESC;

DESC – сортировка по убыванию, указывается поля каждого столбца, которого необходимо отсортировать.

Сортировка по возрастанию

SELECT [Город], [Заметки]

FROM ПоставщикиБетона

ORDER BY [Город];

Обычно выполняется по умолчанию, но в некоторых случаях необходимо указывать специально.

Фильтрация данных. Предложение WHERE.

Предложение WHERE позволяет указать критерии поиска данных. Указывается сразу после названия таблицы.

SELECT [Город], [Заметки]

FROM ПоставщикиБетона

WHERE [Город]=" Санкт-Петербург";

Если используются одновременно предложения ORDER BY и WHERE, то ORDER BY должно находится после WHERE.

SELECT [Город], [Заметки]

FROM ПоставщикиБетона

WHERE [Город] BETWEEN " Орел" AND " Саратов"

ORDER BY [Заметки];

Для оператора BETWEEN требуется 2 значения – начальное и конечное, которые разделяются ключевым словом AND, выбираются все значения из диапазона, включая начальное и конечное.

= - равенство

< , > - неравенство

! = - неравенство

< - меньше

> - больше

< = - меньше или равно

BETWEEN – между двумя значениями

IS NULL – ноль (не содержит несколько значений)

! < - не меньше

Расширенная фильтрация данных.

Чтобы увеличить уровень контроля над фильтром можно использовать несколько предложений WHERE

SELECT [класс], [марка]

FROM [соотношение между классом и марками бетона по прочности]

WHERE [класс]> " В45" And [марка]=" М700";

AND – объединение, указывает СУБД возвращать только те строки, которые удовлетворяют всем перечисленными предложениям. Ключевое слово OR указывает СУБД выбрать только те строки, которые удовлетворяют хотя бы одному предложению. Если первое предложение выполнено, строка будет выведена независимо от второго предложения.

SELECT [класс], [марка]

FROM [соотношение между классом и марками бетона по прочности]

WHERE [класс]> " В45" Or [марка]=" М700";

Порядок отбора.

Комбинируя операторы AND и OR можно создать сложные фильтры.

SELECT [класс], [марка], [КодПоставщика]

FROM [соотношение между классом и марками бетона по прочности]

WHERE ([класс]> " В45" And [КодПоставщика]> 5) Or [марка]=" М700";

При такой комбинации могут быть ошибки в выводе результатов, поскольку SQL выбирает сначала оператор AND, а затем OR, поэтому необходимо использовать прямые скобки, так как они имеют больший приоритет.

Те же функции, что и OR выполняет ключевое слово IN. Однако при использовании IN облегчается чтение данных, предложение управляется порядком отбора за счет уменьшения количества операторов, повышается быстрота обработки, а также может содержаться еще одна инструкция SELECT.

SELECT [Город], [Заметки]

FROM ПоставщикиБетона

WHERE [Город] In (" Москва", " Орел" );

Логический оператор NOT предложения WHERE отрицает се предложения, следующие за ним.

SELECT [Город], [Заметки]

FROM ПоставщикиБетона

WHERE NOT [Город]=" Москва";

 

SELECT [Город], [Заметки]

FROM ПоставщикиБетона

WHERE NOT [Город]< > " Москва";

Предложения оператора SELECT и последовательность их использования:

SELECT – столбцы или предложения, которые должны быть возвращены.

FROM – таблица для возвращения данных

WHERE – фильтрация на уровне строк

GROUP BY – определенные группы (для таблиц)

HAVING – фильтрация на уровне групп

Создание групп. Предложение GROUP BY.

Для подсчета числа строк, вычисления суммы и среднего значения, а также для получения наибольшего и наименьшего значения не прибегая к выборке всех данных используют предложение GROUP BY.

SELECT [Город], COUNT(*) AS Общее

FROM ПоставщикиБетона

GROUP BY [Город];

SELECT выводит 2 столбца. Функция COUNT (*) подсчитывает все строки.

Использование предложения HAVING.

Все типы выражений в предложении WHERE, могут использоваться в предложении HAVING. Разница состоит в том, что WHERE фильтрует строки, а HAVING группы.

SELECT [Город], COUNT(*) AS Общее

FROM ПоставщикиБетона

GROUP BY [Город]

HAVING COUNT(*)> =4;

HAVING фильтрует группы с помощью COUNT(*)> =2.

Совместное использование WHERE и HAVING.

Предложение WHERE фильтрует до того, как данные будут сгруппированы, а HAVING фильтрует после того, как данные были разделены на группы. Таким образом строки, выброшенные по предложению WHERE не будут включены в группу.

SELECT [ПоставщикиБетона].Город, Count(*) AS Общее

FROM ПоставщикиБетона

WHERE [Город]=" Москва"

GROUP BY [ПоставщикиБетона].Город

HAVING (((Count(*))> =4));

Объединение таблиц.

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

SELECT *

FROM ПоставщикиБетона INNER JOIN [соотношение между классом и марками бетона по прочности] ON [ПоставщикиБетона].КодПоставщика=[соотношение между классом и марками бетона по прочности].КодПоставщика;

Конструкция INNER JOIN позволяет возвратить все записи, для которых выполняется условие равенства столбцов, объединение таблиц.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-08-24; Просмотров: 416; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь