Titel:
|
SQL voor MySQL-ontwikkelaars
|
ISBN:
|
978 90 12 12150 7
|
NUR
|
989/995
|
Uitgever:
|
Academic Service te Den Haag, Nederland
|
Jaar van uitgifte:
|
2007
|
Druk
|
1ste druk
|
|
|
Samenvatting
MySQL biedt met versie 5 een krachtig SQL-dialect. In SQL voor
MySQL-ontwikkelaars helpt Rick F. van der Lans deze versie te doorgronden en alle mogelijkheden te benutten. Met behulp van praktijkvoorbeelden en praktische opgaven verduidelijkt hij alle begrippen technieken en SQL-instructies, inclusief de geavanceerde mogelijkheden die het gemakkelijker maken complexe programma’s te schrijven. Bij het boek hoort een website waar alle instructies gedownload kunnen worden en waar aanvullende informatie te vinden is.
Over MySQL, de bekendste open source databaseserver, zijn al veel boeken geschreven. De meeste daarvan behandelen een breed scala aan onderwerpen, maar dit boek richt zich specifiek op SQL(Structured Query Language), de taal waarmee MySQL aangestuurd wordt. Elke ontwikkelaar die met MySQL werkt, hoort deze taal te beheersen.
Dit boek is bestemd voor iedereen die de kracht van MySQL op een effectieve en efficiënte manier volledig wil toepassen. Het maakt van elke (web)ontwikkelaar, databasebeheerder, student, ontwerper, analist en adviseur die direct of indirect met MySQL te maken krijgen een expert. Degenen die vroegere versies van MySQL kennen, zullen hun productiviteit door dit boek met sprongen omhoog zien gaan.
Tot de onderwerpen die aan de orde komen, behoren:
-
schrijven van query's, joins, functies en subquery's
-
-
creëren van tabellen, views en andere database-objecten
-
specificeren van sleutels en andere constraints die de integriteit waarborgen
-
verhogen van de effectiviteit met behulp van indexen
-
beveiliging via wachtwoorden en bevoegdheden
-
opnemen van SQL-instructies in PHP-programma’s
-
creëren van stored procedures en triggers
-
het gebruik van transacties, locking en rollbacks
-
benutten van de catalogus van MySQL
Inhoudsopgave
Deel 1: INLEIDING
1. Inleiding MySQL
1.1 Inleiding
1.2 Database, databaseserver en databasetaal
1.3 Het relationele model
1.4 Wat is SQL?
1.5 De geschiedenis van SQL
1.6 Van monolitisch via client/server naar internet
1.7 Standaardisatie van SQL
1.8 Wat is open source software?
1.9 De geschiedenis van MySQL
1.10 De structuur van het boek
2. De voorbeelddatabase van een tennisvereniging
2.1 Inleiding
2.2 Beschrijving van de tennisvereniging
2.3 De inhoud van de tabellen
2.4 Integriteitsregels
3. Installeren van de software
3.1 Inleiding
3.2 Downloaden van MySQL
3.3 Installeren van MySQL
3.4 Installeren van een opvraagprogramma
3.5 Ophalen van SQL-instructies van de website
3.6 Afsluiting
4. Installeren van de software
4.1 Inleiding
4.2 Inloggen op de MySQL-database server
4.3 Creëren van nieuwe SQL-gebruikers
4.4 Creëren van databases
4.5 Selecteren van de courante database
4.6 Creëren van tabellen
4.7 Vullen van tabellen met gegevens
4.8 Raadplegen van tabellen
4.9 Wijzigen en verwijderen van rijen
4.10 Versnellen van het raadplegen met indexen
4.11 Views
4.12 Gebruikers en gegevensbeveiliging
4.13 Verwijderen van database-objecten
4.14 Systeemvariabelen
4.15 Groepen SQL-instructies
4.16 De catalogustabellen
4.17 Bekijken van errors en warnings
4.18 Definities van SQL-instructies
Deel 2: Raadplegen en muteren van gegevens
5. SELECT-instructie: basisbegrippen
5.1 Inleiding
5.2 Constanten en hun datatypes
5.3 Expressies
5.4 Toekennen van namen aan resultaat-kolommen
5.5 De kolomspecificatie
5.6 De gebruikersvariabele en de SET-instructie
5.7 De systeemvariabele
5.8 De case-expressie
5.9 De scalaire expressie tussen haakjes
5.10 De scalaire functie
5.11 Casting van expressies
5.12 De null-waarde als expressie
5.13 De samengestelde scalaire expressie
5.14 De aggregatiefunctie en de scalaire expressie
5.15 De rijexpressie
5.16 De tabelexpressie
6. SELECT-instructie: tabelexpressie en subquery
6.1 Inleiding
6.2 De definitie van de SELECT-instructie
6.3 Verwerking van de componenten in een select-blok
6.4 Mogelijke vormen van een tabelexpressie
6.5 Wat is een SELECT-instructie?
6.6 Wat is een subquery?
7. SELECT-instructie: de FROM-component
7.1 Inleiding
7.2 Tabelspecificaties in de FROM-component
7.3 Nogmaals de kolomspecificatie
7.4 Meerdere tabelspecificaties in de FROM-component
7.5 Pseudoniemen voor tabelnamen 7.6 Diverse voorbeelden van joins
7.7 Verplicht gebruik van pseudoniemen
7.8 Tabellen benaderen van verschillende databases
7.9 Expliciete joins in de FROM-component
7.10 Outer-joins
7.11 De natural-join
7.12 Extra condities in de join-conditie
7.13 De cross-join
7.14 Join-condities vervangen door USING
7.15 De FROM-component met tabelexpressies
8. SELECT-instructie: de WHERE-component
8.1 Inleiding
8.2 Condities met een vergelijkingsoperator
8.3 Vergelijkingsoperatoren met subquery’s
8.4 Vergelijkingsoperatoren met gecorreleerde subquery’s
8.5 Condities zonder een vergelijkingsoperator
8.6 Condities koppelen met AND, OR, XOR en NOT
8.7 De IN-operator met expressielijst
8.8 De IN-operator met subquery
8.9 De BETWEEN-operator
8.10 De LIKE-operator
8.11 De REGEXP-operator
8.12 De MATCH-operator
8.13 De IS NULL-operator
8.14 De EXISTS-operator
8.15 De operatoren ALL en ANY
8.16 Reikwijdte van kolommen bij subquery’s
8.17 Extra voorbeelden met gecorreleerde subquery’s
8.18 Condities met een ontkenning
9. SELECT-instructie: SELECT- component en aggregatiefuncties
9.1 Inleiding
9.2 Opvragen van alle kolommen (*)
9.3 Expressies in de SELECT-component
9.4 Verwijderen van identieke rijen met DISTINCT
9.5 Wanneer zijn twee rijen gelijk?
9.6 De resterende select-opties
9.7 Een inleiding tot aggregatiefuncties
9.8 COUNT-functie
9.9 MAX- en MIN-functies
9.10 De SUM- en AVG-functie
9.11 De VARIANCE- en STDDEV-functies
9.12 De VAR_SAMP- en STDDEV_SAMP-functies
9.13 De BIT_AND-, BIT_OR- en BIT_XOR-functies
10. SELECT-instructie: de GROUP BY-component
10.1 Inleiding
10.2 Groeperen op één kolom
10.3 Groeperen op twee of meer kolommen
10.4 Groeperen op expressies
10.5 Groeperen van null-waarden
10.6 Groeperen met sorteerslag
10.7 Algemene regels voor de GROUP BY-component
10.8 De GROUP_CONCAT-functie
10.9 Complexe voorbeelden met GROUP BY
10.10 Groeperen met WITH ROLLUP
11. SELECT-instructie: de HAVING-component
11.1 Inleiding
11.2 Voorbeelden van de HAVING-component
11.3 Een HAVING-, maar geen GROUP BY-component
11.4 Algemene regel voor de HAVING-component
12. SELECT-instructie: de ORDER BY-component
12.1 Inleiding
12.2 Sorteren op kolomnamen
12.3 Sorteren op expressies
12.4 Sorteren met behulp van volgnummers
12.5 Oplopend en aflopend sorteren
12.6 Sorteren van null-waarden
13. SELECT-instructie: de LIMIT-component
13.1 Inleiding
13.2 Geef de top…
13.3 Subquery’s met een LIMIT-component
13.4 Limit met een offset
13.5 De select-optie SQL_CALC_FOUND_ROWS
14. Combineren van tabelexpressies
14.1 Inleiding
14.2 Koppelen met UNION
14.3 Regels voor het gebruik van UNION
14.4 Behouden van dubbele rijen
14.5 Set-operatoren en de null-waarde
15. De gebruikersvariabele, de systeemvariabele en de SET-instructie
15.1 Inleiding
15.2 Definiëren van variabelen met de SET-instructie
15.3 Definiëren van variabelen met de SELECT-instructie
15.4 Toepassingsgebieden van gebruikersvariabelen
15.5 Levensduur van gebruikersvariabelen
15.6 De DO-instructie
16. De HANDLER-instructie
16.1 Inleiding
16.2 Een simpel voorbeeld van de HANDLER-instructie
16.3 Openen van een handler
16.4 Wandelen door de rijen van een handler
16.5 Afsluiten van een handler
17. Muteren van tabellen
17.1 Inleiding
17.2 Invoeren van nieuwe rijen
17.3 Een tabel vullen met rijen van een andere tabel
17.4 Wijzigen van waarden in rijen
17.5 Wijzigen van waarden in meerdere tabellen
17.6 Vervangen van bestaande rijen
17.7 Verwijderen van rijen uit een tabel
17.8 Verwijderen van rijen uit meerdere tabellen
17.9 De TRUNCATE-instructie
18. Laden en ontladen van gegevens
18.1 Inleiding
18.2 Ontladen van gegevens
18.3 Laden van gegevens
19. Werken met XML-documenten
19.1 XML in een notendop
19.2 Opslaan van XML-documenten
19.3 Zoeken van XML-documenten
19.4 Zoeken met behulp van posities
19.5 De uitgebreide notatie van XPath
19.6 XPath-expressies met condities
19.7 Wijzigen van XML-documenten
Deel 3: Creëren van database-objecten
20. Creëren van tabellen
20.1 Inleiding
20.2 Opzetten van nieuwe tabellen
20.3 Datatypes van kolommen
20.4 Toevoegen van datatype-opties
20.5 Creëren van tijdelijke tabellen
20.6 Wat als de tabel al bestaat?
20.7 Kopiëren van tabellen
20.8 Naamgeving van tabellen en kolommen
20.9 Kolom-opties: default en comment
20.10 Tabel-opties
20.11 De CSV storage engine
20.12 Tabellen en de catalogus
21. Specificeren van integriteitsregels
21.1 Inleiding
21.2 Primaire sleutels
21.3 Alternatieve sleutels
21.4 Refererende sleutels
21.5 De refererende actie
21.6 Check-integriteitsregels
21.7 Namen toekennen aan integriteitsregels
21.8 Verwijderen van integriteitsregels
21.9 Integriteitsregels en de catalogus
22. Karaktersets en collations
22.1 Inleiding
22.2 Beschikbare karaktersets en collations
22.3 Toekennen van karaktersets aan kolommen
22.4 Toekennen van collations aan kolommen
22.5 Expressies met karaktersets en collations
22.6 Sorteren en groeperen met collations
22.7 De coercibility van expressies
22.8 Gerelateerde systeemvariabelen
22.9 Karaktersets en de catalogus
23. De datatypes ENUM en SET
23.1 Inleiding
23.2 Het ENUM-datatype
23.3 Het SET-datatype
24. Veranderen en verwijderen van tabellen
24.1 Inleiding
24.2 Verwijderen van gehele tabellen
24.3 Hernoemen van tabellen
24.4 Wijzigen van de tabelstructuur
24.5 Wijzigen van kolommen
24.6 Wijzigen van integriteitsregels
25. Gebruik van indexen
25.1 Inleiding
25.2 Rijen, tabellen en bestanden
25.3 De werking van een index
25.4 De verwerkingsstappen van een SELECT-instructie
25.5 Creëren van indexen
25.6 Indexen binnen tabellen definiëren
25.7 Verwijderen van indexen
25.8 Indexen en primaire sleutels
25.9 De grote SPELERS_XXL-tabel
25.10 Op welke kolom moet een index staan?
25.11 Indexen en de catalogus
26. Views
26.1 Inleiding
26.2 Creëren van views
26.3 De kolomnamen van views
26.4 Muteren van views, de WITH CHECK OPTION
26.5 Opties van views
26.6 Verwijderen van views
26.7 Views en de catalogus
26.8 Beperkingen bij het muteren
26.9 Verwerken van instructies op views
26.10 Toepassingen van views
27. Creëren van databases
27.1 Inleiding
27.2 Databases en de catalogus
27.3 Creëren van databases
27.4 Wijzigen van databases
27.5 Verwijderen van databases
28. Gebruikers en gegevensbeveiliging
28.1 Inleiding
28.2 Invoeren en verwijderen van gebruikers
28.3 Wijzigen van namen van gebruikers
28.4 Wijzigen van wachtwoorden
28.5 Verstrekken van tabel- en kolombevoegdheden
28.6 Verstrekken van databasebevoegdheden
28.7 Verstrekken van gebruikersbevoegdheden
28.8 Doorgeven van bevoegdheden met de WITH GRANT OPTION
28.9 Beperken van bevoegdheden
28.10 Registreren van bevoegdheden in de catalogus
28.11 Intrekken van bevoegdheden
28.12 Beveiliging van en met views
29. Instructies voor tabelonderhoud
29.1 Inleiding
29.2 De ANALYZE TABLE-instructie
29.3 De CHECKSUM TABLE-instructie
29.4 De OPTIMIZE TABLE-instructie
29.5 De CHECK TABLE-instructie
29.6 De REPAIR TABLE-instructie
29.7 De BACKUP TABLE-instructie
29.8 De RESTORE TABLE-instructie
30. De SHOW-, DESCRIBE- en HELP-instructies
30.1 Inleiding
30.2 Overzicht van SHOW-instructies
30.3 Additionele SHOW-instructies
30.4 De DESCRIBE-instructie
30.5 De HELP-instructie
Deel 4: Procedurele database-objecten
31. Stored procedures
31.1 Inleiding
31.2 Een voorbeeld van een stored procedure
31.3 De parameters van een stored procedure 31.4 De body van een stored procedure
31.5 Lokale variabelen
31.6 De SET-instructie
31.7 Flow-control-instructies
31.8 Aanroepen van stored procedures
31.9 Opvragen van gegevens met SELECT INTO
31.10 Foutboodschappen, handlers en conditions
31.11 Gegevens ophalen met een cursor
31.12 SELECT-instructies opnemen zonder cursors
31.13 Stored procedures en gebruikersvariabelen
31.14 Karakteristieken van stored procedures
31.15 Stored procedures en de catalogus
31.16 Verwijderen van stored procedures
31.17 Beveiliging met stored procedures
31.18 Voordelen van stored procedures
32. Stored functions
32.1 Inleiding
32.2 Voorbeelden van stored functions
32.3 Meer over stored functions
32.4 Verwijderen van stored functions
33. Triggers
33.1 Inleiding
33.2 Een voorbeeld van een trigger
33.3 Complexere voorbeelden
33.4 Triggers als integriteitsregels
33.5 Verwijderen van triggers
33.6 Triggers en de catalogus
34. Events
34.1 Wat is een event?
34.2 Creëren van events
34.3 Eigenschappen van events
34.4 Wijzigen van events
34.5 Verwijderen van events
34.6 Events en bevoegdheden
34.7 Events en de catalogus
Deel 5: Programmeren met SQL
35. MySQL en PHP
35.1 Inleiding
35.2 Inloggen op MySQL
35.3 Selecteren van een database
35.4 Creëren van een index
35.5 Opvangen van foutboodschappen
35.6 Meerdere connecties binnen één sessie
35.7 SQL-instructies met parameters
35.8 SELECT-instructie met één rij
35.9 SELECT-instructie met meerdere rijen
35.10 SELECT-instructie met null-waarden
35.11 Opvragen van gegevens over expressies
35.12 Raadplegen van de catalogus
35.13 Resterende MySQL-functies
36. Dynamisch SQL met geprepareerde instructies
36.1 Inleiding
36.2 Werken met geprepareerde SQL-instructies
36.3 Geprepareerde instructies met gebruikersvariabelen
36.4 Geprepareerde instructies met parameters
36.5 Geprepareerde instructies in stored procedures
37. Transacties en multi-user gebruik
37.1 Inleiding
37.2 Wat is een transactie?
37.3 Starten van transacties
37.4 Savepoints
37.5 Stored procedures en transacties
37.6 Problemen met multi-user gebruik
37.7 Locking
37.8 Deadlocks
37.9 De LOCK TABLE- en
37.10 Het isolation level
37.11 Wachten op een blokkade
37.12 Moment van verwerken van instructies
37.13 Werken met applicatieblokkades
Deel 6: bijlagen
Bijlage A: Syntaxis van SQL
- A.1 Inleiding
- A.2 De BNF-notatie
- A.3 Gereserveerde woorden in SQL en MySQL
- A.4 Syntaxis-definities van SQL-instructies
Bijlage B: Scalaire functies
Bijlage C: Systeemvariabelen
Bijlage D: Referenties
Bijlage E: Antwoorden
Register
|