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:
-
Gehele getallen: TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT (van kleine naar grote getallen)
-
Decimale getallen: FLOAT, DOUBLE, DECIMAL (van minder naar meer precies)
-
Tekst: CHAR, VARCHAR, TEKST, BLOB (van weinig naar veel tekst)
-
Datum & tijd: DATE, TIME, DATETIME, YEAR, TIMESTAMP
-
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:
-
Enkel alle namen te zien te krijgen
-
Enkel de landcode en de populatie te zien te krijgen
-
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:
-
Bekijk alle landen die beginnen met een I.
-
Bekijk alle landen waarvan de staatsvorm een Republiek is.
-
Bekijk alle landen met minder dan 100.000 inwoners.
-
Bekijk alle niet-onafhankelijke landen.
-
Bekijk alle Europese landen met een levensverwachting boven 75 jaar.
-
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:
-
die eindigen op -land.
-
met meer dan 10 miljoen inwoners.
-
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. |
-
Geef het aantal inwoners van alle landen uit Antarctica.
-
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.
-
Orden alle Afrikaanse landen op basis van oppervlakte (grootste oppervlakte eerst).
-
Orden alle landen beginnend met een 'N' op basis van populatie (kleinste aantal eerst).
-
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 |