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’;


 

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

79789. Облачные хранилища данных. Работа с Dropbox 3.38 MB
  Это лишь основные моменты, дающие сигнал о необходимости модернизации способов и мест хранения информации в будущем. Начать же пользоваться удобным сервисом легко: достаточно лишь с выбранного сервера одной из компаний установить в ПК программу и приложения в дополнительные устройства (телефон, планшет и др.).
79790. Роль и специфика применения PR-технологий в издательском деле 469 KB
  Если речь идет о компании которая только вышла на рынок то круг задач один налаживание разветвленной и многоплановой системы внешних коммуникаций генерирование стимуляция и поддержка информационных потоков о компании ее продукте команде прогнозирование возможных кризисных ситуаций подготовка антикризисных мер и безусловно построение репутации. Если же РRструктура создается в компании которая уже существует на рынке какоето время то для начала нужно скрупулезно проанализировать реальное состояние дел а потом уже действовать в...
79793. Совершенствование автоматизации информационных технологий отдела комплектования ГАТО 465.5 KB
  Автоматизированная архивная технология рассматривается как составная часть архивного дела и на современном этапе его развития может быть представлена как совокупность методов и процессов обработки информации, осуществляемых архивными учреждениями с использованием средств электронной вычислительной техники.
79795. РАЗРАБОТКА ПРОГРАМНОГО ПРИЛОЖЕНИЯ ДЛЯ ОБУЧЕНИЯ ИНТЕРНЕТ-ТРЕЙДИНГУ 892 KB
  азработанное программное приложение импортирует и отображает реальные биржевые котировки, дает пользователям возможность следить за их изменениями, создавая имитацию онлайн действия. Реализован механизм подачи заявок на покупку/продажу биржевых активов и представление данных о ходе торгов в виде таблиц, позволяющих пользователям получать данные о своих торгах, контролировать состояние доступных средств, а также свою прибыль.
79796. Проектирование телефонной IP сети 1.09 MB
  Использование цифровых систем передачи объясняется существенными достоинствами передачи: высокой помехоустойчивостью, слабой зависимостью качества передачи от длины линии связи, стабильностью электрических параметров каналов связи
79797. База данных Учебная часть РПТ 1.54 MB
  Применение ЭВМ в учебном процессе является естественным продолжением многолетнего процесса внедрения в обучение технических средств. Обладающие высоким быстродействием, большой памятью, способностью перерабатывать информацию, поступающую одновременно от многих пользователей, ЭВМ являются мощным средством повышения эффективности труда.