Google Query Language , oder GQL , ist die SQL -ähnliche Sprache in den freien Googles " App Engine " Web -Plattform gebaut . In den meisten Punkten , die Syntax ähnlich SQL , die Structured Query Language von den meisten Datenbank -Pakete verwendet , aber es hat ein paar seiner eigenen Macken auf dem Weg Google speichert Daten. Aufgrund der Komplexität der Google App Engine -Plattform , kann dieser Artikel nicht auf , wie Sie Ihre eigene App Engine -Programm. Es wird vorausgesetzt, dass eine bestehende App Engine -Programm und wollen wissen, was GQL Code eingefügt werden, um Daten aus der App Engine -Datenbank abzurufen. Eine eingehende Behandlung über die Einrichtung eines App Engine-Anwendung , in dem Sie Google SQL -Befehle ausführen kann, ist vorhanden ( siehe Ressourcen). Es gehen von Ihrer App Engine -Datenbank enthält ein Modell mit dem Namen " Buch ", die die Zeichenfolge " Title" und eine Referenz auf den String hält " Autor ". Anleitung
1
Fügen Sie den folgenden Text in die App Engine Anwendung Code , alle Bücher in der Datenbank abrufen und drucken sie alle für den Benutzer , wenn die Daten angefordert:
Abfrage = GqlQuery ( "SELECT * FROM book" )
für Buch in query:
Druck book.Title
Druck book.Author
Sie können verkürzen dies ein wenig , indem die Abfrage mit dem folgenden Befehl statt :
query = Book.all ()
dies kann jedoch schnell unhandlich , so können Sie die WHERE- Befehl an die Grenze Ergebnisse nur die gewünschten
2
Fügen Sie den folgenden nur die Titel der Bücher von " Stephen King" geschrieben abrufen : .
query = GqlQuery "SELECT Titel FROM Buch WHERE Author = : author " , author =" sind Stephen King " )
Zwei Dinge in dieser Abfrage anders: zuerst die WHERE- Befehl bewirkt, dass es nur die Ergebnisse abzurufen , wo der Autor war Stephen King . Zur gleichen Zeit , die "*" nach SELECT ist mit dem Namen des Feldes ersetzt erforderlich : " . Title"
Genau wie in Schritt 1 , kann dieser Befehl verkürzt werden, wenn es alle Ergebnisse angezeigt werden :
query = Book.gql ( "WHERE author = : author " , author = " Stephen King" )
der obige Code ist funktional, aber die Google App Engine berechnet seinen Kunden auf der Grundlage Computer-Ressourcen verwendet , und sie sind leicht ineffizient
3
Fügen Sie den folgenden zu beschleunigen Ihr Code : .
query = GqlQuery ( "SELECT __ key__ FROM Buch WHERE Author = : author " , author =" Stephen King " )
für b in query:
Buch = Book.get ( b)
Druck book.Title
< p> Durch die Wahl nur __ key__ Daten abzurufen , führt die GqlQuery dramatisch schneller. Sie sollten so viele Fragen wie möglich durch Abrufen nur die wichtigsten Daten durchzuführen.