6824

Функции SQL Oracle. Дополнительные фразы предложения SELECT

Лабораторная работа

Информатика, кибернетика и программирование

Функции SQL Oracle. Дополнительные фразы предложения SELECT Цели лабораторной работы Изучить функции SQL Oracle, а также фразы GROUPBY, HAVING, ORDERBY предложения SELECT. Приобрести практический опыт по использованию ф...

Русский

2013-01-08

370 KB

22 чел.

Функции SQL Oracle. Дополнительные фразы предложения SELECT

  1.  Цели лабораторной работы
  •  Изучить функции SQL Oracle, а также фразы GROUP BY, HAVING, ORDER BY предложения SELECT.
  •  Приобрести практический опыт по использованию фраз GROUP BY, HAVING, ORDER BY предложения SELECT с использованием SQL*Plus.
  1.  Теоретические основы
    1.  Функции SQL Oracle

Функции SQL являются встроенными в Oracle и доступны для использования в соответствующих фразах различных предложений SQL. Не смешивайте функции SQL с пользовательскими функциями, написанными на языке PL/SQL.

Если вы вызываете функцию со значением аргумента null, то она автоматически возвращает значение null. Единственными функциями, которые соответствуют этому правилу, являются CONCAT, DECODE, DUMP, NVL и REPLACE.

Имеется следующие две категории функций SQL:

Функции одной строки

Эти функции возвращают единственное значение для каждой строки таблицы. Эти функции могут использоваться в списке select (если предложение SELECT не содержит фразы GROUP BY) и во фразе WHERE.

Агрегатные функции

Они возвращают одно значение на основании совокупности строк таблицы. Агрегатные функции могут использоваться в списке select и фразе HAVING.

  1.  Агрегатные функции

Если вы используете фразу GROUP BY в предложении SELECT, SQL разделяет строки таблицы на группы. В запросе, содержащем фразу GROUP BY, все элементы в списке select должны использоваться либо выражения из фразы GROUP BY, либо выражения, содержащие агрегатный функции, либо константы. SQL применяет агрегатные функции в списке select к каждой группе строк и возвращает единственную результирующую строку в качестве результата для каждой группы.

Если фраза GROUP BY отсутствует, Oracle применяет агрегатную функция в списке select ко всем строкам таблицы запроса. Если агрегатная функция используется во фразе HAVING, то она используется для определения условия удаления групп строк, задаваемых фразой GROUP BY. Фразы GROUP BY и HAVING будут изучены в этой Лаб. позже.

Многие агрегатные функции используют следующие фразы:

DISTINCT

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

ALL

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

Все агрегатные функции за исключением COUNT(*) игнорируют значения null.

Вы можете использовать функцию NVL в аргументе агрегатной функции для замены значения null.

Если аргумент агрегатной функции не имеет строк или все строки имеют значения null, то агрегатная функция возвращает значение null

Имеются следующие агрегатные функции:

Функция

Синтаксис

Назначение

Пример

COUNT

Возвращает количество строк в запросе. Если указано expr, то возвращается количество строк, в которых expr (в частном случае expr – это столбец) не равно null. Можно подсчитать либо все строки (ALL), либо те, в которых  значения expr являются различными (DISTINCT).

Если указана звездочка (*), то функция возвращает количество всех строк, включая и дубликаты и те, которые имеют null.

SELECT COUNT(*) AS Total

FROM  TEACHER;

SELECT COUNT(post)

FROM  TEACHER;

SELECT COUNT(DISTINCT post)

FROM  TEACHER;

AVG

Возвращает среднее значение среди всех значений выражения expr по всем строкам. Значения NULL не учитываются при вычислении функции

SELECT AVG(Salary)

FROM   TEACHER

WHERE  Post='professor';

MIN

Возвращает минимальное значение expr по всем строкам. Значения NULL не учитываются при вычислении функции

SELECT MIN(Hiredate)

FROM   TEACHER;

MAX

Возвращает максимальное значение expr по всем строкам. Значения NULL не учитываются при вычислении функции

SELECT MAX(Hiredate)

FROM   TEACHER

WHERE  Name LIKE 'А%';

SUM

Возвращает сумму значений expr по всем строкам. Значения NULL не учитываются при вычислении функции

SELECT SUM(Salary)

FROM   TEACHER

WHERE  Post='assistant';

STDEV

Возвращает стандартное отклонение x,. SQL вычисляет стандартное отклонение как корень квадратный от значения, вычисленного по функции VARIANCE.

SELECT STDEV(Salary)

FROM   TEACHER;

VARIANCE

Возвращает variance x,. SQL вычисляет variance х по формуле:

где:

xi - один из элементов x.
n
– количество элементов во множестве x. Если n = 1, то variance равен 0.

SELECT VARIANCE(Salary)

FROM   TEACHER;

  1.  Функции одной строки

Имеются следующие типі функций одной строки:

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

Мы обсудим только наиболее часто используемые функции этих типов.

  1.  Числовые функции

Функция

Синтаксис

Назначение

Пример

ABS

Возвращает абсолютное значение n.  

SELECT ABS(-15) "Absolute"

FROM   DUAL;

CEIL

Возвращает наименьшее целое, которое больше или равно n.  

SELECT CEIL(15.7) "Ceil"

FROM   DUAL;

FLOOR

Возвращает наибольшее целое, которое меньше или равно n.

SELECT FLOOR(15.7) "Floor"

FROM   DUAL;

SIN, COS, TAN

FUN – имя функции.

Возвращает sin, cos или tan n (угол в радианах).

SELECT SIN(30*3.1415/180)

FROM    DUAL;

SINH, COSH, TANH

FUN- имя функции.

озвращает гиперболический sin, cos или tan n.  

SELECT SINH(1) AS

"Hyperbolic sine of 1"

FROM   DUAL;

EXP

Возвращает e в степени n, где e = 2.71828183 ...

SELECT EXP(4) AS

"e to the 4th power"

FROM   DUAL;

LN

Возвращает натуральный логарифм n, где n больше или равно 0.

SELECT LN(95) AS

"Natural log of 95"

FROM   DUAL;

LOG

Возвращает логарифм n по основанию m. Основание m может быть любым положительным числом, отличным от 0 или 1 и n могжет быть любым положительным числом.

SELECT LOG(10,100) AS

"Log base 10 of 100"

FROM   DUAL;

MOD

Возвращает остаток от деления m на n. Возвращает m, если n = 0.

SELECT MOD(11,4)

FROM   DUAL;

POWER

Вовращает m в степени n. Основание m и показатель степени n могут быть любыми числами, однако, если m отрицательное, то  n долдно быть целым числом.

SELECT POWER(3,2)

FROM   DUAL;

SIGN

Если n<0, то функция возвращает -1. Если n=0, то функция возвращает 0. Если n>0, то функция возвращает 1.

SELECT SIGN(-15) "Sign"

FROM   DUAL;

SQRT

Возвращает корень квадратный от n. Значение n не может быть отрицательным. SQRT возвращает в качестве результата число типа "real".

SELECT SQRT(26)  

FROM   DUAL;

ROUND

Возвращает n округленное до m позиции справа от десятичной точки. Если m опущено, n округляется до позиции 0. m может быть отрицательным для округления до позиции слева от десятичной точки. m должно быть целым числом.

SELECT ROUND(15.193,1)

AS  "Round"

FROM   DUAL;

TRUNC

Возвращает n, отсеченное до позиции m справа от десятичной точки. Если m опщено, n отсекается до позиции 0. m может быть отрицательным. В этом случае отсечение (устанавливаются в нулевое значение) m цифр слева от десятичной точки.

SELECT TRUNC(15.79,1)

AS  "Truncate"

FROM   DUAL;

  1.  Символьные функции

Имеется два типа символьный функций:

  •  возвращающие символьное значение и
  •  возвращающие числовое значение.

ОНи обсуждаются ниже. Некоторые из них представлены в упрощенном виде.

Character functions returning character values

Функция

Синтаксис

Назначение

Пример

CHR

Возвращает символ, имеющий бинарный эквивалент значению n либо согласно набору символов базы данных, либо согласно национальному набору символов.  

SELECT CHR(67)

FROM   DUAL;

CONCAT

Возвращает строку char1, конкатенированную со строкой char2. Эта функция эквивалентна оператору кнокатенации строк (||).

SELECT CONCAT('AB','CD')

FROM   DUAL;

INITCAP

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

SELECT INITCAP('the soap')

FROM   DUAL;

LOWER

Возвращает char со всеми буквами, преобразованными в строчные. Возвращаемое значение имеет тип аргумента char (CHAR или VARCHAR2).

SELECT LOWER('Mr. Scott')

  AS "lower case"

FROM   DUAL;

UPPER

Возвращает char со всеми буквами, преобразованными в прописные. Возвращаемое значение имеет тип аргумента char (CHAR или VARCHAR2).

SELECT UPPER('Mr. Scott')

  AS "UPPER CASE"

FROM   DUAL;

LPAD

Возвращает char1, дополненную слева до длины n последовательностью символов из char2; char2 по умолчанию равно единственному пробелу. Если char1 длиннее n, то char1 усекается до n символов.

SELECT LPAD('Page',8,'*.')

  AS "LPAD example"

FROM   DUAL;

RPAD

Возвращает char1, дополненную справа до длины n последовательностью символов из char2; char2 по умолчанию равно единственному пробелу. Если char1 длиннее n, то char1 усекается до n символов.

SELECT RPAD('Page',8,'*.')

  AS "RPAD example"

FROM   DUAL;

LTRIM

Удаляет в char те символы слева, которые присутствуют в set; set по умолчанию равен единственному пробелу. Если char является строковым литералом, то его следует заключить в одиночные кавычки.

SELECT LTRIM('xyxYZ','xy')

  AS "LTRIM example"

FROM   DUAL;

RTRIM

Удаляет в char те символы справа, которые присутствуют в set; set по умолчанию равен единственному пробелу. Если char является строковым литералом, то его следует заключить в одиночные кавычки.

SELECT RTRIM('xYZxy','xy')

AS "RTRIM example"

FROM   DUAL;

REPLACE

Возвращает char, в которой все вхождения строки search заменяются на строку replace. Если строка опущена или равна replace null, то все вхождения строки search удаляются. Если строка search равна null, то возвращается char. Эта функция предоставляет дополнительные возможности по сравнению с функцией TRANSLATE. TRANSLATE предоставляет возможность произвести посимвольную замену. REPLACE, в свою очередь, позвроляет заменить одну подстроку на другую, а также произвести удаление подстрок.

SELECT REPLACE('JACK and

JUE','j', 'BL')

AS "REPLACE example"

FROM   DUAL;

SUBSTR

Возвращает подстроку строки char, начинающуюся с символа m, и содержащую  n символов.

Если аргумент m = 0, то он рассматривается равным 1. Если m положительный, то нахождение начального символа производится справа от char. Если m отрицательный, то Oracle начальный символ отыскивается слева от char. Если n отсутствует, SQL возвращает все символы до конца char. Если n меньше 1, возвращается null.

SELECT SUBSTR('ABCDE',2,2)

AS "SUBSTR example"

FROM   DUAL;

SELECT SUBSTR('ABCDE',-4,2)

AS "SUBSTR example"

FROM   DUAL;

TRANSLATE

Вовращает char, в которой все вхождения символа из from заменяются на соответствующий символ из to. Символы из char, которые отсутствуют в from, не заменяются. Аргумент from может содержать больше символов, чем to. В этом случае дополнительные символы в конце from не имеют соответствующих символов в to. Если такие дополнительные символы появляются в char, то они удаляются. Нельзя использовать пустую строку to для удаления всех символов из char, которые содержатся в from.

SELECT TRANSLATE('ABCDE',

  'ABCD', '1234')

AS "TRANSLATE example"

FROM   DUAL;

Строковые функции, которые возвращают числовые значения

Функция

Синтаксис

Назначение

Пример

INSTR

Производит поиск в строке char1, начиная с позиции n, m-го вхождения строки char2 и возвращает позицию символа в char1, в которой такое вхождение первого символа из char2 найдено. Если n отрицательный, Oracle производит поиск с конца строки char1. Значение m должно быть положительным. По умлочанию

SELECT INSTR('CORPORATE
      FLOOR','OR','3','2')

FROM    DUAL;

значения n и m равны 1; это означает, что Oracle производит поиск, начиная с первого символа char1 и отыскивает первое вхождение строки char2. Возвращаемое значение вычисляется относительно начала строки char1 не зависимо от значения n и выражается в количестве символов. Если поиск оказался безуспешным (то есть char2 не присутствует m раз после n-го символа char1) то возвращается значение 0.

LENGTH

Возвращает длину char в количестве символов. Если char имеет тип CHAR, то в длину включаются все расположенные справа пробелы. Если char равно null, то функция возвращает null.

SELECT INSTR('CORPORATE
      FLOOR','OR','3','2')

FROM    DUAL;

ASCII

Возвращает десятичное представление первого символа из char в наборе символов  базы данных.

SELECT ASCII('Q')

FROM    DUAL;

  1.  Функции даты

Функции даты оперируют со значениями типа DATE. Все функции даты возвращают значение типа DATE, за исключением MONTHS_BETWEEN, которая возвращает число.

Функция

Синтаксис

Назначение

Пример

ADD_
MONTHS

Возвращает дату d плюс n месяцев. Аргумент n может быть любым целым числом. Если d последний день месяца или если результирующий месяц содержит меньше дней, чем компонента дня в d, то результат будет содержать последний день результирующего месяца. В противном случае результат будет иметь ту же компоненту дня, что и d.  

SELECT TO_CHAR(
 ADD_MONTHS(Hiredate,1),
 'DD-MON-YYYY')

FROM   TEACHER

WHERE  Name = 'John';

LAST_
DAY

Возвращает дату с последним днем месяца из d. Можно использовать эту функцию для определения сколько дней осталось в текущем месяце.

SELECT SYSDATE,

 LAST_DAY(SYSDATE),

 LAST_DAY(SYSDATE)-SYSDATE

FROM DUAL;

NEXT_
DAY

Возвращает дату того дня недели, который указан в char и который следует за датой d. Аргумент char должен быть названием дня недели, в полном виде или сокращенном, заданным согласно языка, используемого в вашем сеансе работы.

SELECT NEXT_DAY(

 '15-MAR-98','TUESDAY')

 AS "NEXT DAY"

FROM DUAL;

MONTHS_
BETWEEN

Возвращает количество месяцев между датами d1 и d2. Если дата d1 позже, чем дата d2, то результат положителен; если раньше, то отрицателен. Если d1 и d2 содержат либо одну и ту же компоненту дня, либо указанные дни являются последними в месяце, то результат всегда целое число. В противном случае Oracle дробную часть месяцев с на основе 31-дневного месяца и с учетом разницы в компонентах времени дат d1 и d2

SELECT MONTHS_BETWEEN (

 TO_DATE('28.10.2002',

           'DD.MM.YYYY'),

 TO_DATE('28.10.2002',

           'DD.MM.YYYY'))

FROM  DUAL

NEW_
TIME

Возвращает дату и время во временной зоне z2, когда дата и время в временной зоне z1 равна d. Аргументы z1 и z2 могут быть следующими текстовыми строками:

AST, ADT - Atlantic Standard or Daylight Time

BST, BTD - Bering Standard or Daylight Time

CST, CDT - Central Standard or Daylight Time

EST, EDT - Eastern Standard or Daylight Time

GMT - Greenwich Mean Time

HST, HDT - Alaska-Hawaii Standard Time or Daylight Time

MST, MDT - Mountain Standard or Daylight Time

NST - Newfoundland Standard Time

PST, PDT - Pacific Standard or Daylight Time

YST, YDT - Yukon Standard or Daylight Time

SYSDATE

Возвращает текущую дату и время. Аргументы отсутствуют. Эту функцию нельзя использовать в условии ограничения CHECK.

SELECT TO_CHAR(SYSDATE,

  'DD-MM-YYYY HH24:MI:SS)'

FROM   DUAL;

  1.  Функции преобразования

Эти функции преобразуют значение из одного типа в другой. Далее приводятся основные функции конвертирования.

Функция

Синтаксис

Назначение

Пример

TO_
CHAR

(преобразование даты)

Преобразут d типа DATE в тип VARCHAR2 в формте, определенном форматом даты fmt. Если fmt опущен, то  d преобразуется в  значение VARCHAR2 согласно формата даты по умолчанию. Наиболее часто используемые элементы формата fmt следующие:

- / , . ; : 'text'- знаки пунктуации и текст в кавычках представляется в результате как есть,

D  – День недели (1-7)

DAY  – Название дня, дополненное пробелами до 9 символов

DD  – День месяца (1-31)

DDD  – День года (1-366)

HH  – Час дня (1-12)

HH12  – Час дня (1-12)

HH24  – Час дня (0-23)

MI  - Минуты (0-59)

MM  - Месяц в виде двух цифр (01-12; JAN = 01)

MON  - Сокращенное название месяца

MONTH  - Название месяца, дополненное до 9 символов

YYYY  - Год в виде 4-х цифр

YYY,YY, Y - Последние 3, 2 или 1 цифрі года.

TO_
CHAR

(преобразование числа)

Преобразует n типа NUMBER в значение типа VARCHAR2, с использование факультативного формата fmt. Если fmt опущен, то n преобразуется в значение типа VARCHAR2 таким образом, чтобы содержать все значащие цифры. Наиболее часто используемые элементы формата fmt следующие:

Элемент Пример Описание

,  9,999 Возвращает запятуюв указанной позиции. Можно использовать много зяпятых в формате.

. (точка) 99.99 Возвращает десятичную точку в указанной позиции.

$ $9999 Возвращает значение с знаком доллара в начале.

9 9999 Возвращает число с указанным количеством цифр с пробелом в начале, если число положительное, или минусом, если число отрицательное.

0 0999 Возвращает нули в начале.

 9990 Возвращает нули в конце.

FM FM90.9 Возвращает число без пробелов к начале и конце

EEEE 9.9EEEE Возвращает значение в научной нотации.

TO_

NUMBER

Преобразует значение char типа CHAR или VARCHAR2, содержащее строковое представление числа в формате fmt, в значение типа NUMBER.

UPDATE TEACHER SET

salary = salary +

TO_NUMBER('100.00','99.9')

WHERE Name = 'John';

TO_

DATE

Преобразует char типа CHAR или VARCHAR2 в значение типа DATE. fmt – это формат даты, определяющий формат представления даты в char. Если fmt опущен, то char должен содержать строковое представление даты ы формате по умолчанию.

UPDATE TEACHER SET

Hiredate = TO_DATE(

'October 30, 2002, 11:00',

'Month dd, YYYY, HH:MI')

WHERE Name = 'John';

  1.  Другие функции одной строки

Приведем функции одной строки, котоые не попадают ни под одну из указанных ранее категорий.

Функция

Синтаксис

Назначение

Пример

GREATEST

Возвращает наибольшее из значений в списке exprs. Все exprs после первого неявно преобразуются к типу первого expr до выполнения сравнения. Сравнение сиволов базируется на наборе символов базы данных.

SELECT GREATEST(
'HARRY','HARRIOT','HAROLD')
 AS "Greatest"

FROM   DUAL;

LEAST

Возвращает наибольшее из значений в списке exprs. Все exprs после первого неявно преобразуются к типу первого expr до выполнения сравнения.

SELECT LEAST(
'HARRY','HARRIOT','HAROLD')
 AS "Least"

FROM   DUAL;

NVL

Если expr1 равно null, то возвращается expr2; если expr1 не null, возвращается expr1. Аргументы expr1 иexpr2 могут иметь любой тип данных. Если их типы данных разные, то SQL преобразует expr2 в тип данных expr1 прежде, чем их сравнивать.

SELECT Name,

   NVL(TO_CHAR(Salary),

   'NOT APPLICABLE')

FROM TEACHER;

USER

Возвращает текущего пользователя SQL с типом данных VARCHAR2

SELECT  USER

FROM  DUAL;

  1.  Фразы GROUP BY и HAVING 
    1.  Синтаксис:

  1.  Назначение

Фраза GROUP BY определяет столбец или список столбцов (выражение над столбцом или список выражений над столбцами), которые используются для группирования строк таблицы. Выражения фразы GROUP BY могут содержать любые столбцы из таблиц фразы FROM, не зависимо от того, появляетсяь ли столбец во списке select. Если запрос содержит фразу GROUP BY, то список select может содержать только:

  •  константы,
  •  выражения, включающие только агрегатные функции,
  •  выражения из фразы GROUP BY,
  •  выражения, которые включают упомянутые выше выражения.

Областью действия агрегатной функции являются все строки каждой группы. Таким образом, SQL применяет агрегатные функции в списке select к каждой группе строк и возвращает единственную результирующую строку для каждой группы. То есть, каждая сформированная группа порождает одну результирующую строку.

Назначение фразы HAVING – определить условие выбора на группах строк. Она ограничивает группы строк теми, на которых указанное условие равно TRUE..

Указывайте GROUP BY и HAVING фразы после фразы WHERE..

См. также описание синтаксиса для выражений в ПРиложении Лаб.4 и синтаксис описания условий в Приложении Лаб.2 .  

  1.  Фраза ORDER BY
    1.  Синтаксис:

  1.  Назначение

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

  •  expr – означает, что строки упорядочиваются согласно значения выражения expr. Выражение может базироваться на столбцах из списка select или на столбцах из таблиц фразы FROM.
  •  position – упорядочивает строки на основании значений выражения в указанной позиции списка select; position должно быть целым числом.
  •  c_alias – упорядочивает строки на основании значения столбца (выражения), который имеет указанный алиас в списке select.
  •  ASC и DESC указывают порядок сортировки: по возрастанию или убыванию. ASC – знчение по умолчанию.

Можно указать множество выражений во фразе ORDER BY. В этом случае производится многоуровневая сортировка. Oracle располагает значения null в конце при сортировке в порядке возрастания и в начале при сортировке в порядке убывания.  

Ограничения: 

  •  Если вы указали фразу DISTINCT, то фраза ORDER BY должна ссылаться только на столбцы из списка select.
  •  Если также задана фраза GROUP BY, то фраза ORDER BY ограничивается следующими выражениями:

- Константы

-  Агрегатные функции

- Выражения, идентичные тем, что используются во фразе group by

- Выражения, включающие приведенные выше выражения, которые вычисляют одно и то же значение для всх строк в группе.

  1.  Описание и примеры
    1.  Агрегатные функции

Агрегатные функции без фраз  WHERE и GROUP BY. Если фразы WHERE и GROUP BY отсутствуют, то областью действия агрегатной функции являются все строки таблицы.

Пример. Сколько строк в таблице TEACHER:

SELECT COUNT(*) AS Total_rows_in_TEACHER_table

FROM  TEACHER;

Пример. Чему равна сумма фондов всех факультетов:

SELECT SUM(Fund)

FROM  FACULTY;

Пример. Какой средний фонд финансирования кафедр:

SELECT AVG(Fund)

FROM  DEPARTMENT;

Агрегатные функции с фразой WHERE. При наличии фразы WHERE областью действия агрегатной функции являются те строки, которые удовлетворяют условию фразы WHERE.

Пример. Какова средняя ставка ассистентов, которые не имеют надбавки.

SELECT AVG(Salary)

FROM   TEACHER

WHERE UPPER(Post) = 'ASSISTANT' AND Commission IS NULL;

Пример. Какой максимальный фонд среди кафедр факультета информатики?

SELECT MAX(DEPARTMENT.Fund)

FROM   DEPARTMENT, FACULTY

WHERE  DEPARTMENT.FacNo = FACULTY.FacNo AND UPPER(FACULTY.Name) = 'INFORMATICS';

Выражения в агрегатной функции. Аргументы агрегатных функций могут содержать выражения над столбцами таблицы.

Премер. Какова максимальная величина Salary+Commission?

SELECT MAX(Salary + Commission)

FROM   TEACHER;

Пример. Какова разница между максимальной и минимальной ставками?

SELECT MAX(Salary) – MIN(Salary)

FROM   TEACHER;

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

Пример. Сколько номеров телеыонов в таблице TEACHER:

SELECT COUNT(DISTINCT Tel) AS Number_of_telephones

FROM  TEACHER;

Пример. Сколько должностей в таблице TEACHER:

SELECT COUNT(DISTINCT Post)

FROM  TEACHER;

Множество агрегатных функций в списке select. Список Select может содержать множество агрегатных функций.

Example. Сколько профессоров в Вузе и какова их средняя ставка:

SELECT COUNT(*), SUM( Salary )

FROM  TEACHER

WHERE  UPPER(Post) = 'PROFESSOR';

Агрегатные функции с фразой GROUP BY. См. примеры фразы использования фразы GROUP BY.

  1.  Фразы GROUP BY и HAVING

GROUP BY и агрегатные функции в списке select.

Пример. Сколько кафедр в каждом из корпусов:

SELECT Building, COUNT(*)

FROM   DEPARTMENT

GROUP BY Building;

Example. Какова сумма зарлпты (Salary+Commission) по всем имеющимся должностям:

SELECT Post, SUM(Salary + Commission)

FROM   TEACHER

GROUP BY Post;

Группирование и фраза WHERE. Если запрос содержит фразы WHERE и GROUP BY, то фразаWHERE обрабатывается первой, а затем применяется группирование.

Пример. Для каждого корпуса подсчитать количество аудиторий вместимостью более 50:

SELECT Building, COUNT(*)

FROM  ROOM

WHERE  Seats > 50

GROUP BY Building;  

Пример. Для корпусов 5, 7 и 12 подсчитать количество аудиторий вместимостью более 50:

SELECT Building, COUNT(*)

FROM  ROOM

WHERE  UPPER(Building) IN ('5', '7', '12') AND Seats > 50

GROUP BY Building;

Группирование по многим столбцам. Можно группировать по многим столбцам.

Пример. Для каждой недели и дня недели подсчитать количество лекций типа “lab”:

SELECT Day, Week, COUNT(*)

FROM  LECTURE

WHERE  UPPER(Type) = 'LAB'

GROUP BY Week, Day;

Группирование и соединение различных таблиц. Имеется возможность соединить две или более таблиці и зптем произвести группирование по соединенной таблице.

Пример. По каждому факультету выдать количество кафедр:

SELECT f.Name, COUNT(*)

FROM  FACULTY f, DEPARTMENT d

WHERE  f.FacNo = d.FacNo

GROUP BY f.Name;

Пример. По каждому факультету выдать количество профессоров:

SELECT f.Name, COUNT(*)

FROM  FACULTY f, DEPARTMENT d, TEACHER t

WHERE  f.FacNo = d.FacNo AND d.DepNo = t.DepNo AND UPPER(t.Post) = 'PROFESSOR'

GROUP BY f.Name;

Пример. Для каждой кафедры каждого факультета подсчитать количество профессоров:

SELECT f.Name, d.Name, COUNT(*)

FROM  FACULTY f, DEPARTMENT d, TEACHER t

WHERE  f.FacNo = d.FacNo AND d.DepNo = t.DepNo AND UPPER(t.Post) = 'PROFESSOR'

GROUP BY f.Name, d.Name;

Использование фразы HAVING. Она задает условие на группу. Фразы HAVING обычно содержат агрегатную функцию.

Example. Вывести корпуса, в которых суммарное количество мест в аудиториях меньше 1000:

SELECT Building

FROM   ROOM

GROUP BY Building

HAVING SUM(Seats) < 1000;

  1.  Фраза ORDER BY

Она испольуется для упорядочения результатов запроса. Можно упорядочивать

  •  по любому столбцу таблицы,
  •  по выражению над столбцами,
  •  по списку столбцов или выражений.

Упорядочение по столбцу из списка select.

Пример. Выдать назвыание факультета и его декана, упорядочив результат по факультетам:

SELECT Name, Dean

FROM  FACULTY

ORDER BY Name;

Упорядочение по столбцу таблицы. Можно упорядочивать по столбцу таблицы, даже если он не присутствует в списке select. Эта возможность не поддерживается стандартом ANSI, но допустима в SQL Oracle.

Пример. Выдать имена преподавателей и их ставки, упорядочив результат по должностям:

SELECT Name, Salary

FROM  TEACHER

ORDER BY Post;

Упорядочение по списку столбцов. Используя список столбцов можно произвести многоуровневое упорядочение.

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

SELECT Course, Num, Quantity

FROM  SGROUP

ORDER BY Course, Num;

Упорядочение по выражению над столбцами. Можно упорядочивать по выражению над столбцами.

Example. Вывести имя ставку и надбавку преподавателей. Упорядочить результат по выражению Salary+Commission:

SELECT Name, Salary, Commission

FROM  TEACHER

ORDER BY Salary + Commission ASC;

Использование порядкового номера столбца в списке select. Можно использовать порядковый номер столбца в списке select для ссылки на него во фразе ORDER BY. Это может оказаться удобным, когда список select содержит выражения.

Пример. Вывести имя преподавателя и его зарплату (Salary+Commission). Упорядочить результат по выражению Salary+Commission в порядке убывания:

SELECT Name, Salary + Commission

FROM  TEACHER

ORDER BY 2 DESC;

Использование алиаса столбца из списка select. Вы можете воспользоваться алиасом столбца из списка select для ссылки на него во фразе ORDER BY.

Пример. Вывести имена преподавателей и даты их поступления на работу. Если дата не определена, то вывести строку “not defined”. Упорядочить результат по дате в убывающем порядке:

SELECT Name, NVL(TO_CHAR(hiredate,'yyyy-mm-dd'),'not defined') AS Teacher_hiredate

FROM  TEACHER

ORDER BY Teacher_hiredate DESC;

Соединение таблиц и упорядочение. Если вы соединяете таблицы, то можно упорядочивать по любому столбцу соединенной таблицы.

Пример. Вывести имна преподавателей и их зарплаты факультета инфоматики. Упорядочить результат по зарплате в убывающем порядке.

SELECT t.Name, Salary + Commission

FROM  FACULTY f, DEPARTMENT d, TEACHER t

WHERE  f.FacNo = d.FacNo AND d.DepNo = t.DepNo AND UPPER(f.Name) = 'INFORMATICS'

ORDER BY 2 DESC;

Группирование и упорядочение. Для упорядочение групп необходимо удовлетворить ограничения, описанные в разделе “2.3. Фраза ORDER BY”.

Пример. Вывести количество студентов на каждом курсе. Расположить результат в порядке возрастания курса.

SELECT Course, SUM( Quantity )

FROM   SGROUP

GROUP BY Course

ORDER BY Course ASC;

  1.  Варианты заданий

Далее приводится 18 вариантов заданий. Каждый вариант состоит из 7 запросов, которые относятся к следующим категориям (в порядке их следования):

  1.  Агрегатные функции на одной таблице
  2.  Агрегатные функции с учетом нескольких таблиц
  3.  NULL в агрегатных функциях, фраза DISTINCT, выражения в аргументе агрегатной ф-ции
  4.  GROUP BY (группирование по одному или нескольким столбцам)
  5.  Выражения в GROUP BY
  6.  Фраза HAVING (без вложенных запросов)
  7.  Фраза ORDER BY

ВНИМАНИЕ. В предлагаемых запросах используются константы (имена преподавателей, названия кафедр и факультетов, названия дисциплин), которые могут отсутствовать в вашей базе данных. ЗАМЕНЯЙТЕ ИХ НА ТЕ, КОТОРЫЕ ДЕЙСТВИТЕЛЬНО ИМЕЮТСЯ В ВАШЕЙ БАЗЕ ДАННЫХ!

  1.  
    Вариант 1

1) Сколько дисциплин приведено в таблице SUBJECT. Столбец результирующей таблицы должен иметь имя «К-во дисциплин»

2)  Сколько дисциплин читается студентам на факультете 'компьютерные науки'

3) Вывести дважды среднее количество студентов в группах факультета 'компьютерные науки'.

В первом случае при подсчете среднего значения NULL игнорируются. Во втором случае   NULL учитываются как значение 0.  Почему эти значения могут отличаться?

4) Для каждого факультета вывести его название и разницу между ее фондом и суммарными фондами финансирования всех его кафедр.

5) По каждой зарплате (salary+commission), выплачиваемой преподавателям факультета, деканом которого является Иванов, вывести эту зарплату, количество преподавателей с этой зарплатой и количество кафедр, на которых работают эти преподаватели. Соответствующие столбцы имеют названия: «Зарплата», «Кол-во преподавателей» и «Кол-во кафедр»

6)  По каждому преподавателю факультета компьютерных наук вывести:

- его имя,

- должность и

- количество дисциплин, которые он преподает,

при условии, что:

- он проводит занятия  не более, чем в 3-х группах и

- он проводит занятия в не более, чем 2-х аудиториях

7) По каждой аудитории корпуса 6 вывести ее номер и названия кафедр, на которых проволятся занятия в этой аудитории студентам 3курса. Результат упорядочить по номеру аудитории в возрастающем порядке и по названию кафедры в убывающем порядке

  1.  Вариант 2

1) Вывести значение следующего выражения: суммарную зарплату (salary+commission) по всем преподавателям умножить на количество должностей и разделить на количество преподавателей. Столбец результирующей таблицы должен иметь имя «Выражение»

2) Сколько студентов и сколько групп на факультете 'компьютерные науки'

3) Вывести дважды среднее количество зарплаты (salary+commission) преподавателей факультета 'компьютерные науки'. В первом случае при подсчете среднего значения возможные значения NULL для salary и commission игнорируются. Во втором случае  NULL учитываются как значение 0. Почему эти значения могут отличаться?

4) Для каждого преподавателя факультета 'компьютерные науки' вывести следующую информацию под столбцами с соответствующими именами

- имя       - Преподаватель,

- количество лекций, которые он имеет, и  - Кол-во лекций

- количество дисциплин, которые он читает. - Кол-во дисциплин

5) По каждой зарплате (salary+commission), выплачиваемой преподавателям кафедры ИПО,  вывести эту зарплату, количество преподавателей с этой зарплатой и количество должностей, имеющих эту зарплату. Соответствующие столбцы имеют названия: «Зарплата», «Кол-во преподавателей» и «Кол-во должностей». Если ставка или надбавка не определены (имеют значение NULL) то считать, что они принимают значение 0.

6)  По каждому преподавателю факультета компьютерных наук вывести:

- его имя,

- его зарплату (salary+commission),

- количество групп, в которых он проводит занятия, и

- количество аудиторий, в которых он проводит занятия,

при условии, что:

- он проводит занятия не более, чем по 2 дисциплинам и

- у него не более, чем 4 занятий в расписании

7) Вывести названия дисциплин и номера аудиторий с их номерами корпусов, которые (дисциплины) читаются преподавателями-профессорами факультета 'компьютерные науки' студентам 3 курса. Результат упорядочить по названию дисциплине  в возрастающем порядке и по номеру аудитории в убывающем порядке.

  1.  Вариант 3

1) Сколько дней в неделю проводятся занятия и каково максимальное количество пар указано в таблице LECTURE. Столбцы результирующей таблицы должны иметь имена «МАКС к-во пар» и «К-во дней»

2) Сколько кафедр и сколько преподавателей на факультете 'компьютерные науки' и какова средняя зарплата (salary+commission) преподавателей на этом факультете

3) Вывести дважды количество значений в столбце Tel таблицы TEACHER

В первом случае при подсчете количества значений возможные значения NULL для Tel игнорируются. Во втором случае  NULL учитываются как значение '  ' (пустая строка). Почему эти значения могут отличаться?

4) Для каждого кафедры факультета 'компьютерные науки', расположенной в корпусе 6,  вывести название кафедры, количество преподавателей на кафедре и количество групп на кафедре. При этом результирующие столбцы имеют следующие имена:

- Кафедра

- Кол-во преподавателей

- Кол-во групп

5) По каждой зарплате (salary+commission), выплачиваемой преподавателям кафедры, заведующей которой является Иванов, вывести следующую информацию в столбцах под соответствующими именами:

- зарплата этой группы преподавателей. Если она не определена, то вывести 0  Зарплата

- к-во различных должностей, занимаемых этими преподавателями    К-во должностей

- к-во кафедр, на которых работают эти преподаватели     К-во кафедр

- к-во телефонов, которыми пользуются эти преподаватели     К-во телефонов

6)  По каждой группе кафедры ИПО вывести:

- номер группы,

- его курс,

- количество преподавателей, которые проводят в ней занятия, и

- количество занятий, которые имеются у ней в расписании,

при условии, что:

- в этой группе проводятся занятия не более, чем по 6-ти дисциплинам, и что

- в ней проводятся занятия в не более, чем в 5-ти аудиториях.

7) Вывести названия факультетов и дисциплин, которые читаются на этих факультетах преподавателями-доцентами, являющимися кураторами студентов 3-го курса. Упорядочить по названию факультета в убывающем порядк и по названию дисциплины в убывающем порядке

  1.  Вариант 4

1) Какой суммарный фонд финансирования всех факультетов. Столбец результирующей таблицы должен иметь имя «Фонд фак-тов»

2) Группам скольких кафедр проводит занятия преподаватель Иванов и сколько дисциплин этот преподаватель преподает (не зависимо от того, для студентов каких кафедр проводятся занятия)

3) Вывести дважды суммарную зарплату преподавателей факультета, деканом которого является Иванов В первом случае NULL игнорируется. Во втором случае  NULL учитывается как значение 0. Почему эти значения могут отличаться?

4) Для каждого кафедры факультета 'компьютерные науки', имеющей фонд финансирования больше 125000, вывести название кафедры, количество групп на кафедре, количество дисциплин, которые читаются студентам кафедры, количество преподавателей, которые читают лекции студентам кафедры. При этом результирующие столбцы имеют следующие имена:

- Кафедра

- Кол-во групп

- Кол-во дисциплин

- Кол-во преподавателей

5) По каждому телефону, установленному у преподавателей, проводящих занятия в группах кафедры ИПО, вывести номер телефона и количество преподавателей, у которых этот телефон установлен. Если телефон принимает значение NULL, то вместо него использовать строку «Нет телефона». Столбцы результирующей таблицы принимают имена: «Телефон» и «К-во преподавателей».

6) По каждой группе, куратором которой является преподаватель кафедры ИПО, вывести:

- номер группы,

- имя куратора,

- количество дисциплин, которые читаются этой группе,

- количество аудиторий, в которых проводятся занятия в группе

при условии, что:

- в этой группе проводят занятия не более 4-х преподавателей,

- в этой группе имеется менее 30 занятий в расписании

7) Вывести номера аудиторий с именами преподавателей, в которых (аудиториях) эти преподаватели проводят лабораторные занятия для студентов факультета 'компьютерные науки'. Результат упорядочить по названию факультетов по возрастанию и названию кафедр по убыванию.

  1.  Вариант 5

1) Чему равно следующее выражение: сложить суммарный фонд финансирования всех кафедр, разделенный на количество кафедр, с максимальным фондом, разделенным на минимальный фонд финансирования. Столбец результирующей таблицы должен иметь имя «Сложное выражение»

2)  В скольких группах преподают преподаватели кафедры ИПО

3) Вывести дважды средний рейтинг всех групп факультета компьютерных наук. В первом случае NULL игнорируются. Во втором случае  NULL учитывается как значение 0. Почему эти значения могут отличаться?

4) Для каждого кафедры факультета 'компьютерные науки', имеющей фонд финансирования в диапазоне 200000-500000 вывести название кафедры, количество групп на кафедре, общее количество студентов на кафедре, среднее количество студентов в группе, разницу между максимальным и минимальным рейтингом групп кафедры. При этом результирующие столбцы имеют следующие имена:

- Кафедра

- Кол-во групп

- Кол-во студентов

- Сред. к-во студентов в группе

- МАКС(рейтинг)-МИН(рейтинг)

5) По каждой группе преподавателей кафедры ИПО с диапазоном даты поступления на работу 01.01.2000-31.12.2007, фамилии которых  начинаются на одну букву, вывести эту букву, количество преподавателей и суммарную зарплату (salary+commission) этих преподавателей. Соответствующие столбцы имеют названия: «Б», «Кол-во преподавателей» и «Суммарная зарплата»

6) По каждой аудитории, в которой проводят занятия преподаватели факультета компьютерных наук,  вывести

- ее номер,

- корпус и

- количество групп, которым проводятся занятия в этой аудитории,

при условии, что:

- в этой аудитории проводят занятия не более, чем 3 преподавателя, и что

- в ней проводятся занятия не более, чем по 4-м дисциплинам

7) Вывести названия кафедр, преподаватели которых преподают студентам кафедры ИПО. Результат упорядочить по иманам преплдавателей по убыванию.

  1.  Вариант 6

1) Каковы суммарные ставка, надбавка и зарплата (ставка+надбавка) всех преподавателей-доцентов. Столбцы результирующей таблицы должны иметь имена «Ставка доцентов», «Надбавка доцентов» и «Зарплата доцентов»

2) По всем преподавателям, являющимся кураторами групп кафедры ИПО, вывести указанные значения под соответствующими именами столбцов:

- строковая константа 'Кураторы кафедры ИПО'   - Что выводится?

- количество этих преподавателей     - К-во преподавателей;

- их суммарную зарплату (Salary+Commission)   - Суммарная зарплата

- их суммарную зарплату, разделенную на их количество - Средняя зарплата

- разницу между их максимальной и минимальной зарплатой -  Разность зарплат

3)  Вывести перечень дней недели, в которые имеются занятия в группах факультета компьютерныъ наук

4) Для каждой пары значений преподаватель-дисциплина, имеющих (преподавателей) зарплату (Salary+Commission) в диапазоне 1000-3000 и работающих на кафедре ИПО, вывести:

- имя преподавателя,          - Преподаватель

- должность преподавателя         - Должность

- название дисциплины, которую преподает этот преподаватель    - Дисциплина

- количество лекций, которое имеет этот преподаватель по этой дисциплине  - Кол-во лекций

- количество групп, которым читаются лекции этим преподавателей по этой дисциплине - Кол-во групп

- количество аудиторий, в которых проводятся занятия этим преподавателем

 по этой дисциплине          - Кол-во аудиторий

5) По каждой группе преподавателей факультета компьютерных наук с диапазоном зарплат (salary+commission) 1000-3000 вывести следующую информацию под соответствующими названиями столбцов:

- название месяца, в котором были приняты на работу преподаватели  - Месяц

- количество принятых на работу преподавателей в этом месяце   - К-во преподавателей

- средняя зарплата (salary+commission) всех преподавателей,    - Средняя зарплата

 принятых на работу в этом месяце

- количество кафедр, на которых работают эти преподаватели   - К-во кафедр

6) По каждой аудитории из корпусов 1, 3, 4, 5, 6, в которых проводятся занятия групп кафедры ИПО, вывести:

- номер аудитории,

- количество мест в аудитории,

- количество преподавателей, которые проводят занятия в этой аудитории,

- количество дисциплин, которые читаются в этой аудитории,

при условии, что:

- в этой аудитории проводятся занятия не более, чем в 3-х группах, и

- в этой аудитории проводятся не более 5 занятий

7) Вывести имена преподавателей факультета 'компьютерные науки'. Результат упорядочить по первой букве в именах преподавателей.

  1.  Вариант 7

1) Какое количество групп и суммарное количество студентов и во всех группах третьего курса. Столбцы результирующей таблицы должны иметь имена: «К-во групп» и «К-во студентов»

2) По всем преподавателям, занимающим должности профессоров или доцентов или ассистентов, факультета 'компьютерные науки' вывести следующую информацию под соответствующими именами столбцов:

- строковая константа 'Инфо о фак-те компьютерных наук:' - Что выводится?

- количество таких преподавателей    - Кол-во преподавателей

- Количество читаемых ими дисциплин   -  Кол-во дисциплин

- Количество групп, в которых они проводят занятия - Кол-во групп

- Количество аудиторий, в которых они проводят занятия - Кол-во аудиторий

3) Вывести перечень должностей, которые имеют преподаватели факультета, деканом которого является Иванов

4) Для каждой пары значений группа-дисциплина, имеющих (групп) один из следующих рейтингов: 10-30, 45, 55-70 или NULL, вывести следующую информацию под соответствующими именами столбцов:

- номер группы        -Группа,

- курс группы         -Курс,

- рейтинг группы        -Рейтинг,

- дисциплина, которая читается группе     -Дисциплина,

- количество занятий, проводимых для этой группе по этой дисциплине -Кол-во лекций,

- количество преподавателей, которые проводят занятия в этой группе  

 по этой дисциплине        – Кол-во преподаватаелей,

- количество аудиторий       - Кол-во аудиторий

5) По каждой группе преподавателей с диапазоном зарплат (salary+commission) 0-3000 вывести следующую информацию под соответствующими названиями столбцов:

- название месяца, в котором были приняты на работу преподаватели Месяц

- количество принятых на работу преподавателей в этом месяце  К-во преподавателей

- средняя зарплата (salary+commission) всех преподавателей, принятых  Средн. зарплата

  на работу в этом месяце

- разница максимальной и минимальной зарплатами среди всех                МАКС(зарп.)-МИН(зарп.)

 преподавателей, принятых на работу в этом месяце.

При использовании во фразе WHERE  полей salary и commission заменять значения NULL на 0

6) По каждой дисциплине, читаемой студентам кафедры, у которой заведующим является Иванов, вывести:

- название дисциплины,

- количество групп, которым эта дисциплина читается,

- количество преподавателей, которые эту дисциплину читают,

при условии, что:

- эта дисциплина читается не более, чем в 4-х аудиториях, и что

- по этой дисциплине проводятся не более, чем 5 занятий

7) Вывести имена преподавателей кафедры ИПО и дату поступления их на работу. Результат упрядочить по месяцу поступления на работу в убывающем порядке

  1.  Вариант 8

1) Какова минимальная и максимальная зарплаты  (с учетом ставки и надбавки)  среди всех преподавателей-профессоров, принятых на работу в диапазоне дат 01.01.2000-31.12.2002. Столбцы результирующей таблицы должны иметь имена:  «МИН зарплата» и «МАКС зарплата»

2) По дисциплине СУБД, которую читает преподаватель Иванов, вывести следующую информацию под соответствующими именами столбцов:

- количество занятий, которые имеются в расписании  Кол-во занятий

- Количество групп, в которых проводятся эти занятия  Кол-во групп

- Количество аудиторий, в которых проводятся эти занятий Кол-во аудиторий

- Количество дней недели, в которых проводятся эти занятий Кол-во дней

3)  Вывести перечень дисциплин, читаемых студентам кафедры ИПО факультета компьютерных наук

4) Для каждой тройки значений преподаватель-дисциплина-группа, в которой группа принадлежит факультету 'компьютерные науки', вывести следующую информацию в столбцах под соответствующими именами:

- имя преподавателя      - Преподаватель,

- должность преподавателя     - Должность,

- название дисциплины     - Дисциплина,

- номер группы      - Группа,

- количество занятий проводимых этим преподавателем в

 этой группе по этой дисциплине    - Кол-во занятий

- количество аудиторий, в которых проводятся занятия

 этим преподавателем в этой группе по этой дисциплине. - Кол-во аудиторий

5) По каждой группе преподавателей факультета, деканом которого является Иванов,  с диапазоном дат поступления на работу 01.01.2000-31.12.2008 вывести следующую информацию под соответствующими названиями столбцов:

- название дня недели, в котором были приняты на работу преподаватели  - День

- количество принятых на работу преподавателей в этот день недели        - К-во преподавателей

- разница между максимальной и минимальной зарплатой    - МАКС(зарп.)-МИН(зарп.)

 (salary+commission) всех преподавателей, принятых на работу в

 этот день

- количество кафедр, на которых работают эти преподаватели  - К-во кафедр

6) По каждой дисциплине, которая читается преподавателем факультета, расположенном в одном из корпусов 1, 3, 4, 5, 6, 7, вывести

- название дисциплины

- количество аудиторий, в которых эта дисциплина читается,

- количество занятий, которые проводятся  по этой дисциплине

при условии:

- эта дисциплина читается не более 5 группам,

- количество преподавателей, читающих эту дисциплину, находится в диапазоне 1-5

7) Вывести имена и зарплату (Salary+Commission) преподавателей факультета, деканом которого является  Иванов. Результат упорядочить по зарплате в убывающем порядке

  1.  Вариант 9

1)  Какова минимальная и максимальная даты поступления на работу преподавателей-доцентов. Столбцы результирующей таблицы должны иметь имена «МИН дата» и МАКС дата»

2)  По группе 304 3-го курса кафедры ИПО вывести следующую информацию под соответствующими именами столбцов:

- строковая константа 'Инфо о группе 304 кафедры ИПО:'  - О чем сведения?

- количество читаемых дисциплин     - Дисциплины

- количество преподавателей, проводящих занятий   - Преподаватели

- количество аудиторий, в которых проводятся занятия  - Аудитории

- количество занятий, которые имеются в расписании  - Занятия

- Количество дней недели, в которых проводятся эти занятий - Дни недели

3) Вывести перечень корпусов, в аудиториях которых проводят занятия преподаватели факультета, деканом которого является Иванов

4) По каждому преподавателю, принятому на работу в диапазоне дат 01.01.2000- 31.12.2007, вывести следующую информацию в столбцах под соответствующими именами:

- его имя        - Преподаватель

- количество подчиненных ему преподавателей   - Кол-во подчиненных

- количество подчиненных подчиненных ему преподавателей - Кол-во подчиненных подчиненных

- суммарная зарплата (salary+commission) подчиненных

 подчиненных ему преподавателей     - Суммарная зарплата подч. подч.

- разница между средней и минимальной зарплатами подчиненных

  подчиненных ему преподавателей     - СРЕД(зарплата)-МИН(зарплата)

5) По каждой группе преподавателей кафедры, заведующим которой является Иванов, с диапазоном дат поступления на работу 15.10.2001-25.11.2009 вывести следующую информацию в столбцах с соответствующими именами:

- год, в котором были приняты на работу преподаватели        - Год

- количество принятых на работу преподавателей в этот год                    - К-во преподавателей

- разница между максимальной и средней зарплатой (salary+commission)

 всех преподавателей, принятых на работу в этом году, Если эта

 разница равна NULL, то вывести 0      - МАКС(зарплата)-МИН(зарплата)

- количество должностей, на которых работают эти преподаватели             - К-во должностей

6) По каждой паре значений преподаватель-дисциплина (преподаватель читает эту дисциплину), такой, что:

- преподаватель работает на кафедре, заведующим которой является Иванов,  

вывести:

- имя преподавателя,

- его зарплату (salary+commission),

- название дисциплины и

- количество групп, которым этот преподаватель читает эту дисциплину,

при условии, что:

- у этого преподавателя имеется не более 4 занятий по этой дисциплине и

- он читает эту дисциплину в более, чем одной аудитории

7) Вывести среднее арифметическое, минимальное и максимальное значения выражения Salary+Commission по строкам таблицы TEACHER, для которых значение столбца Hiredate находится в диапазоне 01.10.1998-30.07.2009. Результат упорядочить по убыванию значений первого столбца и по возрастанию значений третьего столбца. Для упорядочения использовать алиасы столбцов

  1.  Вариант 10

1)  Вывести минимальную ставку, максимальную надбавку, количество различных должностей среди преподавателей-доцентов. Столбцы результирующей таблицы должны иметь имена: «МИН ставка», «Макс надбавка», «К-во должностей».

2) По кафедре, заведующим которой является Иванов, вывести следующую информацию под соответствующими именами столбцов:

- строковая константа 'Инфо о кафедре Иванова:' - Инфо о кафедре

- количество преподавателей    - Количество преподавателей

- количество групп     - Количество групп

3) Вывести названия факультетов и имена их деканов, студентам которых читается дисциплина СУБД

4) По каждому преподавателю факультета компьютерных наук, имеющему зарплату (salary+commission) в диапазоне 800-3000, вывести следующую информацию под соответствующими именами столбцов:

- его имя        Преподаватель

- его должность       Должность

- количество подчиненных ему преподавателей   К-во подчиненных

- суммарная зарплата (salary+commission) его подчиненных     СУМ зарплата подчиненных

- разница между макс. и миним. зарплатами его подчиненных МАКС(зарплата)-МИН(зарплата)

5) По каждому корпусу  вывести следующую информацию в соответствующих столбцах:

- номер корпуса. Если корпус NULL, то вывести константу “Нет корпуса” - Корпус

- к-во кафедр в корпусе       - Кол-во кафедр

- к-во факультетов в корпусе        - Кол-во факультетов

- к-во преподавателей в корпусе       - Кол-во преподавателей

- к-во номеров телефонов в корпусе       - Кол-во телефонов

6) По каждой паре значений группа-аудитория (группа имеет занятие в этой аудитории), такой, что:

- группа принадлежит факультету компьютерных наук,

- а аудитория находится в одном из корпусов: 1, 3, 4, 5, 6,

вывести:  

- номер группы,

- курс группы,

- номер аудитории,

- корпус аудитории,

- количество преподавателей, которые проводят занятия в этой группе в этой аудитории,

при условии, что:

- эта группа в этой аудитории имеет менее 3-х занятий и

- эта группа в этой аудитории имеет занятия не более, чем по 2-м дисциплинам

7) Сколько студентов, групп и кафедр на факультете 'компьютерные науки'. Результат упорядочить по первому столбу по убыванию, затем по второму столбцу по убывании и по третьему столбцу по возрастанию. Использовать для этого алиасы столбцов

  1.  Вариант 11

1) Вывести среднее арифметическое, минимальное и максимальное значения выражения Salary+Commission по строкам таблицы TEACHER, для которых значение столбца Hiredate находится в диапазоне 01.01.2000-31.12.2005. Столбцы результирующей таблицы должны иметь имена: «Средняя зарплата», «МИН зарплата», «МАКС зарплата»

2) По кафедре, заведующим которой является Иванов, вывести следующую информацию под соответствующими именами столбцов:

- строковая константа 'Инфо о кафедре Иванова:'    - Инфо о кафедре

- количество преподавателей на кафедре     - Количество преподавателей

- количество дисциплин, читаемых преподавателями этой кафедры  - Количество дисциплин

- количество групп, которым приводят занятия преподаватели этой кафедры – Количество групп

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

4)  По каждой кафедре факультета, деканом которого является Иванов, вывести следующую информацию под соответствующими именами столбцов:

- название кафедры    Кафедра

- заведующий кафедры   Заведующий

- кол-во преподавателей на кафедре  К-во преподавателей

- кол-во групп на кафедре   Кол-во групп

5) По каждой должности, которую имеют преподаватели факультета, деканом которого является Иванов, вывести следующую информацию в соответствующих столбцах:

- название должности. Если должность NULL, то вывести константу “НЕТ”  - Должность

- кол-во преподавателей, имеющих эту должность     - Кол-во преподавателей

- суммарная зарплата (salary+commission) этих преподавателей   - Суммарная зарплата

- кол-во кафедр, на которых имеются преподаватели на этой должности  - Кол-во кафедр

6)  По каждому факультету, деканом которого является ИВАНОВ, вывести:

- его название,

- должность декана,

- количество преподавателей на факультете и

- суммарную зарплату (salary+commission) всех преподавателей факультета

при условии, что:

- разница между  фондом финансирования факультета и суммарной зарплатой всех преподавателей факультета больше 10000

7)  Сколько кафедр и сколько преподавателей на факультете 'компьютерные науки' и какова средняя зарплата (salary+commission) преподавателей на этом факультете. Результат упорядочить по первому столбцу по возрастанию, по второму – по убыванию и по третьему – по убыванию. Использовать для этого алиасы столбцов.

  1.  Вариант 12

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

- Среднее к-во студентов

- МИН рейтинг

- МАКС рейтинг

- Процент

2) По факультету, деканом которой является Иванов, вывести следующую информацию под соответствующими именами столбцов:

- строковая константа 'Инфо о факультете Иванова:'  - Инфо о факультете

- количество кафедр на факультете    - К-во кафедр

- количество преподавателей     - К-во преподавателей

- суммарная зарплата (salary+commission)    - Зарплата по фак-ту

- средняя зарплата по факультету    -  Средняя зарплата

- разница между максимальной и минимальной зарплатой -  Разница в зарплате

3) Вывести суммарную зарплату всех преподавателей факультета, деканом которого является Иванов. При этом по каждому преподавателю произвести округление  его зарплаты (Salary+Commission) с отбрасыванием дробной части.

4) Для каждого факультета вывести его название и разницу между ее фондом и суммарной зарплатой (salary+commission) всех преподавателей факультета.

5)  По каждому курсу (имеющемуся в таблице SGROUP) факультета компьютерных наук вывести следующую информацию в соответствующих столбцах:

- номер курса, если курс равен NULL,  вывести константу “Отсутствует” - Курс

- количество групп на курсе       - К-во групп

- количество студентов на курсе      - К-во студентов

- среднее количество студентов в группе на курсе    - Сред. к-во студентов в группе

- максимальный рейтинг группы на курсе     - МАКС рейтинг

- к-во кафедр, на которых имеются группы на данном курсе   - К-во кафедр

6)  По каждому факультету с фондом финансирования в диапазоне 20000-300000 и расположенном в одном из корпусов 1, 3, 4, 5, 6, 8 вывести:

- название факультета,

- имя декана,

- суммарный  фонд финансирования всех его кафедр,

- разницу между фондом финансирования факультета и суммарным фондом финансирования всех его кафедр

при условии:

- средний фонд финансирования кафедр факультета  меньше, чем половина максимального фонда финансирования среди всех кафедр этого факультета

7) Для каждого преподавателя факультета 'компьютерные науки' вывести его имя, количество лекций, которые он имеет, и количество дисциплин, которые он читает, и количество групп, которым он читает лекции.. Результат упорядочить по количеству групп  по возрастанию, по количеству лекций по возрастанию и по фамилии преподавателя по убыванию

  1.  Вариант 13

1)  Вывести среднее арифметическое, сумму зарплаты (salary+commission),  количество преподавателей,  сумму зарплаты, разделенную на  количество преподавателей, относительно всех строк таблицы TEACHER. . Столбцы результирующей таблицы должны иметь имена:

- Средняя зарплата

- Сумма зарплаты

- Количество строк

- Выражение

2) По аудитории 313 корпуса 6 вывести следующую информацию под соответствующими именами столбцов:

- строковая константа 'Инфо о аудитории 313 к. 6:'    - Инфо о ауд. 313 к.6

- количество кафедр, преподаватели которых имеют в ней занятия  - Кол-во кафедр-преподаватели

- количество кафедр, группам которых проводят в ней занятия  -  Кол-во кафедр-группы

- количество преподавателей, которые проводят в ней занятия  - Кол-во преподавателей

- количество групп, которым проводятся в ней занятия   - Кол-во групп

- количество дисциплин, которые читаются в ней    - Кол-во дисциплин

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

4) Для каждой пары возможных значений преподаватель-группа вывести:

- имя преподавателя

- номер группы

- количество лекций, читаемых этим преподавателем в этой группе

- количество предметов, которые читает этот преподаватель этой группе

5) По каждой паре значений группа-курс из таблицы SGROUP вывести следующую информацию в соответствующих столбцах:

- номер группы. Если группа равна NULL,  вывести константу “Отсутствует” - Группа

- номер курса. Если курс равен NULL,  вывести константу “Нет”      - Курс

- к-во преподавателей,  преподающих в этой группе        - К-во  преподавателей

- к-во дисциплин,  преподающих в этой группе         - К-во  дисциплин

- к-во занятий, имеющихся в этой группе на этом курсе       - К-во занятий

6) По каждому преподавателю факультета, деканом которого является Иванов, вывести

- имя преподавателя,

- его должность,

- количество подчиненных ему преподавателей,

- количество должностей, которые имеют подчиненные преподаватели,

при условии:

- суммарное значение зарплат (salary+commission) всех подчиненных находится в диапазоне 700-10000, и

- разница между максимальной и минимальной зарплатой среди подчиненных преподавателей меньше 2500.

7) Для каждого кафедры факультета, деканом которого является Иванов,  вывести название кафедры, количество преподавателей на кафедре и количество групп на кафедре. Результат упорядочить по третьему столбцу по возрастанию, по первому столбцу по убыванию и по второму столбцу – по убыванию. Использовать для этого порядковые номера столбцов результирующей таблицы.

  1.  Вариант 14

1)  Вывести среднее арифметическое ставки, среднее арифметическое надбавки, среднее арифметическое ставки+надбавки, процент отношения максимальной надбавки к максимальной ставке, разницу между максимальной датой приема на работу и минимальной датой приема на работу для преподавателей, принятых на работу в диапазоне 05.06.1998-31.12.2007. Столбцы результирующей таблицы должны иметь имена:

- Средняя ставка

- Средняя надбавка

- Средняя зарплата

- Процент надбавка/ставка

- Разница дат

2) Относительно преподавателя Иванова вывести следующую информацию под соответствующими именами столбцов:

- строковая константа 'Подчиненные Иванова'  - Что выводится?

-  количество подчиненных Иванова    - Кол-во подчиненных

- количество подчиненных подчиненных Иванова  - Кол-во подчиненных подчиненных

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

4) Для всех должностей, которые имеются у преподавателей факультета 'компьютерные науки' вывести следующую информацию под соответствующими именами столбцов:

- название должности       - Должность

- количество  преподавателей, которые имеют эту должность - Кол-во преподавателей

- суммарная зарплата (salary+commission) всех преподавателей         - Суммарная зарплата

  с этой должностью       

- разницу между максимальной и минимальной зарплатой среди      - Разница в зарплате

 преподавателей с этой должностью

5)  Для каждой пары значений корпус-этаж из таблицы ROOM вывести следующую информацию в соответствующих столбцах:

- номер корпуса, Если он равен NULL,  вывести константу “Нет”  – Корпус

- номер этажа. Если он NULL,  вывести константу “Отсутствует” – Этаж

- кол-во аудиторий на этаже корпуса     - К-во аудитоорий

- общее количество занятий, проводящихся на этом этаже корпуса - К-во занятий

- к-во преподавателей,  проводящих занятия на этом этаже корпуса - К-во преподавателей

6) По каждому преподавателю с зарплатой (salary+commission) в диапазоне 1000-3000, принятому на работу в диапазоне дат 01.01.2000-31.12.2008 вывести:

- имя преподавателя,

- дату поступления на работу,

- количество подчиненных его подчиненных,

- суммарную зарплату (salary+commission) всех подчиненных его подчиненных,

при условии:

- количество его подчиненных не превышает 3

- средняя зарплата всех подчиненных его подчиненных больше 500

7) По каждой дисциплине, которая читается преподавателем факультета, расположенном в одном из корпусов 1, 3, 4, 5, 6, 7, 8  вывести

- название дисциплины

- количество аудиторий, в которых эта дисциплина читается,

- количество занятий, которые проводятся  по этой дисциплине

при условии, что количество преподавателей, читающих эту дисциплину, находится в диапазоне 1-5. Результат упорядочить по третьему столбцу по возрастанию, по второму столбцу по убыванию и первому столбцу по убыванию. Использовать для этого порядковые номера столбцов результирующей таблицы

  1.  Вариант 15

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

- МИН группа

- МАКС группа

- Средняя группа

- Вычисленное среднее

2) Вывести количество подчиненных у преподавателя, у которого один из подчиненных является Петров

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

4) По каждой дисциплине, читаемой преподавателем-профессором, вывести следующую информацию под соответствующими именами столбцов:

- название дисциплины       -Дисциплина

- количество преподавателей, которые читают эту дисциплину      - К-во преподавателей

- количество кафедр, преподаватели которых эту дисциплину читают     - К-во кафедр

- количество групп, которым эта дисциплина читается                               - К-во групп

5)  Для каждой группы 3-го курса кафедры ИПО факультета компьютерных наук вывести следующую информацию в соответствующих столбцах:

- номер группы. Если номер равен NULL, вывести константу “Нет номера”             - Группа

- день недели.  Если день недели равен NULL, вывести константу “Отсутствет” - День недели

- количество пар, которые имеет группа в этот день     - К-во занятий

- к-во преподавателей, проводящих занятия в этой группе в этот день  - К-во преподавателей

6) Для каждой тройки значений преподаватель-группа-дисциплина таких, что указанный преподаватель преподает указанной группе указанную дисциплину, вывести

- имя преподавателя,

- номер группы,

- название дисциплины,

- количество занятий, которое имеет это этот преподаватель для этой группы по этой дисциплине,

при условии, что:

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

7) По каждому факультету, деканом которого является ИВАНОВ, вывести:

- его название,

- должность декана,

- количество преподавателей на факультете и

- суммарную зарплату (salary+commission) всех преподавателей факультета

при условии, что:

- разница между  фондом финансирования факультета и суммарной зарплатой всех преподавателей факультета меньше 100000.

Результирующую таблицу упорядочить по третьему столбцу по возрастанию, по второму столбцу по убывнию и по четвертому столбцу по убыванию

  1.  Вариант 16

1) Вывести значение следующего выражения: суммарную зарплату (salary+commission) по всем преподавателям умножить на количество должностей и разделить на количество преподавателей. Столбец результирующей таблицы должен иметь имя «Выражение»

2)  Сколько дисциплин читается студентам на факультете 'компьютерные науки'

3) Вывести дважды средний рейтинг всех групп факультета компьютерных наук. В первом случае NULL игнорируются. Во втором случае  NULL учитывается как значение 0. Почему эти значения могут отличаться?

4) Для каждой пары значений группа-дисциплина, имеющих (групп) один из следующих рейтингов: 10-30, 45, 55-70 или NULL, вывести следующую информацию под соответствующими именами столбцов:

- номер группы        -Группа,

- курс группы         -Курс,

- рейтинг группы        -Рейтинг,

- дисциплина, которая читается группе     -Дисциплина,

- количество занятий, проводимых для этой группе по этой дисциплине -Кол-во лекций,

- количество преподавателей, которые проводят занятия в этой группе  

 по этой дисциплине        – Кол-во преподаватаелей,

- количество аудиторий       - Кол-во аудиторий

5) По каждой зарплате (salary+commission), выплачиваемой преподавателям факультета, деканом которого является Иванов, вывести эту зарплату, количество преподавателей с этой зарплатой и количество кафедр, на которых работают эти преподаватели. Соответствующие столбцы имеют названия: «Зарплата», «Кол-во преподавателей» и «Кол-во кафедр»

6) По каждому преподавателю факультета, деканом которого является Иванов, вывести

- имя преподавателя,

- его должность,

- количество подчиненных ему преподавателей,

- количество должностей, которые имеют подчиненные преподаватели,

при условии:

- суммарное значение зарплат (salary+commission) всех подчиненных находится в диапазоне 700-10000, и

- разница между максимальной и минимальной зарплатой среди подчиненных преподавателей меньше 2500.

7) Для каждого преподавателя факультета 'компьютерные науки' вывести его имя, количество лекций, которые он имеет, и количество дисциплин, которые он читает, и количество групп, которым он читает лекции.. Результат упорядочить по количеству групп  по возрастанию, по количеству лекций по возрастанию и по фамилии преподавателя по убыванию

  1.  Вариант 17

1) Чему равно следующее выражение: сложить суммарный фонд финансирования всех кафедр, разделенный на количество кафедр, с максимальным фондом, разделенным на минимальный фонд финансирования. Столбец результирующей таблицы должен иметь имя «Сложное выражение»

2) Сколько кафедр и сколько преподавателей на факультете 'компьютерные науки' и какова средняя зарплата (salary+commission) преподавателей на этом факультете

3) Вывести перечень корпусов, в аудиториях которых проводят занятия преподаватели факультета, деканом которого является Иванов

4)  По каждой кафедре факультета, деканом которого является Иванов, вывести следующую информацию под соответствующими именами столбцов:

- название кафедры    Кафедра

- заведующий кафедры   Заведующий

- кол-во преподавателей на кафедре  К-во преподавателей

- кол-во групп на кафедре   Кол-во групп

5) По каждой группе преподавателей кафедры ИПО с диапазоном даты поступления на работу 01.01.2000-31.12.2007, фамилии которых  начинаются на одну букву, вывести эту букву, количество преподавателей и суммарную зарплату (salary+commission) этих преподавателей. Соответствующие столбцы имеют названия: «Б», «Кол-во преподавателей» и «Суммарная зарплата»

6) По каждому преподавателю с зарплатой (salary+commission) в диапазоне 1000-3000, принятому на работу в диапазоне дат 01.01.2000-31.12.2008 вывести:

- имя преподавателя,

- дату поступления на работу,

- количество подчиненных его подчиненных,

- суммарную зарплату (salary+commission) всех подчиненных его подчиненных,

при условии:

- количество его подчиненных не превышает 3

7) Сколько студентов, групп и кафедр на факультете 'компьютерные науки'. Результат упорядочить по первому столбу по убыванию, затем по второму столбцу по убывании и по третьему столбцу по возрастанию. Использовать для этого алиасы столбцов

  1.  
    Вариант 18

1) Какова минимальная и максимальная зарплаты  (с учетом ставки и надбавки)  среди всех преподавателей-профессоров, принятых на работу в диапазоне дат 01.01.2000-31.12.2002. Столбцы результирующей таблицы должны иметь имена:  «МИН зарплата» и «МАКС зарплата»

2) По всем преподавателям, занимающим должности профессоров или доцентов или ассистентов, факультета 'компьютерные науки' вывести следующую информацию под соответствующими именами столбцов:

- строковая константа 'Инфо о фак-те компьютерных наук:' - Что выводится?

- количество таких преподавателей    - Кол-во преподавателей

- Количество читаемых ими дисциплин   -  Кол-во дисциплин

- Количество групп, в которых они проводят занятия - Кол-во групп

3) Вывести перечень должностей, которые имеют преподаватели факультета, деканом которого является Иванов

4) Для каждой пары возможных значений преподаватель-группа вывести:

- имя преподавателя

- номер группы

- количество лекций, читаемых этим преподавателем в этой группе

- количество предметов, которые читает этот преподаватель этой группе

5) По каждому корпусу  вывести следующую информацию в соответствующих столбцах:

- номер корпуса. Если корпус NULL, то вывести константу “Нет корпуса” - Корпус

- к-во кафедр в корпусе       - Кол-во кафедр

- к-во факультетов в корпусе        - Кол-во факультетов

- к-во преподавателей в корпусе       - Кол-во преподавателей

- к-во номеров телефонов в корпусе       - Кол-во телефонов

6) Для каждой тройки значений преподаватель-группа-дисциплина таких, что указанный преподаватель преподает указанной группе указанную дисциплину, вывести

- имя преподавателя,

- номер группы,

- название дисциплины,

- количество занятий, которое имеет это этот преподаватель для этой группы по этой дисциплине,

при условии, что:

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

7) По каждой дисциплине, которая читается преподавателем факультета, расположенном в одном из корпусов 1, 3, 4, 5, 6, 7, 8  вывести

- название дисциплины

- количество аудиторий, в которых эта дисциплина читается,

- количество занятий, которые проводятся  по этой дисциплине

при условии, что количество преподавателей, читающих эту дисциплину, находится в диапазоне 1-5. Результат упорядочить по третьему столбцу по возрастанию, по второму столбцу по убыванию и первому столбцу по убыванию. Использовать для этого порядковые номера столбцов результирующей таблицы

  1.  Контрольные вопросы

Дайте ответы на следующие вопросы:

  1.  Какие типы фукций SQL вы знаете?
  2.  Какая область действия агрегатных функций при наличии и отсутствии фразы GROUP BY?
  3.  В каких фразах предложения SELECT могут использоваться агрегатные функции?
  4.  Что означают фразы DISTINCT и ALL в агрегатных функциях?
  5.  Как агрегатные функции оперируют со значениями null?
  6.  Как SQL Oracle оперирует с датами?
  7.  Какие выражения может содержать список select, если присутствует фраза GROUP BY?
  8.  Каковы цели фраз GROUP BY и HAVING?
  9.  Каковы ограничения на выражения столбцов во фразе ORDER BY, если присутствует фраза GROUP BY?
  10.  Как Oracle упорядочивает значения null?

PAGE  1


 

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

79445. Ресурсная база социально-культурной деятельности 24.71 KB
  Ресурсы это вспомогательные средства методы и формы СКД Ресурсная база СКД это все те средства возможности которые позволяют осуществлять различные виды деятельности создавать культурные услуги блага. Ресурсная база СКД это совокупность организационных финансовых хозяйственных информационнометодических психологопедагогических кадровых нормативно правовых условий. Ресурсная база СКД – это совокупность основных компонентов необходимых для производства конкретного продукта культурных благ и услуг.
79446. Информационная культура личности. Сущность, структура, пути формирования 27.69 KB
  В последние годы возрос интерес к понятию информационная культура. Информационная культура это часть общей культуры общества личности. Понятие информационной культура важно тем что выполняет технологический срез всех информационных процессов в обществе концентрирует внимание исследователей на достигнутом уровне обращения с информацией позволяет судить о направленности и быстроте изменений в этой области и таким образом прогнозировать ее дальнейшее развитие.
79447. Методика проведения эмпирического исследования социально-культурной деятельности 32.48 KB
  Это дает дополнительные возможности для углубления в сущность правовой коллизии в мотивационные сферы ее участников. Документы в качестве артефактов то есть искусственных вторичных фактов способны свидетельствовать о действительных некогда существовавших первичных фактах правовой жизни общества и личности. Сведенные воедино оба эти взгляда социологический и правоведческий дают объемное изображение исследуемой социальноправовой реалии позволяют зафиксировать в ней такие свойства и грани мимо которых исследователи действуй они...
79448. Социально-культурная деятельность в системе непрерывного образования 26.54 KB
  Целостность системы непрерывного образования благоприятна для эстетического развития которое осуществляется на всех этапах возрастного развития личности гармонизирует и развивает все духовные способности человека необходимые в различных областях творчества и профессиональной деятельности. Во второй половине XX века концепция непрерывного образования приобретает главенствующую роль в развитии педагогической мысли. Лениграндом в 1965 году на форуме ЮНЕСКО была представлена концепция непрерывного образования в которой основой всех...
79449. Сущность и специфика педагогики сотворчества 27.9 KB
  В современной педагогике такая деятельность обозначается как педагогика сотворчества. Педагогика сотворчества совместная взаимопроникающая и взаимодополняющая деятельность педагога и воспитанника периодически меняющихся ролями и ведущая к их взаимному обогащению и развитию; вопервых возможна лишь на основе знаний объективно существующих законов норм и правил межличностного общения без соблюдения которых вообще невозможна никакая конструктивная совместная деятельность. Вторым условием педагогики сотворчества является индивидуальный...
79450. Менеджмент: общие понятия, виды и особенности проявления в социально-культурной сфере 26.64 KB
  Менеджмент совокупность методов принципов средства и форм управления хозяйственными организациями с целью повышения эффективности их работы. С точки зрения привлекаемых ресурсов менеджмент делится на: финансовый менеджмент; менеджмент в сфере управления материальнотехническими ресурсами; менеджмент персонала; информационный менеджмент управление в сфере высоких информационных технологий; менеджмент во временной сфере построение сетевых графиков исполнения работ составление расписаний движений ресурсов оптимизационные задачи...
79451. Досуг оказывает огромное воздействие на все сферы жизнедеятельности человека и содержит в себе значительный воспитательный потенциал 29.79 KB
  Педагогическая сущность культурнодосуговой деятельности учащихся в процессе социального воспитания определяется тем что досуг – это прежде всего необходимый и неотъемлемый элемент их образа жизни и является пространством для удовлетворения учащимися потребностей в творческом самовыражении духовнокультурном росте интеллектуальном и физическом самосовершенствовании выполнении широкого круга социальных ролей тем самым рассматривается как наиболее благоприятное воспитательное поле. В досуговой сфере заключены широкие воспитательные...
79452. Специфика коммуникативных процессов в социально-культурной сфере 26.96 KB
  Коммуникация лат. Коммуникация это общение передача информации в процессе деятельности. Социальная коммуникация обмен информацией между людьми посредством общей для них знаковой системы речь язык жестов. Философская трактовка: социальная коммуникация это движение смыслов во времени и пространстве.
79453. Современные концепции досуга и возможности их реализации в культурной жизни общества 24.54 KB
  Существует множество концепций рассматривающих досуг в современном обществе. В то время как феномен досуга продолжает претерпевать изменения крупнейшие теоретики разработали много определений и концепций которые содержат целый ряд закономерностей. Определения досуга распадаются на 4 основных группы Досуг как созерцание связанное с высоким уровнем культуры и интеллекта; это состояние ума и души в этой концепции досуг обычно рассматривается с точки зрения эффективности с какой человек делает чтолибо.