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**& | ||
+ | </ | ||
---- | ---- | ||