manhome.nl

MySQL Opdrachten (basis)

Om snel resultaten met ViSpro en MySQL te realiseren is kennis van een kleine set opdrachten al snel toerijkend.

De tabellen hieronder geven een beeld van wat er met met MySQL vanuit ViSpro mogelijk is. De verschillende mini-voorbeelden zijn gegroepeerd naar soorten activiteit.

Om e.e.a. uit te proberen kun je b.v. in het AKTION blad van een procesplaatje een klein programmaatje maken dat je met een toets activeert.

 

Wel even geduld, aan de tekst hieronder wordt nog gewerkt!

 

Tabel I

Definiëren en verwijderen van databases en tabellen

Ik wil ...OpdrachtbeschrijvingToelichtingOpmerking

een database opzetten

CREATE DATABASE voorbeeldtabel;

Maakt de basis van een database binnen de administratie van de server. Met show databases (zie hierna) kan het resultaat getest worden.  
een database verwijderen DROP DATABASE demotabel; Verwijdert alle tabellen van de database en alle bepalingen uit de databaseadministratie.
NB Pas op! Dit is onherstelbaar!
 
een tabel maken in de database CREATE TABLE bedrijf (naam CHAR(40), adres TEXT, pcode CHAR(7),     plaats TEXT, concern TEXT, PRIMARY KEY (naam, pcode)); Maak een tabel en geef aan welke velden we willen hebben, wat de aard (het type) van die velden is en welk veld/welke velden we willen gebruiken voor een snelle en unieke toegang tot de gegevens.  
een tabel maken met automatisch ophogende numerieke index CREATE TABLE parts (partid INT(11) NOT NULL AUTO_INCREMENT,     partcode CHAR(32) NOT NULL, beschrijving TEXT NULL, PRIMARY KEY(partid)); Overeenkomend met de vorige opdracht maar het indexveld (hier partid) wordt door de MySQL server automatisch opgehoogd.  
een tabel verwijderen DROP TABLE voorbeeldtabel; Verwijdert de genoemde tabel - en alle gerelateerde informatie - uit de database.
NB Pas op! Dit is onherstelbaar!
 
een tabel verwijderen waarvan ik niet weet of die wel bestaat DROP TABLE IF EXISTS tijdelijketabel; Verwijdert de genoemde tabel - en alle gerelateerde informatie - uit de database.
NB Pas op! Dit is handig als je eventjes een tabel nodig hebt.
 

 

 

 

Tabel II

Toevoegen, aanpassen en verwijderen van records

Ik wil ...OpdrachtbeschrijvingToelichtingOpmerking
een record met vier gevulde velden toevoegen aan een tabel met 4 kolommen INSERT INTO voorbeeldtabel
VALUES ( "2002/07/05", "15:33:20", "123.456",   "Enig commentaar" );

Hier worden géén veldnamen meegegeven.

Het opdelen over meerdere regels is uiteraard alleen voor de leesbaarheid.

 
een record toevoegen met slechts twee gevulde, en dus 2 lege, velden aan een tabel met 4 kolommen INSERT INTO voorbeeldtabel ( veld1, veld4 )
VALUES ("2002/07/05",”Enig commentaar" );

Hier moeten veldnamen genoemd worden!
Houdt er rekening mee dat sommige velden verplicht kunnen zijn, zéker de ‘index’ velden.
 
zelfde als hier voor! INSERT INTO voorbeeldtabel SET veld1 = "2002/07/05", veld4 = ”Enig commentaar"; Effect als de opdracht hiervoor. Qua leesbaarheid soms wat plezieriger.  
de waarde van één veld in één specifiek record wijzigen UPDATE voorbeeldtabel
SET veld4 = "Geen commentaar"
WHERE veld1 = “2002/06/05”;
De term UPDATE betekent dus overschrijf de eventueel al aanwezige waarde.De WHERE term is nodig daar anders ALLE records op deze wijze gewijzigd worden!  
één specifiek veld van een hele tabel terugzetten naar zijn default waarde UPDATE voorbeeldtabel
SET veld4 = DEFAULT;
Merk op dat DEFAULT eek z.g. key-word is.
Uiteraard moet aan het veld, bij het definiëren van de tabel, een defaultwaarde zijn toegewezen. Om één - of een beperkt aantal - records aan te passen de WHERE uitbreiding toepassen!
 
één specifiek veld van een hele tabel leeg maken UPDATE voorbeeldtabel
SET veld4 = NULL;
Ook NULL is dus een key-word!
Bij het definiëren van de tabel mag de waarde NULL natuurlijk niet op verboden gezet zijn.
Zie verder de toelichting hierboven.
 
alle records uit een tabel verwijderen maar de definitie in stand laten DELETE FROM voorbeeldtabel;

Dit is dus levensgevaarlijk!!!.  

 

Nu we weten hoe een MySQL database wordt opgebouwd, van tabellen wordt voorzien en met data wordt gevuld kunnen we ons met het opvragen gaan bezighouden.

Tabel III

Opvragen van informatie

Ik wil ...OpdrachtbeschrijvingToelichtingOpmerking
Een tabel opvragen (alle velden van alle records) SELECT * FROM voorbeeldtabel; Het sterretje staat voor ALLE kolommen (of velden).
Let op dat er als regel een punt-comma vereist is als afsluiting van een opdracht. Sommige venster georiënteerde interactieve teopassingen nemen echter genoegen met de Enter-toets en plaatsen dan zelf de punt-komma.
 
Enkele specifieke velden SELECT veld1, veld2, veld3
FROM voorbeeldtabel
   
Idem maar gesorteerd SELECT veld1, veld2, veld3
FROM voorbeeldtabel ORDER BY veld2, veld3;
Hier wordt het resultaat gesorteerd met als primaire sleutel de resultaten van veld2 en, indien er meerdere gelijke waarden in veld2 zijn wordt verder verfijnd aan de hand van de waarden in veld3  
Idem maar aflopend gesorteerd SELECT veld1, veld2, veld3 FROM voorbeeldtabel ORDER BY veld2, veld3 DESC;      
Idem maar gefilterd op één veld SELECT veld1, veld2, veld3 FROM voorbeeldtabel WHERE veld1 >= 35 ORDER BY veld2, veld3 DESC;    
Idem maar gefilterd op 2 velden SELECT veld1, veld2, veld3
FROM voorbeeldtabel WHERE veld1 >= 35 AND veld2 < 100
ORDER BY veld2, veld3
DESC;
Maak bij het combineren van meerdere voorwaarden gebruik van haakjes om de juiste evaluatievolgorde helder te maken
(Zie volgend voorbeeld)
 
Idem maar met een meer complex filter SELECT veld1, veld2, veld3
FROM voorbeeldtabel
WHERE ( veld1 >= 35 AND veld2 < 100 )
OR veld3 = 0
ORDER BY veld2, veld3
DESC;
Door deze vorm van regelsplitsing worden complexe opdrachten beter leesbaar!  
Nu wanneer je niet precies weet wat je zoekt! SELECT veld1, veld2, veld3
FROM voorbeeldtabel
WHERE veld3 LIKE "%anse%"
ORDER BY veld1, veld3;
Met LIKE kun je een tekstveld onderzoeken op woorden waarvan je weet dat er een stukje tekst in voor moet komen. Nevenstaande query levert velden op die b.v. "Franse" of "Jansens" bevatten.
% betekent "geen of enkele tekens".
 
Weten hoeveel rijen er beïnvloed zijn SELECT ROW_COUNT() Dit verzoek kun je direct na een INSERT, een UPDATE of een DELETE opdracht geven. Als antwoord krijg je het aantal betrokken rijen.