Voorbeeld 4.1:
CREATE USER 'BOEKSQL'@'localhost'
IDENTIFIED BY 'BOEKSQLPW'
Voorbeeld 4.2:
GRANT ALL PRIVILEGES
ON *.*
TO 'BOEKSQL'@'localhost'
WITH GRANT OPTION
Voorbeeld 4.3:
CREATE DATABASE TENNIS
Voorbeeld 4.4:
USE TENNIS
Voorbeeld 4.5:
CREATE TABLE SPELERS
(SPELERSNR INTEGER NOT NULL,
NAAM CHAR(15) NOT NULL,
VOORLETTERS CHAR(3) NOT NULL,
GEB_DATUM DATE ,
GESLACHT CHAR(1) NOT NULL,
JAARTOE SMALLINT NOT NULL,
STRAAT VARCHAR(30) NOT NULL,
HUISNR CHAR(4) ,
POSTCODE CHAR(6) ,
PLAATS VARCHAR(30) NOT NULL,
TELEFOON CHAR(13) ,
BONDSNR CHAR(4) ,
PRIMARY KEY (SPELERSNR) )
;
CREATE TABLE TEAMS
(TEAMNR INTEGER NOT NULL,
SPELERSNR INTEGER NOT NULL,
DIVISIE CHAR(6) NOT NULL,
PRIMARY KEY (TEAMNR) )
;
CREATE TABLE WEDSTRIJDEN
(WEDSTRIJDNR INTEGER NOT NULL,
TEAMNR INTEGER NOT NULL,
SPELERSNR INTEGER NOT NULL,
GEWONNEN SMALLINT NOT NULL,
VERLOREN SMALLINT NOT NULL,
PRIMARY KEY (WEDSTRIJDNR) )
;
CREATE TABLE BOETES
(BETALINGSNR INTEGER NOT NULL,
SPELERSNR INTEGER NOT NULL,
DATUM DATE NOT NULL,
BEDRAG DECIMAL(7,2) NOT NULL,
PRIMARY KEY (BETALINGSNR) )
;
CREATE TABLE BESTUURSLEDEN
(SPELERSNR INTEGER NOT NULL,
BEGIN_DATUM DATE NOT NULL,
EIND_DATUM DATE ,
FUNCTIE CHAR(20) ,
PRIMARY KEY (SPELERSNR, BEGIN_DATUM))
Voorbeeld 4.6:
INSERT INTO SPELERS VALUES (
2, 'Elfring', 'R', '1948-09-01', 'M', 1975, 'Steden',
'43', '3575NH', 'Den Haag', '070-237893', '2411')
;
INSERT INTO SPELERS VALUES (
6, 'Permentier', 'R', '1964-06-25', 'M', 1977, 'Hazensteinln',
'80', '1234KK', 'Den Haag', '070-476537', '8467')
;
INSERT INTO SPELERS VALUES (
7, 'Wijers', 'GWS', '1963-05-11', 'M', 1981, 'Erasmusweg',
'39', '9758VB', 'Den Haag', '070-347689', NULL)
;
INSERT INTO SPELERS VALUES (
8, 'Niewenburg', 'B', '1962-07-08', 'V', 1980, 'Spoorlaan',
'4', '6584WO', 'Rijswijk', '070-458458', '2983')
;
INSERT INTO SPELERS VALUES (
27, 'Cools', 'DD', '1964-12-28', 'V', 1983, 'Liespad',
'804', '8457DK', 'Zoetermeer', '079-234857', '2513')
;
INSERT INTO SPELERS VALUES (
28, 'Cools', 'C', '1963-06-22', 'V', 1983, 'Oudegracht',
'10', '1294QK', 'Leiden', '010-659599', NULL)
;
INSERT INTO SPELERS VALUES (
39, 'Bischoff', 'D', '1956-10-29', 'M', 1980, 'Ericaplein',
'78', '9629CD', 'Den Haag', '070-393435', NULL)
;
INSERT INTO SPELERS VALUES (
44, 'Bakker, de', 'E', '1963-01-09', 'M', 1980, 'Lawaaistraat',
'23', '4444LJ', 'Rijswijk', '070-368753', '1124')
;
INSERT INTO SPELERS VALUES (
57, 'Bohemen, van', 'M', '1971-08-17', 'M', 1985, 'Erasmusweg',
'16', '4377CB', 'Den Haag', '070-473458', '6409')
;
INSERT INTO SPELERS VALUES (
83, 'Hofland', 'PK', '1956-11-11', 'M', 1982, 'Mariakade',
'16a', '1812UP', 'Den Haag', '070-353548', '1608')
;
INSERT INTO SPELERS VALUES (
95, 'Meuleman', 'P', '1963-05-14', 'M', 1972, 'Hoofdweg',
'33a', '5746OP', 'Voorburg', '070-867564', NULL)
;
INSERT INTO SPELERS VALUES (
100, 'Permentier', 'P', '1963-02-28', 'M', 1979, 'Hazensteinln',
'80', '6494SG', 'Den Haag', '070-494593', '6524')
;
INSERT INTO SPELERS VALUES (
104, 'Moerman', 'D', '1970-05-10', 'V', 1984, 'Stoutlaan',
'65', '9437AO', 'Zoetermeer', '079-987571', '7060')
;
INSERT INTO SPELERS VALUES (
112, 'Baalen, van', 'IP', '1963-10-01', 'V', 1984, 'Vosseweg',
'8', '6392LK', 'Rotterdam', '010-548745', '1319')
;
INSERT INTO TEAMS VALUES (1, 6, 'ere')
;
INSERT INTO TEAMS VALUES (2, 27, 'tweede')
;
INSERT INTO WEDSTRIJDEN VALUES ( 1, 1, 6, 3, 1)
;
INSERT INTO WEDSTRIJDEN VALUES ( 2, 1, 6, 2, 3)
;
INSERT INTO WEDSTRIJDEN VALUES ( 3, 1, 6, 3, 0)
;
INSERT INTO WEDSTRIJDEN VALUES ( 4, 1, 44, 3, 2)
;
INSERT INTO WEDSTRIJDEN VALUES ( 5, 1, 83, 0, 3)
;
INSERT INTO WEDSTRIJDEN VALUES ( 6, 1, 2, 1, 3)
;
INSERT INTO WEDSTRIJDEN VALUES ( 7, 1, 57, 3, 0)
;
INSERT INTO WEDSTRIJDEN VALUES ( 8, 1, 8, 0, 3)
;
INSERT INTO WEDSTRIJDEN VALUES ( 9, 2, 27, 3, 2)
;
INSERT INTO WEDSTRIJDEN VALUES (10, 2, 104, 3, 2)
;
INSERT INTO WEDSTRIJDEN VALUES (11, 2, 112, 2, 3)
;
INSERT INTO WEDSTRIJDEN VALUES (12, 2, 112, 1, 3)
;
INSERT INTO WEDSTRIJDEN VALUES (13, 2, 8, 0, 3)
;
INSERT INTO BOETES VALUES (1, 6, '1980-12-08', 100)
;
INSERT INTO BOETES VALUES (2, 44, '1981-05-05', 75)
;
INSERT INTO BOETES VALUES (3, 27, '1983-09-10', 100)
;
INSERT INTO BOETES VALUES (4, 104, '1984-12-08', 50)
;
INSERT INTO BOETES VALUES (5, 44, '1980-12-08', 25)
;
INSERT INTO BOETES VALUES (6, 8, '1980-12-08', 25)
;
INSERT INTO BOETES VALUES (7, 44, '1982-12-30', 30)
;
INSERT INTO BOETES VALUES (8, 27, '1984-11-12', 75)
;
INSERT INTO BESTUURSLEDEN VALUES ( 6, '1990-1-1', '1990-12-31', 'Secretaris')
;
INSERT INTO BESTUURSLEDEN VALUES ( 6, '1991-1-1', '1992-12-31', 'Lid')
;
INSERT INTO BESTUURSLEDEN VALUES ( 6, '1992-1-1', '1993-12-31', 'Penningmeester')
;
INSERT INTO BESTUURSLEDEN VALUES ( 6, '1993-1-1', NULL, 'Voorzitter')
;
INSERT INTO BESTUURSLEDEN VALUES ( 2, '1990-1-1', '1992-12-31', 'Voorzitter')
;
INSERT INTO BESTUURSLEDEN VALUES ( 2, '1994-1-1', NULL, 'Lid')
;
INSERT INTO BESTUURSLEDEN VALUES (112, '1992-1-1', '1992-12-31', 'Lid')
;
INSERT INTO BESTUURSLEDEN VALUES (112, '1994-1-1', NULL, 'Secretaris')
;
INSERT INTO BESTUURSLEDEN VALUES ( 8, '1990-1-1', '1990-12-31', 'Penningmeester')
;
INSERT INTO BESTUURSLEDEN VALUES ( 8, '1991-1-1', '1991-12-31', 'Secretaris')
;
INSERT INTO BESTUURSLEDEN VALUES ( 8, '1993-1-1', '1993-12-31', 'Lid')
;
INSERT INTO BESTUURSLEDEN VALUES ( 8, '1994-1-1', NULL, 'Lid')
;
INSERT INTO BESTUURSLEDEN VALUES ( 57, '1992-1-1', '1992-12-31', 'Secretaris')
;
INSERT INTO BESTUURSLEDEN VALUES ( 27, '1990-1-1', '1990-12-31', 'Lid')
;
INSERT INTO BESTUURSLEDEN VALUES ( 27, '1991-1-1', '1991-12-31', 'Penningmeester')
;
INSERT INTO BESTUURSLEDEN VALUES ( 27, '1993-1-1', '1993-12-31', 'Penningmeester')
;
INSERT INTO BESTUURSLEDEN VALUES ( 95, '1994-1-1', NULL, 'Penningmeester')
;
Voorbeeld 4.7:
SELECT SPELERSNR, NAAM, GEB_DATUM
FROM SPELERS
WHERE PLAATS = 'Den Haag'
ORDER BY NAAM
Voorbeeld 4.8:
SELECT SPELERSNR
FROM SPELERS
WHERE JAARTOE > 1980
AND PLAATS = 'Den Haag'
ORDER BY SPELERSNR
Voorbeeld 4.9:
SELECT *
FROM BOETES
Voorbeeld 4.10:
SELECT 33 * 121
Voorbeeld 4.11:
UPDATE BOETES
SET BEDRAG = 200
WHERE SPELERSNR = 44
;
SELECT SPELERSNR, BEDRAG
FROM BOETES
WHERE SPELERSNR = 44
Voorbeeld 4.12:
DELETE
FROM BOETES
WHERE BEDRAG > 100
Voorbeeld 4.13:
CREATE INDEX BOETES_BEDRAG ON
BOETES (BEDRAG)
Voorbeeld 4.14:
CREATE VIEW AANTAL_SETS (WEDSTRIJDNR, VERSCHIL) AS
SELECT WEDSTRIJDNR, ABS(GEWONNEN - VERLOREN)
FROM WEDSTRIJDEN
;
SELECT *
FROM AANTAL_SETS
Voorbeeld 4.15:
GRANT SELECT
ON SPELERS
TO DIANE
;
GRANT SELECT, UPDATE
ON SPELERS
TO PAUL
;
GRANT SELECT, UPDATE
ON TEAMS
TO PAUL
;
SELECT *
FROM TEAMS
Voorbeeld 4.16:
DROP TABLE WEDSTRIJDEN
Voorbeeld 4.17:
DROP VIEW AANTAL_SETS
Voorbeeld 4.18:
DROP INDEX BOETES_BEDRAG
Voorbeeld 4.19:
DROP DATABASE TENNIS
Voorbeeld 4.20:
SELECT @@VERSION
Voorbeeld 4.21:
SET @@SQL_MODE = 'PIPES_AS_CONCAT'
Voorbeeld 4.22:
SET @@SQL_MODE = CONCAT(@@SQL_MODE,
CASE @@SQL_MODE WHEN '' THEN '' ELSE ',' END,
'NO_ZERO_IN_DATE')
Voorbeeld 4.23:
CREATE OR REPLACE VIEW USERS
(USER_NAME) AS
SELECT DISTINCT UPPER(CONCAT('''',USER,'''@''',HOST,''''))
FROM MYSQL.USER
;
CREATE OR REPLACE VIEW TABLES
(TABLE_CREATOR, TABLE_NAME,
CREATE_TIMESTAMP, COMMENT) AS
SELECT UPPER(TABLE_SCHEMA), UPPER(TABLE_NAME),
CREATE_TIME, TABLE_COMMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE IN ('BASE TABLE','TEMPORARY')
;
CREATE OR REPLACE VIEW COLUMNS
(TABLE_CREATOR, TABLE_NAME, COLUMN_NAME,
COLUMN_NO, DATA_TYPE, CHAR_LENGTH,
`PRECISION`, SCALE, NULLABLE, COMMENT) AS
SELECT UPPER(TABLE_SCHEMA), UPPER(TABLE_NAME),
UPPER(COLUMN_NAME), ORDINAL_POSITION,
UPPER(DATA_TYPE), CHARACTER_MAXIMUM_LENGTH,
NUMERIC_PRECISION, NUMERIC_SCALE, IS_NULLABLE,
COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS
;
CREATE OR REPLACE VIEW VIEWS
(VIEW_CREATOR, VIEW_NAME, CREATE_TIMESTAMP,
WITHCHECKOPT, IS_UPDATABLE, VIEWFORMULA, COMMENT) AS
SELECT UPPER(V.TABLE_SCHEMA), UPPER(V.TABLE_NAME),
T.CREATE_TIME,
CASE
WHEN V.CHECK_OPTION = 'None' THEN 'NO'
WHEN V.CHECK_OPTION = 'Cascaded' THEN 'CASCADED'
WHEN V.CHECK_OPTION = 'Local' THEN 'LOCAL'
ELSE 'Yes'
END,
V.IS_UPDATABLE, V.VIEW_DEFINITION, T.TABLE_COMMENT
FROM INFORMATION_SCHEMA.VIEWS AS V,
INFORMATION_SCHEMA.TABLES AS T
WHERE V.TABLE_NAME = T.TABLE_NAME
AND V.TABLE_SCHEMA = T.TABLE_SCHEMA
;
CREATE OR REPLACE VIEW INDEXES
(INDEX_CREATOR, INDEX_NAME, CREATE_TIMESTAMP,
TABLE_CREATOR, TABLE_NAME, UNIQUE_ID, INDEX_TYPE) AS
SELECT DISTINCT UPPER(I.INDEX_SCHEMA), UPPER(I.INDEX_NAME),
T.CREATE_TIME, UPPER(I.TABLE_SCHEMA),
UPPER(I.TABLE_NAME),
CASE
WHEN I.NON_UNIQUE = 0 THEN 'YES'
ELSE 'NO'
END,
I.INDEX_TYPE
FROM INFORMATION_SCHEMA.STATISTICS AS I,
INFORMATION_SCHEMA.TABLES AS T
WHERE I.TABLE_NAME = T.TABLE_NAME
AND I.TABLE_SCHEMA = T.TABLE_SCHEMA
;
CREATE OR REPLACE VIEW COLUMNS_IN_INDEX
(INDEX_CREATOR, INDEX_NAME,
TABLE_CREATOR, TABLE_NAME, COLUMN_NAME,
COLUMN_SEQ, ORDERING) AS
SELECT UPPER(INDEX_SCHEMA), UPPER(INDEX_NAME),
UPPER(TABLE_SCHEMA), UPPER(TABLE_NAME),
UPPER(COLUMN_NAME), SEQ_IN_INDEX,
CASE
WHEN COLLATION = 'A' THEN 'ASCENDING'
WHEN COLLATION = 'D' THEN 'DESCENDING'
ELSE 'OTHER'
END
FROM INFORMATION_SCHEMA.STATISTICS
;
CREATE OR REPLACE VIEW USER_AUTHS
(GRANTOR, GRANTEE, PRIVILEGE, WITHGRANTOPT) AS
SELECT 'UNKNOWN', UPPER(GRANTEE), PRIVILEGE_TYPE, IS_GRANTABLE
FROM INFORMATION_SCHEMA.USER_PRIVILEGES
;
CREATE OR REPLACE VIEW DATABASE_AUTHS
(GRANTOR, GRANTEE, DATABASE_NAME, PRIVILEGE,
WITHGRANTOPT) AS
SELECT 'UNKNOWN', UPPER(GRANTEE), UPPER(TABLE_SCHEMA),
PRIVILEGE_TYPE, IS_GRANTABLE
FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
;
CREATE OR REPLACE VIEW TABLE_AUTHS
(GRANTOR, GRANTEE, TABLE_CREATOR, TABLE_NAME,
PRIVILEGE, WITHGRANTOPT) AS
SELECT 'UNKNOWN', UPPER(GRANTEE), UPPER(TABLE_SCHEMA),
UPPER(TABLE_NAME), PRIVILEGE_TYPE, IS_GRANTABLE
FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
;
CREATE OR REPLACE VIEW COLUMN_AUTHS
(GRANTOR, GRANTEE, TABLE_CREATOR, TABLE_NAME,
COLUMN_NAME, PRIVILEGE, WITHGRANTOPT) AS
SELECT 'UNKNOWN', UPPER(GRANTEE), UPPER(TABLE_SCHEMA),
UPPER(TABLE_NAME), UPPER(COLUMN_NAME),
PRIVILEGE_TYPE, IS_GRANTABLE
FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
Voorbeeld 4.24:
SELECT COLUMN_NAME, DATA_TYPE, COLUMN_NO
FROM COLUMNS
WHERE TABLE_NAME = 'SPELERS'
AND TABLE_CREATOR = 'TENNIS'
ORDER BY COLUMN_NO
Voorbeeld 4.25:
INDEX_NAME
FROM INDEXES
WHERE TABLE_NAME = 'BOETES'
AND TABLE_CREATOR = 'TENNIS'
Voorbeeld 4.26:
USE INFORMATION_SCHEMA
;
SELECT DISTINCT INDEX_NAME
FROM STATISTICS
WHERE TABLE_NAME = 'BOETES'
Voorbeeld 4.27:
SELECT TABLE_NAME
FROM TABLES
WHERE TABLE_SCHEMA = 'INFORMATION_SCHEMA'
ORDER BY TABLE_NAME
Voorbeeld 4.28:
SHOW COLUMNS FROM SPELERS
Voorbeeld 4.29:
SHOW INDEX FROM BOETES
;
SHOW DATABASES
;
SHOW TABLES
;
SHOW CREATE TABLE SPELERS
;
SHOW INDEX FROM SPELERS
;
SHOW GRANTS FOR BOEKSQL@localhost
;
SHOW PRIVILEGES
Voorbeeld 4.30:
SELECT 10 / 0
;
SHOW WARNINGS
Voorbeeld 5.1:
CREATE TABLE INCORRECTE_DATUMS (K DATE)
;
INSERT INTO INCORRECTE_DATUMS VALUES ('2004-13-12')
;
SELECT K
FROM INCORRECTE_DATUMS
;
CREATE TABLE TIJDTABEL (KOLOM1 TIME)
;
INSERT INTO TIJDTABEL VALUES ('23:59:59.5912')
;
SELECT KOLOM1 FROM TIJDTABEL
;
CREATE TABLE TIMESTAMP_TABEL (KOLOM1 TIMESTAMP)
;
INSERT INTO TIMESTAMP_TABEL VALUES ('1980-12-08 23:59:59.59')
;
SELECT KOLOM1 FROM TIMESTAMP_TABEL
Voorbeeld 5.2:
CREATE TABLE TZ (KOL1 TIMESTAMP)
;
INSERT INTO TZ VALUES ('2005-01-01 12:00:00')
;
SELECT * FROM TZ
;
SET @@TIME_ZONE = '+10:00'
;
SELECT * FROM TZ
Voorbeeld 5.3:
SELECT @@TIME_ZONE
Voorbeeld 5.4:
SELECT TRUE, FALSE
Voorbeeld 5.5:
SELECT WEDSTRIJDNR, GEWONNEN - VERLOREN
FROM WEDSTRIJDEN
WHERE GEWONNEN = VERLOREN + 2
Voorbeeld 5.6:
SELECT TEAMNR, DIVISIE
FROM TEAMS
Voorbeeld 5.7:
SELECT TEAMNR AS TEAMNUMMER, DIVISIE AS DIVISIE_VAN_TEAM
FROM TEAMS
Voorbeeld 5.8:
SELECT BETALINGSNR, BEDRAG * 100 AS CENTEN
FROM BOETES
Voorbeeld 5.9:
SELECT WEDSTRIJDNR AS PRIMSLEUTEL,
80 AS TACHTIG,
GEWONNEN - VERLOREN AS VERSCHIL,
TIME('23:59:59') AS BIJNA_MIDDERNACHT,
'TEKST' AS TEKST
FROM WEDSTRIJDEN
WHERE WEDSTRIJDNR <= 4
Voorbeeld 5.10:
SELECT BEDRAG * 100 AS CENTEN
FROM BOETES
GROUP BY CENTEN
ORDER BY CENTEN
Voorbeeld 5.11:
SET @SPELERSNR = 7
Voorbeeld 5.12:
SELECT NAAM, PLAATS, POSTCODE
FROM SPELERS
WHERE SPELERSNR < @SPELERSNR
Voorbeeld 5.13:
SELECT @SPELERSNR
Voorbeeld 5.14:
SET @@GLOBAL.SQL_WARNINGS = TRUE
Voorbeeld 5.15:
SET @@SESSION.SQL_SELECT_LIMIT = 10
;
SELECT @@SESSION.SQL_SELECT_LIMIT
;
SELECT @@GLOBAL.SQL_SELECT_LIMIT
Voorbeeld 5.16:
SET @@SESSION.SQL_SELECT_LIMIT = DEFAULT
Voorbeeld 5.17:
SELECT *
FROM USER_AUTHS
WHERE GRANTEE = CURRENT_USER
Voorbeeld 5.18:
SELECT CURRENT_USER
Voorbeeld 5.19:
SELECT *
FROM BOETES
WHERE DATUM = CURRENT_DATE
Voorbeeld 5.20:
SELECT SPELERSNR,
CASE GESLACHT
WHEN 'V' THEN 'Vrouw'
ELSE 'Man'
END AS GESLACHT,
NAAM
FROM SPELERS
WHERE JAARTOE > 1980
;
SELECT SPELERSNR,
CASE GESLACHT
WHEN 'V' THEN 'Vrouw'
END AS VROUWEN,
NAAM
FROM SPELERS
WHERE JAARTOE > 1980
Voorbeeld 5.21:
SELECT SPELERSNR, PLAATS, GEB_DATUM,
CASE PLAATS
WHEN 'Den Haag' THEN 0
WHEN 'Rotterdam' THEN 1
WHEN 'Rijswijk' THEN 2
ELSE 3
END AS P,
CASE PLAATS
WHEN 'Den Haag' THEN
CASE GEB_DATUM
WHEN '1948-09-01' THEN 'Oude Hagenees'
ELSE 'Jonge Hagenees'
END
WHEN 'Rijswijk' THEN
CASE GEB_DATUM
WHEN '1962-07-08' THEN 'Oude Rijswijker'
ELSE 'Jonge Rijswijker'
END
ELSE 'Rest'
END AS SOORT
FROM SPELERS
Voorbeeld 5.22:
SELECT SPELERSNR, JAARTOE,
CASE
WHEN JAARTOE < 1980 THEN 'Ouderen'
WHEN JAARTOE < 1983 THEN 'Jongeren'
ELSE 'Kinderen'
END AS GROEP
FROM SPELERS
ORDER BY JAARTOE
Voorbeeld 5.23:
SELECT SPELERSNR, JAARTOE, PLAATS,
CASE
WHEN JAARTOE >= 1980 AND JAARTOE <= 1982
THEN 'Ouderen'
WHEN PLAATS = 'Zoetermeer'
THEN 'Zoetermeerders'
WHEN SPELERSNR < 10
THEN 'Eerste leden'
ELSE 'Rest'
END
FROM SPELERS
Voorbeeld 5.24:
SELECT (SPELERSNR), (((NAAM)))
FROM SPELERS
Voorbeeld 5.25:
SELECT BETALINGSNR, YEAR(DATUM) AS JAARTAL
FROM BOETES
WHERE YEAR(DATUM) > 1980
Voorbeeld 5.26:
SELECT SPELERSNR, CONCAT(LEFT(VOORLETTERS, 1), '. ', NAAM)
AS VOLLE_NAAM
FROM SPELERS
WHERE LEFT(NAAM, 1) = 'B'
Voorbeeld 5.27:
SELECT VOORLETTERS, NAAM, COALESCE(BONDSNR, '1')
FROM SPELERS
WHERE PLAATS = 'Den Haag'
Voorbeeld 5.28:
SELECT SPELERSNR, DAYNAME(GEB_DATUM) AS DAGNAAM,
MONTHNAME(GEB_DATUM) AS MAANDNAAM,
DAYOFYEAR(GEB_DATUM) AS DAGNUMMER
FROM SPELERS
WHERE SPELERSNR < 10
Voorbeeld 5.29:
SELECT SPELERSNR, GEB_DATUM,
ADDDATE(GEB_DATUM, INTERVAL 7 DAY) AS GEB_DATUM_PLUS_7
FROM SPELERS
WHERE DAYNAME(GEB_DATUM) = 'Saturday'
Voorbeeld 5.30:
SELECT SPELERSNR, BEGIN_DATUM, EIND_DATUM,
DATEDIFF(EIND_DATUM, BEGIN_DATUM)
FROM BESTUURSLEDEN
WHERE DATEDIFF(EIND_DATUM, BEGIN_DATUM) > 500
OR (EIND_DATUM IS NULL AND
DATEDIFF(CURRENT_DATE, BEGIN_DATUM) > 500)
ORDER BY SPELERSNR
;
SELECT SPELERSNR, BEGIN_DATUM, EIND_DATUM,
DATEDIFF(COALESCE(EIND_DATUM, CURRENT_DATE),
BEGIN_DATUM)
FROM BESTUURSLEDEN
WHERE DATEDIFF(COALESCE(EIND_DATUM, CURRENT_DATE),
BEGIN_DATUM)
> 500
ORDER BY SPELERSNR
Voorbeeld 5.31:
SELECT BETALINGSNR
FROM BOETES
WHERE BEDRAG > 50
Voorbeeld 5.32:
SELECT CONCAT(RTRIM(NAAM), CAST(GEB_DATUM AS CHAR(10)))
AS NAAM_PLUS_DATUM
FROM SPELERS
WHERE PLAATS = 'Rijswijk'
Voorbeeld 5.33:
UPDATE SPELERS
SET BONDSNR = NULL
WHERE SPELERSNR = 2
Voorbeeld 5.34:
SELECT TEAMNR, CAST(NULL AS CHAR)
FROM TEAMS
Voorbeeld 5.35:
SELECT WEDSTRIJDNR, GEWONNEN, VERLOREN
FROM WEDSTRIJDEN
WHERE GEWONNEN >= VERLOREN * 2
Voorbeeld 5.36:
SELECT 50 << 2
Voorbeeld 5.37:
SELECT B'11' << 3
Voorbeeld 5.38:
SELECT CONV(6,10,2), CONV(10,10,2), BIN(8), BIN(10)
Voorbeeld 5.39:
SELECT CONV(1001,2,10), CONV(111,2,10)
Voorbeeld 5.40:
SELECT SPELERSNR
FROM SPELERS
WHERE SPELERSNR & 1
Voorbeeld 5.41:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR = (SPELERSNR >> 1) << 1
Voorbeeld 5.42:
SELECT WEDSTRIJDNR, TEAMNR, WEDSTRIJDNR | TEAMNR,
WEDSTRIJDNR & TEAMNR, WEDSTRIJDNR ^ TEAMNR
FROM WEDSTRIJDEN
Voorbeeld 5.43:
SELECT SPELERSNR, PLAATS || ' ' || STRAAT || ' ' || HUISNR
FROM SPELERS
WHERE PLAATS = 'Den Haag'
Voorbeeld 5.44:
SELECT BETALINGSNR, DATUM,
DATUM + INTERVAL 7 DAY AS DATUM_PLUS_7
FROM BOETES
WHERE BETALINGSNR > 5
Voorbeeld 5.45:
SELECT BETALINGSNR , DATUM
FROM BOETES
WHERE DATUM >= '1982-12-25'
AND DATUM <= '1982-12-25' + INTERVAL 6 DAY
Voorbeeld 5.46:
SELECT '2004-13-12' + INTERVAL 1 DAY
;
SHOW WARNINGS
Voorbeeld 5.47:
CREATE TABLE WEDSTRIJDEN_SPECIAAL
(WEDSTRIJDNR INTEGER NOT NULL,
TEAMNR INTEGER NOT NULL,
SPELERSNR INTEGER NOT NULL,
GEWONNEN SMALLINT NOT NULL,
VERLOREN SMALLINT NOT NULL,
START_DATUM DATE NOT NULL,
START_TIJD TIME NOT NULL,
EIND_TIJD TIME NOT NULL,
PRIMARY KEY (WEDSTRIJDNR))
;
INSERT INTO WEDSTRIJDEN_SPECIAAL VALUES
(1, 1, 6, 3, 1, '2004-10-25', '14:10:12', '16:50:09')
;
INSERT INTO WEDSTRIJDEN_SPECIAAL VALUES
(2, 1, 44, 3, 2, '2004-10-25', '17:00:00', '17:55:48')
Voorbeeld 5.48:
SELECT WEDSTRIJDNR, START_TIJD,
ADDTIME(START_TIJD, '08:00:00') AS START_TIJD_PLUS_8
FROM WEDSTRIJDEN_SPECIAAL
Voorbeeld 5.49:
SELECT WEDSTRIJDNR, EIND_TIJD
FROM WEDSTRIJDEN_SPECIAAL
WHERE ADDTIME(EIND_TIJD, '06:30:00') <= '24:00:00'
Voorbeeld 5.50:
CREATE TABLE TSTAMP (KOL TIMESTAMP)
;
SET @TIJD = TIMESTAMP('1980-12-08 23:59:59.59')
;
INSERT INTO TSTAMP VALUES (@TIJD + INTERVAL 3 MICROSECOND)
;
SELECT KOL, KOL + INTERVAL 3 MICROSECOND FROM TSTAMP
Voorbeeld 5.51:
SELECT TEAMNR
FROM TEAMS
WHERE TRUE OR FALSE
Voorbeeld 5.52:
SELECT BETALINGSNR, BETALINGSNR > 4
FROM BOETES
;
SELECT BETALINGSNR, CASE BETALINGSNR > 4
WHEN 1 THEN 'Groter dan 4'
ELSE 'Kleiner dan 5'
END AS GROTER_KLEINER
FROM BOETES
Voorbeeld 5.53:
SELECT SPELERSNR, JAARTOE, SPELERSNR < 15, JAARTOE > 1979
FROM SPELERS
WHERE (SPELERSNR < 15) = (JAARTOE > 1979)
Voorbeeld 5.54:
INSERT INTO BESTUURSLEDEN
VALUES (7 + 15, CURRENT_DATE,
CURRENT_DATE + INTERVAL 17 DAY, 'Lid')
Voorbeeld 5.55:
SELECT SPELERSNR
FROM SPELERS
WHERE (PLAATS, STRAAT) = ('Den Haag', 'Hazensteinln')
Voorbeeld 5.56:
SELECT SPELERSNR
FROM SPELERS
WHERE (PLAATS, STRAAT) = (SELECT 'Den Haag', 'Hazensteinln')
Voorbeeld 5.57:
INSERT INTO BOETES VALUES
(1, 6, '1980-12-08', 100),
(2, 44, '1981-05-05', 75),
(3, 27, '1983-09-10', 100),
(4, 104, '1984-12-08', 50),
(5, 44, '1980-12-08', 25),
(6, 8, '1980-12-08', 25),
(7, 44, '1982-12-30', 30),
(8, 27, '1984-11-12', 75)
Antwoord 5.4:
SELECT WEDSTRIJDNR, GEWONNEN - VERLOREN AS VERSCHIL
FROM WEDSTRIJDEN
Antwoord 5.5:
SELECT SPELERS.SPELERSNR, SPELERS.NAAM,
SPELERS.VOORLETTERS
FROM SPELERS
WHERE SPELERS.SPELERSNR > 6
ORDER BY SPELERS.NAAM
Antwoord 5.12:
SELECT SPELERSNR
FROM BESTUURSLEDEN
WHERE BEGIN_DATUM = CURRENT_DATE
Antwoord 5.13:
SELECT TEAMNR,
CASE DIVISIE
WHEN 'ere' then 'ere divisie'
WHEN 'tweede' THEN 'tweede divisie'
ELSE 'onbekend'
END AS DIVISIE
FROM TEAMS
Antwoord 5.14:
SELECT BETALINGSNR, BEDRAG,
CASE
WHEN BEDRAG >= 0 AND BEDRAG <= 40
THEN 'laag'
WHEN BEDRAG >= 41 AND BEDRAG <= 80
THEN 'middelmatig'
WHEN BEDRAG >= 81
THEN 'hoog'
ELSE 'fout'
END AS CATEGORIE
FROM BOETES
Antwoord 5.15:
SELECT BETALINGSNR, BEDRAG
FROM BOETES
WHERE CASE
WHEN BEDRAG >= 0 AND BEDRAG <= 40
THEN 'laag'
WHEN BEDRAG > 40 AND BEDRAG <= 80
THEN 'middelmatig'
WHEN BEDRAG > 80
THEN 'hoog'
ELSE 'fout'
END = 'laag'
Antwoord 5.17:
SELECT BETALINGSNR
FROM BOETES
WHERE DAYNAME(DATUM) = 'Monday'
Antwoord 5.18:
SELECT BETALINGSNR
FROM BOETES
WHERE YEAR(DATUM) = 1984
Antwoord 5.25:
SELECT SPELERSNR, SUBSTR(VOORLETTERS,1,1) || '. ' || NAAM
FROM SPELERS
Antwoord 5.26:
SELECT TEAMNR, RTRIM(DIVISIE) || ' divisie'
FROM TEAMS
Antwoord 5.28:
SELECT SPELERSNR, BEGIN_DATUM,
BEGIN_DATUM + INTERVAL 2 MONTH + INTERVAL 3 DAY
FROM BESTUURSLEDEN
Antwoord 5.32:
SELECT BETALINGSNR, DATUM, DATUM + INTERVAL 3 HOUR +
INTERVAL 50 SECOND + INTERVAL 99 MICROSECOND
FROM BOETES
Antwoord 5.33:
SELECT SPELERSNR,
CASE PLAATS = 'Rijswijk'
WHEN 1 THEN 'Ja'
ELSE 'Nee'
END
FROM SPELERS
Antwoord 5.34:
SELECT *
FROM BOETES
WHERE (BEDRAG = 25) = (SPELERSNR = 44)
Antwoord 5.35:
SELECT BETALINGSNR
FROM BOETES
WHERE (BEDRAG, SPELERSNR, DATUM) =
(25, 44, '1980-12-08')
Antwoord 5.36:
SELECT SPELERSNR
FROM SPELERS
WHERE (NAAM, VOORLETTERS) = (PLAATS, STRAAT)
Antwoord 5.37:
SELECT *
FROM BOETES
WHERE (BEDRAG = 25, SPELERSNR = 44) = (FALSE, TRUE)
Voorbeeld 6.1:
SELECT SPELERSNR
FROM BOETES
WHERE BEDRAG > 25
GROUP BY SPELERSNR
HAVING COUNT(*) > 1
ORDER BY SPELERSNR
Voorbeeld 6.2:
SELECT SPELERSNR, BONDSNR
FROM SPELERS
WHERE PLAATS = 'Den Haag'
ORDER BY BONDSNR
Voorbeeld 6.3:
SELECT 89 * 73
Voorbeeld 6.4:
(SELECT *
FROM TEAMS)
;
(((((SELECT *
FROM TEAMS)))))
Voorbeeld 6.5:
SELECT SPELERSNR
FROM TEAMS
UNION
SELECT SPELERSNR
FROM BOETES
;
SELECT SPELERSNR
FROM TEAMS
ORDER BY SPELERSNR
UNION
SELECT SPELERSNR
FROM BOETES
;
SELECT SPELERSNR
FROM TEAMS
UNION
SELECT SPELERSNR
FROM BOETES
ORDER BY SPELERSNR
;
(SELECT SPELERSNR
FROM TEAMS
ORDER BY SPELERSNR)
UNION
(SELECT SPELERSNR
FROM BOETES)
ORDER BY SPELERSNR
Voorbeeld 6.6:
SELECT SPELERSNR
FROM (SELECT SPELERSNR, GESLACHT
FROM SPELERS
WHERE SPELERSNR < 10) AS TIJDELIJK
WHERE GESLACHT = 'M'
Voorbeeld 6.7:
SELECT SPELERSNR
FROM (SELECT SPELERSNR, GESLACHT
FROM (SELECT SPELERSNR, GESLACHT, JAARTOE
FROM (SELECT SPELERSNR, GESLACHT, JAARTOE
FROM SPELERS
WHERE SPELERSNR > 10) AS GROTER10
WHERE SPELERSNR < 100) AS KLEINER100
WHERE JAARTOE > 1980) AS JAARTOE1980
WHERE GESLACHT = 'M'
Voorbeeld 6.8:
SELECT SPELERSNR, JAARTOE -
(SELECT JAARTOE
FROM SPELERS
WHERE SPELERSNR = 100)
FROM SPELERS
WHERE SPELERSNR < 60
;
SELECT SPELERSNR, JAARTOE - 1979
FROM SPELERS
WHERE SPELERSNR < 60
;
SELECT TEAMNR
FROM TEAMS
WHERE SPELERSNR =
(SELECT SPELERSNR
FROM SPELERS)
Voorbeeld 6.9:
SELECT SPELERSNR
FROM SPELERS
WHERE YEAR(GEB_DATUM) =
(SELECT YEAR(GEB_DATUM)
FROM SPELERS
WHERE SPELERSNR = 27)
;
SELECT SPELERSNR
FROM SPELERS
WHERE YEAR(GEB_DATUM) = 1964
Voorbeeld 6.10:
SELECT (SELECT GEB_DATUM
FROM SPELERS
WHERE SPELERSNR = 27) AS GB27,
(SELECT GEB_DATUM
FROM SPELERS
WHERE SPELERSNR = 44) AS GB44,
(SELECT GEB_DATUM
FROM SPELERS
WHERE SPELERSNR = 100) AS GB100
Voorbeeld 6.11:
SELECT SPELERSNR
FROM SPELERS
WHERE (GESLACHT, PLAATS) = (SELECT GESLACHT, PLAATS
FROM SPELERS
WHERE SPELERSNR = 100)
Antwoord 6.8:
SELECT SPELERSNR, BEGIN_DATUM
FROM BESTUURSLEDEN
UNION
SELECT SPELERSNR, EIND_DATUM
FROM BESTUURSLEDEN
ORDER BY SPELERSNR
Antwoord 6.9:
SELECT SPELERSNR, BEGIN_DATUM, 'Begindatum'
FROM BESTUURSLEDEN
UNION
SELECT SPELERSNR, EIND_DATUM, 'Einddatum'
FROM BESTUURSLEDEN
ORDER BY SPELERSNR
Antwoord 6.10:
SELECT SPELERSNR
FROM (SELECT SPELERSNR
FROM (SELECT SPELERSNR, EIND_DATUM
FROM (SELECT SPELERSNR, BEGIN_DATUM,
EIND_DATUM
FROM BESTUURSLEDEN
WHERE FUNCTIE = 'Secretaris')
AS SECRETARISSEN
WHERE BEGIN_DATUM >= '1990-01-01')
AS NA1989
WHERE EIND_DATUM <= '1994-12-31') AS VOOR1995
Antwoord 6.11:
SELECT TEAMNR
FROM TEAMS
WHERE SPELERSNR =
(SELECT SPELERSNR
FROM SPELERS
WHERE NAAM = 'Permentier'
AND VOORLETTERS = 'R')
Antwoord 6.12:
SELECT NAAM
FROM SPELERS
WHERE SPELERSNR =
(SELECT SPELERSNR
FROM TEAMS
WHERE TEAMNR =
(SELECT TEAMNR
FROM WEDSTRIJDEN
WHERE WEDSTRIJDNR = 6))
;
SELECT NAAM
FROM SPELERS
WHERE SPELERSNR =
(SELECT SPELERSNR
FROM TEAMS
WHERE TEAMNR =
(SELECT TEAMNR
FROM WEDSTRIJDEN
WHERE WEDSTRIJDNR = 6))
Antwoord 6.13:
SELECT BETALINGSNR
FROM BOETES
WHERE BEDRAG >
(SELECT BEDRAG
FROM BOETES
WHERE BETALINGSNR = 4)
Antwoord 6.14:
SELECT SPELERSNR
FROM SPELERS
WHERE DAYNAME(GEB_DATUM) =
(SELECT DAYNAME(GEB_DATUM)
FROM SPELERS
WHERE SPELERSNR = 2)
Antwoord 6.15:
SELECT SPELERSNR
FROM BESTUURSLEDEN
WHERE (BEGIN_DATUM, EIND_DATUM) =
(SELECT BEGIN_DATUM, EIND_DATUM
FROM BESTUURSLEDEN
WHERE SPELERSNR = 8
AND FUNCTIE = 'Penningmeester')
AND SPELERSNR <> 8
Antwoord 6.16:
SELECT (SELECT DIVISIE
FROM TEAMS
WHERE TEAMNR = 1),
(SELECT DIVISIE
FROM TEAMS
WHERE TEAMNR = 2)
Antwoord 6.17:
SELECT (SELECT BEDRAG
FROM BOETES
WHERE BETALINGSNR = 1) +
(SELECT BEDRAG
FROM BOETES
WHERE BETALINGSNR = 2) +
(SELECT BEDRAG
FROM BOETES
WHERE BETALINGSNR = 3)
Voorbeeld 7.1:
CREATE DATABASE EXTRA
;
USE EXTRA
;
CREATE TABLE WOONPLAATSEN
(PLAATSNR INTEGER NOT NULL PRIMARY KEY,
PLAATSNAAM CHAR(20) NOT NULL)
;
INSERT INTO WOONPLAATSEN VALUES
(1, 'Den Haag')
;
INSERT INTO WOONPLAATSEN VALUES
(2, 'Rijswijk')
Voorbeeld 7.2:
SELECT *
FROM EXTRA.WOONPLAATSEN
Voorbeeld 7.3:
SELECT *
FROM TENNIS.TEAMS
Voorbeeld 7.4:
SELECT TEAMNR
FROM TEAMS
;
SELECT TEAMS.TEAMNR
FROM TEAMS
;
SELECT TENNIS.TEAMS.TEAMNR
FROM TENNIS.TEAMS
Voorbeeld 7.5:
SELECT TEAMNR, NAAM
FROM TEAMS, SPELERS
WHERE TEAMS.SPELERSNR = SPELERS.SPELERSNR
Voorbeeld 7.6:
SELECT BETALINGSNR, BOETES.SPELERSNR, BEDRAG,
NAAM, VOORLETTERS
FROM BOETES, SPELERS
WHERE BOETES.SPELERSNR = SPELERS.SPELERSNR
;
SELECT SPELERS.SPELERSNR
FROM SPELERS, TEAMS
WHERE SPELERS.SPELERSNR = TEAMS.SPELERSNR
;
SELECT SPELERS.SPELERSNR
FROM TEAMS, SPELERS
WHERE SPELERS.SPELERSNR = TEAMS.SPELERSNR
Voorbeeld 7.7:
SELECT BETALINGSNR, BT.SPELERSNR, BEDRAG,
NAAM, VOORLETTERS
FROM BOETES AS BT, SPELERS AS S
WHERE BT.SPELERSNR = S.SPELERSNR
;
SELECT BETALINGSNR, BT.SPELERSNR, BEDRAG,
NAAM, VOORLETTERS
FROM BOETES BT, SPELERS S
WHERE BT.SPELERSNR = S.SPELERSNR
Voorbeeld 7.8:
SELECT T.SPELERSNR
FROM TEAMS AS T, BOETES AS BT
WHERE T.SPELERSNR = BT.SPELERSNR
Voorbeeld 7.9:
SELECT DISTINCT T.SPELERSNR
FROM TEAMS AS T, BOETES AS BT
WHERE T.SPELERSNR = BT.SPELERSNR
Voorbeeld 7.10:
SELECT DISTINCT S.NAAM, S.VOORLETTERS
FROM SPELERS AS S, WEDSTRIJDEN AS W
WHERE S.SPELERSNR = W.SPELERSNR
Voorbeeld 7.11:
SELECT W.WEDSTRIJDNR, W.SPELERSNR, W.TEAMNR, S.NAAM, T.DIVISIE
FROM WEDSTRIJDEN AS W, SPELERS AS S, TEAMS AS T
WHERE W.SPELERSNR = S.SPELERSNR
AND W.TEAMNR = T.TEAMNR
Voorbeeld 7.12:
SELECT B.BETALINGSNR, B.SPELERSNR, B.DATUM
FROM BOETES AS B, SPELERS AS S
WHERE B.SPELERSNR = S.SPELERSNR
AND YEAR(B.DATUM) = S.JAARTOE
Voorbeeld 7.13:
SELECT S.SPELERSNR
FROM SPELERS AS S, SPELERS AS P
WHERE P.NAAM = 'Permentier'
AND P.VOORLETTERS = 'R'
AND S.GEB_DATUM < P.GEB_DATUM
;
SELECT S.SPELERSNR
FROM SPELERS AS S, SPELERS
WHERE SPELERS.NAAM = 'Permentier'
AND SPELERS.VOORLETTERS = 'R'
AND S.GEB_DATUM < SPELERS.GEB_DATUM
Voorbeeld 7.14:
SELECT S.SPELERSNR
FROM SPELERS AS S, EXTRA.WOONPLAATSEN AS STAD
WHERE S.PLAATS = STAD.PLAATSNAAM
Voorbeeld 7.15:
SELECT SPELERS.SPELERSNR, NAAM, BEDRAG
FROM SPELERS, BOETES
WHERE SPELERS.SPELERSNR = BOETES.SPELERSNR
AND GEB_DATUM > '1920-06-30'
;
SELECT SPELERS.SPELERSNR, NAAM, BEDRAG
FROM SPELERS INNER JOIN BOETES
ON SPELERS.SPELERSNR = BOETES.SPELERSNR
WHERE GEB_DATUM > '1920-06-30'
Voorbeeld 7.16:
SELECT TEAMNR, NAAM
FROM TEAMS, SPELERS
WHERE TEAMS.SPELERSNR = SPELERS.SPELERSNR
;
SELECT TEAMNR, NAAM
FROM TEAMS INNER JOIN SPELERS
ON TEAMS.SPELERSNR = SPELERS.SPELERSNR
;
SELECT TEAMNR, NAAM
FROM TEAMS JOIN SPELERS
ON TEAMS.SPELERSNR = SPELERS.SPELERSNR
Voorbeeld 7.17:
SELECT SPELERS.SPELERSNR, NAAM, BEDRAG
FROM SPELERS, BOETES
WHERE SPELERS.SPELERSNR = BOETES.SPELERSNR
ORDER BY SPELERS.SPELERSNR
;
SELECT SPELERS.SPELERSNR, NAAM, BEDRAG
FROM SPELERS LEFT OUTER JOIN BOETES
ON SPELERS.SPELERSNR = BOETES.SPELERSNR
ORDER BY SPELERS.SPELERSNR
Voorbeeld 7.18:
SELECT BETALINGSNR, NAAM
FROM BOETES LEFT OUTER JOIN SPELERS
ON BOETES.SPELERSNR = SPELERS.SPELERSNR
ORDER BY BETALINGSNR
Voorbeeld 7.19:
SELECT S.SPELERSNR, NAAM, TEAMNR, DIVISIE
FROM SPELERS AS S LEFT OUTER JOIN TEAMS AS T
ON S.SPELERSNR = T.SPELERSNR
ORDER BY S.SPELERSNR
Voorbeeld 7.20:
SELECT SPELERS.SPELERSNR, NAAM, BEDRAG, TEAMNR
FROM SPELERS LEFT OUTER JOIN BOETES
ON SPELERS.SPELERSNR = BOETES.SPELERSNR
LEFT OUTER JOIN WEDSTRIJDEN
ON SPELERS.SPELERSNR = WEDSTRIJDEN.SPELERSNR
WHERE PLAATS = 'Rijswijk'
Voorbeeld 7.21:
SELECT SPELERS.SPELERSNR
FROM SPELERS INNER JOIN BOETES
ON SPELERS.SPELERSNR = BOETES.SPELERSNR
LEFT OUTER JOIN TEAMS
ON SPELERS.SPELERSNR = TEAMS.SPELERSNR
;
SELECT SPELERS.SPELERSNR
FROM (SPELERS INNER JOIN BOETES
ON SPELERS.SPELERSNR = BOETES.SPELERSNR)
LEFT OUTER JOIN TEAMS
ON SPELERS.SPELERSNR = TEAMS.SPELERSNR
Voorbeeld 7.22:
SELECT SPELERS.SPELERSNR, NAAM, TEAMNR
FROM TEAMS RIGHT OUTER JOIN SPELERS
ON TEAMS.SPELERSNR = SPELERS.SPELERSNR
Voorbeeld 7.23:
SELECT SPELERS.SPELERSNR, NAAM, BEDRAG
FROM SPELERS INNER JOIN BOETES
ON SPELERS.SPELERSNR = BOETES.SPELERSNR
WHERE GEB_DATUM > '1920-06-30'
;
SELECT SPELERS.SPELERSNR, NAAM, BEDRAG
FROM SPELERS NATURAL JOIN BOETES
WHERE GEB_DATUM > '1920-06-30'
Voorbeeld 7.24:
SELECT TEAMS.SPELERSNR, TEAMS.TEAMNR, BOETES.BETALINGSNR
FROM TEAMS LEFT OUTER JOIN BOETES
ON TEAMS.SPELERSNR = BOETES.SPELERSNR
WHERE DIVISIE = 'tweede'
;
SELECT TEAMS.SPELERSNR, TEAMS.TEAMNR, BOETES.BETALINGSNR
FROM TEAMS LEFT OUTER JOIN BOETES
ON TEAMS.SPELERSNR = BOETES.SPELERSNR
AND DIVISIE = 'tweede'
Voorbeeld 7.25:
SELECT TEAMS.SPELERSNR, TEAMS.TEAMNR, BOETES.BETALINGSNR
FROM TEAMS FULL OUTER JOIN BOETES
ON TEAMS.SPELERSNR = BOETES.SPELERSNR
AND TEAMS.SPELERSNR > 1000
Voorbeeld 7.26:
SELECT *
FROM BOETES LEFT OUTER JOIN TEAMS
USING (SPELERSNR)
Voorbeeld 7.27:
SELECT SPELERSNR
FROM (SELECT *
FROM SPELERS
WHERE PLAATS = 'Den Haag') AS HAGENEZEN
Voorbeeld 7.28:
SELECT SMALLE_TEAMS.SPELERSNR
FROM (SELECT SPELERSNR, DIVISIE
FROM TEAMS) AS SMALLE_TEAMS
WHERE SMALLE_TEAMS.DIVISIE = 'ere'
Voorbeeld 7.29:
SELECT WEDSTRIJDNR, VERSCHIL
FROM (SELECT WEDSTRIJDNR,
ABS(GEWONNEN – VERLOREN) AS VERSCHIL
FROM WEDSTRIJDEN) AS W
WHERE VERSCHIL > 2
Voorbeeld 7.30:
SELECT *
FROM (SELECT 'Den Haag' AS PLAATS, 4 AS AANTAL
UNION
SELECT 'Rotterdam', 6
UNION
SELECT 'Rijswijk', 1
UNION
SELECT 'Voorburg', 2) AS PLAATSEN
ORDER BY PLAATS
Voorbeeld 7.31:
SELECT SPELERSNR, NAAM, SPELERS.PLAATS, AANTAL * 1000
FROM SPELERS,
(SELECT 'Den Haag' AS PLAATS, 4 AS AANTAL
UNION
SELECT 'Rotterdam', 6
UNION
SELECT 'Rijswijk', 1
UNION
SELECT 'Voorburg', 2) AS PLAATSEN
WHERE SPELERS.PLAATS = PLAATSEN.PLAATS
ORDER BY SPELERSNR
;
SELECT SPELERSNR, NAAM, SPELERS.PLAATS, AANTAL
FROM SPELERS LEFT OUTER JOIN
(SELECT 'Den Haag' AS PLAATS, 4 AS AANTAL
UNION
SELECT 'Rotterdam', 6
UNION
SELECT 'Rijswijk', 1
UNION
SELECT 'Voorburg', 2) AS PLAATSEN
ON SPELERS.PLAATS = PLAATSEN.PLAATS
ORDER BY SPELERSNR
Voorbeeld 7.32:
SELECT SPELERSNR
FROM SPELERS LEFT OUTER JOIN
(SELECT 'Den Haag' AS PLAATS, 4 AS AANTAL
UNION
SELECT 'Rotterdam', 6
UNION
SELECT 'Rijswijk', 1
UNION
SELECT 'Voorburg', 2) AS PLAATSEN
ON SPELERS.PLAATS = PLAATSEN.PLAATS
WHERE PLAATSEN.AANTAL > 2
Voorbeeld 7.33:
SELECT *
FROM (SELECT 'John' AS VOORNAAM
UNION
SELECT 'Mark'
UNION
SELECT 'Arnold') AS VOORNAMEN,
(SELECT 'Berg' AS ACHTERNAAM
UNION
SELECT 'Johnson'
UNION
SELECT 'Willems') AS ACHTERNAMEN
Voorbeeld 7.34:
SELECT GETAL, POWER(GETAL,3) AS DERDEMACHT
FROM (SELECT 10 AS GETAL UNION SELECT 11 UNION SELECT 12
UNION
SELECT 13 UNION SELECT 14 UNION SELECT 15
UNION
SELECT 16 UNION SELECT 17 UNION SELECT 18
UNION
SELECT 19) AS GETALLEN
WHERE POWER(GETAL,3) <= 4000
Voorbeeld 7.35:
SELECT GETAL
FROM (SELECT CAST(CONCAT(CIJFER1.CIJFER,
CONCAT(CIJFER2.CIJFER,
CIJFER3.CIJFER)) AS UNSIGNED INTEGER)
AS GETAL
FROM (SELECT '0' AS CIJFER UNION SELECT '1' UNION
SELECT '2' UNION SELECT '3' UNION
SELECT '4' UNION SELECT '5' UNION
SELECT '6' UNION SELECT '7' UNION
SELECT '8' UNION SELECT '9') AS CIJFER1,
(SELECT '0' AS CIJFER UNION SELECT '1' UNION
SELECT '2' UNION SELECT '3' UNION
SELECT '4' UNION SELECT '5' UNION
SELECT '6' UNION SELECT '7' UNION
SELECT '8' UNION SELECT '9') AS CIJFER2,
(SELECT '0' AS CIJFER UNION SELECT '1' UNION
SELECT '2' UNION SELECT '3' UNION
SELECT '4' UNION SELECT '5' UNION
SELECT '6' UNION SELECT '7' UNION
SELECT '8' UNION SELECT '9') AS CIJFER3)
AS GETALLEN
ORDER BY GETAL
Voorbeeld 7.36:
SELECT GETAL AS KWADRAAT, ROUND(SQRT(GETAL)) AS BASIS
FROM (SELECT CAST(CONCAT(CIJFER1.CIJFER,
CONCAT(CIJFER2.CIJFER,
CIJFER3.CIJFER)) AS UNSIGNED INTEGER)
AS GETAL
FROM (SELECT '0' AS CIJFER UNION SELECT '1' UNION
SELECT '2' UNION SELECT '3' UNION
SELECT '4' UNION SELECT '5' UNION
SELECT '6' UNION SELECT '7' UNION
SELECT '8' UNION SELECT '9') AS CIJFER1,
(SELECT '0' AS CIJFER UNION SELECT '1' UNION
SELECT '2' UNION SELECT '3' UNION
SELECT '4' UNION SELECT '5' UNION
SELECT '6' UNION SELECT '7' UNION
SELECT '8' UNION SELECT '9') AS CIJFER2,
(SELECT '0' AS CIJFER UNION SELECT '1' UNION
SELECT '2' UNION SELECT '3' UNION
SELECT '4' UNION SELECT '5' UNION
SELECT '6' UNION SELECT '7' UNION
SELECT '8' UNION SELECT '9') AS CIJFER3)
AS GETALLEN
WHERE SQRT(GETAL) = ROUND(SQRT(GETAL))
ORDER BY GETAL
Antwoord 7.3:
SELECT BETALINGSNR, BEDRAG, SPELERS.SPELERSNR, NAAM
FROM BOETES, SPELERS
WHERE BOETES.SPELERSNR = SPELERS.SPELERSNR
Antwoord 7.4:
SELECT BETALINGSNR, NAAM
FROM BOETES, SPELERS, TEAMS
WHERE BOETES.SPELERSNR = TEAMS.SPELERSNR
AND TEAMS.SPELERSNR = SPELERS.SPELERSNR
Antwoord 7.5:
SELECT T.TEAMNR, S.NAAM
FROM TEAMS AS T, SPELERS AS S
WHERE T.SPELERSNR = S.SPELERSNR
Antwoord 7.6:
SELECT W.WEDSTRIJDNR, S.NAAM, T.DIVISIE
FROM WEDSTRIJDEN AS W, SPELERS AS S, TEAMS AS T
WHERE W.SPELERSNR = S.SPELERSNR
AND W.TEAMNR = T.TEAMNR
Antwoord 7.7:
SELECT S.SPELERSNR, S.NAAM
FROM SPELERS AS S, BESTUURSLEDEN AS B
WHERE S.SPELERSNR = B.SPELERSNR
AND B.FUNCTIE = 'Voorzitter'
Antwoord 7.8:
SELECT DISTINCT BL.SPELERSNR
FROM BESTUURSLEDEN AS BL, BOETES AS B
WHERE BL.SPELERSNR = B.SPELERSNR
AND BL.BEGIN_DATUM = B.DATUM
Antwoord 7.9:
SELECT S.SPELERSNR, S.NAAM
FROM SPELERS AS S, SPELERS AS S27
WHERE S.PLAATS = S27.PLAATS
AND S27.SPELERSNR = 27
AND S.SPELERSNR <> 27
Antwoord 7.10:
SELECT DISTINCT S.SPELERSNR AS SPELERS_SPELERSNR,
S.NAAM AS SPELERS_NAAM,
AANV.SPELERSNR AS AANVOERDER_SPELERSNR,
AANV.NAAM AS AANVOERDER_NAAM
FROM SPELERS AS S, SPELERS AS AANV,
WEDSTRIJDEN AS W, TEAMS AS T
WHERE W.SPELERSNR = S.SPELERSNR
AND T.TEAMNR = W.TEAMNR
AND W.SPELERSNR <> T.SPELERSNR
AND AANV.SPELERSNR = T.SPELERSNR
Antwoord 7.11:
SELECT B1.BETALINGSNR, B1.SPELERSNR
FROM BOETES AS B1, BOETES AS B2
WHERE B1.BEDRAG = B2.BEDRAG
AND B2.SPELERSNR = 44
AND B1.SPELERSNR <> 44
Antwoord 7.12:
SELECT T.TEAMNR, S.NAAM
FROM TEAMS AS T INNER JOIN SPELERS AS S
ON T.SPELERSNR = S.SPELERSNR
Antwoord 7.13:
SELECT S.SPELERSNR, S.NAAM
FROM SPELERS AS S INNER JOIN SPELERS AS S27
ON S.PLAATS = S27.PLAATS
AND S27.SPELERSNR = 27
AND S.SPELERSNR <> 27
Antwoord 7.14:
SELECT W.WEDSTRIJDNR, S.NAAM, T.DIVISIE
FROM WEDSTRIJDEN AS W INNER JOIN SPELERS AS S
ON W.SPELERSNR = S.SPELERSNR
INNER JOIN TEAMS AS T
ON W.TEAMNR = T.TEAMNR
Antwoord 7.15:
SELECT SPELERS.SPELERSNR, BOETES.BEDRAG
FROM SPELERS LEFT OUTER JOIN BOETES
ON SPELERS.SPELERSNR = BOETES.SPELERSNR
Antwoord 7.16:
SELECT S.SPELERSNR, W.TEAMNR
FROM SPELERS AS S LEFT OUTER JOIN WEDSTRIJDEN AS W
ON S.SPELERSNR = W.SPELERSNR
Antwoord 7.17:
SELECT S.SPELERSNR, B.BEDRAG, W.TEAMNR
FROM SPELERS AS S LEFT OUTER JOIN WEDSTRIJDEN AS W
ON S.SPELERSNR = W.SPELERSNR
LEFT OUTER JOIN BOETES AS B
ON S.SPELERSNR = B.SPELERSNR
Antwoord 7.21:
SELECT SPELERSNR, VERSCHIL
FROM (SELECT SPELERSNR,
JAARTOE - YEAR(GEB_DATUM) AS VERSCHIL
FROM SPELERS) AS VERSCHILLEN
WHERE VERSCHIL > 20
Antwoord 7.22:
SELECT LETTER1 || LETTER2 || LETTER3
FROM (SELECT 'a' AS LETTER1 UNION SELECT 'b'
UNION SELECT 'c' UNION SELECT 'd') AS LETTERS1,
(SELECT 'a' AS LETTER2 UNION SELECT 'b'
UNION SELECT 'c' UNION SELECT 'd') AS LETTERS2,
(SELECT 'a' AS LETTER3 UNION SELECT 'b'
UNION SELECT 'c' UNION SELECT 'd') AS LETTERS3
Antwoord 7.23:
SELECT ROUND(RAND() * 1000)
FROM (SELECT 0 AS GETAL UNION SELECT 1 UNION SELECT 2
UNION
SELECT 3 UNION SELECT 4 UNION SELECT 5
UNION
SELECT 6 UNION SELECT 7 UNION SELECT 8
UNION
SELECT 9) AS GETALLEN
Voorbeeld 8.1:
SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS = 'Den Haag'
Voorbeeld 8.2:
SELECT SPELERSNR, GEB_DATUM, JAARTOE
FROM SPELERS
WHERE YEAR(GEB_DATUM) + 17 = JAARTOE
Voorbeeld 8.3:
SELECT SPELERSNR
FROM SPELERS
WHERE BONDSNR = '7060'
Voorbeeld 8.4:
SELECT SPELERSNR, BONDSNR
FROM SPELERS
WHERE BONDSNR = BONDSNR
Voorbeeld 8.5:
SELECT SPELERSNR, BONDSNR
FROM SPELERS
WHERE BONDSNR <=> NULL
Voorbeeld 8.6:
SELECT WEDSTRIJDNR
FROM WEDSTRIJDEN
WHERE (GEWONNEN, VERLOREN) = (2, 3)
Voorbeeld 8.7:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR =
(SELECT SPELERSNR
FROM TEAMS
WHERE TEAMNR = 1)
;
SELECT *
FROM SPELERS
WHERE GEB_DATUM <
(SELECT GEB_DATUM
FROM SPELERS)
Voorbeeld 8.8:
SELECT SPELERSNR, NAAM, VOORLETTERS
FROM SPELERS
WHERE GEB_DATUM <
(SELECT GEB_DATUM
FROM SPELERS
WHERE BONDSNR = '8467')
;
SELECT SPELERSNR, NAAM, VOORLETTERS
FROM SPELERS
WHERE GEB_DATUM <
(SELECT GEB_DATUM
FROM SPELERS
WHERE BONDSNR = '9999')
Voorbeeld 8.9:
SELECT WEDSTRIJDNR
FROM WEDSTRIJDEN
WHERE TEAMNR =
(SELECT TEAMNR
FROM TEAMS
WHERE SPELERSNR = 27)
Voorbeeld 8.10:
SELECT SPELERSNR
FROM SPELERS
WHERE BONDSNR <=>
(SELECT BONDSNR
FROM SPELERS
WHERE SPELERSNR = 7)
Voorbeeld 8.11:
SELECT SPELERSNR, PLAATS, GESLACHT
FROM SPELERS
WHERE (PLAATS, GESLACHT) =
((SELECT PLAATS
FROM SPELERS
WHERE SPELERSNR = 7),
(SELECT GESLACHT
FROM SPELERS
WHERE SPELERSNR = 2))
Voorbeeld 8.12:
SELECT DISTINCT SPELERSNR
FROM BESTUURSLEDEN
WHERE (BEGIN_DATUM, EIND_DATUM) =
(SELECT BEGIN_DATUM, EIND_DATUM
FROM BESTUURSLEDEN
WHERE SPELERSNR = 6
AND FUNCTIE = 'Secretaris'
AND BEGIN_DATUM = '1990-01-01')
Voorbeeld 8.13:
SELECT SPELERSNR, NAAM, VOORLETTERS
FROM SPELERS
WHERE (NAAM, VOORLETTERS) <
(SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR = 6)
ORDER BY NAAM, VOORLETTERS
Voorbeeld 8.14:
SELECT WEDSTRIJDNR
FROM WEDSTRIJDEN_SPECIAAL
WHERE (START_DATUM, START_TIJD) >
(SELECT START_DATUM, START_TIJD
FROM WEDSTRIJDEN_SPECIAAL
WHERE WEDSTRIJDNR = 1)
Voorbeeld 8.15:
SELECT WEDSTRIJDNR
FROM WEDSTRIJDEN
WHERE 'Rijswijk' =
(SELECT PLAATS
FROM SPELERS
WHERE SPELERS.SPELERSNR = WEDSTRIJDEN.SPELERSNR)
;
SELECT PLAATS
FROM SPELERS
WHERE SPELERS.SPELERSNR = 6
;
SELECT PLAATS
FROM SPELERS
WHERE SPELERS.SPELERSNR = 44
Voorbeeld 8.16:
SELECT WEDSTRIJDNR, SPELERSNR, TEAMNR
FROM WEDSTRIJDEN
WHERE SPELERSNR =
(SELECT SPELERSNR
FROM TEAMS
WHERE TEAMS.SPELERSNR = WEDSTRIJDEN.SPELERSNR)
Voorbeeld 8.17:
SELECT WEDSTRIJDNR
FROM WEDSTRIJDEN
WHERE SUBSTR((SELECT DIVISIE
FROM TEAMS
WHERE TEAMS.TEAMNR =
WEDSTRIJDEN.TEAMNR),3,1)
=
SUBSTR((SELECT NAAM
FROM SPELERS
WHERE SPELERS.SPELERSNR =
WEDSTRIJDEN.SPELERSNR),3,1)
Voorbeeld 8.18:
SELECT SPELERSNR, BONDSNR
FROM SPELERS
WHERE BONDSNR
Voorbeeld 8.19:
SELECT TEAMNR
FROM TEAMS
WHERE TEAMNR - 1
;
SELECT *
FROM SPELERS
WHERE 18
;
SELECT *
FROM SPELERS
WHERE NULL
;
SELECT *
FROM SPELERS
WHERE SPELERSNR & 3
;
SELECT *
FROM SPELERS
WHERE YEAR(GEB_DATUM)
Voorbeeld 8.20:
SELECT SPELERSNR, NAAM, GESLACHT, GEB_DATUM
FROM SPELERS
WHERE GESLACHT = 'M'
AND GEB_DATUM > '1970-12-31'
Voorbeeld 8.21:
SELECT SPELERSNR, NAAM, PLAATS
FROM SPELERS
WHERE PLAATS = 'Rotterdam'
OR PLAATS = 'Zoetermeer'
Voorbeeld 8.22:
SELECT SPELERSNR, NAAM, PLAATS
FROM SPELERS
WHERE PLAATS <> 'Den Haag'
;
SELECT SPELERSNR, NAAM, PLAATS
FROM SPELERS
WHERE NOT (PLAATS = 'Den Haag')
Voorbeeld 8.23:
SELECT SPELERSNR, BONDSNR, TELEFOON
FROM SPELERS
WHERE BONDSNR AND TELEFOON
Voorbeeld 8.24:
SELECT SPELERSNR, PLAATS, GEB_DATUM
FROM SPELERS
WHERE (PLAATS = 'Den Haag' OR YEAR(GEB_DATUM) = 1963)
AND NOT (PLAATS = 'Den Haag' AND YEAR(GEB_DATUM) = 1963)
;
SELECT SPELERSNR, PLAATS, GEB_DATUM
FROM SPELERS
WHERE (PLAATS = 'Den Haag') XOR (YEAR(GEB_DATUM) = 1963)
Voorbeeld 8.25:
SELECT SPELERSNR, NAAM, PLAATS
FROM SPELERS
WHERE PLAATS = 'Rijswijk'
OR PLAATS = 'Rotterdam'
OR PLAATS = 'Leiden'
OR PLAATS = 'Voorburg'
;
SELECT SPELERSNR, NAAM, PLAATS
FROM SPELERS
WHERE PLAATS IN ('Rijswijk', 'Rotterdam', 'Leiden',
'Voorburg')
Voorbeeld 8.26:
SELECT SPELERSNR, YEAR(GEB_DATUM) AS JAARTAL
FROM SPELERS
WHERE YEAR(GEB_DATUM) IN (1962, 1963, 1970)
Voorbeeld 8.27:
SELECT WEDSTRIJDNR, GEWONNEN, VERLOREN
FROM WEDSTRIJDEN
WHERE 2 IN (GEWONNEN, VERLOREN)
Voorbeeld 8.28:
SELECT SPELERSNR
FROM SPELERS
WHERE SPELERSNR IN
(100,
(SELECT SPELERSNR
FROM BOETES
WHERE BETALINGSNR = 1),
(SELECT SPELERSNR
FROM TEAMS
WHERE TEAMNR = 2))
Voorbeeld 8.29:
SELECT WEDSTRIJDNR, GEWONNEN, VERLOREN
FROM WEDSTRIJDEN
WHERE GEWONNEN IN
(TRUNCATE(WEDSTRIJDNR / 2,0), VERLOREN,
(SELECT VERLOREN
FROM WEDSTRIJDEN
WHERE WEDSTRIJDNR = 1))
Voorbeeld 8.30:
SELECT WEDSTRIJDNR
FROM WEDSTRIJDEN
WHERE (SELECT SUBSTR(NAAM,1,1)
FROM SPELERS
WHERE SPELERS.SPELERSNR = WEDSTRIJDEN.SPELERSNR)
IN ('B','C','E')
Voorbeeld 8.31:
SELECT WEDSTRIJDNR, GEWONNEN, VERLOREN
FROM WEDSTRIJDEN
WHERE (GEWONNEN, VERLOREN) IN ((3,1),(3,2))
Voorbeeld 8.32:
SELECT SPELERSNR, NAAM, VOORLETTERS
FROM SPELERS
WHERE (NAAM, VOORLETTERS) IN
((SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR = 6),
(SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR = 27))
Voorbeeld 8.33:
SELECT SPELERSNR
FROM WEDSTRIJDEN
;
SELECT SPELERSNR, NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR IN (6, 6, 6, 44, 83, 2, 57, 8, 27,
104, 112, 112, 8)
;
SELECT SPELERSNR, NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN)
;
SELECT SPELERSNR, NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR IN (6, 6, 6, 44, 83, 2, 57, 8, 27,
104, 112, 112, 8)
Voorbeeld 8.34:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR = 1)
Voorbeeld 8.35:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR NOT IN
(SELECT TEAMNR
FROM TEAMS
WHERE SPELERSNR = 6))
Voorbeeld 8.36:
SELECT *
FROM BESTUURSLEDEN
WHERE SPELERSNR = 95
AND EIND_DATUM IN
(SELECT EIND_DATUM
FROM BESTUURSLEDEN
WHERE SPELERSNR = 27)
Voorbeeld 8.37:
SELECT *
FROM BESTUURSLEDEN
WHERE SPELERSNR = 57
AND EIND_DATUM IN
(SELECT EIND_DATUM
FROM BESTUURSLEDEN
WHERE SPELERSNR = 7)
Voorbeeld 8.38:
SELECT *
FROM BESTUURSLEDEN
WHERE SPELERSNR = 95
AND EIND_DATUM NOT IN
(SELECT EIND_DATUM
FROM BESTUURSLEDEN
WHERE SPELERSNR = 7)
Voorbeeld 8.39:
SELECT *
FROM BESTUURSLEDEN
WHERE (BEGIN_DATUM, EIND_DATUM) IN
(SELECT BEGIN_DATUM, EIND_DATUM
FROM BESTUURSLEDEN
WHERE FUNCTIE = 'Secretaris')
Voorbeeld 8.40:
CREATE TABLE SPELERS_NV
(NAAM CHAR(10) NOT NULL,
VOORLETTERS CHAR(3) NOT NULL,
PLAATS VARCHAR(30) NOT NULL,
PRIMARY KEY (NAAM, VOORLETTERS))
;
INSERT INTO SPELERS_NV VALUES ('Permentier', 'R', 'Den Haag')
;
INSERT INTO SPELERS_NV VALUES ('Permentier', 'P', 'Den Haag')
;
INSERT INTO SPELERS_NV VALUES ('Meuleman', 'P', 'Voorburg')
;
CREATE TABLE BOETES_NV
(BETALINGSNR INTEGER NOT NULL,
NAAM CHAR(10) NOT NULL,
VOORLETTERS CHAR(3) NOT NULL,
BEDRAG DECIMAL(7,2) NOT NULL,
PRIMARY KEY (BETALINGSNR),
FOREIGN KEY (NAAM, VOORLETTERS)
REFERENCES SPELERS_NV (NAAM, VOORLETTERS))
;
INSERT INTO BOETES_NV VALUES (1, 'Permentier', 'R', 100.00)
;
INSERT INTO BOETES_NV VALUES (2, 'Meuleman', 'P', 200.00)
Voorbeeld 8.41:
SELECT NAAM, VOORLETTERS, PLAATS
FROM SPELERS_NV
WHERE NAAM IN
(SELECT NAAM
FROM BOETES_NV)
AND VOORLETTERS IN
(SELECT VOORLETTERS
FROM BOETES_NV)
;
SELECT NAAM, VOORLETTERS, PLAATS
FROM SPELERS_NV
WHERE (NAAM, VOORLETTERS) IN
(SELECT NAAM, VOORLETTERS
FROM BOETES_NV)
;
SELECT NAAM, VOORLETTERS, PLAATS
FROM SPELERS_NV
WHERE NAAM IN
(SELECT NAAM
FROM BOETES_NV
WHERE SPELERS_NV.VOORLETTERS =
BOETES_NV.VOORLETTERS)
Voorbeeld 8.42:
SELECT NAAM, VOORLETTERS, PLAATS
FROM SPELERS_NV
WHERE (NAAM, VOORLETTERS) NOT IN
(SELECT NAAM, VOORLETTERS
FROM BOETES_NV)
Voorbeeld 8.43:
SELECT SPELERSNR, GEB_DATUM
FROM SPELERS
WHERE GEB_DATUM >= '1962-01-01'
AND GEB_DATUM <= '1964-12-31'
;
SELECT SPELERSNR, GEB_DATUM
FROM SPELERS
WHERE GEB_DATUM BETWEEN '1962-01-01' AND '1964-12-31'
Voorbeeld 8.44:
SELECT WEDSTRIJDNR, GEWONNEN + VERLOREN
FROM WEDSTRIJDEN
WHERE GEWONNEN + VERLOREN BETWEEN 2 AND 4
Voorbeeld 8.45:
SELECT SPELERSNR, GEB_DATUM, NAAM, VOORLETTERS
FROM SPELERS
WHERE GEB_DATUM BETWEEN
(SELECT GEB_DATUM
FROM SPELERS
WHERE NAAM = 'Niewenburg'
AND VOORLETTERS = 'B')
AND
(SELECT GEB_DATUM
FROM SPELERS
WHERE NAAM = 'Meuleman'
AND VOORLETTERS = 'P')
Voorbeeld 8.46:
SELECT NAAM, SPELERSNR
FROM SPELERS
WHERE NAAM LIKE 'B%'
Voorbeeld 8.47:
SELECT NAAM, SPELERSNR
FROM SPELERS
WHERE NAAM LIKE '%n'
Voorbeeld 8.48:
SELECT NAAM, SPELERSNR
FROM SPELERS
WHERE NAAM LIKE '%a_'
Voorbeeld 8.49:
SELECT NAAM, PLAATS, SPELERSNR
FROM SPELERS
WHERE NAAM LIKE CONCAT('%', SUBSTR(PLAATS,3,1))
Voorbeeld 8.50:
SELECT NAAM, SPELERSNR
FROM SPELERS
WHERE NAAM LIKE '%#_%' ESCAPE '#'
Voorbeeld 8.51:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM REGEXP 'b'
Voorbeeld 8.52:
SELECT NAAM, SPELERSNR
FROM SPELERS
WHERE NAAM REGEXP '^ba'
Voorbeeld 8.53:
SELECT NAAM, PLAATS, SPELERSNR
FROM SPELERS
WHERE NAAM REGEXP CONCAT(SUBSTR(PLAATS,1,1), '$')
Voorbeeld 8.54:
SELECT NAAM, SPELERSNR
FROM SPELERS
WHERE NAAM REGEXP '[abc]'
Voorbeeld 8.55:
SELECT NAAM, SPELERSNR
FROM SPELERS
WHERE NAAM REGEXP 'm.n'
Voorbeeld 8.56:
SELECT NAAM, SPELERSNR
FROM SPELERS
WHERE NAAM REGEXP '[men][men]'
Voorbeeld 8.57:
SELECT SPELERSNR, POSTCODE
FROM SPELERS
WHERE POSTCODE REGEXP '^[0-9][0-9]3'
Voorbeeld 8.58:
SELECT NAAM, SPELERSNR
FROM SPELERS
WHERE NAAM REGEXP '^bo.*van$'
Voorbeeld 8.59:
SELECT SPELERSNR, POSTCODE
FROM SPELERS
WHERE POSTCODE REGEXP '[0-9][0-9]*[a-z][a-z]*'
Voorbeeld 8.60:
SELECT NAAM, SPELERSNR
FROM SPELERS
WHERE NAAM REGEXP '^[^A-M]'
Voorbeeld 8.61:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM REGEXP '^[a-z]{8}'
Voorbeeld 8.62:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM REGEXP '^[a-z]{5,7}$'
Voorbeeld 8.63:
SELECT SPELERSNR, POSTCODE
FROM SPELERS
WHERE POSTCODE REGEXP '4{4}'
Voorbeeld 8.64:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM REGEXP 'man|van'
Voorbeeld 8.65:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM REGEXP '[[.space.]]'
Voorbeeld 8.66:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM REGEXP '[[:<:]]van[[:>:]]'
Voorbeeld 8.67:
CREATE TABLE BOEKEN
(BOEKNR INTEGER NOT NULL PRIMARY KEY,
AUTEURS TEXT NOT NULL,
TITEL TEXT NOT NULL,
JAAR_UITGIFTE YEAR NOT NULL,
SAMENVATTING TEXT NOT NULL)
ENGINE = MyISAM
Voorbeeld 8.68:
SET @@SQL_MODE = 'PIPES_AS_CONCAT'
;
INSERT INTO BOEKEN VALUES (1,
'Ramez Elmasri and Shamkant B. Navathe',
'Fundamentals of Database Systems', 2007,
'This market-leading text serves as a valued resource for '||
'those who will interact with databases in future courses '||
'and careers. Renowned for its accessible, comprehensive '||
'coverage of models and real systems, it provides an '||
'up-to-date introduction to modern database technologies.')
;
INSERT INTO BOEKEN VALUES (2,
'George Coulouris, Jean Dollimore and Tim Kindberg',
'Distributed Systems: Concepts and Design', 2005,
'This book provides broad and up-to-date coverage of the '||
'principles and practice in the fast moving area of '||
'distributed systems. It includes the key issues in the '||
'debate between components and web services as the way '||
'forward for industry. The depth of coverage will enable '||
'students to evaluate existing distributed systems and '||
'design new ones.')
;
INSERT INTO BOEKEN VALUES (3,
'Rick van der Lans',
'Introduction to SQL: Mastering the Relational Database '||
'Language', 2007,
'This book provides a technical introduction to the '||
'features of SQL. Aimed at those new to SQL, but not new '||
'to programming, it gives the reader the essential skills '||
'required to start programming with this language.')
;
INSERT INTO BOEKEN VALUES (4,
'Chris Date',
'An Introduction to Database Systems', 2004,
'Continuing in the eighth edition, this book provides a '||
'comprehensive introduction to the now very large field of '||
'database systems by providing a solid grounding in the '||
'foundations of database technology. This new edition has '||
'been rewritten and expanded to stay current with database '||
'system trends.')
;
INSERT INTO BOEKEN VALUES (5,
'Thomas M. Connolly and Carolyn E. Begg',
'DataBase Systems: A Practical Approach to Design, '||
'Implementation and Management',
2005,
'A clear introduction to design implementation and management '||
'issues, as well as an extensive treatment of database '||
'languages and standards, make this book an indispensable '||
'complete reference for database students and professionals.')
Voorbeeld 8.69:
CREATE FULLTEXT INDEX INDEX_TITEL
ON BOEKEN (TITEL)
;
CREATE FULLTEXT INDEX INDEX_SAMENVATTING
ON BOEKEN (SAMENVATTING)
Voorbeeld 8.70:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('design')
;
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL)
AGAINST ('design' IN NATURAL LANGUAGE MODE)
Voorbeeld 8.71:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('to')
Voorbeeld 8.72:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('database')
Voorbeeld 8.73:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('practical')
Voorbeeld 8.74:
SELECT BOEKNR, MATCH(SAMENVATTING) AGAINST ('distributed')
FROM BOEKEN
Voorbeeld 8.75:
SELECT BOEKNR, MATCH(TITEL) AGAINST ('introduction')
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('introduction')
Voorbeeld 8.76:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('practical distributed')
Voorbeeld 8.77:
CREATE FULLTEXT INDEX INDEX_TITEL_SAMENVATTING
ON BOEKEN (TITEL, SAMENVATTING)
Voorbeeld 8.78:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL, SAMENVATTING) AGAINST ('careers')
Voorbeeld 8.79:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('database' IN BOOLEAN MODE)
Voorbeeld 8.80:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL, SAMENVATTING)
AGAINST ('introduction' IN BOOLEAN MODE)
Voorbeeld 8.81:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL)
AGAINST ('database design' IN BOOLEAN MODE)
Voorbeeld 8.82:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL)
AGAINST ('+database +design' IN BOOLEAN MODE)
Voorbeeld 8.83:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL)
AGAINST ('+database -design' IN BOOLEAN MODE)
Voorbeeld 8.84:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL)
AGAINST ('"design implementation"' IN BOOLEAN MODE)
Voorbeeld 8.85:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('data*' IN BOOLEAN MODE)
Voorbeeld 8.86:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('practical'
IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION)
;
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('practical')
;
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST (' DataBase Systems: A Practical
Approach to Design, Implementation and Management')
Voorbeeld 8.87:
SELECT BOEKNR, TITEL
FROM BOEKEN
WHERE MATCH(TITEL) AGAINST ('sql')
Voorbeeld 8.88:
SELECT SPELERSNR, BONDSNR
FROM SPELERS
WHERE BONDSNR IS NOT NULL
Voorbeeld 8.89:
SELECT NAAM, SPELERSNR, BONDSNR
FROM SPELERS
WHERE BONDSNR <> '8467'
OR BONDSNR IS NULL
Voorbeeld 8.90:
SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES)
;
SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE EXISTS
(SELECT *
FROM BOETES
WHERE SPELERSNR = SPELERS.SPELERSNR)
;
SELECT *
FROM BOETES
WHERE SPELERSNR = 6
Voorbeeld 8.91:
SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE NOT EXISTS
(SELECT *
FROM TEAMS
WHERE SPELERSNR = SPELERS.SPELERSNR)
;
SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE NOT EXISTS
(SELECT 'niets'
FROM TEAMS
WHERE SPELERSNR = SPELERS.SPELERSNR)
Voorbeeld 8.92:
SELECT SPELERSNR, NAAM, GEB_DATUM
FROM SPELERS
WHERE GEB_DATUM <= ALL
(SELECT GEB_DATUM
FROM SPELERS)
Voorbeeld 8.93:
SELECT SPELERSNR, GEB_DATUM
FROM SPELERS
WHERE GEB_DATUM < ALL
(SELECT GEB_DATUM
FROM SPELERS AS S INNER JOIN WEDSTRIJDEN AS W
ON S.SPELERSNR = W.SPELERSNR
WHERE W.TEAMNR = 2)
Voorbeeld 8.94:
SELECT DISTINCT TEAMNR, SPELERSNR
FROM WEDSTRIJDEN AS W1
WHERE GEWONNEN <= ALL
(SELECT GEWONNEN
FROM WEDSTRIJDEN AS W2
WHERE W1.TEAMNR = W2.TEAMNR)
Voorbeeld 8.95:
SELECT BONDSNR, SPELERSNR
FROM SPELERS
WHERE BONDSNR >= ALL
(SELECT BONDSNR
FROM SPELERS)
;
SELECT BONDSNR, SPELERSNR
FROM SPELERS
WHERE BONDSNR >= ALL
(SELECT BONDSNR
FROM SPELERS
WHERE BONDSNR IS NOT NULL)
Voorbeeld 8.96:
SELECT SPELERSNR, PLAATS, BONDSNR
FROM SPELERS AS S1
WHERE BONDSNR <= ALL
(SELECT S2.BONDSNR
FROM SPELERS AS S2
WHERE S1.PLAATS = S2.PLAATS)
;
SELECT SPELERSNR, PLAATS, BONDSNR
FROM SPELERS AS S1
WHERE BONDSNR <= ALL
(SELECT S2.BONDSNR
FROM SPELERS AS S2
WHERE S1.PLAATS = S2.PLAATS
AND BONDSNR IS NOT NULL)
Voorbeeld 8.97:
SELECT SPELERSNR, NAAM, GEB_DATUM
FROM SPELERS
WHERE GEB_DATUM > ANY
(SELECT GEB_DATUM
FROM SPELERS)
Voorbeeld 8.98:
SELECT DISTINCT SPELERSNR
FROM BOETES
WHERE SPELERSNR <> 27
AND BEDRAG > ANY
(SELECT BEDRAG
FROM BOETES
WHERE SPELERSNR = 27)
Voorbeeld 8.99:
SELECT SPELERSNR, GEB_DATUM, PLAATS
FROM SPELERS AS S1
WHERE GEB_DATUM > ANY
(SELECT GEB_DATUM
FROM SPELERS AS S2
WHERE S1.PLAATS = S2.PLAATS)
Voorbeeld 8.100:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE EXISTS
(SELECT *
FROM BOETES
WHERE SPELERS.SPELERSNR = SPELERSNR)
;
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE EXISTS
(SELECT *
FROM BOETES
WHERE SPELERS.SPELERSNR = SPELERS.SPELERSNR)
;
SELECT SPELERSNR, NAAM
FROM SPELERS AS S
WHERE EXISTS
(SELECT *
FROM BOETES AS BT
WHERE S.SPELERSNR = BT.SPELERSNR)
Voorbeeld 8.101:
SELECT TEAMNR, DIVISIE
FROM TEAMS
WHERE EXISTS
(SELECT *
FROM WEDSTRIJDEN
WHERE SPELERSNR = 44
AND TEAMNR = TEAMS.TEAMNR)
Voorbeeld 8.102:
SELECT DISTINCT SPELERSNR
FROM BOETES AS BT
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES
WHERE BETALINGSNR <> BT.BETALINGSNR)
Voorbeeld 8.103:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE 1 <> ALL
(SELECT TEAMNR
FROM WEDSTRIJDEN
WHERE SPELERSNR = SPELERS.SPELERSNR)
Voorbeeld 8.104:
SELECT TEAMNR
FROM TEAMS
WHERE NOT EXISTS
(SELECT *
FROM WEDSTRIJDEN
WHERE SPELERSNR = 57
AND TEAMNR = TEAMS.TEAMNR)
Voorbeeld 8.105:
SELECT SPELERSNR
FROM SPELERS AS S
WHERE NOT EXISTS
(SELECT *
FROM TEAMS AS T
WHERE NOT EXISTS
(SELECT *
FROM WEDSTRIJDEN AS W
WHERE T.TEAMNR = W.TEAMNR
AND S.SPELERSNR = W.SPELERSNR))
;
SELECT *
FROM TEAMS AS T
WHERE NOT EXISTS
(SELECT *
FROM WEDSTRIJDEN AS W
WHERE T.TEAMNR = W.TEAMNR
AND W.SPELERSNR = 27)
Voorbeeld 8.106:
SELECT SPELERSNR
FROM SPELERS
WHERE NOT EXISTS
(SELECT *
FROM WEDSTRIJDEN AS W1
WHERE SPELERSNR = 57
AND NOT EXISTS
(SELECT *
FROM WEDSTRIJDEN AS W2
WHERE W1.TEAMNR = W2.TEAMNR
AND SPELERS.SPELERSNR =
W2.SPELERSNR))
Voorbeeld 8.107:
SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR IN
(SELECT TEAMNR
FROM TEAMS
WHERE TEAMNR NOT IN
(SELECT TEAMNR
FROM WEDSTRIJDEN
WHERE SPELERSNR = 57))
;
SELECT SPELERSNR
FROM SPELERS AS S
WHERE NOT EXISTS
(SELECT *
FROM WEDSTRIJDEN AS W1
WHERE SPELERSNR = 57
AND NOT EXISTS
(SELECT *
FROM WEDSTRIJDEN AS W2
WHERE W1.TEAMNR = W2.TEAMNR
AND S.SPELERSNR = W2.SPELERSNR))
AND SPELERSNR NOT IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR IN
(SELECT TEAMNR
FROM TEAMS
WHERE TEAMNR NOT IN
(SELECT TEAMNR
FROM WEDSTRIJDEN
WHERE SPELERSNR = 57)))
Voorbeeld 8.108:
SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS = 'Den Haag'
;
SELECT SPELERSNR
FROM SPELERS
WHERE NOT (PLAATS = 'Den Haag')
;
SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS <> 'Den Haag'
Voorbeeld 8.109:
SELECT SPELERSNR
FROM BOETES
WHERE BEDRAG = 25
;
SELECT SPELERSNR
FROM BOETES
WHERE BEDRAG <> 25
;
SELECT SPELERSNR
FROM SPELERS
WHERE SPELERSNR NOT IN
(SELECT SPELERSNR
FROM BOETES
WHERE BEDRAG = 25)
;
SELECT SPELERSNR
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES
WHERE BEDRAG = 25)
Antwoord 8.1:
SELECT BETALINGSNR
FROM BOETES
WHERE BEDRAG > 60
;
SELECT BETALINGSNR
FROM BOETES
WHERE 60 < BEDRAG
;
SELECT BETALINGSNR
FROM BOETES
WHERE BEDRAG - 60 > 0
Antwoord 8.2:
SELECT TEAMNR
FROM TEAMS
WHERE SPELERSNR <> 27
Antwoord 8.4:
SELECT DISTINCT SPELERSNR
FROM WEDSTRIJDEN
WHERE GEWONNEN > VERLOREN
Antwoord 8.5:
SELECT DISTINCT SPELERSNR
FROM WEDSTRIJDEN
WHERE GEWONNEN + VERLOREN = 5
Antwoord 8.6:
SELECT SPELERSNR, NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR =
(SELECT SPELERSNR
FROM BOETES
WHERE BETALINGSNR = 4)
Antwoord 8.7:
SELECT SPELERSNR, NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR =
(SELECT SPELERSNR
FROM TEAMS
WHERE TEAMNR =
(SELECT TEAMNR
FROM WEDSTRIJDEN
WHERE WEDSTRIJDNR = 2))
Antwoord 8.8:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE GEB_DATUM =
(SELECT GEB_DATUM
FROM SPELERS
WHERE NAAM = 'Permentier'
AND VOORLETTERS = 'R')
AND NOT (NAAM = 'Permentier'
AND VOORLETTERS = 'R')
Antwoord 8.9:
SELECT WEDSTRIJDNR
FROM WEDSTRIJDEN
WHERE GEWONNEN =
(SELECT GEWONNEN
FROM WEDSTRIJDEN
WHERE WEDSTRIJDNR = 6)
AND WEDSTRIJDNR <> 6
AND TEAMNR = 2
Antwoord 8.10:
SELECT WEDSTRIJDNR
FROM WEDSTRIJDEN
WHERE (GEWONNEN, VERLOREN) =
((SELECT GEWONNEN
FROM WEDSTRIJDEN
WHERE WEDSTRIJDNR = 2),
(SELECT VERLOREN
FROM WEDSTRIJDEN
WHERE WEDSTRIJDNR = 8))
Antwoord 8.11:
SELECT SPELERSNR, PLAATS, STRAAT, HUISNR
FROM SPELERS
WHERE (PLAATS, STRAAT, HUISNR) <
(SELECT PLAATS, STRAAT, HUISNR
FROM SPELERS
WHERE SPELERSNR = 100)
ORDER BY PLAATS, STRAAT, HUISNR
Antwoord 8.12:
SELECT BETALINGSNR
FROM BOETES
WHERE 1965 <
(SELECT YEAR(GEB_DATUM)
FROM SPELERS
WHERE SPELERS.SPELERSNR = BOETES.SPELERSNR)
Antwoord 8.13:
SELECT BETALINGSNR, SPELERSNR
FROM BOETES
WHERE SPELERSNR =
(SELECT SPELERSNR
FROM TEAMS
WHERE TEAMS.SPELERSNR = BOETES.SPELERSNR)
Antwoord 8.14:
SELECT SPELERSNR, NAAM, PLAATS
FROM SPELERS
WHERE GESLACHT = 'V'
AND PLAATS <> 'Den Haag'
;
SELECT SPELERSNR, NAAM, PLAATS
FROM SPELERS
WHERE GESLACHT = 'V'
AND NOT (PLAATS = 'Den Haag')
Antwoord 8.15:
SELECT SPELERSNR
FROM SPELERS
WHERE JAARTOE >= 1970
AND JAARTOE <= 1980
;
SELECT SPELERSNR
FROM SPELERS
WHERE NOT (JAARTOE < 1970 OR JAARTOE > 1980)
Antwoord 8.16:
SELECT SPELERSNR, NAAM, GEB_DATUM
FROM SPELERS
WHERE MOD(YEAR(GEB_DATUM), 400) = 0
OR (MOD(YEAR(GEB_DATUM), 4) = 0
AND NOT(MOD(YEAR(GEB_DATUM), 100) = 0))
Antwoord 8.17:
SELECT WEDSTRIJDNR, NAAM, VOORLETTERS, DIVISIE
FROM WEDSTRIJDEN AS W, SPELERS AS S, TEAMS AS T
WHERE W.SPELERSNR = S.SPELERSNR
AND W.TEAMNR = T.TEAMNR
AND YEAR(GEB_DATUM) > 1965
AND GEWONNEN > VERLOREN
Antwoord 8.18:
SELECT BETALINGSNR
FROM BOETES
WHERE BEDRAG IN (50, 75, 100)
Antwoord 8.19:
SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS NOT IN ('Den Haag', 'Voorburg')
;
SELECT SPELERSNR
FROM SPELERS
WHERE NOT (PLAATS IN ('Den Haag', 'Voorburg'))
;
SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS <> 'Den Haag'
AND PLAATS <> 'Voorburg'
Antwoord 8.20:
SELECT BETALINGSNR
FROM BOETES
WHERE BEDRAG IN
(100, BETALINGSNR * 5,
(SELECT BEDRAG
FROM BOETES
WHERE BETALINGSNR = 2))
Antwoord 8.21:
SELECT SPELERSNR, PLAATS, STRAAT
FROM SPELERS
WHERE (PLAATS, STRAAT) IN
(('Den Haag','Hazensteinln'),
('Den Haag','Erasmusweg'))
Antwoord 8.22:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES)
Antwoord 8.23:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES
WHERE BEDRAG > 50)
Antwoord 8.24:
SELECT TEAMNR, SPELERSNR
FROM TEAMS
WHERE DIVISIE = 'ere'
AND SPELERSNR IN
(SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS = 'Den Haag')
Antwoord 8.25:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES)
AND SPELERSNR NOT IN
(SELECT SPELERSNR
FROM TEAMS
WHERE DIVISIE = 'ere')
;
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES
WHERE SPELERSNR NOT IN
(SELECT SPELERSNR
FROM TEAMS
WHERE DIVISIE = 'ere'))
Antwoord 8.27:
SELECT WEDSTRIJDNR, SPELERSNR
FROM WEDSTRIJDEN
WHERE (GEWONNEN, VERLOREN) IN
(SELECT GEWONNEN, VERLOREN
FROM WEDSTRIJDEN
WHERE TEAMNR IN
(SELECT TEAMNR
FROM TEAMS
WHERE DIVISIE = 'tweede'))
Antwoord 8.28:
SELECT SPELERSNR, NAAM
FROM SPELERS AS S1
WHERE (PLAATS, STRAAT, HUISNR, POSTCODE) IN
(SELECT PLAATS, STRAAT, HUISNR, POSTCODE
FROM SPELERS AS S2
WHERE S1.SPELERSNR <> S2.SPELERSNR)
Antwoord 8.29:
SELECT BETALINGSNR
FROM BOETES
WHERE BEDRAG BETWEEN 50 AND 100
Antwoord 8.30:
SELECT BETALINGSNR
FROM BOETES
WHERE NOT (BEDRAG BETWEEN 50 AND 100)
;
SELECT BETALINGSNR
FROM BOETES
WHERE BEDRAG NOT BETWEEN 50 AND 100
;
SELECT BETALINGSNR
FROM BOETES
WHERE BEDRAG < 50
OR BEDRAG > 100
Antwoord 8.31:
SELECT SPELERSNR
FROM SPELERS
WHERE JAARTOE BETWEEN
YEAR(GEB_DATUM + INTERVAL 16 YEAR + INTERVAL 1 DAY)
AND YEAR(GEB_DATUM + INTERVAL 40 YEAR + INTERVAL -1 DAY)
Antwoord 8.32:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM LIKE '%en%'
Antwoord 8.33:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM LIKE '______'
Antwoord 8.34:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM LIKE '______%'
;
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM LIKE '%______'
;
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM LIKE '%______%'
;
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE LENGTH(RTRIM(NAAM)) > 6
Antwoord 8.35:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM LIKE '_e%e_'
Antwoord 8.36:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE PLAATS LIKE '_@%%@%_' ESCAPE '@'
Antwoord 8.37:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM REGEXP 'en'
Antwoord 8.38:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM REGEXP '^n.*g$'
Antwoord 8.39:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE NAAM REGEXP '[a-z]{10}'
Antwoord 8.40:
SELECT BOEKNR, SAMENVATTING
FROM BOEKEN
WHERE MATCH(SAMENVATTING)
AGAINST ('students' IN NATURAL LANGUAGE MODE)
Antwoord 8.41:
SELECT BOEKNR, SAMENVATTING
FROM BOEKEN
WHERE MATCH(SAMENVATTING)
AGAINST ('database' IN BOOLEAN MODE)
Antwoord 8.42:
SELECT BOEKNR, SAMENVATTING
FROM BOEKEN
WHERE MATCH(SAMENVATTING)
AGAINST ('database languages'
IN NATURAL LANGUAGE MODE)
Antwoord 8.43:
SELECT BOEKNR, SAMENVATTING
FROM BOEKEN
WHERE MATCH(SAMENVATTING)
AGAINST ('+database -languages' IN BOOLEAN MODE)
Antwoord 8.44:
SELECT SPELERSNR
FROM SPELERS
WHERE BONDSNR IS NULL
Antwoord 8.46:
SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE EXISTS
(SELECT *
FROM TEAMS
WHERE SPELERSNR = SPELERS.SPELERSNR)
Antwoord 8.47:
SELECT NAAM, VOORLETTERS
FROM SPELERS AS S
WHERE NOT EXISTS
(SELECT *
FROM TEAMS AS T
WHERE T.SPELERSNR = S.SPELERSNR
AND EXISTS
(SELECT *
FROM WEDSTRIJDEN AS W
WHERE W.TEAMNR = T.TEAMNR
AND W.SPELERSNR = 112))
Antwoord 8.48:
SELECT SPELERSNR
FROM SPELERS
WHERE GEB_DATUM <= ALL
(SELECT GEB_DATUM
FROM SPELERS
WHERE PLAATS = 'Den Haag')
AND PLAATS = 'Den Haag'
Antwoord 8.49:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR = ANY
(SELECT SPELERSNR
FROM BOETES)
Antwoord 8.50:
SELECT BETALINGSNR, BEDRAG, DATUM
FROM BOETES AS B1
WHERE BEDRAG >= ALL
(SELECT BEDRAG
FROM BOETES AS B2
WHERE YEAR(B1.DATUM) = YEAR(B2.DATUM))
Antwoord 8.51:
SELECT (SELECT SPELERSNR
FROM SPELERS
WHERE SPELERSNR <= ALL
(SELECT SPELERSNR
FROM SPELERS)),
(SELECT SPELERSNR
FROM SPELERS
WHERE SPELERSNR >= ALL
(SELECT SPELERSNR
FROM SPELERS))
Antwoord 8.53:
SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR IN
(SELECT TEAMNR
FROM TEAMS
WHERE DIVISIE = 'ere'))
AND SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE GEWONNEN > VERLOREN)
AND SPELERSNR NOT IN
(SELECT SPELERSNR
FROM BOETES)
Antwoord 8.54:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR = 1)
AND SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR = 2)
Antwoord 8.55:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE EXISTS
(SELECT *
FROM BOETES
WHERE SPELERSNR = SPELERS.SPELERSNR)
Antwoord 8.56:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN AS W1
WHERE GEWONNEN > VERLOREN
AND EXISTS
(SELECT *
FROM WEDSTRIJDEN AS W2
WHERE W1.SPELERSNR = W2.SPELERSNR
AND GEWONNEN > VERLOREN
AND W1.WEDSTRIJDNR <> W2.WEDSTRIJDNR))
;
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE 1 < (SELECT COUNT(*)
FROM WEDSTRIJDEN
WHERE GEWONNEN > VERLOREN
AND SPELERS.SPELERSNR = SPELERSNR)
Antwoord 8.57:
SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE NOT EXISTS
(SELECT *
FROM BOETES
WHERE SPELERS.SPELERSNR = SPELERSNR
AND DATUM BETWEEN '1980-01-01'
AND '1980-12-31')
Antwoord 8.58:
SELECT DISTINCT SPELERSNR
FROM BOETES AS B1
WHERE EXISTS
(SELECT *
FROM BOETES AS B2
WHERE B1.BEDRAG = B2.BEDRAG
AND B1.BETALINGSNR <> B2.BETALINGSNR)
Antwoord 8.59:
SELECT SPELERSNR
FROM SPELERS
WHERE SPELERSNR NOT IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN WHERE GEWONNEN = 3)
Antwoord 8.60:
SELECT TEAMNR, DIVISIE
FROM TEAMS
WHERE TEAMNR NOT IN
(SELECT TEAMNR
FROM WEDSTRIJDEN
WHERE SPELERSNR = 6)
Antwoord 8.61:
SELECT DISTINCT SPELERSNR
FROM WEDSTRIJDEN
WHERE SPELERSNR NOT IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR IN
(SELECT TEAMNR
FROM WEDSTRIJDEN
WHERE SPELERSNR = 57))
Voorbeeld 9.1:
SELECT *
FROM BOETES
;
SELECT BETALINGSNR, SPELERSNR, DATUM, BEDRAG
FROM BOETES
;
SELECT BOETES.*
FROM BOETES
Voorbeeld 9.2:
SELECT BOETES.*
FROM BOETES INNER JOIN TEAMS
ON BOETES.SPELERSNR = TEAMS.SPELERSNR
;
SELECT BOETES.BETALINGSNR, BOETES.SPELERSNR,
BOETES.DATUM, BOETES.BEDRAG
FROM BOETES INNER JOIN TEAMS
ON BOETES.SPELERSNR = TEAMS.SPELERSNR
;
SELECT BT.*
FROM BOETES AS BT INNER JOIN TEAMS
ON BT.SPELERSNR = TEAMS.SPELERSNR
Voorbeeld 9.3:
SELECT WEDSTRIJDNR, 'Saldo', GEWONNEN - VERLOREN,
GEWONNEN * 10
FROM WEDSTRIJDEN
Voorbeeld 9.4:
SELECT PLAATS
FROM SPELERS
;
SELECT DISTINCT PLAATS
FROM SPELERS
Voorbeeld 9.5:
SELECT STRAAT, PLAATS
FROM SPELERS
;
SELECT DISTINCT STRAAT, PLAATS
FROM SPELERS
;
SELECT PLAATS
FROM SPELERS
;
SELECT ALL PLAATS
FROM SPELERS
Voorbeeld 9.6:
SELECT DISTINCT BONDSNR
FROM SPELERS
Voorbeeld 9.7:
SELECT DISTINCT *
FROM (SELECT 1 AS A, 'Hello' AS B, 4 AS C UNION
SELECT 1, 'Hello', NULL UNION
SELECT 1, 'Hello', NULL UNION
SELECT 1, NULL, NULL) AS X
Voorbeeld 9.8:
SELECT COUNT(*)
FROM SPELERS
Voorbeeld 9.9:
SELECT COUNT(*)
FROM SPELERS
WHERE PLAATS = 'Den Haag'
;
SELECT COUNT(*), SPELERSNR
FROM SPELERS
;
SELECT 'Het aantal spelers is', COUNT(*)
FROM SPELERS
Voorbeeld 9.10:
SELECT COUNT(BONDSNR)
FROM SPELERS
;
SELECT COUNT(ALL BONDSNR)
FROM SPELERS
Voorbeeld 9.11:
SELECT COUNT(DISTINCT PLAATS)
FROM SPELERS
Voorbeeld 9.12:
SELECT COUNT(DISTINCT SUBSTR(NAAM, 1, 1))
FROM SPELERS
Voorbeeld 9.13:
SELECT COUNT(DISTINCT YEAR(DATUM)) AS JAREN
FROM BOETES
Voorbeeld 9.14:
SELECT COUNT(DISTINCT PLAATS), COUNT(DISTINCT GESLACHT)
FROM SPELERS
Voorbeeld 9.15:
SELECT SPELERSNR, NAAM
FROM SPELERS AS S
WHERE (SELECT COUNT(*)
FROM BOETES AS BT
WHERE S.SPELERSNR = BT.SPELERSNR)
>
(SELECT COUNT(*)
FROM WEDSTRIJDEN AS W
WHERE S.SPELERSNR = W.SPELERSNR)
Voorbeeld 9.16:
SELECT SPELERSNR, NAAM,
(SELECT COUNT(*)
FROM BOETES
WHERE BOETES.SPELERSNR = SPELERS.SPELERSNR)
AS AANTAL
FROM SPELERS
WHERE (SELECT COUNT(*)
FROM BOETES
WHERE BOETES.SPELERSNR = SPELERS.SPELERSNR) >= 2
;
SELECT SPELERSNR, NAAM, AANTAL
FROM (SELECT SPELERSNR, NAAM,
(SELECT COUNT(*)
FROM BOETES
WHERE BOETES.SPELERSNR = SPELERS.SPELERSNR)
AS AANTAL
FROM SPELERS) AS SA
WHERE AANTAL >= 2
Voorbeeld 9.17:
SELECT (SELECT COUNT(*)
FROM BOETES) AS AANTAL_BOETES,
(SELECT COUNT(*)
FROM WEDSTRIJDEN) AS AANTAL_WEDSTRIJDEN
Voorbeeld 9.18:
SELECT MAX(BEDRAG)
FROM BOETES
Voorbeeld 9.19:
SELECT MIN(BEDRAG)
FROM BOETES
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS = 'Den Haag')
Voorbeeld 9.20:
SELECT COUNT(*)
FROM BOETES
WHERE BEDRAG =
(SELECT MIN(BEDRAG)
FROM BOETES)
Voorbeeld 9.21:
SELECT DISTINCT TEAMNR, SPELERSNR
FROM WEDSTRIJDEN AS W1
WHERE GEWONNEN =
(SELECT MAX(GEWONNEN)
FROM WEDSTRIJDEN AS W2
WHERE W1.TEAMNR = W2.TEAMNR)
Voorbeeld 9.22:
SELECT (MAX(BEDRAG) - MIN(BEDRAG)) * 100
FROM BOETES
Voorbeeld 9.23:
SELECT SUBSTR(MAX(NAAM), 1, 1)
FROM SPELERS
Voorbeeld 9.24:
SELECT MAX(BONDSNR)
FROM SPELERS
WHERE PLAATS = 'Leiden'
Voorbeeld 9.25:
SELECT CASE WHEN MIN(BONDSNR) IS NULL
THEN 'Onbekend'
ELSE MIN(BONDSNR)
END
FROM SPELERS
WHERE PLAATS = 'Amsterdam'
Voorbeeld 9.26:
SELECT SPELERSNR, BEDRAG, DATUM
FROM BOETES AS BT1
WHERE BEDRAG =
(SELECT MAX(BEDRAG)
FROM BOETES AS BT2
WHERE BT2.SPELERSNR = BT1.SPELERSNR)
Voorbeeld 9.27:
SELECT SPELERSNR,
(SELECT MAX(BEDRAG)
FROM BOETES
WHERE BOETES.SPELERSNR = SPELERS.SPELERSNR)
AS HOOGSTEBOETE,
(SELECT MAX(GEWONNEN)
FROM WEDSTRIJDEN
WHERE WEDSTRIJDEN.SPELERSNR = SPELERS.SPELERSNR)
AS AANTALSETS
FROM SPELERS
Voorbeeld 9.28:
SELECT SPELERSNR
FROM SPELERS
WHERE (SELECT MIN(BEDRAG)
FROM BOETES
WHERE BOETES.SPELERSNR = SPELERS.SPELERSNR) =
(SELECT MAX(BEDRAG)
FROM BOETES
WHERE BOETES.SPELERSNR = SPELERS.SPELERSNR)
Voorbeeld 9.29:
SELECT SUM(BEDRAG)
FROM BOETES
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS = 'Rijswijk')
;
SELECT SUM(DISTINCT BEDRAG)
FROM BOETES
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS = 'Rijswijk')
Voorbeeld 9.30:
SELECT AVG(BEDRAG)
FROM BOETES
WHERE SPELERSNR = 44
Voorbeeld 9.31:
SELECT DISTINCT SPELERSNR
FROM BOETES
WHERE BEDRAG >
(SELECT AVG(BEDRAG)
FROM BOETES)
Voorbeeld 9.32:
SELECT AVG(DISTINCT BEDRAG)
FROM BOETES
Voorbeeld 9.33:
SELECT AVG(LENGTH(RTRIM(NAAM))), MAX(LENGTH(RTRIM(NAAM)))
FROM SPELERS
Voorbeeld 9.34:
SELECT BETALINGSNR, BEDRAG,
ABS(BEDRAG - (SELECT AVG(BEDRAG)
FROM BOETES)) AS VERSCHIL
FROM BOETES AS B
Voorbeeld 9.35:
SELECT VARIANCE(BEDRAG)
FROM BOETES
WHERE SPELERSNR = 44
;
SELECT BEDRAG –
(SELECT AVG(BEDRAG)
FROM BOETES
WHERE SPELERSNR = 44)
FROM BOETES
WHERE SPELERSNR = 44
;
SELECT SUM(P)
FROM (SELECT POWER(BEDRAG -
(SELECT AVG(BEDRAG)
FROM BOETES
WHERE SPELERSNR = 44),2) AS P
FROM BOETES
WHERE SPELERSNR = 44) AS POWERS
;
SELECT SUM(P) /
(SELECT COUNT(*) FROM BOETES WHERE SPELERSNR = 44)
FROM (SELECT POWER(BEDRAG -
(SELECT AVG(BEDRAG)
FROM BOETES
WHERE SPELERSNR = 44),2) AS P
FROM BOETES
WHERE SPELERSNR = 44) AS POWERS
Voorbeeld 9.36:
SELECT STDDEV(BEDRAG)
FROM BOETES
WHERE SPELERSNR = 44
Voorbeeld 9.37:
SELECT VAR_SAMP(BEDRAG), VARIANCE(BEDRAG)
FROM BOETES
Voorbeeld 9.38:
SELECT STDDEV_SAMP(BEDRAG), STDDEV(BEDRAG)
FROM BOETES
Voorbeeld 9.39:
CREATE TABLE BITS
(BIN_VALUE INTEGER NOT NULL PRIMARY KEY)
;
INSERT INTO BITS
VALUES (CONV(001,2,16)),
(CONV(011,2,16)),
(CONV(111,2,16))
Voorbeeld 9.40:
SELECT BIN(BIT_OR(BIN_VALUE))
FROM BITS
Antwoord 9.4:
SELECT COUNT(*), MAX(BEDRAG)
FROM BOETES
Antwoord 9.5:
SELECT COUNT(DISTINCT FUNCTIE)
FROM BESTUURSLEDEN
Antwoord 9.6:
SELECT COUNT(BONDSNR)
FROM SPELERS
WHERE PLAATS = 'Rijswijk'
Antwoord 9.7:
SELECT TEAMNR, DIVISIE,
(SELECT COUNT(*)
FROM WEDSTRIJDEN
WHERE TEAMS.TEAMNR = WEDSTRIJDEN.TEAMNR)
FROM TEAMS
Antwoord 9.8:
SELECT SPELERSNR, NAAM,
(SELECT COUNT(*)
FROM WEDSTRIJDEN
WHERE WEDSTRIJDEN.SPELERSNR = SPELERS.SPELERSNR
AND GEWONNEN > VERLOREN)
FROM SPELERS
Antwoord 9.9:
SELECT 'Aantal spelers' AS TABELLEN,
(SELECT COUNT(*) FROM SPELERS) AS AANTAL UNION
SELECT 'Aantal teams',
(SELECT COUNT(*) FROM TEAMS) UNION
SELECT 'Aantal wedstrijden',
(SELECT COUNT(*) FROM WEDSTRIJDEN)
Antwoord 9.10:
SELECT MIN(GEWONNEN)
FROM WEDSTRIJDEN
WHERE GEWONNEN > VERLOREN
Antwoord 9.11:
SELECT SPELERSNR,
(SELECT MAX(BEDRAG)
FROM BOETES
WHERE BOETES.SPELERSNR =
SPELERS.SPELERSNR) -
(SELECT MIN(BEDRAG)
FROM BOETES
WHERE BOETES.SPELERSNR =
SPELERS.SPELERSNR)
FROM SPELERS
Antwoord 9.12:
SELECT SPELERSNR, GEB_DATUM
FROM SPELERS
WHERE YEAR(GEB_DATUM) =
(SELECT MAX(YEAR(GEB_DATUM))
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR = 1))
Antwoord 9.14:
SELECT AVG(BEDRAG)
FROM BOETES
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR = 1)
Antwoord 9.15:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE (SELECT SUM(BEDRAG)
FROM BOETES
WHERE BOETES.SPELERSNR = SPELERS.SPELERSNR)
> 100
Antwoord 9.16:
SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE GEWONNEN >
(SELECT SUM(GEWONNEN)
FROM WEDSTRIJDEN
WHERE SPELERSNR = 27))
Antwoord 9.17:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE (SELECT SUM(GEWONNEN)
FROM WEDSTRIJDEN
WHERE WEDSTRIJDEN.SPELERSNR =
SPELERS.SPELERSNR) = 8
Antwoord 9.18:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE LENGTH(RTRIM(NAAM)) >
(SELECT AVG(LENGTH(RTRIM(NAAM)))
FROM SPELERS)
Antwoord 9.19:
SELECT SPELERSNR,
(SELECT MAX(BEDRAG)
FROM BOETES
WHERE BOETES.SPELERSNR =
SPELERS.SPELERSNR) -
(SELECT AVG(BEDRAG)
FROM BOETES
WHERE BOETES.SPELERSNR =
SPELERS.SPELERSNR)
FROM SPELERS
Antwoord 9.20:
SELECT SPELERSNR,
REPEAT('*',
CAST((SELECT AVG(BEDRAG)
FROM BOETES
WHERE BOETES.SPELERSNR =
SPELERS.SPELERSNR)/10
AS SIGNED INTEGER))
FROM SPELERS
Antwoord 9.21:
SELECT SQRT(SUM(P) /
(SELECT COUNT(*) FROM BOETES WHERE SPELERSNR = 44))
FROM (SELECT POWER(BEDRAG -
(SELECT AVG(BEDRAG)
FROM BOETES
WHERE SPELERSNR = 44),2) AS P
FROM BOETES
WHERE SPELERSNR = 44) AS POWERS
Voorbeeld 10.1:
SELECT PLAATS
FROM SPELERS
GROUP BY PLAATS
Voorbeeld 10.2:
SELECT PLAATS, COUNT(*)
FROM SPELERS
GROUP BY PLAATS
Voorbeeld 10.3:
SELECT TEAMNR, COUNT(*), SUM(GEWONNEN)
FROM WEDSTRIJDEN
GROUP BY TEAMNR
Voorbeeld 10.4:
SELECT TEAMNR, COUNT(*)
FROM WEDSTRIJDEN
WHERE TEAMNR IN
(SELECT TEAMNR
FROM TEAMS INNER JOIN SPELERS
ON TEAMS.SPELERSNR = SPELERS.SPELERSNR
WHERE PLAATS = 'Zoetermeer')
GROUP BY TEAMNR
Voorbeeld 10.5:
SELECT BEDRAG, COUNT(*), SUM(BEDRAG)
FROM BOETES
GROUP BY BEDRAG
Voorbeeld 10.6:
SELECT TEAMNR, SPELERSNR
FROM WEDSTRIJDEN
GROUP BY TEAMNR, SPELERSNR
;
SELECT TEAMNR, SPELERSNR
FROM WEDSTRIJDEN
GROUP BY SPELERSNR, TEAMNR
;
SELECT TEAMNR, SPELERSNR, SUM(GEWONNEN),
COUNT(*), MIN(VERLOREN)
FROM WEDSTRIJDEN
GROUP BY TEAMNR, SPELERSNR
Voorbeeld 10.7:
SELECT S.SPELERSNR, NAAM, SUM(BEDRAG)
FROM SPELERS AS S INNER JOIN BOETES AS BT
ON S.SPELERSNR = BT.SPELERSNR
GROUP BY S.SPELERSNR, NAAM
Voorbeeld 10.8:
SELECT YEAR(DATUM) AS JAARTAL, COUNT(*)
FROM BOETES
GROUP BY YEAR(DATUM)
Voorbeeld 10.9:
SELECT TRUNCATE(SPELERSNR/25,0) AS SPELERSGROEP,
COUNT(*), MAX(SPELERSNR)
FROM SPELERS
GROUP BY TRUNCATE(SPELERSNR/25,0)
Voorbeeld 10.10:
SELECT BONDSNR
FROM SPELERS
GROUP BY BONDSNR
Voorbeeld 10.11:
SELECT TEAMNR, COUNT(*)
FROM WEDSTRIJDEN
GROUP BY TEAMNR
ORDER BY TEAMNR DESC
;
SELECT TEAMNR, COUNT(*)
FROM WEDSTRIJDEN
GROUP BY TEAMNR DESC
Voorbeeld 10.12:
SELECT CAST(BEDRAG * 100 AS SIGNED INTEGER)
AS BEDRAG_IN_CENTEN
FROM BOETES
GROUP BY BEDRAG
Voorbeeld 10.13:
SELECT TEAMNR, GROUP_CONCAT(SPELERSNR)
FROM WEDSTRIJDEN
GROUP BY TEAMNR
Voorbeeld 10.14:
SELECT TEAMNR, GROUP_CONCAT(TEAMNR)
FROM WEDSTRIJDEN
GROUP BY TEAMNR
Voorbeeld 10.15:
SELECT GROUP_CONCAT(BETALINGNR)
FROM BOETES
Voorbeeld 10.16:
SET @@GROUP_CONCAT_MAX_LEN=7
;
SELECT TEAMNR, GROUP_CONCAT(TEAMNR)
FROM WEDSTRIJDEN
GROUP BY TEAMNR
Voorbeeld 10.17:
SELECT AVG(TOTAAL)
FROM (SELECT SPELERSNR, SUM(BEDRAG) AS TOTAAL
FROM BOETES
GROUP BY SPELERSNR) AS TOTALEN
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS = 'Den Haag' OR PLAATS = 'Rijswijk')
Voorbeeld 10.18:
SELECT SPELERS.SPELERSNR, NAAM, AANTALBOETES, AANTALTEAMS
FROM SPELERS,
(SELECT SPELERSNR, COUNT(*) AS AANTALBOETES
FROM BOETES
GROUP BY SPELERSNR) AS AANTAL_BOETES,
(SELECT SPELERSNR, COUNT(*) AS AANTALTEAMS
FROM TEAMS
GROUP BY SPELERSNR) AS AANTAL_TEAMS
WHERE SPELERS.SPELERSNR = AANTAL_BOETES.SPELERSNR
AND SPELERS.SPELERSNR = AANTAL_TEAMS.SPELERSNR
;
SELECT SPELERS.SPELERSNR, NAAM,
(SELECT COUNT(*)
FROM BOETES
WHERE SPELERS.SPELERSNR =
BOETES.SPELERSNR) AS AANTALBOETES,
(SELECT COUNT(*)
FROM TEAMS
WHERE SPELERS.SPELERSNR =
TEAMS.SPELERSNR) AS AANTALTEAMS
FROM SPELERS
Voorbeeld 10.19:
SELECT DISTINCT W.SPELERSNR, AANTALB
FROM WEDSTRIJDEN AS W LEFT OUTER JOIN
(SELECT SPELERSNR, COUNT(*) AS AANTALB
FROM BOETES
GROUP BY SPELERSNR) AS AB
ON W.SPELERSNR = AB.SPELERSNR
Voorbeeld 10.20:
SELECT GROEPEN.GROEP, SUM(B.BEDRAG)
FROM BOETES AS B,
(SELECT 1 AS GROEP, '1980-01-01' AS START,
'1981-06-30' AS EINDE
UNION
SELECT 2, '1981-07-01', '1982-12-31'
UNION
SELECT 3, '1983-01-01', '1984-12-31') AS GROEPEN
WHERE B.DATUM BETWEEN START AND EINDE
GROUP BY GROEPEN.GROEP
ORDER BY GROEPEN.GROEP
Voorbeeld 10.21:
SELECT B1.BETALINGSNR, B1.BEDRAG, SUM(B2.BEDRAG)
FROM BOETES AS B1, BOETES AS B2
WHERE B1.BETALINGSNR >= B2.BETALINGSNR
GROUP BY B1.BETALINGSNR, B1.BEDRAG
ORDER BY B1.BETALINGSNR
Voorbeeld 10.22:
SELECT B1.BETALINGSNR, B1.BEDRAG,
(B1.BEDRAG * 100) / SUM(B2.BEDRAG)
FROM BOETES AS B1, BOETES AS B2
GROUP BY B1.BETALINGSNR, B1.BEDRAG
ORDER BY B1.BETALINGSNR
Voorbeeld 10.23:
SELECT SPELERSNR, SUM(BEDRAG)
FROM BOETES
GROUP BY SPELERSNR
UNION
SELECT NULL, SUM(BEDRAG)
FROM BOETES
;
SELECT SPELERSNR, SUM(BEDRAG)
FROM BOETES
GROUP BY SPELERSNR WITH ROLLUP
Voorbeeld 10.24:
SELECT GESLACHT, PLAATS, COUNT(*)
FROM SPELERS
GROUP BY GESLACHT, PLAATS WITH ROLLUP
Antwoord 10.1:
SELECT JAARTOE
FROM SPELERS
GROUP BY JAARTOE
Antwoord 10.2:
SELECT JAARTOE, COUNT(*)
FROM SPELERS
GROUP BY JAARTOE
Antwoord 10.3:
SELECT SPELERSNR, AVG(BEDRAG), COUNT(*)
FROM BOETES
GROUP BY SPELERSNR
Antwoord 10.4:
SELECT TEAMNR, COUNT(*), SUM(GEWONNEN)
FROM WEDSTRIJDEN
WHERE TEAMNR IN
(SELECT TEAMNR
FROM TEAMS
WHERE DIVISIE = 'ere')
GROUP BY TEAMNR
Antwoord 10.5:
SELECT GEWONNEN, VERLOREN, COUNT(*)
FROM WEDSTRIJDEN
WHERE GEWONNEN > VERLOREN
GROUP BY GEWONNEN, VERLOREN
ORDER BY GEWONNEN, VERLOREN
Antwoord 10.6:
SELECT S.PLAATS, T.DIVISIE, SUM(GEWONNEN)
FROM (WEDSTRIJDEN AS W INNER JOIN SPELERS AS S
ON W.SPELERSNR = S.SPELERSNR)
INNER JOIN TEAMS AS T
ON W.TEAMNR = T.TEAMNR
GROUP BY S.PLAATS, T.DIVISIE
ORDER BY S.PLAATS
Antwoord 10.7:
SELECT NAAM, VOORLETTERS, COUNT(*)
FROM SPELERS AS S INNER JOIN BOETES AS BT
ON S.SPELERSNR = BT.SPELERSNR
WHERE S.PLAATS = 'Rijswijk'
GROUP BY S.SPELERSNR, NAAM, VOORLETTERS
Antwoord 10.8:
SELECT T.TEAMNR, DIVISIE, SUM(GEWONNEN)
FROM TEAMS AS T, WEDSTRIJDEN AS W
WHERE T.TEAMNR = W.TEAMNR
GROUP BY T.TEAMNR, DIVISIE
Antwoord 10.9:
SELECT LENGTH(RTRIM(NAAM)), COUNT(*)
FROM SPELERS
GROUP BY LENGTH(RTRIM(NAAM))
Antwoord 10.10:
SELECT ABS(GEWONNEN - VERLOREN), COUNT(*)
FROM WEDSTRIJDEN
GROUP BY ABS(GEWONNEN - VERLOREN)
Antwoord 10.11:
SELECT YEAR(BEGIN_DATUM), MONTH(BEGIN_DATUM), COUNT(*)
FROM BESTUURSLEDEN
GROUP BY YEAR(BEGIN_DATUM), MONTH(BEGIN_DATUM)
ORDER BY YEAR(BEGIN_DATUM), MONTH(BEGIN_DATUM)
Antwoord 10.14:
SELECT AVG(AANTALLEN)
FROM (SELECT COUNT(*) AS AANTALLEN
FROM SPELERS
GROUP BY PLAATS) AS PLAATSEN
Antwoord 10.15:
SELECT TEAMS.TEAMNR, DIVISIE, AANTAL_SPELERS
FROM TEAMS LEFT OUTER JOIN
(SELECT TEAMNR, COUNT(*) AS AANTAL_SPELERS
FROM WEDSTRIJDEN
GROUP BY TEAMNR) AS W
ON (TEAMS.TEAMNR = W.TEAMNR)
Antwoord 10.16:
SELECT SPELERS.SPELERSNR, NAAM, TOTAALBEDRAG,
AANTAL_TEAMS
FROM (SPELERS LEFT OUTER JOIN
(SELECT SPELERSNR, SUM(BEDRAG) AS TOTAALBEDRAG
FROM BOETES
GROUP BY SPELERSNR) AS TOTALEN
ON (SPELERS.SPELERSNR = TOTALEN.SPELERSNR))
LEFT OUTER JOIN
(SELECT SPELERSNR, COUNT(*) AS AANTAL_TEAMS
FROM TEAMS
WHERE DIVISIE = 'ere'
GROUP BY SPELERSNR) AS AANTALLEN
ON (SPELERS.SPELERSNR = AANTALLEN.SPELERSNR)
Antwoord 10.17:
SELECT TEAMNR, COUNT(DISTINCT SPELERSNR)
FROM WEDSTRIJDEN
WHERE TEAMNR IN
(SELECT TEAMNR
FROM SPELERS AS S INNER JOIN TEAMS AS T
ON S.SPELERSNR = T.SPELERSNR
AND PLAATS = 'Den Haag')
AND GEWONNEN > VERLOREN
GROUP BY TEAMNR
Antwoord 10.18:
SELECT SPELERSNR, NAAM, JAARTOE - GEMIDDELDE
FROM SPELERS,
(SELECT AVG(JAARTOE) AS GEMIDDELDE
FROM SPELERS) AS T
Antwoord 10.19:
SELECT SPELERSNR, NAAM, JAARTOE - GEMIDDELDE
FROM SPELERS,
(SELECT PLAATS, AVG(JAARTOE) AS GEMIDDELDE
FROM SPELERS
GROUP BY PLAATS) AS PLAATSEN
WHERE SPELERS.PLAATS = PLAATSEN.PLAATS
Antwoord 10.20:
SELECT TEAMNR, COUNT(*)
FROM WEDSTRIJDEN
GROUP BY TEAMNR WITH ROLLUP
Antwoord 10.21:
SELECT S.NAAM, T.DIVISIE, SUM(GEWONNEN)
FROM (WEDSTRIJDEN AS W INNER JOIN SPELERS AS S
ON W.SPELERSNR = S.SPELERSNR)
INNER JOIN TEAMS AS T
ON W.TEAMNR = T.TEAMNR
GROUP BY S.NAAM, T.DIVISIE WITH ROLLUP
Voorbeeld 11.1:
SELECT SPELERSNR
FROM BOETES
GROUP BY SPELERSNR
HAVING COUNT(*) > 1
Voorbeeld 11.2:
SELECT SPELERSNR
FROM BOETES
GROUP BY SPELERSNR
HAVING MAX(YEAR(DATUM)) = 1984
Voorbeeld 11.3:
SELECT SPELERSNR, SUM(BEDRAG)
FROM BOETES
GROUP BY SPELERSNR
HAVING SUM(BEDRAG) > 150
Voorbeeld 11.4:
SELECT SPELERSNR, SUM(BEDRAG)
FROM BOETES
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM TEAMS)
GROUP BY SPELERSNR
HAVING SUM(BEDRAG) > 80
Voorbeeld 11.5:
SELECT SPELERSNR, SUM(BEDRAG)
FROM BOETES
GROUP BY SPELERSNR
HAVING SUM(BEDRAG) >= ALL
(SELECT SUM(BEDRAG)
FROM BOETES
GROUP BY SPELERSNR)
Voorbeeld 11.6:
SELECT SUM(BEDRAG)
FROM BOETES
HAVING SUM(BEDRAG) >= 250
Voorbeeld 11.7:
SELECT GROUP_CONCAT(SPELERSNR) AS LIJST
FROM WEDSTRIJDEN
HAVING TRUE
Antwoord 11.1:
SELECT PLAATS
FROM SPELERS
GROUP BY PLAATS
HAVING COUNT(*) > 4
Antwoord 11.2:
SELECT SPELERSNR
FROM BOETES
GROUP BY SPELERSNR
HAVING SUM(BEDRAG) > 150
Antwoord 11.3:
SELECT NAAM, VOORLETTERS, COUNT(*)
FROM SPELERS INNER JOIN BOETES
ON SPELERS.SPELERSNR = BOETES.SPELERSNR
GROUP BY SPELERS.SPELERSNR, NAAM, VOORLETTERS
HAVING COUNT(*) > 1
Antwoord 11.4:
SELECT TEAMNR, COUNT(*)
FROM WEDSTRIJDEN
GROUP BY TEAMNR
HAVING COUNT(*) >= ALL
(SELECT COUNT(*)
FROM WEDSTRIJDEN
GROUP BY TEAMNR)
Antwoord 11.5:
SELECT TEAMNR, DIVISIE
FROM TEAMS
WHERE TEAMNR IN
(SELECT TEAMNR
FROM WEDSTRIJDEN
GROUP BY TEAMNR
HAVING COUNT(DISTINCT SPELERSNR) > 4)
Antwoord 11.6:
SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES
WHERE BEDRAG > 40
GROUP BY SPELERSNR
HAVING COUNT(*) >= 2)
Antwoord 11.7:
SELECT NAAM, VOORLETTERS
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES
GROUP BY SPELERSNR
HAVING SUM(BEDRAG) >= ALL
(SELECT SUM(BEDRAG)
FROM BOETES
GROUP BY SPELERSNR))
Antwoord 11.8:
SELECT SPELERSNR
FROM BOETES
WHERE SPELERSNR <> 104
GROUP BY SPELERSNR
HAVING SUM(BEDRAG) =
(SELECT SUM(BEDRAG) * 2
FROM BOETES
WHERE SPELERSNR = 104)
Antwoord 11.9:
SELECT SPELERSNR
FROM BOETES
WHERE SPELERSNR <> 6
GROUP BY SPELERSNR
HAVING COUNT(*) =
(SELECT COUNT(*)
FROM BOETES
WHERE SPELERSNR = 6)
Antwoord 11.10:
SELECT S.SPELERSNR, S.NAAM
FROM SPELERS AS S, WEDSTRIJDEN AS W1
WHERE S.SPELERSNR = W1.SPELERSNR
GROUP BY S.SPELERSNR, S.NAAM
HAVING SUM(GEWONNEN) >
(SELECT SUM(VERLOREN)
FROM WEDSTRIJDEN AS W2
WHERE W2.SPELERSNR = S.SPELERSNR
GROUP BY W2.SPELERSNR)
Voorbeeld 12.1:
SELECT BETALINGSNR, SPELERSNR
FROM BOETES
ORDER BY SPELERSNR
Voorbeeld 12.2:
SELECT SPELERSNR, BEDRAG
FROM BOETES
ORDER BY SPELERSNR, BEDRAG
Voorbeeld 12.3:
SELECT BEDRAG
FROM BOETES
ORDER BY SPELERSNR, BEDRAG
Voorbeeld 12.4:
SELECT NAAM, VOORLETTERS, SPELERSNR
FROM SPELERS
ORDER BY SUBSTR(NAAM, 1, 1)
Voorbeeld 12.5:
SELECT SPELERSNR, BEDRAG
FROM BOETES
ORDER BY ABS(BEDRAG - (SELECT AVG(BEDRAG) FROM BOETES))
Voorbeeld 12.6:
SELECT SPELERSNR, BEDRAG
FROM BOETES AS B1
ORDER BY (SELECT AVG(BEDRAG)
FROM BOETES AS B2
WHERE B1.SPELERSNR = B2.SPELERSNR)
Voorbeeld 12.7:
SELECT SPELERSNR, SUM(BEDRAG)
FROM BOETES
GROUP BY SPELERSNR
ORDER BY 2
Voorbeeld 12.8:
SELECT SPELERSNR, NAAM,
(SELECT SUM(BEDRAG)
FROM BOETES AS B
WHERE B.SPELERSNR=S.SPELERSNR)
FROM SPELERS AS S
ORDER BY 3
;
SELECT SPELERSNR, NAAM,
(SELECT SUM(BEDRAG)
FROM BOETES AS B
WHERE B.SPELERSNR=S.SPELERSNR) AS TOTAAL
FROM SPELERS AS S
ORDER BY TOTAAL
Voorbeeld 12.9:
SELECT SPELERSNR, BEDRAG
FROM BOETES
ORDER BY SPELERSNR DESC, BEDRAG ASC
Voorbeeld 12.10:
CREATE TABLE CODES
(CODE CHAR(4) NOT NULL)
;
INSERT INTO CODES VALUES ('abc')
INSERT INTO CODES VALUES ('ABC')
INSERT INTO CODES VALUES ('-abc')
INSERT INTO CODES VALUES ('a bc')
INSERT INTO CODES VALUES ('ab')
INSERT INTO CODES VALUES ('9abc')
;
SELECT *
FROM CODES
ORDER BY CODE
Voorbeeld 12.11:
SELECT DISTINCT BONDSNR
FROM SPELERS
ORDER BY BONDSNR DESC
Antwoord 12.3:
SELECT SPELERSNR, TEAMNR, GEWONNEN - VERLOREN
FROM WEDSTRIJDEN
ORDER BY 3 ASC
Voorbeeld 13.1:
SELECT MAX(SPELERSNR)
FROM SPELERS
;
SELECT SPELERSNR, NAAM
FROM SPELERS AS S1
WHERE 4 >
(SELECT COUNT(*)
FROM SPELERS AS S2
WHERE S1.SPELERSNR < S2.SPELERSNR)
ORDER BY SPELERSNR DESC
;
SELECT SPELERSNR, NAAM
FROM SPELERS
ORDER BY SPELERSNR DESC
LIMIT 4
Voorbeeld 13.2:
SELECT BONDSNR, SPELERSNR, NAAM
FROM SPELERS
ORDER BY BONDSNR ASC
LIMIT 5
Voorbeeld 13.3:
SELECT SPELERSNR, COUNT(*) AS AANTAL
FROM WEDSTRIJDEN
WHERE GEWONNEN > VERLOREN
GROUP BY SPELERSNR
ORDER BY AANTAL DESC
LIMIT 3
Voorbeeld 13.4:
SELECT SPELERSNR, COUNT(*) AS AANTAL
FROM WEDSTRIJDEN
WHERE GEWONNEN > VERLOREN
GROUP BY SPELERSNR
ORDER BY AANTAL DESC, SPELERSNR DESC
LIMIT 3
Voorbeeld 13.5:
SELECT *
FROM (SELECT SPELERSNR, COUNT(*) AS AANTAL
FROM WEDSTRIJDEN
WHERE GEWONNEN > VERLOREN
GROUP BY SPELERSNR
ORDER BY AANTAL DESC, SPELERSNR DESC
LIMIT 3) AS T
ORDER BY 1
Voorbeeld 13.6:
SELECT AVG(BEDRAG)
FROM (SELECT BEDRAG
FROM BOETES
ORDER BY BEDRAG
LIMIT 4) AS T
Voorbeeld 13.7:
SELECT MIN(BEDRAG)
FROM (SELECT BEDRAG
FROM BOETES
ORDER BY BEDRAG DESC
LIMIT 3) AS T
Voorbeeld 13.8:
SELECT DISTINCT BEDRAG
FROM BOETES
ORDER BY BEDRAG DESC
LIMIT 3
Voorbeeld 13.9:
SELECT SPELERSNR
FROM (SELECT SPELERSNR
FROM SPELERS
WHERE BONDSNR IS NOT NULL
ORDER BY BONDSNR DESC
LIMIT 6) AS T
ORDER BY SPELERSNR
LIMIT 3
Voorbeeld 13.10:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM (SELECT SPELERSNR, SUM(BEDRAG) AS TOTAAL
FROM BOETES
GROUP BY SPELERSNR
ORDER BY TOTAAL DESC
LIMIT 3) AS T)
Voorbeeld 13.11:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES)
AND SPELERSNR NOT IN
(SELECT SPELERSNR
FROM BOETES
ORDER BY BEDRAG DESC
LIMIT 2)
AND SPELERSNR NOT IN
(SELECT SPELERSNR
FROM BOETES
ORDER BY BEDRAG ASC
LIMIT 2)
;
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM BOETES
WHERE SPELERSNR NOT IN
(SELECT SPELERSNR
FROM BOETES
ORDER BY BEDRAG DESC
LIMIT 2)
AND SPELERSNR NOT IN
(SELECT SPELERSNR
FROM BOETES
ORDER BY BEDRAG ASC
LIMIT 2))
Voorbeeld 13.12:
SELECT SPELERSNR, NAAM
FROM SPELERS
ORDER BY SPELERSNR ASC
LIMIT 5 OFFSET 3
Voorbeeld 13.13:
SELECT SQL_CALC_FOUND_ROWS BETALINGSNR
FROM BOETES
LIMIT 5
;
SELECT FOUND_ROWS()
Antwoord 13.1:
SELECT BETALINGSNR, BEDRAG, DATUM
FROM BOETES
ORDER BY BEDRAG DESC, DATUM DESC
LIMIT 4
Antwoord 13.2:
(SELECT WEDSTRIJDNR
FROM WEDSTRIJDEN
ORDER BY WEDSTRIJDNR ASC
LIMIT 2)
UNION
(SELECT WEDSTRIJDNR
FROM WEDSTRIJDEN
ORDER BY WEDSTRIJDNR DESC
LIMIT 2)
Antwoord 13.3:
SELECT SPELERSNR, NAAM
FROM (SELECT SPELERSNR, NAAM
FROM SPELERS
ORDER BY SPELERSNR ASC
LIMIT 10) AS S10
ORDER BY NAAM DESC
LIMIT 5
Antwoord 13.4:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM (SELECT SPELERSNR, COUNT(*) AS AANTAL
FROM WEDSTRIJDEN
WHERE GEWONNEN > VERLOREN
GROUP BY SPELERSNR) AS WINNAARS
ORDER BY AANTAL DESC, SPELERSNR ASC
LIMIT 2)
Antwoord 13.5:
SELECT SPELERSNR, NAAM
FROM SPELERS
WHERE SPELERSNR IN
(SELECT BOETES.SPELERSNR
FROM BOETES INNER JOIN SPELERS
ON BOETES.SPELERSNR = SPELERS.SPELERSNR
ORDER BY BEDRAG DESC, NAAM ASC
LIMIT 4)
Antwoord 13.6:
SELECT BETALINGSNR, BEDRAG
FROM BOETES
ORDER BY BEDRAG DESC
LIMIT 1 OFFSET 2
Voorbeeld 14.1:
SELECT SPELERSNR, PLAATS
FROM SPELERS
WHERE PLAATS = 'Rijswijk'
UNION
SELECT SPELERSNR, PLAATS
FROM SPELERS
WHERE PLAATS = 'Rotterdam'
;
SELECT SPELERSNR, PLAATS
FROM SPELERS
WHERE PLAATS = 'Rijswijk'
OR PLAATS = 'Rotterdam'
Voorbeeld 14.2:
SELECT GEB_DATUM AS DATUMS
FROM SPELERS
UNION
SELECT DATUM
FROM BOETES
Voorbeeld 14.3:
SELECT SPELERSNR
FROM BOETES
UNION
SELECT SPELERSNR
FROM TEAMS
Voorbeeld 14.4:
SELECT SPELERSNR
FROM BOETES
UNION
SELECT SPELERSNR
FROM TEAMS
UNION
SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS = 'Den Haag'
Voorbeeld 14.5:
SELECT CAST(TEAMNR AS CHAR(4)) AS TEAMNR,
CAST(SPELERSNR AS CHAR(4)) AS SPELERSNR,
SUM(GEWONNEN + VERLOREN) AS TOTAAL
FROM WEDSTRIJDEN
GROUP BY TEAMNR, SPELERSNR
UNION
SELECT CAST(TEAMNR AS CHAR(4)),
'subtotaal',
SUM(GEWONNEN + VERLOREN)
FROM WEDSTRIJDEN
GROUP BY TEAMNR
UNION
SELECT 'totaal', 'totaal', SUM(GEWONNEN + VERLOREN)
FROM WEDSTRIJDEN
ORDER BY TEAMNR, SPELERSNR
Voorbeeld 14.6:
SELECT SPELERSNR
FROM BOETES
UNION ALL
SELECT SPELERSNR
FROM TEAMS
Antwoord 14.1:
SELECT SPELERSNR
FROM BESTUURSLEDEN
UNION
SELECT SPELERSNR
FROM BOETES
GROUP BY SPELERSNR
HAVING COUNT(*) >= 2
Antwoord 14.2:
SELECT MAX(DATUM)
FROM (SELECT MAX(GEB_DATUM) AS DATUM
FROM SPELERS
UNION
SELECT MAX(DATUM)
FROM BOETES) AS TWEEDATUMS
Antwoord 14.5:
SELECT SUM(AANTAL)
FROM (SELECT COUNT(*) AS AANTAL
FROM SPELERS
UNION ALL
SELECT COUNT(*) AS AANTAL
FROM TEAMS) AS AANTALLEN
Antwoord 14.6:
SELECT POWER(CIJFER,2)
FROM (SELECT 0 AS CIJFER UNION SELECT 1 UNION
SELECT 2 UNION SELECT 3 UNION
SELECT 4 UNION SELECT 5 UNION
SELECT 6 UNION SELECT 7 UNION
SELECT 8 UNION SELECT 9) AS CIJFERS1
UNION ALL
SELECT POWER(CIJFER,3)
FROM (SELECT 0 AS CIJFER UNION SELECT 1 UNION
SELECT 2 UNION SELECT 3 UNION
SELECT 4 UNION SELECT 5 UNION
SELECT 6 UNION SELECT 7 UNION
SELECT 8 UNION SELECT 9) AS CIJFERS2
ORDER BY 1
Voorbeeld 15.1:
SET @PI = 3.141592654
Voorbeeld 15.2:
SELECT @PI
Voorbeeld 15.3:
SELECT NAAM, PLAATS, POSTCODE
FROM SPELERS
WHERE SPELERSNR < @PI
Voorbeeld 15.4:
SET @ABC = 5, @DEF = 'Rijswijk',
@GHI = DATE('2004-01-01')
Voorbeeld 15.5:
SET @PI = CAST(22 AS BINARY)/7
Voorbeeld 15.6:
SET @ANR = (SELECT SPELERSNR
FROM TEAMS
WHERE TEAMNR = 1)
Voorbeeld 15.7:
SELECT @SPELERSNR := 7
Voorbeeld 15.8:
SELECT @NAAM := 'Johnson', @PLAATS := 'Rijswijk',
@POSTCODE := '1234AB'
Voorbeeld 15.9:
SELECT @NAAM := NAAM, @PLAATS := PLAATS,
@POSTCODE := POSTCODE
FROM SPELERS
WHERE SPELERSNR = 2
Voorbeeld 15.10:
SELECT @BOETESTOTAAL := SUM(BEDRAG),
@AANTALBOETES := COUNT(*)
FROM BOETES
Voorbeeld 15.11:
SELECT @SPELERSNR := SPELERSNR
FROM SPELERS
ORDER BY SPELERSNR DESC
;
SELECT @SPELERSNR
;
SELECT @SNR7 := 7
FROM SPELERS
WHERE SPELERSNR < @SNR7
Voorbeeld 15.12:
SET @ANR = (SELECT SPELERSNR
FROM TEAMS
WHERE TEAMNR = 1)
;
SELECT NAAM
FROM SPELERS
WHERE SPELERSNR = @ANR
Voorbeeld 15.13:
SET @VAR = (((3/7)*100)/124)+3
;
SELECT *
FROM BOETES
WHERE BETALINGSNR < @VAR
AND SPELERSNR > @VAR
Voorbeeld 15.14:
CREATE TABLE VARIABELEN
(VARNAME CHAR(30) NOT NULL PRIMARY KEY,
VARVALUE CHAR(30) NOT NULL)
;
SET @VAR1 = 100, @VAR2 = 'John'
;
INSERT INTO VARIABELEN VALUES ('VAR1', @VAR1)
;
INSERT INTO VARIABELEN VALUES ('VAR2', @VAR2)
;
SELECT @VAR1 := VARVALUE
FROM VARIABELEN
WHERE VARNAME = 'VAR1'
;
SELECT @VAR2 := VARVALUE
FROM VARIABELEN
WHERE VARNAME = 'VAR2'
;
SELECT @VAR1, @VAR2
Voorbeeld 15.15:
DO CURRENT_DATE + INTERVAL 2 YEAR
Antwoord 15.1:
SET @VANDAAG = CURRENT_DATE
;
SELECT @VANDAAG := CURRENT_DATE
Antwoord 15.2:
SELECT *
FROM BOETES
WHERE DATUM < @VANDAAG - INTERVAL 5 YEAR
Antwoord 15.3:
SELECT @VAR := SUM(BEDRAG)
FROM BOETES
Voorbeeld 16.1:
HANDLER BOETES OPEN
;
HANDLER BOETES READ FIRST
;
HANDLER BOETES READ NEXT
;
HANDLER BOETES CLOSE
Voorbeeld 16.2:
CREATE INDEX BOETES_BEDRAG ON BOETES (BEDRAG)
Voorbeeld 16.3:
HANDLER BOETES OPEN AS B
;
HANDLER B READ BOETES_BEDRAG FIRST
;
HANDLER B READ BOETES_BEDRAG NEXT
Voorbeeld 16.4:
HANDLER BOETES OPEN AS B
;
HANDLER B READ BOETES_BEDRAG FIRST WHERE SPELERSNR > 100
;
HANDLER B READ BOETES_BEDRAG NEXT WHERE SPELERSNR > 100
Voorbeeld 16.5:
HANDLER BOETES OPEN AS B
;
HANDLER B READ BOETES_BEDRAG FIRST LIMIT 3
Voorbeeld 16.6:
HANDLER BOETES OPEN AS B
;
HANDLER B READ BOETES_BEDRAG = (30.00)
;
HANDLER B READ BOETES_BEDRAG NEXT
Voorbeeld 16.7:
CREATE INDEX BEDRAG_SPELERSNR ON BOETES (BEDRAG, SPELERSNR)
Voorbeeld 16.8:
HANDLER BOETES OPEN AS B
;
HANDLER B READ BEDRAG_SPELERSNR > (30.00, 44) LIMIT 100
Antwoord 16.1:
HANDLER WEDSTRIJDEN OPEN AS W1
;
HANDLER W1 READ FIRST
;
HANDLER W1 READ NEXT
;
HANDLER W1 CLOSE
Antwoord 16.2:
HANDLER WEDSTRIJDEN OPEN AS W2
;
HANDLER W2 READ `PRIMARY` FIRST
;
HANDLER W2 READ `PRIMARY` NEXT
;
HANDLER W2 CLOSE
Antwoord 16.3:
HANDLER WEDSTRIJDEN OPEN AS W3
;
HANDLER W3 READ `PRIMARY` LAST
WHERE SPELERSNR IN (6, 104, 112)
;
HANDLER W3 READ `PRIMARY` PREV
WHERE SPELERSNR IN (6, 104, 112)
;
HANDLER W3 CLOSE
Voorbeeld 17.1:
INSERT INTO TEAMS (TEAMNR, SPELERSNR, DIVISIE)
VALUES (3, 100, 'derde')
;
INSERT INTO TEAMS
VALUES (3, 100, 'derde')
;
INSERT INTO TEAMS (SPELERSNR, DIVISIE, TEAMNR)
VALUES (100, 'derde', 3)
;
INSERT INTO TEAMS
(TEAMNR, DIVISIE)
VALUES (3, 'derde')
Voorbeeld 17.2:
INSERT INTO SPELERS
(SPELERSNR, NAAM, VOORLETTERS, GESLACHT,
JAARTOE, STRAAT, PLAATS)
VALUES (611, 'Jones', 'GG', 'M', 1977, 'Herenlaan', 'Den Haag')
;
INSERT INTO SPELERS
(SPELERSNR, NAAM, VOORLETTERS, GEB_DATUM,
GESLACHT, JAARTOE, STRAAT, HUISNR, POSTCODE,
PLAATS, TELEFOON, BONDSNR)
VALUES (611, 'Jones', 'GG', NULL, 'M', 1977,
'Herenlaan', NULL, NULL, 'Den Haag', NULL, NULL)
Voorbeeld 17.3:
INSERT INTO TEAMS (TEAMNR, SPELERSNR, DIVISIE)
VALUES (6, 100, 'derde'),
(7, 27, 'vierde'),
(8, 39, 'vierde'),
(9, 112, 'zesde')
Voorbeeld 17.4:
CREATE TABLE TOTALEN
(AANTALSPELERS INTEGER NOT NULL,
SOMBOETES DECIMAL(9,2) NOT NULL)
;
INSERT INTO TOTALEN (AANTALSPELERS, SOMBOETES)
VALUES ((SELECT COUNT(*) FROM SPELERS),
(SELECT SUM(BEDRAG) FROM BOETES))
;
INSERT INTO TEAMS (TEAMNR, SPELERSNR, DIVISIE)
VALUES (3, 100, 'derde')
;
INSERT INTO TEAMS SET
TEAMNR = 3, SPELERSNR = 100, DIVISIE = 'derde'
Voorbeeld 17.5:
INSERT IGNORE INTO TEAMS VALUES (1, 39, 'tweede')
Voorbeeld 17.6:
INSERT INTO TEAMS VALUES (1, 39, 'tweede')
ON DUPLICATE KEY UPDATE SPELERSNR = 39, DIVISIE='tweede'
;
INSERT INTO TEAMS VALUES (1, 39, 'tweede')
Voorbeeld 17.7:
CREATE TABLE RECREANTEN
(SPELERSNR SMALLINT NOT NULL,
NAAM CHAR(15) NOT NULL,
PLAATS CHAR(10) NOT NULL,
TELEFOON CHAR(13),
PRIMARY KEY (SPELERSNR))
;
INSERT INTO RECREANTEN
(SPELERSNR, NAAM, PLAATS, TELEFOON)
SELECT SPELERSNR, NAAM, PLAATS, TELEFOON
FROM SPELERS
WHERE BONDSNR IS NULL
;
INSERT INTO RECREANTEN
SELECT SPELERSNR, NAAM, PLAATS, TELEFOON
FROM SPELERS
WHERE BONDSNR IS NULL
;
INSERT INTO RECREANTEN
(PLAATS, TELEFOON, NAAM, SPELERSNR)
SELECT PLAATS, TELEFOON, NAAM, SPELERSNR
FROM SPELERS
WHERE BONDSNR IS NULL
Voorbeeld 17.8:
INSERT INTO RECREANTEN
(SPELERSNR, NAAM, PLAATS, TELEFOON)
SELECT SPELERSNR + 1000, NAAM, PLAATS, TELEFOON
FROM RECREANTEN
Voorbeeld 17.9:
INSERT INTO BOETES
SELECT BETALINGSNR + 100, SPELERSNR, DATUM, BEDRAG
FROM BOETES
WHERE BEDRAG >
(SELECT AVG(BEDRAG)
FROM BOETES)
Voorbeeld 17.10:
UPDATE SPELERS
SET BONDSNR = '2000'
WHERE SPELERSNR = 95
;
UPDATE SPELERS AS S
SET S.BONDSNR = '2000'
WHERE S.SPELERSNR = 95
Voorbeeld 17.11:
UPDATE BOETES
SET BEDRAG = BEDRAG * 1.05
Voorbeeld 17.12:
UPDATE WEDSTRIJDEN
SET GEWONNEN = 0
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM SPELERS
WHERE PLAATS = 'Den Haag')
Voorbeeld 17.13:
UPDATE SPELERS
SET STRAAT = 'Pisuissestraat',
HUISNR = '83',
PLAATS = 'Rijswijk',
POSTCODE = '1234UU',
TELEFOON = NULL
WHERE NAAM = 'Permentier'
;
UPDATE SPELERS
SET STRAAT = PLAATS,
PLAATS = STRAAT
WHERE SPELERSNR = 44
;
UPDATE SPELERS
SET STRAAT = PLAATS
WHERE SPELERSNR = 44
;
UPDATE SPELERS
SET PLAATS = STRAAT
WHERE SPELERSNR = 44
Voorbeeld 17.14:
CREATE TABLE SPELERS_GEGEVENS
(SPELERSNR INTEGER NOT NULL PRIMARY KEY,
AANTAL_WED INTEGER,
SOM_BOETES DECIMAL(7,2))
;
INSERT INTO SPELERS_GEGEVENS (SPELERSNR)
SELECT SPELERSNR FROM SPELERS
;
UPDATE SPELERS_GEGEVENS AS SG
SET AANTAL_WED =
(SELECT COUNT(*)
FROM WEDSTRIJDEN AS W
WHERE W.SPELERSNR = SG.SPELERSNR),
SOM_BOETES =
(SELECT SUM(BEDRAG)
FROM BOETES AS B
WHERE B.SPELERSNR = SG.SPELERSNR)
Voorbeeld 17.15:
UPDATE BOETES
SET BEDRAG = BEDRAG – (SELECT AVG(BEDRAG)
FROM BOETES)
;
SET @GEMIDDELD_BEDRAG = (SELECT AVG(BEDRAG) FROM BOETES)
;
UPDATE BOETES
SET BEDRAG = BEDRAG – @GEMIDDELD_BEDRAG
Voorbeeld 17.16:
UPDATE BOETES
SET BEDRAG = BEDRAG * 1.05
ORDER BY BEDRAG DESC
Voorbeeld 17.17:
UPDATE BOETES
SET BETALINGSNR = BETALINGSNR + 1
ORDER BY BETALINGSNR DESC
Voorbeeld 17.18:
UPDATE BOETES
SET BEDRAG = BEDRAG * 1.05
ORDER BY BEDRAG DESC, SPELERSNR ASC
LIMIT 4
Voorbeeld 17.19:
UPDATE IGNORE WEDSTRIJDEN
SET WEDSTRIJDNR = WEDSTRIJDNR + 1,
GEWONNEN = 2,
VERLOREN = 3
WHERE WEDSTRIJDNR = 4
Voorbeeld 17.20:
UPDATE WEDSTRIJDEN AS W, TEAMS AS T
SET GEWONNEN = 0
WHERE T.TEAMNR = W.TEAMNR
AND T.DIVISIE = 'ere'
;
SELECT ...
FROM WEDSTRIJDEN AS W, TEAMS AS T
WHERE T.TEAMNR = W.TEAMNR
AND T.DIVISIE = 'ere'
;
UPDATE WEDSTRIJDEN
SET GEWONNEN = 0
WHERE TEAMNR IN
(SELECT TEAMNR
FROM TEAMS
WHERE DIVISIE = 'ere')
Voorbeeld 17.21:
UPDATE WEDSTRIJDEN AS W, TEAMS AS T
SET W.GEWONNEN = 0,
T.SPELERSNR = 112
WHERE T.TEAMNR = W.TEAMNR
AND T.DIVISIE = 'ere'
Voorbeeld 17.22:
UPDATE SPELERS AS S,
TEAMS AS T,
WEDSTRIJDEN AS W,
BOETES AS B,
BESTUURSLEDEN AS L
SET S.SPELERSNR = 1,
T.SPELERSNR = 1,
W.SPELERSNR = 1,
B.SPELERSNR = 1,
L.SPELERSNR = 1
WHERE S.SPELERSNR = T.SPELERSNR
AND T.SPELERSNR = W.SPELERSNR
AND W.SPELERSNR = B.SPELERSNR
AND B.SPELERSNR = L.SPELERSNR
AND L.SPELERSNR = 2
Voorbeeld 17.23:
REPLACE INTO SPELERS
(SPELERSNR, NAAM, VOORLETTERS, GESLACHT,
JAARTOE, STRAAT, PLAATS)
VALUES (611, 'Jones', 'GG', 'M', 1977, 'Herenlaan', 'Den Haag')
Voorbeeld 17.24:
REPLACE INTO TEAMS (TEAMNR, SPELERSNR, DIVISIE)
VALUES (6, 100, 'derde'),
(7, 27, 'vierde'),
(8, 39, 'vierde'),
(9, 112, 'zesde')
Voorbeeld 17.25:
REPLACE INTO RECREANTEN
(SPELERSNR, NAAM, PLAATS, TELEFOON)
SELECT SPELERSNR + 1000, NAAM, PLAATS, TELEFOON
FROM RECREANTEN
Voorbeeld 17.26:
DELETE
FROM BOETES
WHERE SPELERSNR = 44
;
DELETE
FROM BOETES AS B
WHERE B.SPELERSNR = 44
Voorbeeld 17.27:
DELETE
FROM SPELERS
WHERE JAARTOE >
(SELECT AVG(JAARTOE)
FROM SPELERS
WHERE PLAATS = 'Den Haag')
Voorbeeld 17.28:
DELETE
FROM BOETES
ORDER BY BEDRAG DESC, SPELERSNR ASC
LIMIT 4
Voorbeeld 17.29:
DELETE IGNORE
FROM SPELERS
Voorbeeld 17.30:
DELETE WEDSTRIJDEN
FROM WEDSTRIJDEN, SPELERS
WHERE WEDSTRIJDEN.SPELERSNR = SPELERS.SPELERSNR
AND SPELERS.PLAATS = 'Rijswijk'
;
SELECT ...
FROM WEDSTRIJDEN, SPELERS
WHERE WEDSTRIJDEN.SPELERSNR = SPELERS.SPELERSNR
AND SPELERS.PLAATS = 'Rijswijk'
;
DELETE WEDSTRIJDEN
FROM WEDSTRIJDEN AS W, SPELERS
WHERE W.SPELERSNR = SPELERS.SPELERSNR
AND SPELERS.PLAATS = 'Rijswijk'
Voorbeeld 17.31:
DELETE TEAMS, WEDSTRIJDEN
FROM TEAMS, WEDSTRIJDEN
WHERE TEAMS.TEAMNR = WEDSTRIJDEN.TEAMNR
AND TEAMS.TEAMNR = 1
;
DELETE
FROM TEAMS, WEDSTRIJDEN
USING TEAMS, WEDSTRIJDEN
WHERE TEAMS.TEAMNR = WEDSTRIJDEN.TEAMNR
AND TEAMS.TEAMNR = 1
Voorbeeld 17.32:
TRUNCATE TABLE BESTUURSLEDEN
Antwoord 17.1:
INSERT INTO BOETES
VALUES (15, 27, '1985-11-08', 75)
Antwoord 17.2:
INSERT INTO BOETES
SELECT BETALINGSNR + 1000, SPELERSNR, DATUM, BEDRAG
FROM BOETES
WHERE BEDRAG >
(SELECT AVG(BEDRAG)
FROM BOETES)
UNION
SELECT BETALINGSNR + 2000, SPELERSNR, DATUM, BEDRAG
FROM BOETES
WHERE SPELERSNR = 27
Antwoord 17.3:
UPDATE SPELERS
SET GESLACHT = 'F'
WHERE GESLACHT = 'V'
Antwoord 17.4:
UPDATE SPELERS
SET GESLACHT = 'X'
WHERE GESLACHT = 'V'
;
UPDATE SPELERS
SET GESLACHT = 'V'
WHERE GESLACHT = 'M'
;
UPDATE SPELERS
SET GESLACHT = 'M'
WHERE GESLACHT = 'X'
;
UPDATE SPELERS
SET GESLACHT = CASE GESLACHT
WHEN 'V' THEN 'M'
ELSE 'V'
END
Antwoord 17.5:
UPDATE BOETES
SET BEDRAG = BEDRAG * 1.2
WHERE BEDRAG >
(SELECT AVG(BEDRAG)
FROM BOETES)
Antwoord 17.6:
UPDATE TEAMS AS T, SPELERS AS S
SET DIVISIE = 'derde'
WHERE T.SPELERSNR = S.SPELERSNR
AND S.PLAATS = 'Den Haag'
Antwoord 17.7:
UPDATE BOETES, TEAMS
SET BEDRAG = 50,
DIVISIE = 'vierde'
Antwoord 17.8:
DELETE
FROM BOETES
WHERE SPELERSNR = 44
AND YEAR(DATUM) = 1980
Antwoord 17.9:
DELETE
FROM BOETES
WHERE SPELERSNR IN
(SELECT SPELERSNR
FROM WEDSTRIJDEN
WHERE TEAMNR IN
(SELECT TEAMNR
FROM TEAMS
WHERE DIVISIE = 'tweede'))
Antwoord 17.10:
DELETE
FROM SPELERS
WHERE PLAATS =
(SELECT PLAATS
FROM SPELERS
WHERE SPELERSNR = 44)
AND SPELERSNR <> 44
Antwoord 17.11:
DELETE B, W
FROM BOETES AS B, WEDSTRIJDEN AS W
WHERE B.SPELERSNR = W.SPELERSNR
AND B.SPELERSNR = 27
Antwoord 17.12:
DELETE B, W
FROM BOETES AS B, WEDSTRIJDEN AS W
WHERE B.SPELERSNR = 27
AND W.SPELERSNR = 27
Voorbeeld 18.1:
SELECT *
FROM TEAMS
INTO OUTFILE 'C:/TEAMS.TXT'
Voorbeeld 18.2:
SELECT *
FROM TEAMS
INTO OUTFILE 'C:/TEAMS.TXT'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '?'
Voorbeeld 18.3:
SELECT *
FROM TEAMS
INTO OUTFILE 'C:/TEAMS.TXT'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '?'
Voorbeeld 18.4:
SELECT *
FROM TEAMS
INTO OUTFILE 'C:/TEAMS.TXT'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '?'
Voorbeeld 18.5:
SELECT *, NULL
FROM TEAMS
INTO OUTFILE 'C:/TEAMS.TXT'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '?'
Voorbeeld 18.6:
SELECT *, NULL
FROM TEAMS
INTO OUTFILE 'C:/TEAMS.TXT'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '*'
LINES TERMINATED BY '?'
Voorbeeld 18.7:
SELECT *
FROM TEAMS
INTO OUTFILE 'C:/TEAMS.TXT'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Voorbeeld 18.8:
SELECT *
FROM TEAMS
INTO DUMPFILE 'C:/TEAMS.DUMP'
Voorbeeld 18.9:
SELECT *
FROM TEAMS
WHERE TEAMNR = 1
INTO @V1, @V2, @V3
;
SELECT @V1, @V2, @V3
Voorbeeld 18.10:
LOAD DATA INFILE 'C:/TEAMS.TXT'
REPLACE
INTO TABLE TEAMS
FIELDS TERMINATED BY ','
LINES TERMINATED BY '?'
Voorbeeld 18.11:
LOAD DATA INFILE 'C:/TEAMS.TXT'
REPLACE
INTO TABLE TEAMS
FIELDS TERMINATED BY ','
LINES TERMINATED BY '?'
IGNORE 1 LINES
Voorbeeld 18.12:
LOAD DATA INFILE 'C:/TEAMS.TXT'
REPLACE
INTO TABLE TEAMS
FIELDS TERMINATED BY ','
LINES TERMINATED BY '?'
(SPELERSNR,TEAMNR,DIVISIE)
;
SELECT * FROM TEAMS
Voorbeeld 18.13:
LOAD DATA INFILE 'C:/TEAMS.TXT'
REPLACE
INTO TABLE TEAMS
FIELDS TERMINATED BY ','
LINES TERMINATED BY '?'
SET DIVISIE='xxx'
;
SELECT * FROM TEAMS
Voorbeeld 18.14:
LOAD DATA INFILE 'C:/TEAMS.TXT'
REPLACE
INTO TABLE TEAMS
FIELDS TERMINATED BY ','
LINES TERMINATED BY '?'
(TEAMNR,SPELERSNR,@DIV)
SET DIVISIE=SUBSTRING(@DIV,1,1)
;
SELECT * FROM TEAMS
Voorbeeld 18.15:
LOAD DATA INFILE 'C:/TEAMS2.TXT'
REPLACE
INTO TABLE TEAMS
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r'
STARTING BY '/*/'
;
SELECT * FROM TEAMS
Voorbeeld 19.1:
CREATE TABLE XML_WEDSTRIJDEN
(WEDSTRIJDNR INTEGER NOT NULL PRIMARY KEY,
WEDSTRIJD_INFO TEXT)
Voorbeeld 19.2:
INSERT INTO XML_WEDSTRIJDEN VALUES (1,
'
Het inloggen is gelukt.
\n"; mysql_close($conn); ?> Voorbeeld 35.2:Het inloggen is gelukt.\n";
$db = mysql_select_db("TENNIS")
or die ("
Database onbekend.\n");
echo "
TENNIS is nu de courante database.\n";
mysql_close($conn);
?>
Voorbeeld 35.3:
Het inloggen is gelukt.\n";
$db = mysql_select_db("TENNIS")
or die ("
Database onbekend.\n");
echo "
TENNIS is nu de courante database.\n";
$result = mysql_query("CREATE UNIQUE INDEX SPPS
ON SPELERS (SPELERSNR)");
if (!$result)
{
echo "
Index SPPS is niet gecreëerd!\n";
}
else
{
echo "
Index SPPS is gecreëerd!\n";
};
mysql_close($conn);
?>
Voorbeeld 35.4:
Het inloggen is gelukt.\n";
$db = mysql_select_db("TENNIS")
or die ("
Database onbekend.\n");
echo "
TENNIS is nu de courante database.\n";
$result = mysql_query("CREATE UNIQUE INDEX SPPS
ON SPELERS (SPELERSNR)");
if (!$result)
{
echo "
Index SPPS is niet gecreëerd!\n";
}
else
{
echo "
Index SPPS is gecreëerd!\n";
};
echo "
mysql_info=".mysql_info($conn);
mysql_close($conn);
?>
Voorbeeld 35.5:
Het inloggen is gelukt.\n";
$db = mysql_select_db("TENNIS")
or die ("
Database onbekend.\n");
echo "
TENNIS is nu de courante database.\n";
$result = mysql_query("CREATE UNIQUE INDEX SPPS
ON SPELERS (SPELERSNR)");
if (!$result)
{
echo "
Index SPPS is niet gecreëerd!\n";
$error_number = mysql_errno();
$error_message = mysql_error();
echo "
Fout: $error_number: $error_message\n";
}
else
{
echo "
Index SPPS is gecreëerd!\n";
}
mysql_close($conn);
?>
Voorbeeld 35.6:
Het inloggen is gelukt.\n"; $host = "localhost"; $user = "BOEKSQL"; $pass = "BOEKSQLPW"; $conn2 = mysql_connect($host, $user, $pass) or die ("
Het inloggen is niet gelukt.\n"); echo "