11415

Запросы выборки данных SQL

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 3. Запросы выборки данных SQL. Задание: Создать запросы: 1. На выборку всех кортежей отношения 2. На выборку всех значений нескольких атрибутов отношения. 3. Запрос на выборку значений нескольких атрибутов с назначением альтернативных име

Русский

2013-04-07

41.5 KB

19 чел.

Лабораторная работа № 3. Запросы выборки данных SQL.

Задание:

Создать запросы:

1. На выборку всех кортежей отношения

2. На выборку всех значений нескольких атрибутов отношения.

3. Запрос на выборку значений нескольких атрибутов с назначением альтернативных имен (AS).

4. С применением одного из операторов (IN, BETWEEN, LIKE), для случая вывода по убыванию одного из атрибутов.

5. На объединение 2 отношений с применением оператора WHERE.

6. С группировкой GROUP BY.

7. С дополнительной селекцией с применением оператора HAVING.

8. Вложенный запрос.

9. Выгрузки результатов запроса во внешний файл.

Инструкция SELECT позволяет производить выборку и вычисления над данными из одной или нескольких таблиц. Результатом выполнения инструкции является ответная таблица Простейшая ферма инструкции SELECT включает: фразы SELECT и FROM. Фраза SELECT определяет поля, подлежащие выводу в выходной набор, а фраза FROM определяет имена таблиц, включенных в запрос. Имена полей и таблиц отделяются запятыми, а предложение запроса заканчивается точкой с запятой. Если в запросе участвует несколько таблиц, то для исключения двусмысленности имена полей следует записывать в полной форме: <Таблица>.<Поле> (например, Клиенты.Адрес) Для повышения эффективности вначале указываются меньшие по размеру таблицы. Если имена полей и таблиц включают пробелы, то их необходимо заключать в квадратные скобки. Список полей следует задавать в той последовательности, в которой они должны быть представлены в выходном наборе. Например:

SELECT Фамилия, Имя, Отчество, [год рождения] FROM Клиенты;

Для выбора всех полей применяется шаблон *.

SELECT * FROM Клиенты;

Именам полей и таблиц можно назначать альтернативные имена (псевдонимы). Псевдонимы записываются через ключевое слово AS (<имя таблицы> или <имя поля> AS <псевдоним>). В большинстве случаев псевдонимы используются для сокращения набора длинных имен. Особенно это эффективно для замены длинных имен таблиц, поскольку в многотабличных запросах приходится включать имена таблиц в описание каждого поля. Псевдонимы также используются при создании рекурсивных запросов, когда приходится соединять записи из одной и той же таблицы. Тогда для различия копий таблиц им приходится назначать псевдонимы:

SELECT [Фамилия] & " " & [Имя] & " " & [Отчество] AS Полное_имя FROM Клиенты;

Фраза WHERE задает условия, которым должны удовлетворять записи в результирующей таблице. Выражение <условие отбора> является логическим. Его элементами могут быть имена полей, операции сравнения <, <=, >, >=, =, <>, арифметические операции, логические операторы (NOT, AND, OR, XOR), скобки, функции IN, BETWEEN,LIKE, IS(NOT) NULL и множество встроенных функций. Строки заключаются в кавычки, а константы типа Дата/Время - в символы #.

Функция IN проверяет на равенство любому значению из списка: поле1 IN ("Минск", "Москва", "Киев").

Функция BETWEEN задает диапазон значений. Границы диапазона разделяются оператором And: [поле2] BETWEEN 50 And 100 (эквивалентно выражению [поле2] <=100 AND [поле2] >=50).

Функция LIKE проверяет на соответствие заданному шаблону символов. В качестве символов шаблона используются:

  •  - любое число произвольных символов;
  •   ? - один произвольный символ;
  •  # - одна произвольная цифра;
  •  [] - диапазон допустимых символов.

Запрос может быть основан на нескольких таблицах. Простое включение полей из нескольких таблиц дает простой перебор всех их возможных значений. Для двух таблиц общее число записей будет равно произведению числа записей в первой и второй таблицах. Но так как реляционная база данных практически всегда состоит из таблиц, связанных между собой посредством совпадающих значений полей, участвующих в связи, то для правильного объединения данных необходимо включать в запрос явное определение соответствующих связей. Связь можно задать с помощью двух способов: с помощью оператора INNER|RIGHT|LEFT JOIN и с помощью дополнительного условия выборки во фразе WHERE. Причем в SQL объединение данных можно произвести даже по неравенству, т.е. поддерживаются операции сравнения -, <>, < <=, >, >=.

SELECT Товары.[Наименование товара], Заказы.Дата, Заказы.[Полная цена] FROM Товары INNER JOIN Заказы ОN Товары.Код_товара = Зака-зы.Код_товара,

Этот же запрос можно записать следующим образом (второй способ задания связи):

SELECT Товар и. [Наименование товара], Заказы.Дата. Заказы.[Полная цена] FROM Товары. Заказы WHERE Товары. Код _товара = Заказы.Код_товара;

Иногда интерес представляет не каждая строка таблицы в отдельности, а итоговые значения по группам данных. Например, может понадобиться общая сумма продаж для клиентов, проживающих в определенном районе, или интересно знать средний объем продаж но месяцам, чтобы выяснить, тенденции сбыта. Получить ответы на такие вопросы можно с помощью итоговых запросов (запросов с группировкой). Фраза GROUP BY позволяет выделять группы в результирующем множестве записей. Группой являются записи с совпадающими значениями в полях, перечисленных во фразе GROUP BY. Группирование записей само по себе ничего не дает. Обычно производятся вычисления для групп: Для этой цели имеется ряд групповых (иначе агрегатных) функции, производящих следующие действия над значениями заданного поля (аргумента функции) для каждой группы:

SUM - вычисляет сумму:

AVG - вычисляет среднее арифметическое;

STDEV – вычисляет стандартное отклонение;

VAR- вычнслнег дисперсию;

COUNT - вычисляет число записей, для которых значение заданного поля отлично от NULL. Для подсчета всех записей необходимо использовать операцию *. Например COUNT (*);

MIN - возвращает минимальное значение;

МАХ - возвращает максимальное значение;

FIRST - возвращает первое значение;

LAST - возвращает последнее значение.

SELECT Клиенты.Фамилия, SUM (Заказы.Цена) AS Стоимость FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента WHERE Клиенты.Город ="Минск" GROUP BY Клиенты.Фамилия; — подсчитает полную сумму цен по всем заказам для каждого клиента, проживающего в Минске.

Фраза HAVING используется для дополнительной селекции записей во время определения групп. Она выполняет те же функции, что и WHERE, но уже в рамках выходного набора. Фраза HAVING устанавливает, какие записи, сгруппированные посредством GROUP BY, должны отображаться и участвовать в групповых операциях. Правила записи <условия отбора> аналогичны правилам формирования <условия отбора> во фразе WHERE:

SELECT код_товара FROM Заказы GROUP BY код_товара HAVING COUNT (*) > 1; - отбирает коды товаров, заказываемых более чем одним покупателем.

Фраза ORDER BY замыкает инструкцию SELECT и задает порядок сортировки результирующего множества. Каждая спецификация сортировки представляет собой пару вида: <имя поля> [ASC/DESC]. Необязательный модификатор ASC задает сортировку по возрастанию, DESC - по убыванию. Большинство СУБД требуют, чтобы поле, участвующее в сортировке, было перечислено во фразе SELECT:

SELECT Товар, Цена FROM Товары ORDER BY Цена DESC;

Инструкции SELECT могут многократно вкладываться друг в друга. Вложенная инструкция SELECT записывается как часть фразы WHERE и служит для отбора записей основного запроса. SQL выполняет вложенный подзапрос и затем сравнивает каждую строку основного запроса с результатом вложенного. Вложенные запросы записываются внутри скобок. Например:

SELECT Фамилия, Имя FROM Клиенты WHERE Кредит < (SELECT AVG(Кредит) FROM Клиенты);

Чтобы результат запроса был сохранен в файл, добавьте в команду SELECT выражение

INTO OUTFILE ‘Путь и имя файла’ [FIELDS  ...] [LINES ...]

В этой команде нужно указать полный путь к файлу, в который будут выгружены данные (этот файл должен быть новым, не существующим на момент выгрузки). При задании пути к файлу необходимо использовать прямую косую черту вместо принятой в Windows обратной косой черты. Указанный файл создается на компьютере, на котором работает сервер MySQL. Данные выгружаются в той кодировке, В которой они хранятся в базе данных.

SELECT * FROM Customers INTO OUTFILE ‘С:/data/Customers.txt’;


 

А также другие работы, которые могут Вас заинтересовать

42878. Графы и алгоритмы на графах. Решение обыкновенных дифференциальных уравнений. Разработка программы для решения системы ОДУ, описывающей простейшую модель экосистемы (модель Лотка-Вольтерра). Методы оптимизации 1.58 MB
  Оптимизация как раздел математики существует достаточно давно. Оптимизация - это выбор, т.е. то, чем постоянно приходится заниматься в повседневной жизни. Термином "оптимизация" в литературе обозначают процесс или последовательность операций, позволяющих получить уточненное решение. Хотя конечной целью оптимизации является отыскание наилучшего или "оптимального" решения, обычно приходится довольствоваться улучшением известных решений, а не доведением их до совершенства. По этому под оптимизацией понимают скорее стремление к совершенству, которое, возможно, и не будет достигнуто.
42879. Создания простейшей экспертной системы 69.17 KB
  Если реакция системы не понятна пользователю то он может потребовать объяснения: CLIPS Первоначально аббревиатура CLIPS была названием языка С Lnguge Integrted Production System язык С интегрированный с продукционными системами удобного для разработки баз знаний и макетов экспертных систем. Теперь CLIPS представляет собой современный инструмент предназначенный для создания экспертных систем expert system tool. CLIPS состоит из интерактивной среды экспертной оболочки со своим способом представления знаний гибкого и мощного...
42880. Состояния международного туризма на современном этапе 84.24 KB
  Туризм – явление, известное каждому. Во все времена нашу планету пересекали многочисленные путешественники и первопроходцы. Но лишь недавно туризм возник как специфическая форма деятельности людей. Каждый из нас представляет себе туризм как отрасль, более или менее известную, поскольку все мы куда-то ездили и проводили отпуска вдали от дома. Туризм - сравнительно молодой феномен, имеющий, однако, корни, уходящие в древние времена.
42881. Поняття туризму. Класифікація, види і форми туризму 59.48 KB
  Термін туризм (tourism) першим вжив В. Жекмо в 1830 р. Слово «туризм» походить від французького «tour», що означає «прогулянка». До недавнього часу в різних країнах поняття «туризм», «турист» розумілися неоднаково. З розвитком туризму в сучасному світі, особливо міжнародного і з створенням міжнародних туристичних організацій, стало необхідним дати загальноприйняте визначення поняття «турист» і відповідно «туризм».
42882. SMS-Flooder 284.94 KB
  При атаках автоматизированных систем достаточно сложно определить предсказать уровень ущерба и риска который они могут предоставить. На основе вышеизложенного рассмотрим момент риска по формуле: Отсюда среднее значение ущерба для кривой риска будет равно Далее получим центральный момент риска: Откуда мы можем выразить второй центральный момент риска: Тогда среднеквадратичное отклонение будет иметь вид: Также оно может быть найдено относительно моды риска . Она может выражаться через решение следующего уравнения: Чтобы оценить ассиметрию...
42883. Химическая металлизация печатных плат 1.32 MB
  И так как вытравливается только этот минимальный слой около 3 мкм то величина подтравов минимальна до 2 мкм что позволяет воспроизводить проводники малой ширины. Поэтому в методе необходимо применять фоторезист толщиной около 30 мкм. Затяжкой Тентинг метод с общей металлизацией поверхности заготовки Слои 1 2 3 4 5 18 мкм 18 мкм 18 мкм Фольга 3 мкм 6 мкм 35 мкм Общая металлизация поверхности 30 мкм 40 мкм 40 мкм 50 мкм Фоторезист 25 мкм 35 мкм 35 мкм Металлизация рисунка 15 мкм 15 мкм Металлорезист 3 мкм 18 мкм 24 мкм 53 мкм Глубина...
42884. Разработка программы для построения графика временной функции в реальном и машинном времени 439 KB
  Создание MS-DOS QuickBASIC (сокращенное обозначение – QB) в середине 80-х годов произвело настоящую революцию в мире BASIC, результатом которой было то, что впервые этот язык занял достаточно прочные позиции среди средств разработки серьезных прикладных систем. В QuickBASIC в достаточно полной мере реализованы идеи структурного и модульного программирования, возможности использования процедур и функций.
42885. Разработка обучающей программы по планированию перемещения артиллерии при заданных рубежах: готовности; начала перемещения; выхода в атаку 247.06 KB
  После запуска следует выбрать какие рубежи заданы Для примера в варианте расчета при заданном рубеже начала перемещения дана схема отображающая перемещения войск в зависимости от введенных данных.
42886. Поиск и индексация в Web. Интернет-каталоги 1004 KB
  Помимо глобального поиска в пространстве Интернет существует также проблема локального поиска, т.е. поиска в пределах одного сайта или портала. Существуют готовые решения, однако для поиска внутри сайта иногда требуется более точная настройка и свои, индивидуальные, алгоритмы, которые будут осуществлять более точный и быстрый поиск по тем данным, с которыми работает сайт. Одним из главных недостатком стандартных решений от Google или Яндекс, например, также является низкая скорость обновления информации о страницах, т.е. индексации.