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


 

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

75029. Сімейні обереги. Сценарій дитячої вистави 57.5 KB
  Вчити передавати почуття героїв вистави. Розвивати артистичні здібності, уміння триматися на сцені. Виховувати культуру святкування дня народження, гостинність, доброту. Прищеплювати любов до традицій свого народу...
75030. Українська хата. Обереги, Позакласний захід 48 KB
  Між дверима і піччю стояли кочерга рогач коцюба хлібна лопата. Піч служить українському селянинові тричі: а для опалення житла; б як тепле спальне місце; в для приготування їжі випікання хліба. Піч мати головна в хаті берегиня бо хліб народжувала. На неї клали хліб і накривали теж вишиваним рушником.
75031. Оберіг душі й родини, позакласний виховний захід 147 KB
  Зацікавити учнів вивченням історії розвитку лялькимотанки прищепити повагу до культурних традицій родини й країни. Домогтися глибокого осмислення учнями значення лялькимотанки в житті людини. Про історію народної ляльки та про методику виготовлення та використання ми й поговоримо. Ляльки різних народів відрізняються між собою ззовні і матеріалом з якого зроблені в Африці вона здебільшого камяна або деревяна десь глиняна а ще десь зроблена з тканини але суть і призначення ляльки незмінні і це споріднює більше аніж...
75032. Цікаві моменти історії бухгалтерського обліку, Методична розробка позакласного заходу 80.5 KB
  Метою даної методичної розробки є удосконалення досвіду проведення позааудиторних заходів. Виникнення і розвиток бухгалтерського обліку є невідємною складовою частиною всієї історії людського суспільства. Сучасна наука не дала однозначної відповіді, який момент слід вважати виникненням бухгалтерського обліку...
75033. Здоровый образ жизни школьника, конспект мероприятия 43 KB
  Цель: расширить и закрепить представление учащихся о том что здоровьеглавное богатство каждого человека сформировать и закрепить представление жить здоровым в здоровом обществе учить заботится о своем здоровье воспитывать желание поддерживать здоровый способ жизни.счастье здоровье успехи в учебе деньги сила ум красота. Давайте подумаем что для человека самое главное в жизни Итак самое главное в жизни для человека здоровье. Здоровье это радость жизнижелание жить творить работать учиться радоваться встречи с друзьями.
75034. Знайомство з основними і похідними кольорами. Малювання мешканців підводного світу. План-конспект уроку для 1 класу 98.5 KB
  Мета: Ознайомити дітей з основними і похідними кольорами; провести бесіду про різноманітність форм і забарвлення мешканців підводного світу; вчити отримувати похідні кольори користуючись палітрою зображувати предмети округлої та видовженої форми рибок мушлі водорості; розвивати уяву фантазію; виховувати естетичний смак любов до природи...
75036. Реконструкция зоны ТО и ТР автомобилей в условиях ЗАО «Моторавто» 850 KB
  Аппарат учреждения: производственно-технический отдел; отдел главного механика; бухгалтерия; отдел кадров и воспитательной работы с рабочими; отдел охраны труда; отдел безопасности; оперативный отдел; отдел охраны; медицинская часть. Сочетание не обезличенного ремонта с элементами агрегатно-узлового метода позволяет при потере машиной работоспособности ремонт ее производить заменой отдельных неисправных или изношенных агрегатов или...
75037. Портрет как средство раскрытия характера в повести А. С. Пушкина «Капитанская дочка» 753.5 KB
  Почему именно повесть Капитанская дочка Во-первых это первое большое произведение Пушкина прочитанное мною удивившее своей глубиной и необычностью поднятых проблем. Во-вторых удивил подход Пушкина к изображению такой исторической личности как Е.