Avatar billede flaperman Nybegynder
01. november 2001 - 10:55 Der er 9 kommentarer og
1 løsning

SQL - Hvorfor er det ikke case-sensitive...

Hej,

Jeg sad her i en øvelsestime og overvejede:
Hvorfor er SQL ikke case-sensitive - ville det ikke være langt smartere?

Så skulle al funktions-SQL skrives med store bogstaver, og så ville man godt kunne have coloumns der hed eksempelvis \"select\", \"group\", \"by\" og \"text\".

Man ville altså nemt kunne have:
\"SELECT id FROM select WHERE where=\'3\' GROUP BY group ORDER BY order\"

Eksemplet er stillet på spidsen - men det det handler om er: Er det i virkeligheden ikke en konstruktionsfejl fra SQL-forfædrenes side?

Med venlig hilsen...

Flaperman
Avatar billede Slettet bruger
01. november 2001 - 10:59 #1
næææh...JavaScript har jo også nogle reserverede ord..

Det er for at hjælpe dig at de er reserverede :)

Hvordan kan man overskue ovenstående sql-query uden at skulle kigge på den 2 gange?
Avatar billede bojohansen Nybegynder
01. november 2001 - 11:00 #2
Det ville da blive en kæmpe stor forvirring!!!
Avatar billede flaperman Nybegynder
01. november 2001 - 11:03 #3
Hej,

Lidt ret har du - men derfor er det jo noget sjovt noget alligevel.

Mit eksempel var stillet kraftigt på spidsen, man kunne godt forestille sig:
\"SELECT by FROM postnumre WHERE postnummer=\'7451\'\"
eller
\"SELECT group FROM group_members WHERE member=\'1\'\"

Ved at blive tvunget til at skrive funktions-SQL med stort bliver det jo lettere at overskue.

Er det bare mig der synes det kunne være handy?
Avatar billede bojohansen Nybegynder
01. november 2001 - 11:15 #4
Jeg mener nu stadigt at det er nemmere at have reseveret ord, så er der aldrig tvivl om hvad der står og man laver heller ikke en dum fejl, fordi man kommer til at læse SQL\'en forkert i en hurtig stund.
Avatar billede lan Nybegynder
01. november 2001 - 11:18 #5
Det er naturligvis en smags sag, men det giver de bedste muligheder for at skabe sin egen programmeringsstil når man selv bestemmer hvordan nøgleordene  (og ens egne navne) skal bogstaveres (m.h.t. store/små bogstaver - _)

Det er generelt aldrig en god ide at bruge nøgleord til andet end det formål de tjener i sproget.
Avatar billede teepee Nybegynder
01. november 2001 - 11:22 #6
Måske kunne det også bruges i dagligdagen at når du f.eks skriver at du bor på Vesterbrogade, så returnerer postvæsenet alle dine breve fordi de kun kender til VesterBroGade?!?
Avatar billede flaperman Nybegynder
01. november 2001 - 11:31 #7
teepee: postvæsnet kunne generelt med sucess benytte følgende SQL:
\"SELECT * FROM indbyggere WHERE vej=\'Vesterbrogade\' AND postnummer=\'Vesterbrogades postnummer\'\"

Istedet for:
\"SELECT * FROM indbyggere WHERE vej=\'Vesterbrogade\'\"

Der er millioner af eksempler på at postvæsnet laver fejl.
Avatar billede teepee Nybegynder
01. november 2001 - 11:56 #8
I følge standarden gælder:

MSL>create table thomas_test(\"by\" varchar2(100), \"from\" number(10));

Table created.

MSL>desc thomas_test
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
by                                                VARCHAR2(100)
from                                              NUMBER(10)

MSL>select \"by\" from thomas_test;

no rows selected

Så man kan altså godt hvis man benytter dobbeltplinger i både create table og selecten
Avatar billede Slettet bruger
01. november 2001 - 14:15 #9
Hvorfor afviser du mit svar?????

spørgsmålet gik vel på \"Er det i virkeligheden ikke en konstruktionsfejl fra SQL-forfædrenes side?\"

Nej, det er meningen!
Avatar billede Slettet bruger
04. november 2001 - 18:05 #10
klovn...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester