php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.09.2004, 04:59  
Gast
 
Beiträge: n/a
Standard ist ";" am Ende eines SQL-Statements relevant?

MySQL ist es bislang egal, ob ich ein Semikolon hintenanstelle oder nicht.

Aber wie ist das bei anderen Datenbanken?

Ich möchte meinen Quellcode... naja, sagen wir "möglichst portabel" gestalten, im Hinblick auf mögliche Datenbankwechsel.

Darum meine Frage.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.09.2004, 08:46  
Gast
 
Beiträge: n/a
Standard

Eigentlich nicht.

In MySQL selbst ist ein letztes ; auch eigentlich nicht so wirklich richtig. Wenn du über die MySQL-Konsole arbeitest, und da den Befehl
\g SELECT * FROM tabelle;
eingibst, kommt zuerst ein

Zitat:
ERROR:
No query specified
Und dann erst die Abfrage _vor_ dem abschließenden ;

Von daher gehe ich mal davon aus, dass ; absolut unrelevant bei dem letzten SQL-Statement ist, lasse mich aber auch gerne anderes belehren.

Gruß

Marco
  Mit Zitat antworten
Alt 23.09.2004, 10:08  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das semikolon hat nutzen:
http://www.it-infothek.de/sql/sql01.html
Zitat:
Ebenfalls von Bedeutung ist das am Ende jeder Anweisung stehende Semikolon, welches anzeigt, dass eine Abfrage vollständig ist.
und hier wier ist es kein SQL-standard:
http://www.gbauerfeind.de/Mysql,Php/MySQL/seite6.html
Zitat:
Der SQL Standard kennt kein abschließendes Semikolon. Auch MYSQL erwartet kein Semikolon

und hier braucht man es wieder:
http://www.hausarbeiten.de/faecher/vorschau/11145.html
Zitat:
Generell gilt: Alle SQLKommandos werden mit einem Semikolon abgeschlossen. Wurde dieses nicht eingegeben erwartet der Client eine mehrzeilige Eingabe und schickt das Kommando erst ab wenn ein Semikolon abschließend eingegeben wurde.
und zu guter letzt noch eine "dipomatische" aussage:
http://www.w3schools.com/sql/sql_intro.asp
Zitat:
Some database systems require a semicolon at the end of the SQL statement. We don't use the semicolon in our tutorials.
scheint also meinem verständnis nach nicht erforderlich zu sein.
hoffe aber noch auf eine klare antwort.

grüße ben.
imported_Ben ist offline   Mit Zitat antworten
Alt 23.09.2004, 10:15  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

http://de.php.net/manual/de/function.mysql-query.php
Zitat:
Anmerkung: Die Anfrage sollte nicht mit einem Semikolon enden.
Guradia ist offline   Mit Zitat antworten
Alt 23.09.2004, 10:29  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Guradia
http://de.php.net/manual/de/function.mysql-query.php
Zitat:
Anmerkung: Die Anfrage sollte nicht mit einem Semikolon enden.
ja. schön und gut. aber das ist jetzt ja auf PHP bezogen. mich würde einfach mal interessieren, wie das SQL als eigenständige sprache handhabt.

grüße ben
imported_Ben ist offline   Mit Zitat antworten
Alt 23.09.2004, 10:39  
Gast
 
Beiträge: n/a
Standard

Hab mal im Bücherregal gekramt und MySQL von GE-PACKT (http://www.ge-packt.de) gefunden.

Das Buch kümmert sich um alle möglichen Datenbanken, DB2, MsSql, MySql, Oracle, etc. ...

Auf den mehr als 1400 Seiten wird das Semikolon mal benutzt mal nicht.
Hab mir das nun mal ne halbe Stunde duirchgesehen.

Es wird wahlfrei eingesetzt und unabhängig von Befehlen und Datenbanken.

Vorausgesetzt, daß Buch ist soweit fehlerfrei, scheint es in der Tat beliebig zu sein, ob oder ob nicht

Klar ist, daß ich in einem SQL-Skript mit mehreren aufeinanderfolgenden Befehlen ein Semikolon als Trennung benutze; bei einem einzelnen Befehl scheint es wurscht zu sein.

Eventuell erkennt die Datenbank anhand der Headerdaten des Requests, ob die die einzelne Abfrage beendet wurde und "denkt sich" ihren Strichpunkt.

Da zuweilen auch bei Javascript ein return genügt, ist es vielleicht einfach so, daß auch die SQL-Abfragesprache beides zuläßt, nach dem Motto
"Solange Du eindeutig fragst, kannst Du es auch weglassen".
  Mit Zitat antworten
Alt 23.09.2004, 15:20  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mag eventuell so sein .. die antwort wäre dann für mich jedenfalls absolut inakzeptabel, da ich jemand bin, der sich gerne an standards entlang hangelt

EDIT:

öhem . .was programmiersprachen etc. angeht mein ich natürlich
imported_Ben ist offline   Mit Zitat antworten
Alt 23.09.2004, 17:51  
Gast
 
Beiträge: n/a
Standard

Ben...
ob ich $sum = $sum+4 oder $sum += 4 schreibe, ist gehoppst wie gedoppst, richtig?

Das meinte ich mit dem "inakzeptablen Satz" - vielleicht ist es einfach den Präferenzen des Ausführenden überlassen, ob er es so oder so löst.

Und gut, daß Du betreffend Deines Hanges zu Standards nochmals nachgehakt hast - ich hatte schon Luft geholt
  Mit Zitat antworten
Alt 27.09.2004, 10:08  
Gast
 
Beiträge: n/a
Standard

nach meiner erfahrung:

in der mysql-konsole wird ein ; gebraucht, da sonst mehrere zeilen erwartet werden (was auch völlig richtig und logisch bei dieser eingabeform ist), innerhalb von PHP sollten abfragen ohne ; stehen.

Microsoft (Access, SQL Server) macht selber eins rein, wenn keins dabei war und bei anderen DB weiss ich's nicht.
  Mit Zitat antworten
Alt 27.09.2004, 12:45  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von ARo
nach meiner erfahrung:
hmm .. hab ich ja eigentlich auch schon zu diesem thread beigetragen ;-P

aber ist ja eigentlich "schade", dass es da keine wirkliche norm gibt.
imported_Ben ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mit PHP am Ende einer TXT was ergänzen / Leerzeilen löschen DDogg PHP Tipps 2007 5 01.02.2007 10:32
Problem mit DIV -Bild soll am unteren Ende der Seite bleiben scheibo HTML, Usability und Barrierefreiheit 16 12.01.2006 16:54
neue datensätze am ende anfügen? Dilandau Datenbanken 3 12.12.2005 22:47
Am Ende jeder Zeile etwas einfügen lassen... PHP Tipps 2005-2 2 29.10.2005 05:56
Layer am Ende einer Seite platzieren php1 HTML, Usability und Barrierefreiheit 2 21.03.2005 22:44
datensatz am ende einfügen....??? ckrentel PHP Tipps 2005 8 20.03.2005 21:06
zählen von "{" und "}" PHP Tipps 2005 4 25.01.2005 19:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql strichpunkt, sql semikolon, sql ende, sql queries semikolon, die anfrage sollte nicht mit einem semikolon enden., strichpunkt sql, sql ;, strichpunkt in sql, warum semikolon am ende jeder sql anweisung, http://www.php.de/datenbanken/9548-ist-am-ende-eines-sql-statements-relevant.html, sql server sql query semicolon, java befehle mysql mit oder ohne semikolon, mysql php mit semikolon, sql absdchlierssendes semikolon, sql strichpunkt nach abfrage, sql ohne semikolon, sql anweisung mit strichpunkt, sql from ende, ist strichpunkt in sql erlaubt, sql ; am ende

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.