Markør (database)

En markør er en datastruktur av et spørrespråk for relasjonsdatabase , som består av en pekerdata som kreves for å utføre beregninger ved multivariat -poster .

Den introduserer en iterator som kan utføre operasjoner, for eksempel: behandle bare en rad av to under skanningen.

Prinsipp

Bruken består av:

  1. Erklær markøren som definerer rekordsettet ( DECLARE).
  2. Åpne markøren for å etablere platesettet ( OPEN).
  3. Hent data fra lokale variabler ( FETCH).
  4. Lukk markøren ( CLOSE).

En standardmarkør behandler data rad for rad, men en rullemarkør er ubegrenset og kan ta hensyn til tidligere rader. Faktisk kan sistnevnte påkalle data på en absolutt måte, fra begynnelsen av postene ( FETCH ABSOLUTE) eller i forhold til posisjonen ( FETCH RELATIVE).

I tillegg kan en markør være SENSITIVEeller INSENSITIVEhvis du vil at den skal kunne endre postene den inneholder, eller ikke.

Til slutt kan en markør deklareres for WITH HOLDå forhindre at den lukkes av en datamaskintransaksjon .

I tillegg kan en markør brukes i en ledd WHEREmed syntaksen:

UPDATE table1 SET champ1 = 0 WHERE CURRENT OF curseur1

Eksempler

XQuery

Vi bruker funksjonen subsequence() :

let $displayed-sequence := subsequence($result, $start, $item-count)

MySQL

DELIMITER $$ CREATE PROCEDURE curseur1() BEGIN DECLARE resultat varchar(100) DEFAULT ""; DECLARE c1 CURSOR FOR SELECT page_title FROM wiki1.wiki1_page WHERE page_namespace = 0; OPEN c1; FETCH c1 INTO resultat; CLOSE c1; SELECT resultat; END;$$ DELIMITER ;

MsSQL

USE Base1 declare @Nom varchar(20) DECLARE curseur1 CURSOR FOR SELECT Prenom FROM Table1 OPEN curseur1 /* Premier enregistrement de la sélection */ FETCH NEXT FROM curseur1 into @Nom print 'Salut ' + @Nom /* Traitement de tous les autres enregistrements dans une boucle */ while @@FETCH_STATUS = 0 begin FETCH NEXT FROM curseur1 into @Nom print 'Salut ' + @Nom end CLOSE curseur1; DEALLOCATE curseur1;

Merknader og referanser

  1. (i) Zohra Bellahsène , Database og XML-teknologier: XML Database First International Symposium XSYM 2003 Berlin, Tyskland, 8. september 2003 Proceedings , Springer Science & Business Media,9. september 2003( les online )
  2. Kevin Kline , SQL Concentrate , O'Reilly Media, Inc.,2005( les online )
  3. Frédéric Brouard , Rudi Bruchez og Christian Soutou , SQL , Pearson Education France,20. august 2010( les online )
  4. (i) Kevin Gashyna og Michael Kyprianou , DB2 Universal Database Application Development V.8 Certification Guide , Prentice Hall Professional2003( les online )

Se også