Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Определение столбца




Язык SQL. Определения таблицы и столбца.

Язык SQL. Раздел GROUP BY. Раздел HAVING. Агрегатные функции.

Язык SQL.Раздел FROM. Раздел WHERE. Предикаты условия поиска.

Язык SQL. Спецификация курсора. Раздел ORDER BY. Спецификация запроса выборки. Табличное выражение. Подзапрос.

Спецификация курсора. Наиболее общей конструкцией по сравнению со спецификацией запроса является спецификация курсора. Курсор – это средство SQL, позволяющее получить построчный доступ к результату запроса к БД.

DECLARE <имя курсора> SCROLL CURSOR FOR // оператор объявления курсора

SELECT * FROM <имя таблицы> // спецификация курсора

OPEN <имя курсора> // оператор открытия курсора

FETCH FIRST FROM <имя курсора> // оператор чтения

FETCH NEXT FROM <имя курсора>

DELETE FROM <имя таблицы> WHERE CURRENT OF <имя курсора> // оператор позиционного удаления

UPDATE FROM <имя таблицы> SET <предложение установки> WHERE CURRENT OF <имя курсора> // оператор позиционной модификации

CLOSE <имя курсора> // оператор закрытия курсора

Раздел ORDER BY позволяет установить желаемый порядок просмотра результата.

ORDER BY <спецификация сортировки>

<спецификация сортировки>::= {<порядковый номер столбца> | <имя столбца>} [ASC | DESC]

Фактически задается список столбцов, для каждого столбца указывается порядок просмотра строк результирующей таблицы в зависимости от значений этого столбца. (ASC – по возрастанию, DESC – по убыванию)

Запрос выборки является основным в SQL.

<спецификация запроса>::= SELECT [ALL / DISTINCT] <список выборки> <табличное выражение>

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

<табличное выражение>::= <FROM - предложение>

[<WHERE - предложение >]

[<GROUP BY - предложение >]

[<HAVING - предложение >]

Подзапрос – это запрос, который может входить в предикат условия выборки SQL. Результирующая таблица в подзапросе должна создавать только один столбец.

 


Раздел FROM. Результатом выполнения раздела FROM является расширенное декартово произведение таблиц, заданных списком таблиц в разделе FROM. В эти списки в качестве операндов результата допускается таблицы имеющие строки дубликаты.

SELECT * FROM <имя таблицы>

Раздел WHERE. Служит своего рода фильтром при отборе данных. Выполнение раздела производится по следующим правилам: пусть R – результат выполнения раздела FROM, тогда результатом выполнения WHERE является таблица составленная из тех строк, для которых результатом выполнения условия поиска является «истина».

WHERE <условия поиска>

Предикаты условия поиска. Среди предикатов условия поиска могут находится следующие предикаты: предикат сравнения, предикат between (между); предикат in, like (подобие), null, предикат с квантором, предикат exist.

< предикат с квантором >::= <арифметическое выражение> <операция сравнения> <квантор> <подзапрос>

<квантор>::=<[ALL]><[SOME / ANY]>

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

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

< предикат exist >::=EXISTS<подзапрос> … значение предиката является истинным, когда результат вычисления подзапроса не пуст.

 

Раздел GROUP BY. Это предложение упорядочивает результирующее множество в группы, определяемые списком имен столбцов, которые следуют за ключевым словом GROUP BY. Каждая строка результирующего множества представляет все записи, в которых значения в сгрупированных столбцах идентичны.

GROUP BY - предложение

Раздел HAVING. Данное предложение похоже на WHERE, за исключением того, что оно работает с группами в таблицах, а не с ее результирующим множеством.

HAVING <условие поиска>

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

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

AVG – среднее значение;

MAX – максимальное значение;

MIN – минимальное значение;

SUM – сумма;

COUNT – подсчет числа строк в заданном множестве

 

Определение таблицы.

Оператор определения таблицы имеет следующий вид:

<определение таблицы>::= CREATE TABLE <имя таблицы> (<элементы таблицы>)

[{<элементы таблицы>}]::= <определение столбца> / <определение ограничения целостности>

<имя таблицы>::= <идентификатор полномочий> <простое имя таблицы>

<определение столбца>::= <имя столбца> <тип данных> [<раздел умолчания>] [{<ограничение целостности столбца>}]

Раздел умолчания – значение по умолчанию.

<раздел умолчания>::= DEFAULT {<literal> / USER / NULL}

<ограничение целостности столбца>::= NOT NULL [<спецификация уникальности>] / <спецификации ссылок> /CHECK/ <условие поиска>

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

· Литеральная переменная, соответствующая типу столбца.

· Символьная строка, содержащая имя текущего пользователя.

· Неопределенное значение.

Если значение данного столбца явно не указано,а в разделе ограничения стоит NOT NULL, то попытка занести в таблицу строку с неопределенным значением приведет к ошибке. Если NOT NULL не указано и раздел по умолчанию отсутствует, то неявно порождается раздел умолчания DEFAULT NULL. Если указана спецификация уникальности, то порождается соответствующая спецификация для столбца. В разделе спецификации ссылок указываются ограничения по ссылкам для данного столбца. Если указано противоречивое ограничение столбца (CHECK), то условие поиска этого ограничения должно ссылаться только на этот столбец.

 





Поделиться с друзьями:


Дата добавления: 2015-04-24; Просмотров: 431; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.02 сек.