...
SQL (Structured Query Language) on tietokantakieli, jonka avulla käyttäjä voi määritellä tietokannan, ylläpitää sitä ja kohdistaa siihen kyselyitä. Ennen PC-maailmaan saapumistaan SQL on ollut yleinen suurkoneympäristöissä. Alunperin sitä pidettiinkin liian raskaana toimimaan PC:ssä. SQL:n juuret juontavat 1970-luvun alussa kehitettyyn relaatiomalliin. IBM aloitti tähän tietomalliin perustuvan kehitystyön 'System R'-projektissaan. Projektissa kehitettiin SQL:n edeltäjä SEQUEL. Ensimmäisenä SQL:n toi markkinoille Relational Software eli nykyinen Oracle Corporation 1970-luvun lopussa.Emsimmäinen virallinen standardi eli ANSIn määrittelemä standardi julkistettiin 1986. Standardiin viitataan nimillä ANSI/SQL ja SQL-86. Siinä määriteltiin kielen käyttö ohjelmiin upotettuna mutta ei sen vuorovaikutteista käyttöä. Vuotta myöhemmin myös ISO hyväksyi standardin. ANSI ja ISO päättivät tehdä kielen määritykseen laajennuksen ja näin syntyi SQL-89. Siinä kieleen lisättiin muun muassa käsitteet perus- ja vierasavaimista ja säännöt, jotka vaikuttivat käyttäjän määrittelemiin viite-eheyssääntöihin. 1990-luvulla määriteltiin SQL-92, joka on edelleenkin käytössä.
SQL-kieli on kaikkien nykyaikaisten tietokannanhallintajärjestelmien taustalla. Kun esimerkiksi Access'issa tehdään kysely, syntyy siitä SQL-lause. Usein vain Mutta eri ohjelmistovalmistajat sisällyttävät SQL-kielen toteutuksiinsa omia lisäyksiään, jotka tekevät niistä vaikeaselkoisia . Me tulemme tässä osiossa käsittelemään SQL-kieltä lähes sen yksinkertaisimmassa, SQL-86:ta vastaavassa muodossaan. Yhdistettynä IDC-tekniikkaan sillä kuitenkin voidaan toteuttaa kaikki tietokantojen hallinnan edellyttämät toimet, jopa moni-moneen yhteyden käsittely sujuu huomattavasti helpommin kuin Accessilla itsellään. Käytettäessä IDC:tä ei palvelimella eikä asiakkaan PC:llä tarvitse olla Access'ia lainkaan. Pelkkä Access'illa luotu tietokanta riittää. Loput tehdään IDC- ja HTX-tiedostoilla. Mutta ennenkuin siirrymme varsinaiseen IDC-tekniikkaan, käymme lyhyesti läpi SQL-kielen tärkeimmät lauseet ja niiden syntaksin. Syntaksilla tarkoitetaan ohjelmointikielten kirjoitussääntöjä, jotka SQL:n tapauksessa ovat hyvin yksinkertaiset.Tässä käsiteltävät SQL-kielen lauseet eivät muodosta koko SQL-kieltä. SQL sisältää lisäksi mm. lauseet tietokantataulujen luontiin ja tuhoamiseen. Tässä kuitenkin edellytetään, että tietokanta on jo valmiiksi luotu esim. Access'illa. IDC-tekniikka ei yleensä edellytä, että tietokantaa luotaessa tehtäisiin kyselyitä, lomakkeista tai raporteista puhumattakaan. Kaikki tehdään www-sivuilla. Yhteyksiäkään ei luoda vaan ne syntyvät IDC:tä käytettäessä SQL-kielen sivulauseilla eksplisiittisesti (ulkopuolisesti, ei siis Access'ista).ja yhteensopimatonta.
SQL-kieli on hyvin laaja, se sisältää esimerkiksi lauseet tietokantataulujen luontiin ja tuhoamiseen.
Code Block |
---|
--tuhotaan taulut jos ne ovat olemassa
DROP TABLE user;
DROP TABLE client;
DROP TABLE project;
|
Code Block |
---|
CREATE TABLE user
(
user_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
client_id INTEGER,
name TEXT NOT NULL,
username TEXT NOT NULL,
password TEXT NOT NULL,
FOREIGN KEY(client_id) REFERENCES client(client_id)
);
|
–
Code Block |
---|
-- Describe CLIENT
CREATE TABLE client
(
client_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
name TEXT
);
|
–
Code Block |
---|
CREATE TABLE project
(
project_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
name TEXT,
header TEXT, --Header to raports
date DATETIME,
parent_project_id INTEGER,
client_id INTEGER,
author TEXT,
notes TEXT,
ActiveProject Boolean NOT NULL, -- only one project is active
FOREIGN KEY(client_id) REFERENCES client(client_id)
);
|
Tärkeimmät SQL-kielen lauseet ovat SELECT tietueiden valintaan, UPDATE tietojen päivittämiseen eli niiden tietosisällön muuttamiseen, INSERT uuden tietueen luomiseen ja DELETE tietue(id)en tuhoamiseen. Seuraavassa käsitellään kukin lause erikseen.
...