Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







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





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

Различают запросы на выборку всех записей с произволь­ным набором полей и запросы на выборку подмножества за­писей.

На рисунке 2.1. приведен пример запроса, формирующего список сотрудников организации из таблицы «Сотрудни­ки», но с сокращенным набором полей.

 
 
Сотрудники
Таб_№ Фамилия Имя Отчество Должность Подразделение Телефон
  Иванов Иван Иванович Начальник Отдел№0  
  Петров Петр Петрович Начальник Отдел№1  
  Сидоров Сидор Сидорович Инженер Отдел№1  
  Егоров Егор Егорович Начальник Отдел№3  
  Кузьмина Ольга Игоревна Секретарь Отдел№3  

Запрос на выборку всех записей с произвольным набором полей

SELECT Таб_№, Фамилия, Имя FROM Сотрудники;

Список сотрудников

Таб_№ Фамилия Имя
  Иванов Иван
  Петров Петр
  Сидоров Сидор
  Егоров Егор
  Кузьмина Ольга

 


Рисунок 2.1. - Пример запроса на выборку всех записей по группе полей

В запросах на отбор подмножества записейв SQL -инст­рукции SELECT через предложение WHERE помещается выра­жение, определяющее условие отбора данных. На рисунке 2.2. при­веден пример запроса на отбор подмножества за­писей из таблицы «Сотрудники» для формирования списка работников инженерно-технического и экономического профи­ля.

 

 

Сотрудники

Фамилия Должность Кабинет Телефон Ученая_степень
Егорова Секретарь 101а    
Иванов Начальник     д.т.н.
Иванова Секретарь      
Петров Начальник     к.т.н.
Петрова Секретарь      
Сидоров Экономист     к.э.н.
Сидорова Секретарь      
Фетисов Инженер      

Запрос на выборку

SELECT Сотрудники.Фамилия, Сотрудники.Должность

FROM Сотрудники

WHERE ((Сотрудники.Должность)=”Инженер” Or (Сотрудники.Должность)=”Экономист”);

Синие воротнички

Фамилия Должность
Петров Инженер
Сидоров Экономист
Фетисов Инженер

 


Рисунок 2.2. - Пример запроса па выборку подмножества записей

 

В запросах на выборку данных широко применяются пре­дикаты отбора ALL, DISTINCT, DISTINCTROW и TOP п..

Пре­дикат ALL используется по умолчанию и устанавливает вывод в набор всех записей, формируемых по условию отбо­ра в предложении WHERE, и в большинстве слу­чаев в инструкции SELECT опускается.

Предикат DISTINCT ' используется для исключения в набо­ре отбираемых данных тех записей, значения которых по опре­деленному полю повторяются, т. е. уже раз вошли в набор. На рисунке 2.3. приведен пример запроса, отбирающего из таб­лицы «Сотрудники» данные по полю «Должность» без предиката отбора (т. е. с предикатом ALL) и с предикатом DISTINCT. Использование предиката DISTINCT позволяет сформировать простой список должностей без повторов.

Предикат DISTINCTROW имеетаналогичное предикату DISTINCT назначение для исключения из набора тех записей, значения которых повторяются по всем полям, включенным в набор данных.

Предикат ТОР п обеспечивает включение в набор данных первых п записей, сформированных по условию отбора. При­мер запроса с предикатом ТОР п на рисунке 2.3.

В запросах на выборку помимо предложений FROM и WHERE используются предложения GROUP BY, НАVING и ORDER ВY для дополнительной обработки отбираемых запи­сей.

 

 

Сотрудники
Таб_№ Фамилия Имя Отчество Должность
  Белых Б. Б. Генеральный директор
  Иванова И. П. Секретарь-референт
  Сидоров С. С. Экономист
  Петров П. П. Начальник отдела
  Тутова О. Н. Секретарь-референт
  Попова С. О. Начальник группы
  Васильева В. В. Бухгалтер
  Егорова Е. Е. Инспектор
  Надеждин С. С. Начальник отдела
  Сухов С. С. Инженер

 

Список должностей с повторами Список должностей без повторов Список первых пяти должностей
SELECT Сотрудники.Должность FROM Сотрудники SELECT DISTINCT Сотрудники.Должность FROM Сотрудники SELECT TOP 5 Сотрудники.Должность FROM Сотрудники

 

Должность   Должность   Должность
Генеральный директор   Генеральный директор   Генеральный директор
Секретарь-референт   Секретарь-референт   Секретарь-референт
Экономист   Экономист   Экономист
Начальник отдела   Начальник отдела   Начальник отдела
Секретарь-референт   Начальник группы   Секретарь-референт
Начальник группы   Бухгалтер    
Бухгалтер   Инспектор    
Инспектор        
Начальник отдела        
Инженер        

 

 

 

 


Рисунок 2.3.- Пример запросов с предикатами ALL, DISTINCT и ТОР n

 

Предложение GRОUP ВY объединяет (группирует) записи с одинаковыми значениями определенных полей в одн у запись.

Предложение НАVING выполняет функцию предложения WHERE, позволяя задавать дополнительные условия для отбо­ра сгруппированных предложением GROUP ВY записей.

Пред­ложение ORDER BY обеспечивает сортировку отобранных за­писей в зависимости от способа ASC (по возрастанию) или DESC (по убыванию).

На рисунке 2.4. приведен пример запроса, формирующего в порядке убывания список сгруппированных по полям «Категория» и «Профиль» записей из таблицы «Под­разделения» при условии отбора подразделений с категорий выше третьей и отбора сгруппированных записей при условии основного профиля подразделений.

 

 

Подразделения
Усл_наименование Категория Профиль Телефон
Бухгалтерия Третья Обеспечивающий  
Отдел кадров Вторая Вспомогательный  
Отдел режима Третья Вспомогательный  
Отдел сбыта Вторая Основной  
Отдел снабжения Вторая Основной  
Планово-экономический отдел Вторая Основной  
Производственный отдел Первая Основной  
Руководство Первая Основной  
Секретариат Третья Обеспечивающий  

Категории подразделений с профилем «Основной»

SELECT Подразделения.Категория, Подразделения.Профиль

FROM Подразделения

WHERE ((Подразделения.Категория)<>”Третья”)

GROUP BY Подразделения.Категория, Подразделения.Профиль

HAVING ((Подразделения.Профиль)=”Основной”)

ORDER BY Подразделения.Категория DESC;

 

Категория Профиль
Первая Основной
Вторая Основной

 

 

 

 


Рисунок 2.4. - Пример запроса на выборку данных с предложениями GROUP BY, HAVING и ORDER BY

 

Специфику имеет отбор записей с «пусты­ми» значениями определенных полей. В реляционных СУБД и языке SQL «пустых», т. е. неопределенных, значе­ний полей не бывает. Иначе говоря, значением числового поля может быть число, равное «О», а значением других типов полей (текстовые, дата) может быть нулевое значение— «Null».

Отбор записей с пустыми значениями применяется тогда, когда нужно отдельно сформировать и проанализировать набор данных с записями, содержащими нулевые значения для число­вых полей, или не имеющие, в силу каких-либо причин, опреде­ленного значения для других типов полей.

На рисунке 2.5. пред­ставлен пример запроса, отбирающего данные из таблицы «Со­трудники» (рисунок 2.2.) с «пустыми» значениями по полю «Ученая степень», иначе говоря, формирующий спи­сок сотрудников, не имеющих ученых степеней.

Лабораторная работа № 1. Создайте таблицы с выбранными вами полями и сформируйте запросы, аналогичные изученным в данном разделе.







Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.