Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shp.doc
Скачиваний:
12
Добавлен:
18.09.2019
Размер:
5.46 Mб
Скачать

19. Построение запросов операторами языка sql.

Для выборки используется оператор SELECT.

Простые запросы – запросы которые обращаются к одной таблице.

SELECT список_столбцов

FROM табл

[WHERE условие]

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

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

SELECT title_id, publisher.*

FROM titles, publishers

WHERE titles.pub_id=publishers.pub_id;

Будут извлекаться все столбцы из табл publishers и только 1 из табл titles. Порядок вывода столбцов определяет пользователь, как укажет в списке SELECT.

Использование символьных строк и арифметических действий. Можно использовать +, -, /, * для любых числовых столбцов. Эти действия использ в любых комбинациях с именами столбцов и числовыми константами.

В некоторых диалектах SQL для упрощения набора имен таблиц во фразе FROM можно использовать псевдоним таблицы, его указывают перед (после) имени таблицы в списке таблиц.

SELECT p.pub_id, p.pub_name

FROM publishers p;

Выбор строк: предложение WHERE.

В условии можно использовать операторы сравнения: =>; <; >; <=; <>; !=.

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

Логические операторы AND, OR, NOT.

Пример 1: Найти все книги по бизнесу стоимостью выше10$ и с затратами <$20000;

SELECT title, type, price, advance

FROM titles

WHERE type=’business’ AND price>$10 AND advance<$20000;

При использовании NOT его помещают перед самим выражением:

SELECT au_lname, au_fname, state

FROM authors

WHERE NOT state=’CA’;

NOT выполняется до AND и OR.

Пример 2: Выполнить поиск книг, затраты на которые не окупились, т.е. доход от продажы которых < удвоенной суммы выплаченной автору.

SELECT title, type, price, advance, ytd_sales

FROM titles

WHERE price *ytd_sales<2*advance AND pubdate<’10/15/85’;

Сначала выполнится умножение, потом сравнение, потом присоединяется условие AND.

Диапазон BETWEEN и NOT BETWEEN.

BETWEEN - используется для включения диапазона (границы)

Пример: У кого почасовая ставка от 10 до 15$.

SELECT *

FROM worker

WHERE HRLY_RATE BETWEEN 10 AND 12;

Вхождение во множества.

Ключевые слова IN и NOT IN.

Пример1: Перечислить штукатуров, кровельщиков, электриков.

SELECT *

FROM worker

WHERE SKIL_TYPE IN (‘Штукатур’,’Кровельщик’);

В SQL существуют символы замещения, которые дают возможность замещать неопределенные символы строк. Разные диалекты используют разные шаблоны но чаще используют подчеркивание и %. % - любая строка с любым кол-вом символов, подчеркивание – любой одинарный символ. Символы шаблона используются с ключевым словом LIKE.

Выборка нулевых значений. Для извлечения строк с нулевым значением надо:

WHERE имя_столбца IS[NOT] NYLL

Существует 5 основных типов поиска:

1) Сравнение (сравнивается результат вычислений или имеющиеся выражения);

2) Диапазон (проверяем попадает ли результат вычислений в заданный диапазон);

3) Принадлежность к множеству.

4) Соответствие шаблону (проверяется) соответствуют ли некоторые строковые значения заданному шаблону.

5) Значение NULL (проверяется содержит ли указанный столбец нулевые значения).

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

результат запроса выводится не отсортированным, для того чтобы упорядочить его по 1-му из столбцов используется фраза ORDER BY. В этой фразе используется список разделенных запятыми имен столбцов по которым требуют упорядочить таблицу. Если упорядочивать по возрастанию используется служебное слово ASC, по убыванию DESC. Упорядочить можно по столбцу или комбинаций столбцов, не зависимо от того присутствуеют они в результирующей таблице.

Предложение DISTINCT и ALL. С их помощью определяют показывать или нет повторяющиеся строки ALL – все; DISTINCT – уникальные, не повтор строки. Форма приложений имеет вид:

SELECT [DISTINCT|ALL] список_столбц.

DISTINCT|ALL – ключевые слова, в запросе можно использовать только раз и стоять они должны в начале списка

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]