Google Query Language , eller GQL , er SQL -lignende språk innebygd i Googles gratis "App Engine" Web plattform. I de fleste henseender , er dens syntaks som ligner på SQL, Structured Query Language som brukes av de fleste database pakker , men det har noen av sine egne quirks basert på hvordan Google lagrer data . På grunn av kompleksiteten i Google App Engine plattformen , kan denne artikkelen dekker ikke hvordan du setter opp din egen App Engine program . Det forutsetter at du har et eksisterende App Engine programmet og ønsker å vite hva GQL koden kan settes inn for å hente data fra App Engine database. En grundig behandling om å sette opp en App Engine søknad innen hvilke du kan kjøre Google SQL-kommandoer er tilgjengelige (se Resources ) . Det vil anta App Engine database inneholder en modell som heter "bok" som holder strengen "Tittel" og en referanse til strengen " Forfatter ". Instruksjoner
en
Lim inn følgende tekst i App Engine søknad kode for å hente alle bøkene i databasen og skrive dem alle ut til brukeren når det etterspørres data : en
søket = GqlQuery ( "SELECT * FROM Book" )
for boken i søket : en
print book.Title
print book.Author
Du kan forkorte dette litt ved å erstatte spørringen med følgende kommando i stedet : en
query = Book.all ( )
Men dette kan bli uhåndterlig raskt , slik at du kan bruke WHERE -kommandoen til å begrense resultatene til bare de ønskede
2
Lim inn følgende for å hente bare titlene på bøkene skrevet av " Stephen king" : .
query = GqlQuery "SELECT Tittel FROM bok der forfatteren = : author " , author = " Stephen king " )
To ting er annerledes i denne spørringen : først , WHERE kommandoen fører det å bare hente resultater der forfatteren var Stephen King . Samtidig har " * " etter SELECT blitt erstattet med navnet på feltet som trengs : " . Tittel "
Akkurat som i trinn 1 , kan denne kommandoen bli forkortet , men det vil returnere alle resultater : en
query = Book.gql ( " WHERE Forfatter = : author " , author = " Stephen king" )
Listen kode er funksjonell , men Google App Engine belaster sine kunder basert på datamaskinens ressurser brukes , og de er litt ineffektive
3
Lim inn følgende for å få fart på koden : .
query = GqlQuery ( "SELECT __ key__ FROM bok der forfatteren = : author " , author = " Stephen king " )
for b i søket : en
bok = Book.get ( b )
print book.Title
< p> Ved å velge å hente __ key__ data , utfører GqlQuery dramatisk raskere. Du bør utføre så mange søk som mulig ved å hente bare de viktige data .