Workshop deel 1

In het eerste deel van de workshop wordt het begrip SQL uitgelegd en gaan we een eerste database gebruiken. Hierin gaan we een tabel aanmaken en enkele queries uitvoeren om de werking ervan aan te tonen.

Wat is SQL?

SQL , languit Structured Query Language, is een ANSI/ISO-standaardtaal voor een relationeel databasemanagementsysteem (DBMS). Het is een gestandaardiseerde taal die gebruikt kan worden voor taken zoals het bevragen en het aanpassen van gegevens in een relationele database. SQL kan met vrijwel alle moderne relationele databaseproducten worden gebruikt.

Werking

SQL maakt voor de communicatie met het DBMS gebruik van zogenaamde query’s. Een query is een ASCII-tekenreeks en is een opdracht die naar het DBMS wordt verzonden. Het DBMS zal de opdracht interpreteren en uitvoeren en stuurt eventueel gegevens terug naar het opdrachtgevende programma.

Aanmaken van een database

Om te beginnen maak je een nieuwe connectie of open je een bestaande connectie indien je daar de controle over hebt. Eenmaal binnen je connectie zie je links een zijbalk met 'Schema' staan. Daar doe je rechtermuisklik op een lege plek binnen het kader. Dan kies je 'Create schema'. Dan komt er een pop-up waarbij wordt gevraagd naar de naam voor de nieuwe database.

Als naam kiezen wij 'world'

Als je op 'Apply' (2x) en 'Finish' klikt is de database aangemaakt. Om deze zichtbaar te maken refresh je het 'schema'-menubalk.

Aanmaken van een tabel

Een tabel aanmaken gaan we doen met volgend commando: CREATE table ‘naam’(‘naam’ type attributen,‘naam’ type attributen,…​); Met 'type attributen' bedoelen we een kolomtype. Dit bepaald wat voor soort data er in dat veld moet komen. Deze kolomtypes kunnen we onderverdelen in enkele categoriën:

  1. Gehele getallen: TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT (van kleine naar grote getallen)

  2. Decimale getallen: FLOAT, DOUBLE, DECIMAL (van minder naar meer precies)

  3. Tekst: CHAR, VARCHAR, TEKST, BLOB (van weinig naar veel tekst)

  4. Datum & tijd: DATE, TIME, DATETIME, YEAR, TIMESTAMP

  5. Enumeratie: ENUM (dit is een vaste rij met waarden waarbij je veld enkel uit 1 van deze waardes kan bestaan)

Voor de workshop voer je volgend commando in: CREATE TABLE countries ( Code char(3) PRIMARY KEY, Name VARCHAR(50) NOT NULL, Continent enum('Asia','Europe','North America','South America','Africa','Oceania','Antarctica'), Region VARCHAR(50), SurfaceArea double, IndepYear int(4), Population double, LifeExpectancy double, GovernmentForm VARCHAR(50));

Invullen van data in een tabel

Data in een tabel steken doen we met het INSERT-commando. Dat ziet er dan bijvoorbeeld als volgt uit: INSERT INTO tabelnaam (kolom1, kolom2 [, …​] ) VALUES (waarde1, waarde2 [, …​] );

Normaal vul je zelf de waarden voor de tabel in maar om het jullie makkelijk te maken geven we een commando waardoor je tabel wordt gevuld met data.

Voer voor de data volgend commando in, in een nieuwe query:

use world;

INSERT INTO countries VALUES ('ABW','Aruba',"North America",'Caribbean',193,NULL,103000,78.4,"NonmetropolitanTerritoryofTheNetherlands"),('AFG','Afghanistan','Asia',"SouthernandCentralAsia",652090,1919,22720000,45.9,"IslamicEmirate"),('AGO','Angola','Africa',"CentralAfrica",1246700,1975,12878000,38.3,'Republic'),('AIA','Anguilla',"North America",'Caribbean',96,NULL,8000,76.1,"DependentTerritoryoftheUK"),('ALB','Albania','Europe',"SouthernEurope",28748,1912,3401200,71.6,'Republic'),('AND','Andorra','Europe',"SouthernEurope",468,1278,78000,83.5,"ParliamentaryCoprincipality"),('ANT',"NetherlandsAntilles","North America",'Caribbean',800,NULL,217000,74.7,"NonmetropolitanTerritoryofTheNetherlands"),('ARE',"UnitedArabEmirates",'Asia',"Middle East",83600,1971,2441000,74.1,"EmirateFederation"),('ARG','Argentina',"South America","South America",2780400,1816,37032000,75.1,"Federal’Republic'"),('ARM','Armenia','Asia',"Middle East",29800,1991,3520000,66.4,'Republic'),('ASM',"AmericanSamoa",'Oceania','Polynesia',199,NULL,68000,75.1,"USTerritory"),('ATA','Antarctica','Antarctica','Antarctica',13120000,NULL,0,NULL,'Co-administrated'),('ATF',"FrenchSouthernterritories",'Antarctica','Antarctica',7780,NULL,0,NULL,"NonmetropolitanTerritoryofFrance"),('ATG',"AntiguaandBarbuda","North America",'Caribbean',442,1981,68000,70.5,"ConstitutionalMonarchy"),('AUS','Australia','Oceania',"AustraliaandNewZealand",7741220,1901,18886000,79.8,"ConstitutionalMonarchy,Federation"),('AUT','Austria','Europe',"Western Europe",83859,1918,8091800,77.7,"Federal’Republic'"),('AZE','Azerbaijan','Asia',"Middle East",86600,1991,7734000,62.9,"Federal’Republic'"),('BDI','Burundi','Africa',"EasternAfrica",27834,1962,6695000,46.2,'Republic'),('BEL','Belgium','Europe',"Western Europe",30518,1830,10239000,77.8,"ConstitutionalMonarchy,Federation"),('BEN','Benin','Africa',"WesternAfrica",112622,1960,6097000,50.2,'Republic'),('BFA',"BurkinaFaso",'Africa',"WesternAfrica",274000,1960,11937000,46.7,'Republic'),('BGD','Bangladesh','Asia',"SouthernandCentralAsia",143998,1971,129155000,60.2,'Republic'),('BGR','Bulgaria','Europe',"EasternEurope",110994,1908,8190900,70.9,'Republic'),('BHR','Bahrain','Asia',"Middle East",694,1971,617000,73,"Monarchy(Emirate)"),('BHS','Bahamas',"North America",'Caribbean',13878,1973,307000,71.1,"ConstitutionalMonarchy"),('BIH',"BosniaandHerzegovina",'Europe',"SouthernEurope",51197,1992,3972000,71.5,"Federal’Republic'"),('BLR','Belarus','Europe',"EasternEurope",207600,1991,10236000,68,'Republic'),('BLZ','Belize',"North America","CentralAmerica",22696,1981,241000,70.9,"ConstitutionalMonarchy"),('BMU','Bermuda',"North America","North America",53,NULL,65000,76.9,"DependentTerritoryoftheUK"),('BOL','Bolivia',"South America","South America",1098581,1825,8329000,63.7,'Republic'),('BRA','Brazil',"South America","South America",8547403,1822,170115000,62.9,"Federal’Republic'"),('BRB','Barbados',"North America",'Caribbean',430,1966,270000,73,"ConstitutionalMonarchy"),('BRN','Brunei','Asia',"SoutheastAsia",5765,1984,328000,73.6,"Monarchy(Sultanate)"),('BTN','Bhutan','Asia',"SouthernandCentralAsia",47000,1910,2124000,52.4,'Monarchy'),('BVT',"BouvetIsland",'Antarctica','Antarctica',59,NULL,0,NULL,"DependentTerritoryofNorway"),('BWA','Botswana','Africa',"SouthernAfrica",581730,1966,1622000,39.3,'Republic'),('CAF',"CentralAfrican’Republic'",'Africa',"CentralAfrica",622984,1960,3615000,44,'Republic'),('CAN','Canada',"North America","North America",9970610,1867,31147000,79.4,"ConstitutionalMonarchy,Federation"),('CCK',"Cocos(Keeling)Islands",'Oceania',"AustraliaandNewZealand",14,NULL,600,NULL,"TerritoryofAustralia"),('CHE','Switzerland','Europe',"Western Europe",41284,1499,7160400,79.6,'Federation'),('CHL','Chile',"South America","South America",756626,1810,15211000,75.7,'Republic'),('CHN','China','Asia',"EasternAsia",9572900,-1523,1277558000,71.4,'People’sRepublic'),('CIV',"CôtedÂ’Ivoire",'Africa',"WesternAfrica",322463,1960,14786000,45.2,'Republic'),('CMR','Cameroon','Africa',"CentralAfrica",475442,1960,15085000,54.8,'Republic'),('COD',"Congo,TheDemocraticRepublicofthe",'Africa',"CentralAfrica",2344858,1960,51654000,48.8,'Republic'),('COG','Congo','Africa',"CentralAfrica",342000,1960,2943000,47.4,'Republic'),('COK',"CookIslands",'Oceania','Polynesia',236,NULL,20000,71.1,"NonmetropolitanTerritoryofNewZealand"),('COL','Colombia',"South America","South America",1138914,1810,42321000,70.3,'Republic'),('COM','Comoros','Africa',"EasternAfrica",1862,1975,578000,60,'Republic'),('CPV',"CapeVerde",'Africa',"WesternAfrica",4033,1975,428000,68.9,'Republic'),('CRI',"CostaRica","North America","CentralAmerica",51100,1821,4023000,75.8,'Republic'),('CUB','Cuba',"North America",'Caribbean',110861,1902,11201000,76.2,"SocialisticRepublic"),('CXR',"ChristmasIsland",'Oceania',"AustraliaandNewZealand",135,NULL,2500,NULL,"TerritoryofAustralia"),('CYM',"CaymanIslands","North America",'Caribbean',264,NULL,38000,78.9,"DependentTerritoryoftheUK"),('CYP','Cyprus','Asia',"Middle East",9251,1960,754700,76.7,'Republic'),('CZE',"CzechRepublic",'Europe',"EasternEurope",78866,1993,10278100,74.5,'Republic'),('DEU','Germany','Europe',"Western Europe",357022,1955,82164700,77.4,"Federal’Republic'"),('DJI','Djibouti','Africa',"EasternAfrica",23200,1977,638000,50.8,'Republic'),('DMA','Dominica',"North America",'Caribbean',751,1978,71000,73.4,'Republic'),('DNK','Denmark','Europe',"NordicCountries",43094,800,5330000,76.5,"ConstitutionalMonarchy"),('DOM',"DominicanRepublic","North America",'Caribbean',48511,1844,8495000,73.2,'Republic'),('DZA','Algeria','Africa',"NorthernAfrica",2381741,1962,31471000,69.7,'Republic'),('ECU','Ecuador',"South America","South America",283561,1822,12646000,71.1,'Republic'),('EGY','Egypt','Africa',"NorthernAfrica",1001449,1922,68470000,63.3,'Republic'),('ERI','Eritrea','Africa',"EasternAfrica",117600,1993,3850000,55.8,'Republic'),('ESH',"WesternSahara",'Africa',"NorthernAfrica",266000,NULL,293000,49.8,"OccupiedbyMarocco"),('ESP','Spain','Europe',"SouthernEurope",505992,1492,39441700,78.8,"ConstitutionalMonarchy"),('EST','Estonia','Europe',"BalticCountries",45227,1991,1439200,69.5,'Republic'),('ETH','Ethiopia','Africa',"EasternAfrica",1104300,-1000,62565000,45.2,'Republic'),('FIN','Finland','Europe',"NordicCountries",338145,1917,5171300,77.4,'Republic'),('FJI',"FijiIslands",'Oceania','Melanesia',18274,1970,817000,67.9,'Republic'),('FLK',"FalklandIslands","South America","South America",12173,NULL,2000,NULL,"DependentTerritoryoftheUK"),('FRA','France','Europe',"Western Europe",551500,843,59225700,78.8,'Republic'),('FRO',"FaroeIslands",'Europe',"NordicCountries",1399,NULL,43000,78.4,"PartofDenmark"),('FSM',"Micronesia,FederatedStatesof",'Oceania','Micronesia',702,1990,119000,68.6,"Federal’Republic'"),('GAB','Gabon','Africa',"CentralAfrica",267668,1960,1226000,50.1,'Republic'),('GBR',"UnitedKingdom",'Europe',"BritishIslands",242900,1066,59623400,77.7,"ConstitutionalMonarchy"),('GEO','Georgia','Asia',"Middle East",69700,1991,4968000,64.5,'Republic'),('GHA','Ghana','Africa',"WesternAfrica",238533,1957,20212000,57.4,'Republic'),('GIB','Gibraltar','Europe',"SouthernEurope",6,NULL,25000,79,"DependentTerritoryoftheUK"),('GIN','Guinea','Africa',"WesternAfrica",245857,1958,7430000,45.6,'Republic'),('GLP','Guadeloupe',"North America",'Caribbean',1705,NULL,456000,77,"OverseasDepartmentofFrance"),('GMB','Gambia','Africa',"WesternAfrica",11295,1965,1305000,53.2,'Republic'),('GNB','Guinea-Bissau','Africa',"WesternAfrica",36125,1974,1213000,49,'Republic'),('GNQ',"EquatorialGuinea",'Africa',"CentralAfrica",28051,1968,453000,53.6,'Republic'),('GRC','Greece','Europe',"SouthernEurope",131626,1830,10545700,78.4,'Republic'),('GRD','Grenada',"North America",'Caribbean',344,1974,94000,64.5,"ConstitutionalMonarchy"),('GRL','Greenland',"North America","North America",2166090,NULL,56000,68.1,"PartofDenmark"),('GTM','Guatemala',"North America","CentralAmerica",108889,1821,11385000,66.2,'Republic'),('GUF',"FrenchGuiana","South America","South America",90000,NULL,181000,76.1,"OverseasDepartmentofFrance"),('GUM','Guam','Oceania','Micronesia',549,NULL,168000,77.8,"USTerritory"),('GUY','Guyana',"South America","South America",214969,1966,861000,64,'Republic'),('HKG',"HongKong",'Asia',"EasternAsia",1075,NULL,6782000,79.5,"SpecialAdministrativeRegionofChina"),('HMD',"HeardIslandandMcDonaldIslands",'Antarctica','Antarctica',359,NULL,0,NULL,"TerritoryofAustralia"),('HND','Honduras',"North America","CentralAmerica",112088,1838,6485000,69.9,'Republic'),('HRV','Croatia','Europe',"SouthernEurope",56538,1991,4473000,73.7,'Republic'),('HTI','Haiti',"North America",'Caribbean',27750,1804,8222000,49.2,'Republic'),('HUN','Hungary','Europe',"EasternEurope",93030,1918,10043200,71.4,'Republic'),('IDN','Indonesia','Asia',"SoutheastAsia",1904569,1945,212107000,68,'Republic'),('IND','India','Asia',"SouthernandCentralAsia",3287263,1947,1013662000,62.5,"Federal’Republic'"),('IOT',"BritishIndianOceanTerritory",'Africa',"EasternAfrica",78,NULL,0,NULL,"DependentTerritoryoftheUK"),('IRL','Ireland','Europe',"BritishIslands",70273,1921,3775100,76.8,'Republic'),('IRN','Iran','Asia',"SouthernandCentralAsia",1648195,1906,67702000,69.7,"Islamic’Republic'"),('IRQ','Iraq','Asia',"Middle East",438317,1932,23115000,66.5,'Republic'),('ISL','Iceland','Europe',"NordicCountries",103000,1944,279000,79.4,'Republic'),('ISR','Israel','Asia',"Middle East",21056,1948,6217000,78.6,'Republic'),('ITA','Italy','Europe',"SouthernEurope",301316,1861,57680000,79,'Republic'),('JAM','Jamaica',"North America",'Caribbean',10990,1962,2583000,75.2,"ConstitutionalMonarchy"),('JOR','Jordan','Asia',"Middle East",88946,1946,5083000,77.4,"ConstitutionalMonarchy"),('JPN','Japan','Asia',"EasternAsia",377829,-660,126714000,80.7,"ConstitutionalMonarchy"),('KAZ','Kazakstan','Asia',"SouthernandCentralAsia",2724900,1991,16223000,63.2,'Republic'),('KEN','Kenya','Africa',"EasternAfrica",580367,1963,30080000,48,'Republic'),('KGZ','Kyrgyzstan','Asia',"SouthernandCentralAsia",199900,1991,4699000,63.4,'Republic'),('KHM','Cambodia','Asia',"SoutheastAsia",181035,1953,11168000,56.5,"ConstitutionalMonarchy"),('KIR','Kiribati','Oceania','Micronesia',726,1979,83000,59.8,'Republic'),('KNA',"SaintKittsandNevis","North America",'Caribbean',261,1983,38000,70.7,"ConstitutionalMonarchy"),('KOR',"SouthKorea",'Asia',"EasternAsia",99434,1948,46844000,74.4,'Republic'),('KWT','Kuwait','Asia',"Middle East",17818,1961,1972000,76.1,"ConstitutionalMonarchy(Emirate)"),('LAO','Laos','Asia',"SoutheastAsia",236800,1953,5433000,53.1,'Republic'),('LBN','Lebanon','Asia',"Middle East",10400,1941,3282000,71.3,'Republic'),('LBR','Liberia','Africa',"Western’Africa'",111369,1847,3154000,51,'Republic'),('LBY',"LibyanArabJamahiriya",'Africa',"NorthernAfrica",1759540,1951,5605000,75.5,"SocialisticState"),('LCA',"SaintLucia","North America",'Caribbean',622,1979,154000,72.3,"ConstitutionalMonarchy"),('LIE','Liechtenstein','Europe',"Western Europe",160,1806,32300,78.8,"ConstitutionalMonarchy"),('LKA',"SriLanka",'Asia',"SouthernandCentralAsia",65610,1948,18827000,71.8,'Republic'),('LSO','Lesotho','Africa',"SouthernAfrica",30355,1966,2153000,50.8,"ConstitutionalMonarchy"),('LTU','Lithuania','Europe',"BalticCountries",65301,1991,3698500,69.1,'Republic'),('LUX','Luxembourg','Europe',"Western Europe",2586,1867,435700,77.1,"ConstitutionalMonarchy"),('LVA','Latvia','Europe',"BalticCountries",64589,1991,2424200,68.4,'Republic'),('MAC','Macao','Asia',"EasternAsia",18,NULL,473000,81.6,"SpecialAdministrativeRegionofChina"),('MAR','Morocco','Africa',"NorthernAfrica",446550,1956,28351000,69.1,"ConstitutionalMonarchy"),('MCO','Monaco','Europe',"Western Europe",1.5,1861,34000,78.8,"ConstitutionalMonarchy"),('MDA','Moldova','Europe',"EasternEurope",33851,1991,4380000,64.5,'Republic'),('MDG','Madagascar','Africa',"EasternAfrica",587041,1960,15942000,55,"FederalRepublic"),('MDV','Maldives','Asia',"SouthernandCentralAsia",298,1965,286000,62.2,'Republic'),('MEX','Mexico',"North America","CentralAmerica",1958201,1810,98881000,71.5,"FederalRepublic"),('MHL',"MarshallIslands",'Oceania','Micronesia',181,1990,64000,65.5,'Republic'),('MKD','Macedonia','Europe',"SouthernEurope",25713,1991,2024000,73.8,'Republic'),('MLI','Mali','Africa',"WesternAfrica",1240192,1960,11234000,46.7,'Republic'),('MLT','Malta','Europe',"SouthernEurope",316,1964,380200,77.9,'Republic'),('MMR','Myanmar','Asia',"SoutheastAsia",676578,1948,45611000,54.9,'Republic'),('MNG','Mongolia','Asia',"EasternAsia",1566500,1921,2662000,67.3,'Republic'),('MNP',"NorthernMarianaIslands",'Oceania','Micronesia',464,NULL,78000,75.5,"CommonwealthoftheUS"),('MOZ','Mozambique','Africa',"EasternAfrica",801590,1975,19680000,37.5,'Republic'),('MRT','Mauritania','Africa',"WesternAfrica",1025520,1960,2670000,50.8,'Republic'),('MSR','Montserrat',"North America",'Caribbean',102,NULL,11000,78,"DependentTerritoryoftheUK"),('MTQ','Martinique',"North America",'Caribbean',1102,NULL,395000,78.3,"OverseasDepartmentofFrance"),('MUS','Mauritius','Africa',"EasternAfrica",2040,1968,1158000,71,'Republic'),('MWI','Malawi','Africa',"EasternAfrica",118484,1964,10925000,37.6,'Republic'),('MYS','Malaysia','Asia',"SoutheastAsia",329758,1957,22244000,70.8,"ConstitutionalMonarchy,Federation"),('MYT','Mayotte','Africa',"EasternAfrica",373,NULL,149000,59.5,"TerritorialCollectivityofFrance"),('NAM','Namibia','Africa',"SouthernAfrica",824292,1990,1726000,42.5,'Republic'),('NCL',"NewCaledonia",'Oceania','Melanesia',18575,NULL,214000,72.8,"NonmetropolitanTerritoryofFrance"),('NER','Niger','Africa',"WesternAfrica",1267000,1960,10730000,41.3,'Republic'),('NFK',"NorfolkIsland",'Oceania',"AustraliaandNewZealand",36,NULL,2000,NULL,"TerritoryofAustralia"),('NGA','Nigeria','Africa',"WesternAfrica",923768,1960,111506000,51.6,"Federal’Republic'"),('NIC','Nicaragua',"North America","CentralAmerica",130000,1838,5074000,68.7,'Republic'),('NIU','Niue','Oceania','Polynesia',260,NULL,2000,NULL,"NonmetropolitanTerritoryofNewZealand"),('NLD','Netherlands','Europe',"Western Europe",41526,1581,15864000,78.3,"ConstitutionalMonarchy"),('NOR','Norway','Europe',"NordicCountries",323877,1905,4478500,78.7,"ConstitutionalMonarchy"),('NPL','Nepal','Asia',"SouthernandCentralAsia",147181,1769,23930000,57.8,"ConstitutionalMonarchy"),('NRU','Nauru','Oceania','Micronesia',21,1968,12000,60.8,'Republic'),('NZL',"NewZealand",'Oceania',"AustraliaandNewZealand",270534,1907,3862000,77.8,"ConstitutionalMonarchy"),('OMN','Oman','Asia',"Middle East",309500,1951,2542000,71.8,"Monarchy(Sultanate)"),('PAK','Pakistan','Asia',"SouthernandCentralAsia",796095,1947,156483000,61.1,'Republic'),('PAN','Panama',"North America","CentralAmerica",75517,1903,2856000,75.5,'Republic'),('PCN','Pitcairn','Oceania','Polynesia',49,NULL,50,NULL,"DependentTerritoryoftheUK"),('PER','Peru',"South America","South America",1285216,1821,25662000,70,'Republic'),('PHL','Philippines','Asia',"SoutheastAsia",300000,1946,75967000,67.5,'Republic'),('PLW','Palau','Oceania','Micronesia',459,1994,19000,68.6,'Republic'),('PNG',"PapuaNewGuinea",'Oceania','Melanesia',462840,1975,4807000,63.1,"ConstitutionalMonarchy"),('POL','Poland','Europe',"EasternEurope",323250,1918,38653600,73.2,'Republic'),('PRI',"PuertoRico","North America",'Caribbean',8875,NULL,3869000,75.6,"CommonwealthoftheUS"),('PRK',"NorthKorea",'Asia',"EasternAsia",120538,1948,24039000,70.7,"Socialistic’Republic'"),('PRT','Portugal','Europe',"SouthernEurope",91982,1143,9997600,75.8,'Republic'),('PRY','Paraguay',"South America","South America",406752,1811,5496000,73.7,'Republic'),('PSE','Palestine','Asia',"Middle East",6257,NULL,3101000,71.4,"AutonomousArea"),('PYF',"FrenchPolynesia",'Oceania','Polynesia',4000,NULL,235000,74.8,"NonmetropolitanTerritoryofFrance"),('QAT','Qatar','Asia',"Middle East",11000,1971,599000,72.4,'Monarchy'),('REU','Réunion','Africa',"EasternAfrica",2510,NULL,699000,72.7,"OverseasDepartmentofFrance"),('ROM','Romania','Europe',"EasternEurope",238391,1878,22455500,69.9,'Republic'),('RUS',"RussianFederation",'Europe',"EasternEurope",17075400,1991,146934000,67.2,"Federal’Republic'"),('RWA','Rwanda','Africa',"EasternAfrica",26338,1962,7733000,39.3,'Republic'),('SAU',"SaudiArabia",'Asia',"Middle East",2149690,1932,21607000,67.8,'Monarchy'),('SDN','Sudan','Africa',"NorthernAfrica",2505813,1956,29490000,56.6,"Islamic’Republic'"),('SEN','Senegal','Africa',"WesternAfrica",196722,1960,9481000,62.2,'Republic'),('SGP','Singapore','Asia',"SoutheastAsia",618,1965,3567000,80.1,'Republic'),('SGS',"SouthGeorgiaandtheSouthSandwichIslands",'Antarctica','Antarctica',3903,NULL,0,NULL,"DependentTerritoryoftheUK"),('SHN',"SaintHelena",'Africa',"WesternAfrica",314,NULL,6000,76.8,"DependentTerritoryoftheUK"),('SJM',"SvalbardandJanMayen",'Europe',"NordicCountries",62422,NULL,3200,NULL,"DependentTerritoryofNorway"),('SLB',"SolomonIslands",'Oceania','Melanesia',28896,1978,444000,71.3,"ConstitutionalMonarchy"),('SLE',"SierraLeone",'Africa',"WesternAfrica",71740,1961,4854000,45.3,'Republic'),('SLV',"ElSalvador","North America","CentralAmerica",21041,1841,6276000,69.7,'Republic'),('SMR',"SanMarino",'Europe',"SouthernEurope",61,885,27000,81.1,'Republic'),('SOM','Somalia','Africa',"EasternAfrica",637657,1960,10097000,46.2,'Republic'),('SPM',"SaintPierreandMiquelon","North America","North America",242,NULL,7000,77.6,"TerritorialCollectivityofFrance"),('STP',"SaoTomeandPrincipe",'Africa',"CentralAfrica",964,1975,147000,65.3,'Republic'),('SUR','Suriname',"South America","South America",163265,1975,417000,71.4,'Republic'),('SVK','Slovakia','Europe',"EasternEurope",49012,1993,5398700,73.7,'Republic'),('SVN','Slovenia','Europe',"SouthernEurope",20256,1991,1987800,74.9,'Republic'),('SWE','Sweden','Europe',"NordicCountries",449964,836,8861400,79.6,"ConstitutionalMonarchy"),('SWZ','Swaziland','Africa',"SouthernAfrica",17364,1968,1008000,40.4,'Monarchy'),('SYC','Seychelles','Africa',"EasternAfrica",455,1976,77000,70.4,'Republic'),('SYR','Syria','Asia',"Middle East",185180,1941,16125000,68.5,'Republic'),('TCA',"TurksandCaicosIslands","North America",'Caribbean',430,NULL,17000,73.3,"DependentTerritoryoftheUK"),('TCD','Chad','Africa',"CentralAfrica",1284000,1960,7651000,50.5,'Republic'),('TGO','Togo','Africa',"WesternAfrica",56785,1960,4629000,54.7,'Republic'),('THA','Thailand','Asia',"SoutheastAsia",513115,1350,61399000,68.6,"ConstitutionalMonarchy"),('TJK','Tajikistan','Asia',"SouthernandCentralAsia",143100,1991,6188000,64.1,'Republic'),('TKL','Tokelau','Oceania','Polynesia',12,NULL,2000,NULL,"NonmetropolitanTerritoryofNewZealand"),('TKM','Turkmenistan','Asia',"SouthernandCentralAsia",488100,1991,4459000,60.9,'Republic'),('TMP',"EastTimor",'Asia',"SoutheastAsia",14874,NULL,885000,46,"AdministratedbytheUN"),('TON','Tonga','Oceania','Polynesia',650,1970,99000,67.9,'Monarchy'),('TTO',"TrinidadandTobago","North America",'Caribbean',5130,1962,1295000,68,'Republic'),('TUN','Tunisia','Africa',"NorthernAfrica",163610,1956,9586000,73.7,'Republic'),('TUR','Turkey','Asia',"Middle East",774815,1923,66591000,71,'Republic'),('TUV','Tuvalu','Oceania','Polynesia',26,1978,12000,66.3,"ConstitutionalMonarchy"),('TWN','Taiwan','Asia',"EasternAsia",36188,1945,22256000,76.4,'Republic'),('TZA','Tanzania','Africa',"EasternAfrica",883749,1961,33517000,52.3,'Republic'),('UGA','Uganda','Africa',"EasternAfrica",241038,1962,21778000,42.9,'Republic'),('UKR','Ukraine','Europe',"EasternEurope",603700,1991,50456000,66,'Republic'),('UMI',"UnitedStatesMinorOutlyingIslands",'Oceania','Micronesia/Caribbean',16,NULL,0,NULL,"DependentTerritoryoftheUS"),('URY','Uruguay',"South America","South America",175016,1828,3337000,75.2,'Republic'),('USA',"UnitedStates","North America","North America",9363520,1776,278357000,77.1,"Federal’Republic'"),('UZB','Uzbekistan','Asia',"SouthernandCentralAsia",447400,1991,24318000,63.7,'Republic'),('VAT',"HolySee(VaticanCityState)",'Europe',"SouthernEurope",0.4,1929,1000,NULL,"IndependentChurchState"),('VCT',"SaintVincentandtheGrenadines","North America",'Caribbean',388,1979,114000,72.3,"ConstitutionalMonarchy"),('VEN','Venezuela',"South America","South America",912050,1811,24170000,73.1,"Federal’Republic'"),('VGB',"VirginIslands,British","North America",'Caribbean',151,NULL,21000,75.4,"DependentTerritoryoftheUK"),('VIR',"VirginIslands,U.S.","North America",'Caribbean',347,NULL,93000,78.1,"USTerritory"),('VNM','Vietnam','Asia',"SoutheastAsia",331689,1945,79832000,69.3,"Socialistic’Republic'"),('VUT','Vanuatu','Oceania','Melanesia',12189,1980,190000,60.6,'Republic'),('WLF',"WallisandFutuna",'Oceania','Polynesia',200,NULL,15000,NULL,"NonmetropolitanTerritoryofFrance"),('WSM','Samoa','Oceania','Polynesia',2831,1962,180000,69.2,"ParlementaryMonarchy"),('YEM','Yemen','Asia',"Middle East",527968,1918,18112000,59.8,'Republic'),('YUG','Yugoslavia','Europe',"SouthernEurope",102173,1918,10640000,72.4,"Federal’Republic'"),('ZAF',"SouthAfrica",'Africa',"SouthernAfrica",1221037,1910,40377000,51.1,'Republic'),('ZMB','Zambia','Africa',"EasternAfrica",752618,1964,9169000,37.2,'Republic'),('ZWE','Zimbabwe','Africa',"EasternAfrica",390757,1980,11669000,37.8,'Republic');

SQL uitdrukkingen

Hieronder staat een tabel van enkele SQL-uitdrukkingen. Dit zijn basis-uitdrukkingen die gebruikt worden om de database te maken, in te vullen, te bewerken of te verwijderen. De INSERT-uitdrukking hebben jullie zonet gebruikt om data toe te voegen. Hierna gaan we het SELECT-commando gebruiken om gevraagde output te krijgen en het UPDATE-commando om enkele gegevens aan te passen. De overige gaan we niet gebruiken.

Uitdrukking Beschrijving Query

CREATE DATABASE

nieuwe database

CREATE DATABASE database_naam;

CREATE TABLE

nieuwe tabel

CREATE TABLE tabel_naam(kolom1 text, kolom2 integer [, …​] ) ;

INSERT

nieuwe gegevens in de tabel toevoegen

INSERT INTO tabelnaam (kolom1, kolom2 [, …​] ) VALUES (waarde1, waarde2 [, …​] );

SELECT

gegevens uit een tabel selecteren

SELECT kolom1, kolom2 [, …​] FROM tabelnaam;

UPDATE

bestaande rijen (Engels: rows) wijzigen

UPDATE tabelnaam SET kolom1 = waarde1 [, …​];

DELETE

rijen wissen uit een tabel

DELETE FROM tabelnaam WHERE conditie;

TRUNCATE

alle rijen wissen uit een tabel

TRUNCATE TABLE tabelnaam;

DROP

tabel geheel wissen uit de database

DROP TABLE tabelnaam;

De SELECT-query

Met de SELECT-query kunnen we bepaalde output te zien krijgen. Als we bijvoorbeeld alles willen zien zullen we (van in onze database!) het volgend commando uitvoeren: SELECT * FROM countries

De ster '*' zorgt ervoor dat je alle tabelvelden te zien krijgt.
Voor je query moet altijd blijven staan welke database je gebruikt, in ons geval dus: use world;

Nu mogen jullie proberen om:

  1. Enkel alle namen te zien te krijgen

  2. Enkel de landcode en de populatie te zien te krijgen

  3. Alles behalve het onafhankelijkheidsjaar te zien te krijgen

De UPDATE-query

Met de UPDATE-query kunnen we bestaande data uit de tabel aanpassen. Met het commando 'UPDATE countries SET Name="België" where Code='BEL';' passen we de naam aan van Belgium naar België. Probeer dit commando zelf uit en kijk daarna of je de verandering zichtbaar krijgt.

Mysql Workbench staat default ingesteld met 'safe update and delete'. Dit wil zeggen dat je enkel kan updaten of deleten indien je een restrictie weergeeft met de Primary Key als conditie. Om dit te testen zou je eens kunnen proberen een UPDATE uit te voeren met clausule: 'WHERE Name="";' in plaats van met 'WHERE Code='';'

Filter data output

WHERE-clausule

De WHERE-clausule wordt gebruikt om enkele specificaties op te geven aan je query. Bij het commando 'SELECT * from countries WHERE Name="Belgium";' zal je dus enkel alle data krijgen van landen waar de naam "Belgium" is. Je kan meerdere condities invoeren bij de WHERE-command met OR, AND, NOT. Deze kunnen ook gecombineerd worden.

Je kan ook bijvoorbeeld zoeken naar waarden waar meerdere keren hetzelfde element in zit. Kijk daarvoor eens naar onderstaande tabel.

Symbool Beschrijving Voorbeeld

%

Representeert 0 of meer karakters

bl% vindt bl, blauw, blob

_

representeert 1 karakter

b_d vindt bad, bed, bid

[]

representeert elk karakter tussen de brackets

b[ae]d vindt bad en bed maar niet bid

^

representeert elk karakter dat niet in de brackets staan

b[^ae]d vindt bid maar niet bad en bed

-

representeert een range van karakters

c[a-b]t vindt cat en cbt

Met deze symbolen gaan we dan niet werkenmet '=' maar met een LIKE-statement. vb: SELECT * from countries WHERE Name LIKE 'bel%;'

Met die info gaan we enkele oefeningen maken:

  1. Bekijk alle landen die beginnen met een I.

  2. Bekijk alle landen waarvan de staatsvorm een Republiek is.

  3. Bekijk alle landen met minder dan 100.000 inwoners.

  4. Bekijk alle niet-onafhankelijke landen.

  5. Bekijk alle Europese landen met een levensverwachting boven 75 jaar.

  6. Bekijk alle landen waarvan het onafhankelijksjaar in de 16e eeuw ligt.

COUNT- en SUM-statement

Het COUNT-statement telt het aantal rijen met eventueel een bepaalde conditie achter (via een WHERE-statement). Het commando 'SELECT COUNT(*) from countries;' zal dus alle landen uit je tabel teruggeven.

Het COUNT-statement geeft een numerieke waarde terug en niet alle info over de desbetreffende landen.

Geef nu het aantal landen:

  1. die eindigen op -land.

  2. met meer dan 10 miljoen inwoners.

  3. uit West-Europe waarvan de oppervlakte groter is dan 40000.

Het SUM-statement telt getalwaarden op. Het juiste veld moet worden meegegeven met dit statement. Het commando 'SELECT SUM(Population) from countries where Name LIKE 'bel%';' telt alle inwoners van landen die beginnen met 'bel' bij elkaar op.

Het SUM-statement geeft een numerieke waarde terug en niet alle info over de desbetreffende landen.
  1. Geef het aantal inwoners van alle landen uit Antarctica.

  2. Geef het totaal aantal oppervlakte van alle landen uit het midden-oosten.

ORDER by

Deze clausule ordent je gekregen output afhankelijk van je meegegeven conditie. Het commando 'Select * from countries ORDER by Population Desc;' zal alle landen ordenen op basis van populatie in descending order (dus van groot naar klein of omgekeerd alfabetisch). Omgekeerd kan je dan het 'Asc' element meegeven, dan gaat je data van klein naar groot of alfabetisch.

  1. Orden alle Afrikaanse landen op basis van oppervlakte (grootste oppervlakte eerst).

  2. Orden alle landen beginnend met een 'N' op basis van populatie (kleinste aantal eerst).

  3. Orden alle onafhankelijke landen op basis van hun onafhankelijkheidsjaar (nieuwste eerst).

Andere statements

Het AVG-statement neemt het gemiddelde van een meegegeven (numerieke) dataveld. Het commando 'Select AVG(population) from countries;' berekent de gemiddelde populatie van alle landen.

Het AVG-statement geeft een numerieke waarde terug en niet alle info over de desbetreffende landen.

Het MIN- en MAX-statement geven respectievelijk de kleinste en grootste waarde uit een dataveld. Het commando 'Select max(SurfaceArea) from countries;' geeft de grootste oppervlakte terug van alle landen.

Het Min- en MAX-statement geeft een numerieke waarde terug en niet alle info over de desbetreffende landen.

Met het TOP-statement kan je een selectie maken uit hoeveel data je wil zien. Het commando 'Select TOP 50 * from countries;' zal enkel de eerste 50 landen weergeven.

Je kan hetzelfde resultaat bekomen met een 'limit'-clausule. Je commando ziet er dan als volgt uit: Select * from countries limit 50