Операторы, связанные с курсором


При самостоятельном желании понять тему " Операторы, связанные с курсором " вам поможет наш ресурс. Для вас наши специалисты подготовили материал, изучив который вы будете разбираться в ней уровне профессионала. А если у вас останутся вопросы, то задать их вы сможете прямо на сайте написав в чат онлайн-консультанта.

оформить заявку

Слишком сложно? Тогда запросите консультацию специалиста!

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

ознакомиться с условиями

Курсор - это механизм языка SQL, предназначенный для того, чтобы позволить прикладной программе последовательно, строка за строкой, просмотреть результат связанного с курсором запроса. Курсор можно представить как “буфер” с указателем на текущую строку. Ниже приводится синтаксис операторов, связанных с курсором и их краткая характеристика.

 

<оператор объявления курсора>::= DECLARE <имя курсора> [SCROLL] CURSOR FOR <спецификация курсора>

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

Этот оператор не является выполняемым, он только связывает имя курсора со спецификацией курсора. Если задан описатель SCROLL, то курсор является “скроллируемым”, то есть допускает прокрутку результирующей таблицы как вниз, так и вверх на любое число строк.

 

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

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

 

<оператор чтения>::= FETCH <имя курсора> INTO <список спецификаций целей>

<список спецификаций целей>::= <спецификация цели>[{,<спецификация цели>}..]

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

 

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

Данный оператор удаляет строку таблицы. Изменяемая таблица, указанная в разделе FROM оператора DELETE, должна быть таблицей, указанной в самом внешнем разделе FROM спецификации курсора.

 

<оператор позиционной модификации>::= UPDATE <имя таблицы> SET <предложение установки> [{,<предложение установки>}...] WHERE CURRENT OF <имя курсора>

<предложение установки>::= <имя столбца> = {<арифметическое выражение> | NULL}

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

 

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

 

Примеры работы с курсором:

DECLARE mycursor SCROLL CURSOR FOR

SELECT au_lname FROM authors

OPEN mycursor

FETCH FIRST FROM mycursor /* первая строка */

FETCH ABSOLUTE 10 FROM mycursor

FETCH NEXT FROM mycursor /* следующая строка */

FETCH RELATIVE 2 FROM mycursor




FETCH PRIOR FROM mycursor /* предыдущая строка */

FETCH LAST FROM mycursor /* последняя строка */

CLOSE mycursor

 

Одиночные операторы манипулирования данными

Каждый из операторов этой группы является абсолютно независимым от другого оператора.

 

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

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

 

<оператор поискового удаления>::= DELETE FROM <имя таблицы> [WHERE <условие поиска>]

При выполнении оператора последовательно просматриваются все строки таблицы, и те строки, для которых результатом вычисления условия поиска является “истина”, удаляются из таблицы. При отсутствии раздела WHERE удаляются все строки таблицы.

Примеры:

DELETE authors

DELETE titles WHERE type= "business"

 

<оператор поисковой модификации>::= UPDATE <имя таблицы> SET <предложение установки >[{,<предложение установки>}…] [WHERE <условие поиска>]

При выполнении оператора просматриваются все строки таблицы, и каждая строка, для которой результатом вычисления условия поиска является “истина”, изменяется в соответствии с разделом SET.

Пример:

UPDATE publishers SET pub_name= "Joe’s Press" WHERE pub_id= "1234"

 

<оператор включения>::= INSERT INTO <имя таблицы>[(<список столбцов>)] {VALUES (<список значений >) | <подзапрос>}



Оператор включения добавляет строку в таблицу. При это строка формируется или из списка значений раздела VALUES, или вычисляется с помощью подзапроса. Список столбцов определяет те столбцы, для которых явно будет указано их значение. Причем i-му столбцу в списке столбцов соответствует i-ое значение из списка значений или i-я строка результата подзапроса. Если список столбцов опущен, то для каждого столбца таблицы должно быть точно указаны (или вычислены) значения, в порядке, в котором они были определены.

При вставке символьных данных или поиске значения в конструкции WHERE значение необходимо передавать в одиночных или двойных кавычках. Для вставки в столбец двоичных данных их нужно указывать без кавычек, начиная с 0х и задавая два шестнадцатеричных символа для каждого байта данных.

Примеры:

INSERT INTO publishers (pub_id, pub_name, cite, state) VALUES (‘1234’, ‘Stendahl Publishing’, ‘Paris’, ‘France’)

INSERT INTO binary_example(id, bin_column) VALUES(19, 0xa134e2ff)

 

Создание индекса

Индекс представляет собой объект, ускоряюший выполнение запросов. Синтаксис оператора создания индекса имеет вид:

<оператор создания индекса>::= CREATE [UNIQUE] INDEX <имя индекса> ON <имя таблицы> (<имя столбца> [ASC | DESC] [{,<имя столбца>[ASC | DESC]}..])

Описатель уникальности UNIQUE указывает, что никаким двум строкам в индексируемой базовой таблице не позволяется принимать одно и тоже значение для индексируемого столбца (или комбинации столбцов) в одно и то же время. Описатели ASC и DESC определяют, что столбец должен быть отсортирован в возрастающем или убывающем порядке в пределах индекса. В Transact-SQL описатели ASC и DESC не используются.

 


Хм, так же просматривали

Заказ

ФОРМА ЗАКАЗА

Бесплатная консультация

Наша компания занимается написанием студенческих работ. Мы выполняем: дипломные, курсовые, контрольные, задачи, рефераты, диссертации, отчеты по практике, решаем тесты и задачи, и многие другие виды заданий. Чтобы узнать стоимость, а так же условия выполнения работы заполните заявку на этой странице. Как только менеджер увидит ваше сообщение, он сразу же свяжется с вами.

Этапность

СОПРОВОЖДЕНИЕ КЛИЕНТА

Получить работу можно всего за 4 шага

01
Оставляете запрос

Оформляете заказ работы, заполняя форму на сайте.

02
Узнаете стоимость

Менеджер оценивает сложность. Узнаете точную цену.

03
Работа пишется

Оплачиваете и автор приступает к выполнению задания.

04
Забираете заказ

Получаете работу в электронном виде на вашу почту.

Услуги

НАШ СЕРВИС

Что мы еще делаем?

icon
Контрольные работы

от 580 рублей

ПОДРОБНЕЕ
icon
Аттестационные работы

от 1780 рублей

ПОДРОБНЕЕ
icon
Проектные работы

от 3300 рублей

ПОДРОБНЕЕ
icon
ВКР (выпускные квалификационные работы)

от 9800 рублей

ПОДРОБНЕЕ
icon
Решение задач

от 180 рублей

ПОДРОБНЕЕ
icon
Написание текста

от 80 рублей

ПОДРОБНЕЕ