Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| dev:all:examples:sql [13.03.2017 10:18] – [INSERT / UPDATE] Manuela v.d.Decken | dev:all:examples:sql [27.10.2017 10:16] (aktuell) – [SELECT] Manuela v.d.Decken | ||
|---|---|---|---|
| Zeile 9: | Zeile 9: | ||
| Das ist schon < | Das ist schon < | ||
| Also am besten erst ein mal die grundlegensten Regeln: | Also am besten erst ein mal die grundlegensten Regeln: | ||
| - | * Statements dürfen nicht in der Argumentenklammer einer Funktion/ | + | * Statements |
| - | * Statements müssen grundsätzlich im SQL-Strikt-Syntax aufgebaut werden | + | * Statements |
| - | * alle SQL Schlüsselwörter müssen in Großbuchstaben geschrieben werden. | + | * alle SQL Schlüsselwörter |
| - | * alle Feld- und Tabellennamen müssen in **`**Backticks**`** eingeschlossen werden. | + | * alle Feld- und Tabellennamen |
| - | * Statements dürfen nicht mit **”**text**”**, sondern ausschließlich mit **'**text**'** begrenzt werden. Wird innerhalb des Strings ein Apostroph **'** benötigt, so ist dieser mit einem Backslash **\'** zu maskieren. | + | * Statements |
| - | SQL-Statements sollten auch optisch so aufgebaut werden, dass sie problemlos und schnell gelesen und erfasst werden können. Die zeilenweise Aufteilung nach Action-Schlüsselwörtern ist an der Stelle sehr sinnvoll. Ist eine Zeile zu lang (Codingstandards) dann mit Einrückung auf mehrere Zeilen verteilen. Bei der Feldauswahl im SELECT-Bereich ist zu beachten, dass der Server komplette Datensätze (SELECT *) in der Regel deutlich schneller liefern kann, als eine lange Auswahlliste von einzelnen Feldern. | + | SQL-Statements |
| Um den Aufbau von Statements zu demonstrieren, | Um den Aufbau von Statements zu demonstrieren, | ||
| ---- | ---- | ||
| Zeile 21: | Zeile 21: | ||
| Alle vier Beispiele geben jeweils ein Result-Objekt mit allen Datensätzen der zum aktuellen Zeitpunkt sichtbaren Sections einer Seite zurück. | Alle vier Beispiele geben jeweils ein Result-Objekt mit allen Datensätzen der zum aktuellen Zeitpunkt sichtbaren Sections einer Seite zurück. | ||
| <code php Beispiel-1.php> | <code php Beispiel-1.php> | ||
| - | $oResult = $oDb-> | + | $oResult = $oDb-> |
| </ | </ | ||
| <code php Beispiel-2.php> | <code php Beispiel-2.php> | ||
| $sql = ' | $sql = ' | ||
| - | $sql .= 'WHERE `page_id`=' | + | $sql .= 'WHERE `page_id`=' |
| $sql .= 'ORDER BY `block`, `position`'; | $sql .= 'ORDER BY `block`, `position`'; | ||
| $oResult = $oDb-> | $oResult = $oDb-> | ||
| Zeile 34: | Zeile 34: | ||
| . 'FROM `' | . 'FROM `' | ||
| . 'WHERE `page_id`=' | . 'WHERE `page_id`=' | ||
| - | | + | |
| - | . 'AND (`publ_end`=0 OR `publ_end`> | + | |
| . 'ORDER BY `block`, `position`'; | . 'ORDER BY `block`, `position`'; | ||
| $oResult = $oDb-> | $oResult = $oDb-> | ||
| Zeile 42: | Zeile 41: | ||
| $sql = ' | $sql = ' | ||
| . 'WHERE `page_id`=' | . 'WHERE `page_id`=' | ||
| - | | + | |
| - | . 'AND (`publ_end`=0 OR `publ_end`> | + | |
| . 'ORDER BY `block`, `position`'; | . 'ORDER BY `block`, `position`'; | ||
| $oResult = $oDb-> | $oResult = $oDb-> | ||
| </ | </ | ||
| Welche Beispiele lassen sich leichter lesen, verstehen und bei Bedarf auch leichter ändern? **1**& | Welche Beispiele lassen sich leichter lesen, verstehen und bei Bedarf auch leichter ändern? **1**& | ||
| + | </ | ||
| ---- | ---- | ||