Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Примеры запросов к базе данных





Типы запросов данных в SQL

Вопрос к таблице для поиска в ней конкретных записей называется запросом.

Имеется 4 основных типа запросов данных в SQL, которые относятся к языку манипулирования данными (ЯМД) (в англоязычной литературе он называется DATA Manipulation Language или DML ):

1. SELECT – выбрать строки из таблицы;

2. INSERT – добавить строки в таблицу;

3. UPDATE – изменить строки в таблице;

4. DELETE – удалить строки в таблице.

Дополнительные типы запросов, которые используются совместно с SELECT: JOIN, UNION.

Мы сосредоточимся на основных четырех. Каждый из запросов имеет различное количество операторов и опций для выполнения какого-либо действия над данными. Наибольшее количество опций имеет SQL-оператор SELECT.

По форме представления (описания запроса) в языке SQL различают две формы записи: аналитическую и табличную.

Аналитическая форма записи языка SQL представляет собой описание команды с помощью опций, в которые на основании синтаксиса вставляются исходные данные конкретных типов (Character, Numeric, Date). Она означает формирование запросов из ТБД командным способом.

Табличная форма записи языка SQL получила название метода построения запроса Query By Example (QBE), т.е. метода построения по образцу. Он позволяет строить запрос с помощью графических интерактивных средств и затем наглядно видеть структуру запроса в бланке запроса.

 

Формирование запросов из ТБД командным способом

Команда SELECT является мощным средством обработки запросов. С ее помощью из ТБД-источника выделяются нужные данные, которые затем пересылаются на экран, в файл-приемник или в массив. Данные могут быть извлечены из разных ТБД, а также сгруппированы и упорядочены желаемым образом.

Рассмотрим полный формат команды SELECT.

SELECT

[DISTINCT] [<псевдоним>.]<выражение> [AS <колонка>]

[,[<псевдоним>.]<выражение> [AS <колонка>]…]

FROM <ТБД> [,<ТБД> …]

[[INTO <получатель> ]/[TO FILE <файл>

[ADDITIVE]/TO PRINTER]]

[NOCONSOLE] [PLAIN] [NOWAIT]

[WHERE <условие связи>

[AND <условие связи>…]

[AND/OR <условие отбора>

[AND/OR <условие отбора> …]]]

[GROUP BY <колонка> [, <колонка> …]]

[HAVING <условие отбора>]

[ORDER BY <колонка> [ASC/DESC] [,<колонка> [ASC/DESC]…]]

Термин «колонка» здесь очень близок к понятию «поле ТБД», но может быть и выражением. Кроме того, вследствие выборки мы можем получить как новую ТБД, так и текстовый файл, или даже только отображение на экране, т.е. колонки.

Термин «колонка» здесь очень близок к понятию «поле ТБД», но может быть и выражением. Кроме того, вследствие выборки мы можем получить как новую ТБД, так и текстовый файл, или даже только отображение на экране, т.е. колонки.

Рассмотрим назначение опций команды SELECT.

Указание результатов выборки и источников данных

SELECT [DISTINCT] [<псевдоним>.]<выражение> [AS <колонка>]

FROM <ТБД> [<псевдоним>] [,<ТБД> [<псевдоним>] …]

 

Здесь указывается, что и откуда берется в выборку. Перед словом FROM перечисляются отбираемые <выражения>, а после – имена ТБД, из которых берутся данные.

<Выражение> может быть полем записи из ТБД, константой (выводимой в каждой строке выборки), функцией (в том числе и пользовательской функцией - ПФ) от переменных, полем и т.п. Если <выражение> является именем поля, то оно может быть составным (с включением имени ТБД или псевдонима), в особенности, если выборка делается из нескольких ТБД, где имена полей совпадают. Псевдоним может быть не только «официальный» псевдоним (ALIAS) таблицы БД, но и любое другое имя, которое вы ей присвоите в команде SELECT. Это задаваемое временное имя указывается в опции <псевдоним> после слова FROM. Никаких последствий за пределами команды SELECT такое назначение не имеет.

Если необходимо построить выборку из всех полей ТБД, вместо их перечня можно указать символ «*».

В результате выполненной выборки получается совокупность колонок, заголовками которых могут быть имена полей. Если имена совпадают, то такие колонки получают совпадающие имена, к которым присоединяется одна из букв (по алфавиту), например, nomp_A, nomp_B и т.д. Аналогичным образом даются имена колонкам, полученным в результате вычисления выражений. Их имена состоят из слова EXP_1, EXP_2 и т.д. Исключения составляют выражения, использующие собственные функции SQL, например, функции MIN(), MAX() и др. Имена колонок в этом случае будут включать имена функций.

Если нас не устраивают имена, формируемые по умолчанию, можно назначить свои, указав их после слова AS в виде:

<выражение> AS <новое имя колонки>

Такое переименование имеет смысл, если выборка помещается во вновь создаваемую ТБД. Имя дается по правилам, принятым в FoxPro, оно должно быть задано латинскими символами.

В <выражении> могут быть использованы любые функции FoxPro. Кроме того, здесь есть еще собственные специальные арифметические функции, действующие «по вертикали». Это статистические функции вычисления среднего, минимального и максимального значений, суммирования, а также количества записей:

AVG(<выр>), MIN(<выр>), MAX(<выр>), SUM(<выр>),COUNT(<выр>).

Последняя функция может иметь в качестве аргумента звездочку (COUNT(*)), что означает подсчет всех записей, попавших в выборку.

Включение опции DISTINCT исключает возможность вывода одинаковых строк в выборке - только для одного поля.

Указание объекта, куда пересылается выборка

Следующие опции задают «получатель» данных выборки. Им может быть ТБД, массив, текстовый файл, экран и принтер.

Кроме того, информация может быть переслана в так называемый Курсор (будем писать с большой буквы). Курсор – это временный набор данных, который может быть областью памяти или временным файлом FoxPro (этот процесс от нас не зависит) и имеет режим «Только чтение». Данные Курсора могут быть, например, предъявлены в команде BROWSE, напечатаны, из них может быть образовано меню и т.д. Курсор может быть обработан другой командой SELECT. К колонкам Курсора надо обращаться по имени этих колонок, возможно, с префиксом – именем Курсора (через точку).

Итак:

INTO <получатель>

<Получатель> может быть одного из следующих типов:

ARRAY <массив> - здесь вновь создаваемый двумерный <массив>

CURSOR <курсор> - задается имя Курсора.

DBF/TABLE <БД> - новая таблица базы данных с указанным именем. Слова DBF и TABLE здесь являются синонимами.

Кроме того, данные можно переслать в файл или на принтер.

TO FILE <файл> [ADDITIVE]/TO PRINTER – выборка посылается в текстовый <файл> или на принтер. Если используется слово ADDITIVE, то выборка будет добавлена в конец существующего файла без его перезаписи.

Следующие опции имеют смысл только при выдаче на экран (команда используется без слова INTO):

NOCONSOLE – выборка не выдается на экран.

PLAIN – заголовки колонок не выдаются.

NOWAIT – не делаются паузы при заполнении экрана.

Критерий отбора данных

 

WHERE <условие связи> [AND <условие связи> …]

[AND/OR <условие отбора> [AND/OR <условие отбора> …]]

Здесь:

<Условие связи> - применяется в случае, если выборка делается более чем из одной ТБД, и указывает критерий, которому должны отвечать поля из разных таблиц. В условии связи указываются поля из разных таблиц. Здесь разрешается использовать знаки отношения =, #, ==, >, >=, <, <=. Допускается задание нескольких критериев, соединенных знаком AND.

<Условие отбора> - строится аналогично, но из выражений только одной ТБД, и допускается использование логических операторов OR и NOT.

Условия, кроме любых функций FoxPro, могут содержать следующие операторы SQL:

LIKE – позволяет построить условие сравнения по шаблону, где символ “ _ ” указывает единичный неопределенный символ в строке, “ % ” – любое их количество. Эти символы аналогичны символам маски “? ” и “ * ” в MS DOS. Формат оператора:

<выражение> LIKE <шаблон>

 

BETWEEN – проверяет, находится ли выражение в указанном диапазоне. Формат оператора:

<выражение> BETWEEN <нижнее знач.> AND <верхнее знач.>

 

IN – проверяет, находится ли выражение, стоящее слева от слова IN, среди перечисленных справа от него. Формат оператора:

<выражение> IN (<выражение>,<выражение>,…)

 

Все указанные операторы можно комбинировать с помощью связок OR, AND, NOT и скобок. Операторы LIKE и BETWEEN не следует путать с одноименными функциями FoxPro, которые, впрочем, также можно использовать.

 

Группирование данных

GROUP BY <колонка>[,<колонка>…] – задаются колонки, по которым производится группирование выходных данных. Все записи ТБД, для которых значения колонок совпадают, отображаются в выборке единственной (итоговой) строкой. Группирование удобно для получения некоторых сводных характеристик (сумм, количеств записей, средних) группы.

HAVING <условие отбора> - опция задает критерий отбора данных в каждую сформированную в процессе выборки группу.

 

Сортировка

ORDER BY <колонка> [ASC/DESC][,<колонка> [ASC/DESC]…] – опция задает упорядочение по заданной колонке/колонкам. По умолчанию сортировка выполняется по возрастанию (ASC), но может быть задана и по убыванию (DESC).

 

Примеры запросов к базе данных

Date: 2015-06-11; view: 342; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию