Lezing databases en sql



Dovnload 146.79 Kb.
Pagina5/8
Datum20.08.2016
Grootte146.79 Kb.
1   2   3   4   5   6   7   8

Deel 2




2.1 Inleiding SQL


SQL (spreek dit uit als de aparte letters S-Q-L, of als het Engelse sequel) is een afkorting van Structured Query Language, wat in het Nederlands zoveel betekent als ‘gestructureerde verzoektaal’. SQL is in de jaren 70 ontwikkeld en speciaal ontworpen om te kunnen communiceren met databases.
In tegenstelling tot andere talen (natuurlijke talen zoals Nederlands of programmeertalen zoals C of Visual Bacic), kent SQL slechts enkele woorden. Dit is met opzet zo gedaan. SQL heeft slechts één doel: het verschaft een eenvoudige en efficiënte manier om gegevens uit een database te lezen en naar een database te schrijven.

2.2 Wat zijn de voordelen van SQL?


SQL is geen taal van een bepaald merk dat wordt gebruikt door bepaalde databaseproducenten. Bijna elke grote databasetoepassing ondersteunt SQL, dus als u deze ene taal kent, kunt u met de meeste grote databases communiceren.

SOL is gemakkelijk te leren. De paar instructies waar de taal uit bestaat, zijn allemaal duidelijke en begrijpelijke woorden, weliswaar in het Engels.

Ondanks de eenvoud is SQL een zeer krachtige taal. Door de elementen van de taal handig te gebruiken, kunt u zeer complexe en geavanceerde databasebewerkingen uitvoeren.
Let op:

In veel databasemanagementsystemen (DBMS’en) is de standaard-SQL uitgebreid met extra instructies. Deze uitbreidingen zorgen voor extra functionaliteit of maken bepaalde operaties gemakkelijker uitvoerbaar. Dit is heel handig, maar de uitbreidingen zijn vaak heel specifiek voor een bepaald DBMS en worden meestal door slechts één producent ondersteund.

Standaard-SQL wordt beheerd door de commissie ANSI-standaarden1 en ook vaak ANSI-SQL genoemd.

Alle grote databaseprogramma’s, zelfs als ze hun eigen uitbreidingen hebben, ondersteunen ANSI-SQL. Individuele implementaties hebben hun eigen namen, bijvoorbeeld Transact-SQL voor SQL-server van Microsoft.



2.3 SQL-opdrachten


SQL-opdrachten, ook wel Query’s genoemd, kunnen onderverdeeld worden in 3 categorieën, t.w.:
Data Definition Language (DDL)

Deze bevat opdrachten voor het maken en manipuleren van databases en tabellen. De DDL houdt zich bezig met de structuur van de database, de tabellen en de velden.

De opdrachten zijn:


  • Create

  • Alter

  • Drop

In deze lezing wordt aandacht besteed aan de opdrachten Create en Drop.
Data Control Language (DCL)

Deze bevat opdrachten om bijvoorbeeld de rechtenstructuur van de database te regelen (wie heeft toegang tot welke databases en tabellen).

De opdrachten zijn:


  • Grant

  • Deny

  • Revoke

Deze opdrachten worden in deze lezing niet behandeld.
Data Manipulation Language (DML)

Deze bevat opdrachten voor het verwerken van de gegevens die in de tabellen zijn opgenomen.

De opdrachten zijn:


  • Select

  • Insert

  • Update

  • Delete

In deze lezing komen deze opdrachten aan de orde.

2.4 Een tabel aanmaken


Voor het aanmaken van een tabel gebruiken we de opdracht CREATE TABLE.
Om een tabel te creëren moet u de volgende informatie opgeven:

  1. De naam van de nieuwe tabel;

  2. De namen en definities van de tabelkolommen, gescheiden door komma’s;

  3. De locatie van de tabellen (niet in alle DBMS’en verplicht)

Met de volgende SQL-instructie maakt u een tabel Klant:




CREATE TABLE Klant

(

KlantID CHAR(10),



Naam CHAR(20),

Adres CHAR(25),

Postcode CHAR(7),

);


(AanmaakTabelKlant in test.mdb)
In de bovenstaande code ziet u dat de tabelnaam direct achter de sleutelwoorden CREATE TABLE staat. De werkelijke tabeldefinitie (de namen van alle kolommen) staan tussen haakjes. Alle kolommen zijn door komma’s van elkaar gescheiden. In het voorbeeld zijn alle velden van het type CHAR, d.w.z. dat het tekstvelden zijn. Tussen haakjes is de lengte van het veld aangegeven.

2.5 Gegevens toevoegen


Om gegevens toe te voegen aan een tabel gebruiken we de opdracht INSERT.

Dit kan op verschillende manieren.






INSERT INTO Klant

VALUES ("22",

"Hendriksen",

"De Lange Griet 22",

"6932 NN");


(QueryToevoeg1 in test.mdb)
Met het bovenstaande voorbeeld voert u een nieuwe klant in de tabel Klant. De gegevens die in elke tabelkolom moeten worden opgeslagen, staan in het component VALUES. Voor elke kolom moet een waarde worden opgegeven. Als een kolom geen waarde heeft, moet u de waarde NULL gebruiken. De gegevens moeten worden ingevoerd in de volgorde waarin de kolommen in de tabeldefinitie zijn opgenomen.
Het is veiliger om en daardoor ook wat lastiger om de INSERT-instructie als volgt te schrijven:


INSERT INTO Klant (KlantID,

Naam,


Adres,

Postcode)

VALUES ("22",

"Hendriksen",

"De Lange Griet 22",

"6932 NN");



(QueryToevoeg2 in test.mdb)
In dit voorbeeld gebeurt precies hetzelfde als in de vorige INSERT-instructie, maar deze keer worden alle kolomnamen expliciet genoemd tussen de haakjes achter de tabelnaam. Als de rij wordt ingevoegd, zal het DBMS elk onderdeel in de lijst met kolommen plaatsen bij de bijbehorende waarde in de lijst VALUES. De eerste waarde in VALUES komt overeen met de als eerste opgegeven kolomnaam. De tweede waarde komt overeen met de tweede kolomnaam, enz.

Omdat de kolomnamen ook worden gegeven, moeten de waarden in de lijst VALUES in dezelfde volgorde worden ingevoerd, zodat ze in de juiste kolommen terechtkomen.


Zoals al is uitgelegd, is het beter om in een INSERT-instructie expliciet de namen van de tabelkolommen op te geven. Met deze syntaxis hoeft u niet alle kolommen te specificeren. Dit betekent dat u waarden kunt toekennen aan een paar kolommen, terwijl u andere kolommen buiten beschouwing laat. Zo is in het volgende voorbeeld de postcode weggelaten.


INSERT INTO Klant (KlantID,

Naam,


Adres

)

VALUES ("22",



"Hendriksen",

"De Lange Griet 22"

);


(QueryToevoeg3 in test.mdb)
Let op: U kunt alleen kolommen in een INSERT-instructie overslaan als de tabeldefinitie dit toestaat. Er moet dan aan één van de volgende voorwaarden zijn voldaan:

  • In de kolom moeten NULL-waarden zijn toegestaan (kolommen zonder waarde);

  • In de tabeldefinitie is een standaardwaarde opgegeven. Dit betekent dat er automatisch een standaardwaarde wordt toegekend als u geen waarde invoert.





1   2   3   4   5   6   7   8


De database wordt beschermd door het auteursrecht ©opleid.info 2017
stuur bericht

    Hoofdpagina