Тема 3. 2. Создание запросов. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тема 3. 2. Создание запросов.



 

1. Основы языка SQL

2. Функции запросов и их создание.

3. Запросы на выборку данных из таблицы

4. Запросы к многотабличным базам данных

 

После того как. БД создана, ее можно использовать в качестве информационного справочника. В этом и состоит основное назна­чение всякой информационной системы.

Действия, выполняемые над информацией, хранящейся в базе данных, называются манипулированием данными. К ним относятся выборка данных по некоторым условиям, сортировка данных, об­новление, удаление и добавление данных. Выполнение этих дей­ствий производится с помощью запросов.

Запрос — это команда на выполнение определенного вида ма­нипулирования данными.

В различных СУБД чаще всего используются два основных языка описания запросов:

1. язык QBE (Query by Example) — язык запросов по образцу;

2. SQL (Structured Query Language; — структурированный язык запросов.

Язык SQL предназначен для выполнения операций над табли­цами (создание, удалений, изменение структуры) и над данными, хранящимися в таблицах. (выборка, изменение, добавление, удале­ние, сортировки),

Наиболее часто используемой командой SQL является команда выборки. Для осуществления выборки из однотабличной БД фор­мат команды выборки следующий:

 

SELECT <список выводимых полей> FROM <имя таблицы> WHERE <условие выбора> 

ORDER BY <ключ сорти­ровки> [DESC]

 

Не все составляющие этой команды являются обязательными. Могут отсутствовать условия выбора и параметры сортировки. Кроме того, ключей сортировки может быть несколько. Тогда они записываются в порядке приоритетов: первичный, вторичный и т.д. Сортировка может производиться по возрастанию и по убыванию значения ключа. При отсутствии опции DECS сортировка производится «по возрастанию», при наличии — «по убыванию».

 

Пример 4.1. Используя таблицу «Ученики», получить таблицу, содержащую фамилии, имена и адреса учеников, родившихся до 2000 г. Сортировать таблицу в алфавитном порядке то фамилиям

 

Запрос на языке SQL имеет следующий вид:

SELECT Ученики.ФАМИЛИЯ, Ученики. ИМЯ, Ученики.АДРЕС

FROM Ученики

WHERE (((Ученики. ДАТА_РОЖД) <#l/l /2000#))

ORDER BY Ученики. ФАМИЛИИ;

 

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

 

<имя таблицы>.<имя поля>

 

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

Этот же запрос можно сформировать, используя Конструктор запросов Access. После запуска Конструктора откроется окно «До­бавление таблицы». Следует выделить название таблицы «Ученики» и выполнить команду Добавить (рис. 4.10).



 

 

SELECT Успеваемость. НОМЕР_УЧ, Успеваемость.ПРЕДМЕТ, Успеваемость.ГОД

   FROM Успеваемость WHERE ((Успеваемость. ПРЕДМЕТ)= '"математика")   AND  ((Успеваемость. ГОД) =5))

   ORDER BY Успеваемость.НОМЕР_УЧ;

В этой команде используется логическая операция AND (И), ко­торая связывает между собой два условия выборки: ПРЕДМЕТ="математика" И ГОД=5. Такое условие выбора будем называть сложным условием. Информация по запросу будет выбрана из тех записей таблицы, в которых одновременно выполняются два эти условия.

эти две таблицы связаны между собой через общее ключевое поле НОМЕР_УЧ. Графическое изображение связи между таблицами называется схемой базы данных. Схему можно отобразить на экране, отдав команду Работа с базами данных — Схема данных. В нашем случае выведется изображение, представ­ленное на рис. 4.15,

 

Пример 4.3. Используя связанные таблицы «Ученики» и «Успе­ваемость», получить фамилии и имена учеников, имеющих пятерку по математике за год.

 

Команда на SQL имеет следующий вид;

SELECT Ученики.ФАМИЛИЯ, Ученики.ИМЯ, Успеваемость.ПРЕДМЕТ,  

Успеваемость.ГОД

FROM Ученики INNER JOIN Успеваемость ON 

Ученики.НОМЕР_УЧ = Успеваемость.НОМЕР_УЧ

WHERE ((Успеваемость. ПРЕДМЕТ) ="математика") AND ((Успеваемость.ГОД)=5))

ORDER BY Ученики. ФАМИЛИЯ

 

По этому запросу в итоговую таблицу выводится два поля ил таблицы «Ученики» и два поля из таблицы "Успеваемость». Здесь также содержится информация о том, что эти две таблицы связаны между собой (Ученики INNER JOIN Успеваемость) через ПОЛЯ НОМЕР_УЧ

(ON Ученики.НОМЕР_УЧ = Успеваемость.Н0МЕР_УЧ).

В результате выполнения запроса получится таблица, представ­ленная на рис. 4.16.

Пример 4. Требуется подучить сведения о том. какие ученики и по каким  предметам имеют годовую оценку 5. Эти сведения нуж­но сгруппировать по предметам, расположив их в алфавитном порядке

 

SELECT Успеваемость. ПРЕДМЕТ, Ученики.ФАМИЛИЯ, Уче­ники. ИМЯ

FROM Ученики INNER JOIN Успеваемость ON Ученики. НОМЕР_УЧ

= Успеваемость.НОМЕР_УЧ

  WHERE (((Успеваемость. ГОД) =5))

ORDER BY Успеваемость.ПРЕДМЕТ, Ученики. ФАМИЛИЯ;

 

Этот же запрос в Конструкторе представлен на рис. 4.18.

В результате выполнения запроса получим таблицу (рис. 4.19).


В этом запросе группировка результата по предметам получи­лась благодаря тому, что поле ПРЕДМЕТ было выбрано в качестве первичного ключа сортировки, а поле ФАМИЛИЯ — в качество вторичного ключа. В таком случае отбираемые записи сначала со­ртируются по первичному ключу. Если же у нескольких записей значения первичного ключа совпадают, тогда их порядок будет определяться сортировкой по вторичному ключу.

 



Поделиться:


Последнее изменение этой страницы: 2021-04-13; просмотров: 83; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.83.150 (0.012 с.)