Även om nedanstående låter krångligt, så finns det stora likheter mellan SQL:s alla varianter. Den SQL man vanligen börjar lära sig, ser i huvudsak likadan ut i alla varianter. Jag rekommenderar en bok i grundläggande SQL.
Om du redan från början vill lära dig de avancerade detaljerna också är det kanske bäst om du först bestämmer dig för om du vill köra Access, PostgesSQL, MSSQL, MySQL, Informix, Oracle, .... eller vad du nu vill. Och sedan lär dig den varianten. Annars funkar grunderna likadant i alla varianter.
yador skrev:
Dem olika dialekterna? Nästan alla databaser stödjer väl standard SQL? Sedan kommer väl sedan respektive företag med respektive programvara lägga till sina egna saker, men standarden följer väl dem flesta, el?
Det finns (minst) tre olika standarder för SQL. SQL (1? som kom gud vet när), SQL 2 (även kallad SQL-92) som kom -92, och SQL 3 (eller SQL -99) som kom -99. Fortfarande idag använder långt ifrån alla (om ens någon?) databaser hela standarden från -99. Det finns databaser som inte stöder hela -92. Med andra ord är "standard" SQL lite flytande och det kan (ibland) vara bra att veta att ett visst sätt att skriva kom i SQL -92 eller -99 och därför inte säkert finns - eller fungerar riktigt lika - oavsett databas.
Vissa saker som man vill använda sig av finns inte i standarden alls, men alla databaser har lagt till funktionaliteten, var och en på sitt sätt, i allmän användarvänlig anda. :OO Ett bra exempel är hur man begränsar resultatet till att bara ta ut N st rader och inte alla. Alla stora databaser ("märken") har sitt eget sätt.
MSSQL har en hel del alldeles egna utvidgningar av vad som ingår i SQL, så pass mycket att de döper om sin dialekt till Transact-SQL för att kunna indikera skillnaderna mellan vad detta och vanlig SQL kan.
Övriga varianter skiljer sig också åt i varierande mån. Tex implementerar PostgresSQL standardens fyra isolationsnivåer för transaktioner, genom att implementera endast två av dem. Detta är möjligt med lite kreativ tolkning av vad standarden exakt säger....
Det finns alltså två saker som varierar beroende på databas: vilken standard de säger sig implementera samt de databasspecifika tillägen och dito begränsningarna från standard.