Сделай Сам Свою Работу на 5

Оператор SELECT. Выбор данных из одной таблицы. Функции языка SQL. Однострочные и группирующие. Пример.





Реляционная алгебра и ее роль в создании языков манипулирования данными. Реляционные операции. Примеры использования.

Реляционная алгебра — замкнутая система операций над отношениями в реляционной модели данных. Операции реляционной алгебры также называют реляционными операциями.

Реляционная база данных — база данных, основанная на реляционной модели данных. Для работы с реляционными БД применяют реляционные СУБД.

Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

Свойства реляционных таблиц:

1. атомарность(столбцы не должны иметь сложную структуру) каждый столбец не должен подразделятся на несколько столбцов.

2. каждая запись(строка)таблицы должна быть отличима.(ключи)

Терминология

Реляционная модель основана на математическом понятии отношения, физическим представлением которого является таблица.

Отношение: Плоская таблица, состоящая из столбцов и строк.

Атрибут: Именованный столбец отношения.

Домен: Набор допустимых значений одного или нескольких атрибутов.



Кортеж: Строка отношения.

Степень: Степень отношения определяется количеством атрибутов, которое оно содержит. Отношение только с одним атрибутом имеет степень 1 и называется унарным (unary) отношением. Отношение с двумя атрибутами бинарным (binary), а для отношений с большим количеством атрибутов используется термин n-арное.

Кардинальность: Количество кортежей, которое содержится в отношении.

Реляционная база данных: Набор нормализованных отношений, которые различаются по именам.

Реляционная база данных состоит из отношений, структура которых определяется с помощью особых методов, называемых нормализацией (normalization).

Для манипулирования данными, в РСУБД (Системах управления реляционными базами данных) используется DML (язык манипулирования данными). На текущий момент наиболее популярным языком DML является SQL (Структурированный язык запросов)

Пять основных операций реляционной алгебры, а именно выборка (selection), проекция (projection), декартово произведение (cartesian product), объединение (union) и разность множеств (set difference), выполняют большинство действий по извлечению данных. На основании пяти основных операций можно также вынести дополнительные операции, такие как операции соединения (join), пересечения (intersection) и деления (division), которые могут быть выражены в терминах пяти основных операций.



Операции выборки и проекции являются унарными, поскольку они работают с одним отношением. Другие операции работают с парами отношений, и поэтому их называют бинарными операциями.

 

Таблица 1. Основные и дополнительные операции

Операция Обозначение Область применения
Селекция WHERE Определяет результирующее отношение, которое содержит только те кортежи (строки) из отношения R, которые удовлетворяют заданному условию (предикату) Select from R where B=b
Проекция PROJECT Определяет новое отношение, содержащее вертикальное подмножество отношения R, создаваемое посредством извлечения значений указанных атрибутов и исключения из результата строк-дубликатов Select distinct A,B from R
Объединение UNION Определяет новое отношение, которое включает все кортежи, содержащиеся только в R, только в S, одновременно в R и S, причем все дубликаты кортежей исключены. При этом отношения R и S должны быть совместимыми по объединению Select a,b,c from R Union (all- с дубликатами кортежей) Select d,e,f from S order by A;
Разность MINUS Разность двух отношений R и s состоит из кортежей, которые имеются в отношении R. но отсутствуют в отношении S. Причем отношения R и S должны быть совместимыми по объединению Select a,b,c from R Minus Select d,e,f from S (можно сделать аналогично: where подзапрос not in..)
Пересечение INTERSECT Определяет отношение, которое содержит кортежи, присутствующие как в отношении R, так и в отношении S. Отношения R и S должны быть совместимыми по объединению. Select a,b,c from R Intersect Select d,e,f from S. Дополнительная операция, выражается через (R-(R-S))
Декартово произведение TIMES Определяет новое отношение, которое является результатом конкатенации (т.е. сцепления) каждого кортежа из отношения R с каждым кортежем из отношения S Select R.A,R.B,R.C,S.D,S.E,S.F from R,S
Тета-соединение Определяет отношение, которое содержит кортежи из декартова произведения отношений R и S, удовлетворяющие предикату F Select a.ename, a.deptno, d.deptno from emp a, dept d where a.deptno=d.deptno Или emp a join dept d on a.deptno=d.deptno
Естественное соединение Естественным соединением называется соединение по эквивалентности двух отношений R и S, выполненное по всем общим атрибутам х, из результатов которого исключается по одному экземпляру каждого общего атрибута Emp R join natural dept S Сам находит одинаковые столбцы и по ним соединяет, если несколько, то по всем совпадающим по названию столбцам.
(Левое) внешнее соединение Соединение, при котором кортежи отношения R, не имеющие совпадающих значений в общих столбцах отношения S, также включаются в результирующее отношение Left join, right join-правое внешнее соединение. Full join-все что совпадает и не совпадает
Деление DIVIDEBY Определяет отношение, состоящее из множества кортежей отношения R, которые определены на атрибуте С, соответствующем комбинации всех кортежей отношения S, где C — множество атрибутов, имеющихся в отношении R, но отсутствующих в отношении S

 




Оператор SELECT. Выбор данных из одной таблицы. Функции языка SQL. Однострочные и группирующие. Пример.

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

Она состоит из следующих предложений:

SELECT [DISTINCT] {*, столбец [псевдоним], выражение, литерал}

FROM {таблица | (подзапрос)}

[WHERE условия выборки для отдельных строк] [GROUP BY столбцы]

[HAVING критерий выборки для групп] [ORDER BY {столбец [ASC | DESC], …} ]

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

В простейшем случае оператор SELECT состоит из:

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

- предложения FROM, задающие имена таблиц, к которым делается запрос.

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

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

Выборка из таблицы всех столбцов SELECT список всех столбцов FROM таблица или

SELECT {* | таблица .* } FROM таблица

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

Показать все содержимое таблицы EMP.

SELECT * FROM EMP;

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

- однострочные (single row) или скалярные функции;

- групповые (group) или агрегатные функции.

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

Все встроенные функции можно использовать в SQL – выражениях (как в списке после ключевого слова SELECT, так и в других конструкциях). Очевидно, что имея привилегии на выборку данных из любой таблицы, можно вычислить значение встроенной функции из любого набора параметров (указав ее в перечне списка SELECT). Также каждая база данных Oracle имеет специальную общедоступную таблицу с именем dual. Эта таблица находится в схеме пользователя SYS и содержит один столбец dummy и одну строку. Для нее существует общий синоним. Один из наиболее распространенных вариантов использования таблицы dual – вычисление результатов SQL- функций с помощью запросов к ней.

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

FUNCTION [( argument1 [, argument2 […] ] ) ].

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

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

Однострочные числовые функции обрабатывают числовые аргументы, и возвращаю числовые значения. Большинство этих функций возвращает значение с точностью 38 десятичных знаков.

Тригонометрические функции COS, SIN, TAN и т.д. возвращают значения с точностью 36 десятичных цифр, функции ACOS, ASIN, ATAN и ATAN2 – с точностью 30 десятичных цифр. Список числовых функций приведен в табл. 3.1.

Таблица 3.1 Числовые функции

Функция   Возвращаемое значение  
ROUND(n)   n, округленное до m десятичных знаков после точ-ки. По умолчанию m = 0.  
TRUNC(n,[m])   n, усеченное до m десятичных цифр после точки. По умолчанию m = 0.  
CEIL(n)   Наименьшее целое, большее или равное n.  
FLOOR(n)   Наибольшее целое, меньшее или равное n.  
POWER(n)   m, возведенное в степень n.  
EXP(n)   e, возведенное в степень n.  
SQRT(n)   Квадратный корень из n или NULL, если n < 0.  
SIGN(n)   -1, если n < 0 или 0, если n = 0 и 1, при n > 0.  
ABS(n)   Абсолютное значение n.  
MOD(m, n)   Остаток от деления m на n.  
LN(n)   Натуральный логарифм n, где n > 0.  
LOG(m, n)   Логарифм по основанию m числа n.  
SIN(n)   Синус угла n (угол задается в радианах)  
SINH(n)   Гиперболический синус n.  
TAN(n)   Тангенс угла n (угол задается в радианах)  
TANH(n)   Гиперболический тангенс n.  
COS(n)   Косинус угла n (угол задается в радианах)  
COSH(n)   Гиперболический косинус n.  

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

Однострочные символьные функции обрабатывают символьные и числовые аргументы и могут возвращать как символьные, так и числовые значения. Если иное не оговорено особо, то эти функции возвращают значения типа VARCHAR2, максимальная длина результата ограничена до 2000 байт. Если функция возвращает данные типа CHAR, то длина результата ограничена 255 байт. При превышении указанных ограничений результирующая строка автоматически укорачивается до максимально допустимой длины, при этом не выдается никакого сообщения об ошибке.

Список символьных функций приведен в табл. 3.2.

 

Таблица 3.2 Символьные функции

Функция Возвращаемое значение
LOWER(столбец/значение) Строка все символы, в которой строчные
UPPER(столбец/значение) Строка все символы, в которой прописные
INITCAP(столбец/значение) Строка, в которой начальная буква каждого слова прописная
CONCAT(строка1,строка2) Сцепленные строки строка1 и стро-ка2. Эквивалентна строка1 || строка2
LPAD(столбец/значение,n[,’строка]) Строка, дополненная слева до длины n цепочками символов строка (по умолчанию пробелами). n – общая длина строки.
PAD(столбец/значение,n[,’строка’]) Строка, дополненная справа до длины n цепочками символов строка (по умолчанию пробелами). n – общая длина строки.
SUBSTR(столбец/значение, m,n) Подстрока, начинающаяся с m –го символа и имеющая длину n символов (если n опущено, до конца строки)
INSTR(строка1,строка2 [,n[,m]]) Позиция m-го вхождения строка2 в строка1, поиск начать с n-го символа в строке строка1. По умолчанию n=1, m=1. Возвращаемая позиция вычисляется относительно первого символа, даже если n>1.
  LTRIM(столбец/значение[,’символ])   Строка, из которой удалены начальные символы, входящие в символы. По умолчанию символы – один пробел.
  RTRIM(столбец/значение [,’символы’])   Строка, из которой удалены конечные символы, входящие в символы. По умолчанию символы – один пробел.
  SOUNDEX(столбец/значение)   Строка, представляющая фонетический эквивалент аргумента (дляангл. языка)
  TRANSLATE(столбец/значение, строка1,строка2)   Строка, преобразованная из набора символов строка1 в набор символов строка2 (для корректной работы функции строка2 не должна представляться пустой строкой)
  REPLACE(столбец/значение, строка1[,строка2])   Строка, в которой каждое вхождение цепочки строка1 заменено цепочкой строка2. По умолчанию строка2 задает пустую строку, что приводит к удалению всех вхождений строка1.
  LENGTH(столбец/значение)   Длина строки в символах

ГрупповыефункцииифразаGROUPBY

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

У групповых функций есть следующие опции:

DISTINCT – предписывает групповой функции использовать для вычисления результата только различающиеся значения заданного выражения.

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

Например, если задана DISTINCT, то средняя величина для 1,1,1 и 3, будет равна 2, если же указать ALL, то результатом будет 1,5.

Все групповые функции, кроме записи функции COUNT с аргументом (*), игнорируют NULL — значения. Для заданий способа интерпретации NULL — значений в вычислениях можно использовать функцию NVL.

Групповая функция возвращает NULL если запрос в котором она используется:

- не возвращает ни одной строки,

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

Исключение из этого правила — COUNT, у которой в качестве аргумента указан символ * (COUNT(*)) всегда возвращающая определенное значение, то есть 0 или положительное число.

Полный список групповых функций приведен в табл. 3.10.

 








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



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