SQL Practica
Inhoud
Deel 1: Select From Where.............................................................................................................................. 2
DB_FOUNDATIONS ...................................................................................................................................... 5
Deel 2: Logische operatoren en Order By ....................................................................................................... 7
Deel 3: DML – Insert, Update, Delete, Truncate ............................................................................................. 8
Deel 8: Aggregerende functies ........................................................................................................................ 9
Deel 9: Group By en Union ............................................................................................................................ 10
Deel 9a: Andere tabellen verkennen............................................................................................................. 12
Deel 9b: Joins ................................................................................................................................................ 13
VOORBEELD ............................................................................................................................................... 15
Deel 10: Subqueries ...................................................................................................................................... 16
Deel 11: Views ............................................................................................................................................... 18
,Deel 1: Select From Where
SELECT clausule; WHERE clausule; (NOT) LIKE; (NOT) IN; (NOT) BETWEEN AND
UITLEG CODE
gebruik databank use db_foundations;
commentaar invoegen -- commentaar
/*
dit is een commentaarblok met slash ster in het
commentaarblok invoegen
begin en ster slash op het einde
*/
SELECT *
alles selecteren uit een tabel
FROM employees;
SELECT phone_number, last_name, first_name
bepaalde kolommen selecteren uit een tabel
FROM employees;
SELECT last_name, salary, 12*salary+1000,
rekenen met kolommen 12*(salary+1000)
FROM employees;
SELECT concat(first_name, ' ', last_name, ' is a ',
job_id)
samenvoegen van kolommen met een zin
FROM employees;
SELECT concat(first_name, ' ', last_name, ' is a ',
job_id) AS "Who is who?"
FROM employees;
kolom-aliassen gebruiken
SELECT last_name "Naam", 12*salary+1000
"jaarloon"
FROM employees;
SELECT DISTINCT manager_id
kolom selecteren zonder duplicaten
FROM employees;
SELECT *
bepaalde rijen selecteren uit een tabel
FROM employees
- gelijk stellen aan een getal
WHERE department_id = 60;
bepaalde rijen selecteren uit een tabel SELECT *
, - gelijk stellen aan een tekst met ‘ ‘ FROM employees
- gelijk stellen aan een datum met ‘ ‘
WHERE job_id = 'IT_PROG';
volgens standaard
SELECT *
FROM employees
WHERE hire_date = '1999-11-16';
bepaalde rijen selecteren uit een tabel
SELECT *
- verschillend van een getal met != of <>
FROM employees
- die niet zijn ingevuld met IS NULL
WHERE department_id != 60;
- die wel zijn ingevuld met IS NOT NULL
- kleiner dan met <
- groter dan met > SELECT *
- minstens met >= FROM employees
- hoogstens met <=
WHERE department_id IS NULL;
SELECT *
bepaalde rijen selecteren uit een tabel FROM employees
- volgens alfabetische volgorde die na een WHERE first_name > "Peter";
bepaalde letter komen (of volledige
naam)
SELECT *
- die sedert een datum zijn aangenomen
FROM employees
WHERE hire_date >= "1999-11-16";
SELECT *
FROM employees
Wildcards gebruiken voor WHERE first_name LIKE "k%";
- een willekeurig aantal willekeurige
characters met “%”
SELECT *
vb. naam startend met k
vb. naam niet startend met k FROM employees
vb. datum bevat het jaar 1997
WHERE first_name NOT LIKE "k%";
- precies één willekeurig character met “_”
vb. e op de voorlaatste positie
SELECT *
OPM: datum schrijfwijze is jjj-mm-dd
FROM employees
OPM: backslash gebruiken als escape character
WHERE hire_date LIKE "1997%";
wanneer je underscore of backslash wil opnemen
vb. LIKE “%\_%”
vb. LIKE “%\\%” SELECT *
FROM employees
WHERE first_name LIKE "%e_";
, SELECT *
bepaalde rijen selecteren uit een tabel FROM employees
- die tot één van de opgegeven waarden WHERE department_id IN (110, 10, 80);
behoren
- die niet tot één van de opgegeven
waarden behoren SELECT *
OPM: vergeet aanhalingstekens niet waar nodig FROM employees
WHERE job_id NOT IN ("IT_PROG", "AD_VP");
SELECT *
FROM employees
WHERE hire_date BETWEEN "1998-03-15" AND
bepaalde rijen selecteren uit een tabel
"1998-04-01";
- die tussen de opgegeven waarden
bevinden
- die niet tussen de opgegeven waarden SELECT *
bevinden
FROM employees
vb. groter dan 90 of kleiner dan 20
WHERE department_id NOT BETWEEN 20 AND 90;
OPM: dit is echter inclusief grenzen! Wanneer je
werkelijk tussen de waarden wil dan verander je
de grenzen met één eenheid vb. tussen 20 en 90
SELECT *
FROM employees
WHERE department_id BETWEEN 21 AND 89;
Inhoud
Deel 1: Select From Where.............................................................................................................................. 2
DB_FOUNDATIONS ...................................................................................................................................... 5
Deel 2: Logische operatoren en Order By ....................................................................................................... 7
Deel 3: DML – Insert, Update, Delete, Truncate ............................................................................................. 8
Deel 8: Aggregerende functies ........................................................................................................................ 9
Deel 9: Group By en Union ............................................................................................................................ 10
Deel 9a: Andere tabellen verkennen............................................................................................................. 12
Deel 9b: Joins ................................................................................................................................................ 13
VOORBEELD ............................................................................................................................................... 15
Deel 10: Subqueries ...................................................................................................................................... 16
Deel 11: Views ............................................................................................................................................... 18
,Deel 1: Select From Where
SELECT clausule; WHERE clausule; (NOT) LIKE; (NOT) IN; (NOT) BETWEEN AND
UITLEG CODE
gebruik databank use db_foundations;
commentaar invoegen -- commentaar
/*
dit is een commentaarblok met slash ster in het
commentaarblok invoegen
begin en ster slash op het einde
*/
SELECT *
alles selecteren uit een tabel
FROM employees;
SELECT phone_number, last_name, first_name
bepaalde kolommen selecteren uit een tabel
FROM employees;
SELECT last_name, salary, 12*salary+1000,
rekenen met kolommen 12*(salary+1000)
FROM employees;
SELECT concat(first_name, ' ', last_name, ' is a ',
job_id)
samenvoegen van kolommen met een zin
FROM employees;
SELECT concat(first_name, ' ', last_name, ' is a ',
job_id) AS "Who is who?"
FROM employees;
kolom-aliassen gebruiken
SELECT last_name "Naam", 12*salary+1000
"jaarloon"
FROM employees;
SELECT DISTINCT manager_id
kolom selecteren zonder duplicaten
FROM employees;
SELECT *
bepaalde rijen selecteren uit een tabel
FROM employees
- gelijk stellen aan een getal
WHERE department_id = 60;
bepaalde rijen selecteren uit een tabel SELECT *
, - gelijk stellen aan een tekst met ‘ ‘ FROM employees
- gelijk stellen aan een datum met ‘ ‘
WHERE job_id = 'IT_PROG';
volgens standaard
SELECT *
FROM employees
WHERE hire_date = '1999-11-16';
bepaalde rijen selecteren uit een tabel
SELECT *
- verschillend van een getal met != of <>
FROM employees
- die niet zijn ingevuld met IS NULL
WHERE department_id != 60;
- die wel zijn ingevuld met IS NOT NULL
- kleiner dan met <
- groter dan met > SELECT *
- minstens met >= FROM employees
- hoogstens met <=
WHERE department_id IS NULL;
SELECT *
bepaalde rijen selecteren uit een tabel FROM employees
- volgens alfabetische volgorde die na een WHERE first_name > "Peter";
bepaalde letter komen (of volledige
naam)
SELECT *
- die sedert een datum zijn aangenomen
FROM employees
WHERE hire_date >= "1999-11-16";
SELECT *
FROM employees
Wildcards gebruiken voor WHERE first_name LIKE "k%";
- een willekeurig aantal willekeurige
characters met “%”
SELECT *
vb. naam startend met k
vb. naam niet startend met k FROM employees
vb. datum bevat het jaar 1997
WHERE first_name NOT LIKE "k%";
- precies één willekeurig character met “_”
vb. e op de voorlaatste positie
SELECT *
OPM: datum schrijfwijze is jjj-mm-dd
FROM employees
OPM: backslash gebruiken als escape character
WHERE hire_date LIKE "1997%";
wanneer je underscore of backslash wil opnemen
vb. LIKE “%\_%”
vb. LIKE “%\\%” SELECT *
FROM employees
WHERE first_name LIKE "%e_";
, SELECT *
bepaalde rijen selecteren uit een tabel FROM employees
- die tot één van de opgegeven waarden WHERE department_id IN (110, 10, 80);
behoren
- die niet tot één van de opgegeven
waarden behoren SELECT *
OPM: vergeet aanhalingstekens niet waar nodig FROM employees
WHERE job_id NOT IN ("IT_PROG", "AD_VP");
SELECT *
FROM employees
WHERE hire_date BETWEEN "1998-03-15" AND
bepaalde rijen selecteren uit een tabel
"1998-04-01";
- die tussen de opgegeven waarden
bevinden
- die niet tussen de opgegeven waarden SELECT *
bevinden
FROM employees
vb. groter dan 90 of kleiner dan 20
WHERE department_id NOT BETWEEN 20 AND 90;
OPM: dit is echter inclusief grenzen! Wanneer je
werkelijk tussen de waarden wil dan verander je
de grenzen met één eenheid vb. tussen 20 en 90
SELECT *
FROM employees
WHERE department_id BETWEEN 21 AND 89;