Backticks in MySQL
Hannes
- datenbank
0 Cheatah0 Hannes
Hallo,
man findet beide Versionen im Netz
SELECT foo
FROM tabelle
als auch
SELECT foo FROM tabelle
was spricht dagegen die backticks nicht zu schreiben?
viele Grüsse
Hannes
Hi,
was spricht dagegen die backticks nicht zu schreiben?
sofern Du für die Tabellen und Spalten keine Namen verwendest, die Sonderzeichen enthalten oder reservierten Wörtern entsprechen: Absolut und überhaupt gar nichts. Im Gegenteil. Lautet z.B. ein Spaltennamen jedoch "select" oder "erste Spalte" (warum auch immer), bist Du auf die Backticks angewiesen.
Cheatah
oder auch "right", "user" oder mein absoluter favorit "date". da bin ich schon des öfteren drüber gestolpert.
Gruß,
Niklas
Hi,
was spricht dagegen die backticks nicht zu schreiben?
sofern Du für die Tabellen und Spalten keine Namen verwendest, die Sonderzeichen enthalten oder reservierten Wörtern entsprechen: Absolut und überhaupt gar nichts. Im Gegenteil. Lautet z.B. ein Spaltennamen jedoch "select" oder "erste Spalte" (warum auch immer), bist Du auf die Backticks angewiesen.
Kann es sein, dass die Backticks in anderen SQL-Dialekten verwendet werden _müssen_? Oder irre ich mich da?
mfG,
steckl
Hallo,
Kann es sein, dass die Backticks in anderen SQL-Dialekten verwendet werden _müssen_? Oder irre ich mich da?
Du irrst. Escapezeichen sind in SQL für erlaubte Bezeichner selbstverständlich nicht erforderlich. Zudem ist das Escapezeichen dialektspezifisch:
MS SQL Server und MS Access verwenden zum Beispiel eckige Klammern, DB2 laut Recherche doppelte Anführungszeichen.
Freundliche Grüße
Vinzenz
Hi,
Du irrst. Escapezeichen sind in SQL für erlaubte Bezeichner selbstverständlich nicht erforderlich.
Danke, dann hab ich da wohl was durcheinandergebracht.
mfG,
steckl
Hi,
Kann es sein, dass die Backticks in anderen SQL-Dialekten verwendet werden _müssen_? Oder irre ich mich da?
ich kenne zwar keinen, aber ich mag es auch nicht ausschließen. Die Backtickeritis ist IMHO eine Folge automatisch generierter Statements - insbesondere aus PhpMyAdmin heraus - welche ohne Prüfung auf Notwendigkeit einfach gesetzt wurden; nach dem Motto "syntaktisch gesehen sind sie nie falsch".
Cheatah
welche ohne Prüfung auf Notwendigkeit einfach gesetzt wurden; nach dem Motto "syntaktisch gesehen sind sie nie falsch".
was sich bei den vielen abfragen wahrscheinlich sogar positiv auf die performance auswirkt ;) php ist nunmal nicht das schnellste :D
Gruß,
Niklas
Hi,
was sich bei den vielen abfragen wahrscheinlich sogar positiv auf die performance auswirkt ;) php ist nunmal nicht das schnellste :D
das mag sein, aber was hat das mit PHP zu tun?
Cheatah
Hello,
das mag sein, aber was hat das mit PHP zu tun?
Oh, ja was hat der phpMyAdmin mit PHP zu tun?
Der ist doch in Visual Basic geschreiben, oder?
(ich kann beides nicht leiden!)
Ein harzliches Glückauf
Tom vom Berg
Hi,
das mag sein, aber was hat das mit PHP zu tun?
Oh, ja was hat der phpMyAdmin mit PHP zu tun?
was hat die Performance von MySQL-Statements mit und ohne Backticks mit PhpMyAdmin zu tun?
Cheatah
was hat die Performance von MySQL-Statements mit und ohne Backticks mit PhpMyAdmin zu tun?
es hat damit zu tun, dass php sonst überprüfen müsste, ob backquotes erforderlich sind oder nicht...
Hello,
was hat die Performance von MySQL-Statements mit und ohne Backticks mit PhpMyAdmin zu tun?
es hat damit zu tun, dass php sonst überprüfen müsste, ob backquotes erforderlich sind oder nicht...
Nun schimpf doch nicht so mit unserem Cheatah. ;-))
Den "phpMyAdmin" hat er zwar selber ins Gespräch gebracht, aber sicherlich dabei nicht daran gedacht, dass der (üblicherweise) in PHP geschrieben ist.
Ich habe zwar heute darüber gelesen, dass den jetzt jemand auch als C-Programm für Linux nachgebaut hätte, aber gesehen habe ich so eine Version noch nicht.
Ein harzliches Glückauf
Tom vom Berg
Hi,
Nun schimpf doch nicht so mit unserem Cheatah. ;-))
kann er ruhig, wenn er einen Grund dazu sieht. Im Zweifel muss er lediglich das Echo vertragen können.
Den "phpMyAdmin" hat er zwar selber ins Gespräch gebracht, aber sicherlich dabei nicht daran gedacht, dass der (üblicherweise) in PHP geschrieben ist.
Öhm, ich glaube nicht, dass mir das entgehen würde ;-) Vielmehr bin ich nicht auf die Idee gekommen, dass jemand in einem System zur manuellen Verwaltung von DB-Schemata ein Performance-Problem sehen könnte.
Ich habe zwar heute darüber gelesen, dass den jetzt jemand auch als C-Programm für Linux nachgebaut hätte, aber gesehen habe ich so eine Version noch nicht.
Konsequenterweise müsste es dann cMyAdmin heißen ...
Cheatah
Hello,
Konsequenterweise müsste es dann cMyAdmin heißen ...
Da stimme ich Dir allerdings zu.
Sollte ich beim Gurgeln nochmal drüber nachdenken ;-)
Ein harzliches Glückauf
Tom vom Berg
ich meinte, dass das überprüfen, ob backquotes erforderlich sind, wahrscheinlich allein länger dauert als die datenbankabfrage selbst.
Hi,
ich meinte, dass das überprüfen, ob backquotes erforderlich sind, wahrscheinlich allein länger dauert als die datenbankabfrage selbst.
ach so. Das halte ich für unwahrscheinlich - zumal die Menge der generierten Statements pro Vorgang gering sein dürfte. _Das_ ist nicht zeitkritisch.
Cheatah
Wie sagte mein Programmierdozent immer?
'Redundante Klammern schaden nie.'
Genauso ists mit den Backticks. Falsch sind sie nicht.
Hello,
Wie sagte mein Programmierdozent immer?
'Redundante Klammern schaden nie.'
Genauso ists mit den Backticks. Falsch sind sie nicht.
Das ist auch meine Meinung!
MySQL ist ursprünglich im Kinderkacke-Segment entstanden und hat daher auch zusätzliche Sicherheiten. Die echten[tm] DMBS brauchen sowas natürlich nicht, weil sie ja nur von Profis[tm] benutzt werden, die immer wissen, was sie zu tun und zu lassen haben...
Grüße aus Syburg
Tom vom Berg
echo $begrüßung;
Wie sagte mein Programmierdozent immer?
'Redundante Klammern schaden nie.'
Und damit hat er nicht Recht. Beispiel PHP: Eine Klammer um eine Variable macht aus ihr einen Ausdruck. Auf Ausdrücke kann man nicht referenzieren.
Genauso ists mit den Backticks. Falsch sind sie nicht.
Kein Einwand.
echo "$verabschiedung $name";
Hi!
Und damit hat er nicht Recht. Beispiel PHP: Eine Klammer um eine Variable macht aus ihr einen Ausdruck. Auf Ausdrücke kann man nicht referenzieren.
Sind die Klammern dann redundant?
echo $begrüßung;
Und damit hat er nicht Recht. Beispiel PHP: Eine Klammer um eine Variable macht aus ihr einen Ausdruck. Auf Ausdrücke kann man nicht referenzieren.
Sind die Klammern dann redundant?
Dass sie in dem Fall nicht redundant sondern schlicht falsch sind, fiel mir nach dem Absenden auch ein. Es hätte ja sein können, dass du den Unterschied nicht merkst :-) Viele werden nicht wissen, dass sie mit den Klammern einen Ausdruck erstellen, der andere behandelt wird als eine einfache Variable (wenn es keinen Compiler gibt, der das wegoptimiert).
echo "$verabschiedung $name";
Hi,
'Redundante Klammern schaden nie.'
a = b + c;
Da redundante Klammern nicht schaden:
a = (b + c);
Oder noch redundanter:
a = ((b + c));
oder:
oder
a = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((b + c))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
usw.
Das kann man soweit weiterführen, bis das interpretierende Programm wegen zu tiefer Verschachtelung auf die Schnauze fällt (Stack overflow, out of memory, ...).
Aber schaden tut's ja nicht ;-)
cu,
Andreas
Hello,
oder
a = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((b + c))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));usw.
Es gibt eben immer Leute, die kein Maß kennen, und alles übertreiben müssen !!!!!!!!!
*g*
Ein harzliches Glückauf
Tom vom Berg
Hi,
Es gibt eben immer Leute, die kein Maß kennen, und alles übertreiben müssen !!!!!!!!!
Wer hat denn übertrieben?
Ich hab doch die Forensoftware gar nicht abstürzen lassen ... ;-)
cu,
Andreas
Hallo
Ich hab doch die Forensoftware gar nicht abstürzen lassen ... ;-)
dem sei die maximale Beitragsgröße vor :-)
Abgesehen davon ist unter MySQL
SELECT
```spalte```
FROM
`beispiel`
etwas ganz anderes als
SELECT
`spalte`
FROM
`beispiel`
letzteres bewirkt bei MySQL allerdings das gleiche wie
SELECT
spalte
FROM
beispiel
siehe Handbuch.
Drei ist manchmal 1, zwei ist manchmal 1 und 1 ist manchmal 0, eine ideale Ausgangsbasis für exaktes Rechnen :-)
Freundliche Grüße
Vinzenz
Moin Moin!
a = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((b + c))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
Alexander
Hallo,
vielen Dank für die Antworten, ist nun klarer.
viele Grüsse
Hannes