"-" und "_" in MySQL Spaltennamen gebräuchlich?

Ich würde tippen, weil es sich einfach eingebürgert hat.
Ein "_" ist besser als Leerzeichen-Ersatz wie "-".
Außerdem kann man halbwegs sicher sein, dass keine andere Funktion draufliegen (Subtraktion wie beim "-") und somit Problemen aus den Weg gehen.
 
QUOTE Außerdem kann man halbwegs sicher sein, dass keine andere Funktion draufliegen (Subtraktion wie beim "-") und somit Problemen aus den Weg gehen.



guter gedanke! hab das gleich getestet, und tatsächlich müsste man eine spalte namens

a-b_c

in '' stellen, also

select * from table_x where 'a-b_c' = 'was-weiss-ich'

ohne '' schluckt er's nicht! ...mist...
 
Generell sollte davon abgesehen werden, in Datenbanken (in allen Datenbanken) Bindestriche "-", Leerzeichen " " und sowas in Feldnamen zu verwenden. Das liegt daran, dass SQL damit nicht klar kommt.

Ein Beispiel:
Der Feldname lautet "Mein Feld".
Das SQL-Statement wäre dann "SELECT Mein Feld FROM MeineTabelle", was zum Fehler führt, weil SQL da zwei Namen erkennt, die nicht ordentlich durch Komma getrennt wurden.

Anderes Beispiel:
Der Feldname lautet "Mein-Feld".
Das SQL-Statement wäre jetzt "SELECT Mein-Feld FROM MeineTabelle". Auch das gibt einen Fehler, weil dies als Rechenoperation betrachtet wird (Mein - Feld = Error)

Hamlet
 
QUOTE Das SQL-Statement wäre dann "SELECT Mein Feld FROM MeineTabelle", was zum Fehler führt, weil SQL da zwei Namen erkennt, die nicht ordentlich durch Komma getrennt wurden.


Witzig ist, dass MySQL dabei versucht, das Feld 'Mein' auszulesen, und bei Erfolg diesem Feld den Alias 'Feld' zuweist. Liegt daran, dass das Schlüsselwort 'AS' optional ist. "Mein Feld" ist also equivalent zu "Mein AS Feld".

Man könnte wohl auch auch 'Mein Feld' oder 'Mein-Feld' (Strings) schreiben. Ich persönlich bevorzuge CamelCase (MeinFeld) und bin damit immer gut gefahren. Aber auch Mein_Feld kann man gefahrlos benutzen, zumindest wird es in der MySQL-Doku häufig benutzt.

Ist größtenteils Geschmackssache
 
Zurück
Oben