Tärningens SQL

Relationsdatabasens språk

1986 fastslog ANSI (American National Standards Institute) SQL som en standard. 1987 antog också ISO (International Organization for Standardization) SQL som en standard. Enligt ANSI så skall SQL uttalas bokstav för bokstav, men många engelsk-språkiga databasprogrammerare och tekniker kallar det fortfarande för sequel.

År NamnKortnamnKommentar
1986 SQL-87 SQL-87 Antogs först av ANSI och ratificerades av ISO 1987.
1989 SQL-89 FIPS 127-1 Mindre revidering, som huvudsakligen handlade om integritet för constraints.
1992 SQL-92 SQL2 Stor revidering. Datatyper för date, time, timestamp, interval, bit, varchar mm. Stöd för andra teckenuppsättningar. Strängsammanfogning, datumfunktioner, villkor, omvandling, scrolling cursors mm.
1999 SQL:1999 SQL3 Fastslog standard för triggers, rekursiva frågor, sökningar på "vanliga uttryck" (eng. Regular expression), icke skalära datatyper och några objektorienterade funktioner.
2003 SQL:2003 Introduktion av XML-relaterade funktioner, windowsfunktioner, standardiserade sekvenser och kolumner med autogenerade värden (vilket inkluderar identitet-kolumner).
2006 SQL:2006 ISO/IEC 9075-14:2006 definierar hur SQL kan användas tillsammans med XML, bland annat hur XML data skall hanteras. Hanterar även interaktion med XQuery, XML Query Language.
2008 SQL:2008 Legaliserar ORDER BY utanför cursors. Lägger till INSTEAD OF triggers, och kommandot TRUNCATE.
2011 SQL:2011 Lägger till stöd för temporal data definiering och manipulation.

Grunderna i relationsdatabasens språk

SQL kan indelas i fyra olika användningsområden: sökning, manipulering, definition och säkerhet. Syntaxen för villkor vid sökning och manipulering är identisk. Sökning och manipulering kallar man ibland för CRUD-operationer: Create, Read, Update och Delete.

Data Query Language

Frågor börjar alltid med nyckelordet SELECT, och påverkar normalt inte databasens persistenta innehåll. Men vissa SQL-dialekter har utökningar som kan göra det. Till exempel i Microsoft SQL Server skapar kommandot SELECT INTO en helt ny tabell.

För att ställa frågor som använder flera tabeller används huvudsakligen nyckelordet JOIN, men även UNION kan användas för att kombinera flera olika frågor.

Data Manipulation Language

Kommandon som påverkar datat använder nyckelorden INSERT INTO, UPDATE eller DELETE. Även nyckelordet TRUNCATE som tömmer en tabell helt är vanligt, men det ingår ej i standarden. I SQL:2003 har nyckelordet MERGE tillkommit, vilket sammanfogar data från flera tabeller. Innan dess hade några databaser stöd för 'upsert' med liknande funktionalitet.

För att säkerställa att datat hänger ihop används transaktioner runt manipuleringen av data. Innan manipuleringen används nyckelorden START TRANSACTION eller BEGIN WORK beroende på SQL-dialekt. Efter manipuleringen används antingen COMMIT eller ROLLBACK beroende på om transaktionen skall genomföras eller ej.

Data Definition Language

De vanligaste kommandon för att definiera databasens innehåll är CREATE, DROP, ALTER och RENAME. Alla kommersiella databaser har egna utökningar av dessa för att kunna skapa och hantera sina egna icke-standardiserade finesser.

Data Control Language

FÖr att kunna styra läs och skrivrättigheter i databasen används nyckelorden GRANT och REVOKE.

Procedurer i relationsdatabasen

SQL är ett set-baserat deklarativt språk i motsats till procedurella (imperativa eller sekventiella) språk som C eller BASIC. Det finns dock utvidgningar som tillåter procedurell funktionalitet:
Källa Kortnamn Namn
ANSI SQL/PSM SQL/Persistent Stored Modules
Interbase/Firebird PSQL Procedural SQL
IBM DB2 SQL PL SQL Procedural Language
IBM Informix SPL Stored Procedural Language
IBM Netezza NZPLSQL Netezza Procedural Language/SQL (baserat på Postgres PL/pgSQL)
Microsoft T-SQL Transact-SQL
MimerSQL SQL/PSM SQL/Persistent Stored Modules
MySQL SQL/PSM SQL/Persistent Stored Modules
NuoDB SSP Starkey Stored Procedures
Oracle PL/SQL Procedural Language/SQL
PostgreSQL PL/pgSQL Procedural Language/PostgreSQL Structured Query Language
PostgreSQL PL/PSM Procedural Language/Persistent Stored Modules
Sybase T-SQL Transact-SQL
Sybase Watcom-SQL SQL Anywhere Watcom SQL
Teradata SPL Stored Procedural Language

Grunderna i relationsdatabasens språk

Kortnamn Namn Beskrivning
SQL/Framework SQL Framework Själva ramverket för vad standarden innehåller.
SQL/Foundation SQL Foundation Definierar grunderna i SQL.
SQL/CLI SQL Call-Level Interface Definierar SQL-anrop från andra programspråk.
SQL/PSM SQL Persistent Stored Modules Definierar procedurella utvidgningar av SQL.
SQL/MED SQL Management of External Data Definierar datalinktyper och lager för att hantera externa data.
SQL/OLB SQL Object Language Bindings Definierar syntax och semantik för SQLJ, 'SQL embedded in Java'.
SQL/Schemata SQL Information and Definition Schemas Definierar hur SQL-databasen skall beskrivas.
SQL/JRT SQL Routines and Types Using the Java Programming Language Stöd för Java-kod i databasen.
SQL/XML SQL XML-Related Specifications Definierar bla datatypen XML, XML-funktioner samt XML-till-SQL mappning.

källa: en.wikipedia.org/wiki/SQL mfl

Senast uppdaterat 29 augusti 2014 av Christer Tärning