Запросы и SQL-конструкции

  • doc
  • 24.04.2020
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 4. ЛПЗ_Запросы и SQL-конструкции.doc

Лабораторная работа №4: Запросы и SQL-конструкции

Цель работы: Создание запросов разного типа. Применение SQL-конструкции

 

1.      Запросы на выборку – выбираем по условию некоторые поля из таблицы, для того чтобы их включить в таблицу запроса.

Например: Пусть имеется таблица МЕN с атрибутами Fio-ФИО, Adr-адрес, Bilet-номер студенческого билета, Sempol-семейное положение, Datar-дата рождения, Notes-характеристика (memo-поле).

1.1. Нужен ФИО и адрес проживающих по улицам "ttt", "ppp"  –

SELECT Fio, Adr FROM MEN WHERE Adr in("ttt", "ppp")

1.2. Нужен ФИО и адрес семейных студентов -

SELECT Fio, Adr FROM MEN WHERE Sempol IN("женат", "замужем")

1.3. Нужен номер студенческого билета, ФИО и адрес, номер билета у студента=104

SELECT Bilet, Fio, Adr FROM MEN WHERE bilet=104

1.4. Нужен номер студенческого билета, ФИО и адрес, номер билета соответствует диапазону от 101 до 103 (тип поля должен быть обязательно целочисленным)

SELECT Bilet, Fio, Adr FROM MEN WHERE bilet between 101 and 103

2.      Запрос на выборку из связанных таблиц – выбираются поля из двух и более таблиц по условию.

Например: пусть кроме таблицы МЕN существует таблица МЕN1 с атрибутами Bilet - номер студенческого билета, Kurs-курс, Spez - специальность, Stip – стипендия.

2.1.Нужен  ФИО, курс, стипендия, спеуиальности – 050602.

SELECT men.Fio, men1.kurs,men1.stip,  men1.spez

FROM MEN, men1

WHERE men.Bilet=men1.Bilet and spez="050602"

2.2.Нужен  ФИО, курс, получающих стипендию

SELECT men.Fio, men1.kurs, men1.stip

FROM MEN, men1

WHERE men.Bilet=men1.Bilet and stip<>0

2.3. Нужен ФИО, дата рождения, специальность семейных студентов

SELECT men.Fio, men.Datar,men1.spez

FROM MEN, men1

WHERE men.Bilet=men1.Bilet and Sempol in("jenat", "za muz")

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

3.1.Нужен ФИО, стипендия, и надбавка к стипендии в размере 20% семейным студентам.

SELECT men.Fio, men1.stip, men1.stip*20/100

FROM MEN, men1

WHERE men.Bilet=men1.Bilet and Sempol in("jenat", "za muz")

 

4.      Применение стандартных функции в запросе. Существуют следующие стандартные функции:

Count() – считает записи по условию

Avg() – вычисляет среднее значение числовых данных

Max() – находит максимум

Min() – находит минимум

Sum() – вычисляет сумму числовыз данных

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

 

4.1.Определить число студентов получающих стипендию

SELECT count(stip)

FROM men1

WHERE stip<>0

 

4.2. Определить сумму стипендии на всю группу

SELECT sum(men1.stip)

FROM MEN, men1

WHERE men.Bilet=men1.Bilet

 

4.3.Определить получающего максимальную стипендию студентов

SELECT max(men1.stip)

FROM MEN, men1

WHERE men.Bilet=men1.Bilet

 

5.      Применение группировки в запросе. Группировка применяется, когда требуется в запросе увидеть основные данные студентов, а также выполнять вычисления над сгруппированными записями.

5.1. Нужен ФИО, стипендия которых уменьшилось на 50%

SELECT men.fio,sum(stip)/2

FROM men, men1

WHERE men.Bilet=Men1.Bilet and stip<>0

Group By fio

5.2. Допустим имеется таблица о продаже менеджерами товаров по месяцам.

Товары(Клиент, сентябрь, октябрь, ноябрь).

Чтобы получить отчет для одного клиента за сентябрь даем команду:

SELECT Klient, sum(sent)

FROM tovar1

Group By klient

 

6.      Фильтрация данных. Фильтр применяется втех случаях, когда требуется кое-какие записи временно скрыть  по условию.

6.1.Нужен список на опеределенную букву, остальные скрываем временно:

Выделяем компонент Table1, (если вы хотите фильтровать запрос, то - Query1), устанавливаем следующие свойства:

Filter Klient='e*'

Filtered=True

Чтобы снять фильтр, в свойстве Filter удаляем Klient='e*' и нажимаем  Enter.

 

Задания:

  1. Создать запрос на выборку
  2. Создать запрос с условием
  3. Создать фильтр по критериям