INSERT INTO brugere (UserID, NAVN) værdier ( 'U10', 'Joe Roxy ')De XQuery variant er meget ens,
ddtek: SQL-insert ( "brugere", "UserID", "U10", "Navn", "Joe Roxy" )Det første argument peger på bordet, som vi ønsker at indsætte ind. Næste ddtek: SQL-insert har en variabel liste over kolonne-værdi-par. A "INSERT INTO vælge" er en smule mere detaljeret i XQuery, end det er tilfældet i SQL.
Indsætte i NEWUSERS vælge * Fra brugere, hvis navn såsom "Tom% 'I XQuery du ville skrive,
for $ bruger i indsamling (" brugere ")/USERSSletning af rækker Alder � � s nu slette Joe Roxy fra user? � s tabellen,
hvor begynder - med ($ bruger/navn "Tom")
vende tilbage
ddtek: SQL-insert ( "OTHERUSERS",
"UserID", $ bruger/UserID,
"NAME" , $ Bruger/NAVN,
"menig", $ bruger/rating)
slette fra brugere, hvor UserId = 'U10'Med DataDirect XQuery du bruger ddtek: SQL-slette. Du kan vælge alle de brugere, du vil slette, ved vi, hvordan vi kan gøre det,
indsamling ( "brugere")/brugere [UserID = 'U10']Og nu du passerer, at oplysninger som argument for at ddtek: SQL-slette,
ddtek: SQL-slette (indsamling ( "brugere")/brugere [UserID = 'U10'])Og selvfølgelig, hvis du har en præference for FLWOR udtryk, således svarer,
for $ u i indsamling ( "TESTUSERS")/TESTUSERSOpdatering rækker Alder � � s nu vise, hvordan man kan opdatere elementet 1001, ændre sin beskrivelse til Grøn Cykel og pris = 100,
hvor $ u/UserID = 'U10'
vende tilbage
ddtek: SQL-slette ($ u)
opdatering ITEMSLignende at slette rækker, skal du først nødt til at angive, hvilke rækker, der skal opdateres, og videregive det som argument for at ddtek: SQL-opdateringen.
sæt BESKRIVELSE = 'Green Bicycle', RESERVE_PRICE = �100�
hvor ITEMNO ='1001 '
for $ punkt i indsamling ( "poster")/ITEMSLigesom i SQL, kan du opdatere en kolonne med en værdi beregnet fra den nuværende værdi. Antag at vi ønsker at hæve prisen reserve for alle poster med 10%. Som det fremgår af følgende SQL-sætning,
hvor $ post/ITEMNO ='1001 '
vende tilbage
ddtek: SQL-update ($ post,
"Beskrivelse", " Green Bicycle ",
" RESERVE_PRICE ", 100)
Update "xvs". "Xvs001". "Poster" SET "RESERVE_PRICE" = "RESERVE_PRICE" * 1.10Og i XQuery,
for $ element i indsamling ( "poster")/ITEMSUpsert? Flere SQL implementeringer støtte upsert eller fusionere funktionalitet. Det gør det muligt at opdatere et mål tabel med data fra en kilde bordet. Rækker i målet, der passer til den kilde er opdateret, og den ikke eksisterende rækker indsættes. XQuery ikke har en sådan indbygget funktion, men der er heller ikke behov for. Brug en betinget udtryk, det er let udtrykt i XQuery. Antag at vi ønsker at kopiere alle brugere med rating A fra den ene til den anden tabel. Hvis brugeren findes, vi opdaterer rækken, ellers har vi Indsæt.
vende tilbage
ddtek: SQL-update ($ post, "RESERVE_PRICE", $ post/RESERVE_PRICE * 1.10)
Vi Gentag over alle rækkerne i BRUGERE tabellen med rating A, og opslag matchende række i NEWUSERS bordet.
Hvis en kamp i NEWUSERS er fundet, vi opdaterer rækken, ellers der indsættes en ny række,
for $ kilde i indsamling ( "brugere")/USERSNULL værdier Hvad lærte vi i Data Model , i SQL/XML opfattelse, NULL værdier område repræsenteret som manglende elementer. Lignende, til at videregive NULL til en af de ddtek: SQL-* funktioner, skal du angive den tomme sekvens. Setting en Itema � � s beskrivelse til null i SQL,
lad $ mål: = indsamling ( "NEWUSERS")/NEWUSERS [UserId = $ kilde/UserID]
hvor $ kilde/rating = "A"
vende tilbage
hvis (eksisterer ($ target)) derefter
ddtek: SQL-update ( $ mål,
"NAME", $ source/NAVN,
"menig", $ source/rating)
ellers
ddtek: SQL-insert ( "NEWUSERS",
"UserID", $ source/UserID,
"NAME", $ source/NAVN,
"menig", $ source/rating)
opdatering ITEMSOpdatering af en kolonne med NULL, er ikke meget anderledes i XQuery,
sæt BESKRIVELSE = NULL
hvor ITEMNO ='1001 '
for $ element i indsamling ( "ITEMS ")/ITEMSAlle opdateringen eksempler i denne post enten bruge statiske data (literals) eller er ved kopiering af data fra den ene til den anden tabel. Men i de fleste scenarier disse data kommer ud af din ansøgning i en eller anden måde. Med DataDirect XQuery du har evnen til at læse data fra en XML-struktur og opdatere din database. Minollo og jeg har blogges om dette emne før i Bulk belastning af XML-data i en relationel database og shredding XML-dokumenter til tabeller, en database uafhængig tilgang .... Som bekendt i SQL, binder markører letter bindende værdier fra din ansøgning til SQL-sætning. Hvad er det, der svarer til SQL binde markører i XQuery? Hold øje med om vores næste post i XQuery for SQL programmør Serie. Tech Tags: XQuery SQL
vende tilbage ddtek: SQL-update ($ post," Beskrivelse ", ())