BIMAIV03 Les A1 BIMAIV03 Les A1 Databases
De gegevens in een database vormen de grondstof voor informatie De informatie wordt opgevraagd in de taal met de naam: S tructured Q uery L anguage SQL
SQL is een taal voorinvoeren wijzigen verwijderen raadplegen beveiligenvan gegevens } muteren SQL
SQL zegt alleen WAT er moet gebeuren, niet HOE het moet gebeuren SQL is niet-procedureel; het zegt immers niet hoe iets moet gebeuren SQL is 4GL (vierde generatie) SQL
Database Management Systeem Database Management Systeem Applicatie 1 Applicatie 2 Applicatie 3 Database De rol van een dbms
DBMS APPLICATIE DATABASE APPLICATIE DBMS
SQL is geschikt voor INTERACTIEF gebruik, dus voor rechtstreekse communicatie tussen gebruiker en DBMS SQL kan in een groot aantal programmeertalen worden aangeroepen (EMBEDDED SQL) De mogelijkheid om informatie op te vragen leidt tot intensief gebruik in oa Business Intelligence programma’s Meer over SQL
Kiezen voor een DBMS Het maakt vor deze cursus niet zoveel uit welk DBMS we gebruiken Bekende DBMS'sen zijn ORACLE, SQL Server, Informix, Sybase, Gupta, DB2, Interbase, MS JetSQL Het dbms MySQL is populair maar minder geschikt voor ons doel
getal tekst datum Enkele veelgebruikte datatypen
numeriek gegeven tekstueel gegeven 'aap' 'broodje aap' datum # # #11 october 2007# Datatypen in Microsoft JetSQL Engelstalig eigenwijs
Manipulaties op één tabel Onze database beschikt voorlopig over één tabel die BOEKEN heet. De eenvoudigste SQL-instructie luidt: SELECT * FROM boeken; Betekenis: laat alles uit de tabel BOEKEN zien
BOEKEN BOEKNRTITELUITGEVERPRIJS Word in twaalf dagenMEU€ 22, WordPerfect 9BB€ 29, Xtal Reports de luxeMEU€ 32, Access voor dummiesBB€ 32, Haal het onderste uit ExcelAS€ 39, Brieven schrijven in WordAS€ 35, Quicksmith 2.0BB€ 79, Inleiding in databasesMEU€ 89, SQL en AccessKLW€ 72, tekstuele typen numeriek type
Projectie SELECT titel FROM boeken; titel Word in twaalf dagen WordPerfect 9 Xtal Reports de luxe Access voor dummies Haal het onderste uit Excel Brieven schrijven in Word ---
Kolomopschriften (1) SELECT * FROM boeken; SELECT titel FROM boeken; titel Word in twaalf dagen --- BOEKNRTITELUITGEVERPRIJS Word in twaalf dagenMEU€ 22,50 ---
Kolomopschriften (2) SELECT TiTel FROM boeken; TiTel Word in twaalf dagen ---
Meerdere kolommen selecteren SELECT boeknr, titel, prijs FROM boeken; boeknrtitelprijs Word in twaalf dagen€ 22, WordPerfect 9€ 29, Xtal Reports de luxe€ 32, Access voor dummies€ 32, Haal het onderste uit Excel€ 39,50 ---
Kolomalias Expr1000boeknr SELECT boeknr, boeknr FROM boeken; SELECT boeknr AS piet, boeknr FROM boeken; pietboeknr De naam van de kolommen is onbelangrijk; het gaat om de gegevens zelf!
Selectie (1) SELECT * FROM boeken WHERE uitgever = 'MEU'; BOEKNRTITELUITGEVERPRIJS Word in twaalf dagenMEU€ 22, Xtal Reports de luxeMEU€ 32, Inleiding in databasesMEU€ 89, SPSS voor schoolgebruikMEU€ 35, Delphi unleashedMEU€ 89, Visual CobolMEU€ 51,40
SELECT boeknr, prijs FROM boeken WHERE prijs = 35; boeknrprijs € 35, € 35,00 Selectie (2)
SELECT titel FROM boeken WHERE titel > 'Quiz'; titel Word in twaalf dagen WordPerfect 9 Xtal Reports de luxe SQL en Access SPSS voor schoolgebruik Visual Cobol Selectie (3)
De operator LIKE (1) SELECT * FROM boeken WHERE titel LIKE 'A%'; BOEKNRTITELUITGEVERPRIJS Access voor dummiesBB€ 32, Alles over het InternetBB€ 49,00 Betekenis: eerste letter is de letter A en dan een willekeurig aantal letters (mag ook geen letters zijn)
De operator LIKE (2) SELECT titel FROM boeken WHERE titel LIKE '%s'; Betekenis: willekeurig aantal letters (mag ook geen letters zijn) en als laatste letter een s titel Access voor dummies Inleiding in databases SQL en Access Fractal graphics
De operator LIKE (3) SELECT titel FROM boeken WHERE titel LIKE '%oo%'; Betekenis: twee aaneengesloten o-tjes titel Access voor dummies SPSS voor schoolgebruik Powertools voor dBase IV
De operator LIKE (4) SELECT titel FROM boeken WHERE titel LIKE '%o%o%'; Betekenis: twee o-tjes is voldoende (hoeven niet aaneengesloten te zijn maar mag wel) titel Access voor dummies SPSS voor schoolgebruik Powertools voor dBase IV Visual Cobol
De operator LIKE (5) SELECT * FROM boeken WHERE titel LIKE '__l%'; Betekenis: derde letter van de titel moet de letter l zijn BOEKNRTITELUITGEVERPRIJS Inleiding in databasesMEU€ 89, SQL en AccessKLW€ 72, Delphi unleashedMEU€ 89, Alles over het InternetBB€ 49,00
De operator LIKE (6) SELECT * FROM boeken WHERE titel LIKE '%e_'; Betekenis: de op één na laatste letter moet de letter e zijn BOEKNRTITELUITGEVERPRIJS Word in twaalf dagenMEU€ 22, Access voor dummiesBB€ 32, Haal het onderste uit ExcelAS€ 39, Inleiding in databasesMEU€ 89, Delphi unleashedMEU€ 89, Alles over het InternetBB€ 49,00
Formuleren van queries (1) Langzaam maar zeker groeit het aantal lettertekens van de query. Vooral bij langere queries is het zinvol om de query over meerdere regels te verdelen. Dat is overzichtelijker.
Formuleren van queries (2) In plaats van SELECT titel FROM boeken WHERE uitgever = 'AS'; schrijven we SELECT titel FROM boeken WHERE uitgever = 'AS'; De layout is totaal onbelangrijk; net zo min als het gebruik van hoofd- of kleine letters.
Formuleren van queries (3) SELECT titel FROM boeken WHERE uitgever = 'AS'; seLECT Titel from BOEKEN WHEre uitgeVEr = 'AS';
De logische operator AND SELECT * FROM boeken WHERE uitgever = 'AS' AND prijs > 50; BOEKNRTITELUITGEVERPRIJS Fractal graphicsAS€ 56, Powertools voor dBase IVAS€ 65,90 Betekenis van AND: aan beide voorwaarden moet voldaan zijn
De logische operator OR SELECT * FROM boeken WHERE uitgever = 'AS' OR uitgever = 'MEU'; BOEKNRTITELUITGEVERPRIJS Word in twaalf dagenMEU€ 22, Xtal Reports de luxeMEU€ 32, Haal het onderste uit ExcelAS€ 39, Brieven schrijven in WordAS€ 35, Inleiding in databasesMEU€ 89, SPSS voor schoolgebruikMEU€ 35, Betekenis van OR: aan minstens één van beide voorwaarden moet voldaan zijn (aan allebei mag ook)
De logische operator NOT SELECT * FROM boeken WHERE NOT uitgever = 'AS'; BOEKNRTITELUITGEVERPRIJS Word in twaalf dagenMEU€ 22, WordPerfect 9BB€ 29, Xtal Reports de luxeMEU€ 32, Access voor dummiesBB€ 32, Quicksmith 2.0BB€ 79, Betekenis van NOT: aan de geformuleerde voorwaarde moet juist níet voldaan zijn
Combinaties van operatoren SELECT * FROM boeken WHERE NOT prijs > 40 AND prijs < 60; De queries hebben een verschillend resultaat! Gebruik in geval van twijfel altijd haakjes om de voorrang te regelen. De queries hebben een verschillend resultaat! Gebruik in geval van twijfel altijd haakjes om de voorrang te regelen. SELECT * FROM boeken WHERE NOT (prijs > 40 AND prijs < 60);
De operator IN SELECT * FROM boeken WHERE uitgever IN ('AS', 'BB'); Is hetzelfde als SELECT * FROM boeken WHERE uitgever='AS' OR uitgever= 'BB'; Biedt vooral voordelen bij méér waarden in de verzameling. Is hetzelfde als SELECT * FROM boeken WHERE uitgever='AS' OR uitgever= 'BB'; Biedt vooral voordelen bij méér waarden in de verzameling.
De operator BETWEEN SELECT * FROM boeken WHERE prijs BETWEEN 30 AND 40; Is hetzelfde als SELECT * FROM boeken WHERE prijs>=30 AND prijs<=40; Formuleert alleen 'lekkerder'. Is hetzelfde als SELECT * FROM boeken WHERE prijs>=30 AND prijs<=40; Formuleert alleen 'lekkerder'.