[gelöst]SQL und Frage zu case-sensitive

Probleme mit Samba, NFS, FTP und Co.
Antworten
schwedenmann
Beiträge: 5525
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

[gelöst]SQL und Frage zu case-sensitive

Beitrag von schwedenmann » 04.12.2022 18:35:20

Hallo


Ich habe eine Frage zu SQl queries die mich etwas irritiert.

Als Db zum "Spielen" hab eich terra2919Oa in Mariadb importiert.

Wenn ich per select mir die Tabellen ausgeben lasse,dann werden die entsprechenden Tabellennamen groß geschrieben

im Fall von Terra2019 z.N

BERG
SEEN
GEBIRGE

usw.

Wenn ich per selct mir die felder eienr tabelle anzeigen lasse werden die auch groß geschrieben

Bei der tabelle BERG
sind das die Felder (heißt hoffentlicvh so bei einem dbms)
B_NAME
GEBIRGE
HOEHE
JAHR
LAENGE
BREITE

wenn ich jetzt
select B_NAME,GEBIRGE,HOEHE from BERG where B_NAME like "%s%" order by HOEHE;
eingebe erhalte ich die gewünschten Namen
wenn ich aber
select b_NAME,GEBIRGE,HoEHE from BERG where b_NAME like "%s%" order by HoEHE;
erhalte ich dieselben Angaben,obwohl die Feldnamen anders geschrieben werden.
select columns from bERG;
dagegen liefert eine Fehlermeldung.

Woran liegt diese unterschiedliche Verhalten bei den tabellen und Feldnamen

mfg
schwedenmann
Zuletzt geändert von schwedenmann am 05.12.2022 08:30:41, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: SQL und Frage zu case-sensitive

Beitrag von Meillo » 04.12.2022 21:30:56

Das liegt daran, dass bei MariaDB Spaltennamen nie case-sensitive sind, Tabellennamen unter Unix aber schon.

Siehe: https://mariadb.com/kb/en/identifier-case-sensitivity/

In deinen Beispielen ist es dann fehlgeschlagen, als du den Tabellennamen veraendert hast.
Use ed once in a while!

schwedenmann
Beiträge: 5525
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: SQL und Frage zu case-sensitive

Beitrag von schwedenmann » 05.12.2022 08:30:10

Hallo

Ansonsten Frage gelöst aber

Nachfrage:
Wieso gbt es dermaßen Unterschiede in der Abfragesyntax z.B. zwischen postgresql und mariadb(mysql)

Unter postgresql sind Tabellenname und Feldnamen nicht case-sensitive, bei Abfragen mit where --like '%F%' wird unter postgres nur Werte mit F ausgegeben,
bei mariadb dagegen F und f.

Wieso kommen diese Unterschiede zustande ?

mfg
schwedenmann

Antworten