Google Query Language , eller GQL , är det SQL - liknande språk inbyggt i Googles kostnadsfria " App Engine " webbplattform . I de flesta avseenden är dess syntax liknar SQL , Structured Query Language som används av de flesta databas paket , men det har några av sina egna egenheter baserat på hur Google lagrar data . På grund av komplexiteten av Google App Engine -plattform , kan den här artikeln täcker inte hur du ställer in ditt eget program App Engine . Det förutsätter att du har ett befintligt program App Engine och vill veta vad GQL kod kan införas för att hämta data från App Engine databasen . En djupgående behandling om att inrätta ett App Engine inom vilken du kan köra Google SQL -kommandon är tillgängliga ( se Resurser ) . Det kommer att ta din App Engine databasen innehåller en modell som heter " Bok " som håller strängen " Title " och en hänvisning till strängen " författare . " Instruktioner
1
Klistra in följande text i din App Engine programkoden för att hämta alla böcker i databasen och skriva ut dem för användaren när data begärs :
query = GqlQuery ( " SELECT * FROM Book " ) katalog
för boken i fråga :
print book.Title
print book.Author
Du kan förkorta detta lite genom att ersätta frågan med följande kommando istället :
query = Book.all ( ) katalog
detta kan dock bli svårhanterliga snabbt , så du kan använda WHERE kommando för att begränsa resultat till endast de önskade köpa 2
Klistra in följande för att bara hämta titlarna på böcker skrivna av " Stephen King" : .
query = GqlQuery " SELECT titel från bok där Författare = : Författare " , author = " Stephen King " ) katalog
Två saker är annorlunda i denna fråga : det första, där kommando gör att endast hämta resultat där författaren Stephen King . Samtidigt har den " * " efter SELECT ersatts med namnet på det fält som behövs : " . Title "
Precis som i steg 1 , kan detta kommando förkortas , men den ger alla resultat :
query = Book.gql ( " WHERE Författare = : författare " , author = " Stephen King " ) katalog
ovanstående kod är funktionell , men Google App Engine debiterar sina kunder baserat på datorresurser används , och de är något ineffektiva
3
Klistra in följande för att snabba upp din kod : .
query = GqlQuery ( " SELECT __ key__ FROM bok där Författare = : Författare " , author = " Stephen King " ) katalog
för bi fråga :
bok = Book.get ( b ) katalog
print book.Title
Genom att välja att bara hämta __ key__ uppgifter , utför GqlQuery dramatiskt snabbare . Du bör utföra så många frågor som möjligt genom att hämta bara de viktigaste uppgifterna .