MySQL SELECT-instructie met voorbeelden
Wat is een SELECT-query? MySQL?
SELECT QUERY wordt gebruikt om de gegevens op te halen uit de MySQL database. Databases slaan gegevens op voor later gebruik. Het doel van MySQL Selecteren is om uit de databasetabellen een of meer rijen terug te halen die aan een bepaald criterium voldoen. Selectiequery kan worden gebruikt in scripttaal zoals PHP, Ruby, of u kunt deze uitvoeren via de opdrachtprompt.
Syntaxis van SQL SELECT-instructie
Het is de meest gebruikte SQL-opdracht en heeft de volgende algemene syntaxis
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
HIER
- SELECT is het SQL-trefwoord waarmee de database weet dat u gegevens wilt ophalen.
- [ONDERSCHEID | ALLE] zijn optionele trefwoorden die kunnen worden gebruikt om de resultaten van de SQL SELECT-instructie te verfijnen. Als er niets is opgegeven, wordt ALL als standaard aangenomen.
- {*| [veldExpressie [AS nieuweNaam]} er moet minstens één onderdeel worden opgegeven, "*" selecteert alle velden uit de opgegeven tabelnaam, fieldExpression voert enkele berekeningen uit op de opgegeven velden, zoals het optellen van getallen of het samenvoegen van twee tekenreeksvelden tot één.
- NU tableName is verplicht en moet ten minste één tabel bevatten. Meerdere tabellen moeten worden gescheiden door komma's of moeten worden samengevoegd met het trefwoord JOIN.
- WAAR condition is optioneel en kan worden gebruikt om criteria op te geven in de resultatenset die door de query wordt geretourneerd.
- GROEP DOOR wordt gebruikt om records samen te stellen die dezelfde veldwaarden hebben.
- HEBBEN condition wordt gebruikt om criteria op te geven bij het werken met het trefwoord GROUP BY.
- BESTELLING DOOR wordt gebruikt om de sorteervolgorde van de resultatenset op te geven.
*
Het stersymbool wordt gebruikt om alle kolommen in de tabel te selecteren. Een voorbeeld van een eenvoudige SELECT-instructie ziet eruit zoals hieronder weergegeven.
SELECT * FROM `members`;
De bovenstaande verklaring selecteert alle velden uit de ledentabel. De puntkomma is een beëindiging van de instructie. Het is niet verplicht, maar het wordt als een goede gewoonte beschouwd om uw uitspraken op deze manier te beëindigen.
Praktische voorbeelden
Klik om te downloaden de myflix DB gebruikt voor praktijkvoorbeelden.
U kunt leren hoe u het .sql-bestand importeert in MySQL Werkbank
De voorbeelden worden uitgevoerd op de volgende twee tabellen
Tabel 1: leden tafel
lidmaatschapsnummer | volledige namen | geslacht | geboortedatum | fysiek adres | postadres | contact_nummer | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Vrouwen | 21-07-1980 | Eerste straatkavel nr. 4 | Privé tas | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smit Jones | Vrouwen | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Fil | Mannen | 12-07-1989 | 3e Straat 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Vrouwen | 14-02-1984 | 2e Straat 23 | NULL | NULL | NULL |
Tabel 2: bioscoop tafel
film_id | titel | directeur | jaar_uitgebracht | categorie ID |
---|---|---|---|---|
1 | Piraten van het Caribisch gebied 4 | Rob Marshall | 2011 | 1 |
2 | Sarah Marshal vergeten | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Codenaam Zwart | Edgar Jimz | 2010 | NULL |
5 | Papa's kleine meisjes | NULL | 2007 | 8 |
6 | Engelen en duivels | NULL | 2007 | 6 |
7 | Davinci-code | NULL | 2007 | 6 |
9 | Honey maanaars | John Schulz | 2005 | 8 |
16 | 67% Schuldig | NULL | 2012 | NULL |
Ledenlijst verkrijgen
Laten we aannemen dat we een lijst van alle geregistreerde bibliotheekleden uit onze database willen halen. We zouden daarvoor het onderstaande script gebruiken.
SELECT * FROM `members`;
Voer het bovenstaande script uit in MySQL workbench produceert de volgende resultaten.
lidmaatschapsnummer | volledige namen | geslacht | geboortedatum | fysiek adres | postadres | contact_nummer | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Vrouwen | 21-07-1980 | Eerste straatkavel nr. 4 | Privé tas | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smit Jones | Vrouwen | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Fil | Mannen | 12-07-1989 | 3e Straat 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Vrouwen | 14-02-1984 | 2e Straat 23 | NULL | NULL | NULL |
Onze bovenstaande zoekopdracht heeft alle rijen en kolommen uit de ledentabel geretourneerd.
Stel dat we alleen geïnteresseerd zijn in het verkrijgen van de velden full_names, gender, physical_address en email. Het volgende script zou ons helpen dit te bereiken.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Voer het bovenstaande script uit in MySQL workbench produceert de volgende resultaten.
volledige namen | geslacht | fysiek adres | |
---|---|---|---|
Janet Jones | Vrouwen | Eerste straatkavel nr. 4 | janetjones@yagoo.cm |
Janet Smit Jones | Vrouwen | Melrose 123 | jj@fstreet.com |
Robert Fil | Mannen | 3e Straat 34 | rm@tstreet.com |
Gloria Williams | Vrouwen | 2e Straat 23 | NULL |
Filmlijst ophalen
Onthoud dat we in onze bovenstaande discussie uitdrukkingen noemden die gebruikt zijn in SELECT-statements. Stel dat we een lijst met films uit onze database willen halen. We willen de filmtitel en de naam van de filmregisseur in één veld hebben. De naam van de filmregisseur moet tussen haakjes staan. We willen ook het jaar van uitgave van de film. Het volgende script helpt ons daarbij.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
HIER
- De concat () MySQL functie wordt gebruikt om de waarden van de kolommen samen te voegen.
- De regel “Concat (`titel`, '(', `regisseur`, ')') krijgt de titel, voegt een openingshaakje toe, gevolgd door de naam van de regisseur en voegt vervolgens het sluithaakje toe.
Tekenreeksgedeelten worden gescheiden met behulp van komma's in de functie Concat ().
Voer het bovenstaande script uit in MySQL workbench produceert de volgende resultatenset.
Concat(`titel`, ' (', `regisseur`, ')') | jaar_uitgebracht |
---|---|
Pirates of the Caribbean 4 (Rob Marshall) | 2011 |
Sarah Marshal (Nicholas Stoller) vergeten | 2008 |
NULL | 2008 |
Codenaam Zwart (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
Aliasveldnamen
Het bovenstaande voorbeeld retourneerde de Concatenatiecode als de veldnaam voor onze resultaten. Stel dat we een meer beschrijvende veldnaam in onze resultatenset willen gebruiken. We zouden de kolomaliasnaam gebruiken om dat te bereiken. Hieronder volgt de basissyntaxis voor de kolomaliasnaam
SELECT `column_name|value|expression` [AS] `alias_name`;
HIER
- “SELECT ` kolomnaam|waarde|expressie `” is de reguliere SELECT-instructie die een kolomnaam, waarde of expressie kan zijn.
- "[ALS]" is het optionele trefwoord voordat de aliasnaam die de expressie, waarde of veldnaam aangeeft, wordt geretourneerd als.
- “`alias_naam`” is de aliasnaam die we in onze resultatenset willen retourneren als de veldnaam.
De bovenstaande query met een betekenisvollere kolomnaam
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
We krijgen het volgende resultaat
Conflict | jaar_uitgebracht |
---|---|
Pirates of the Caribbean 4 (Rob Marshall) | 2011 |
Sarah Marshal (Nicholas Stoller) vergeten | 2008 |
NULL | 2008 |
Codenaam Zwart (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
Ledenlijst ophalen met geboortejaar
Stel dat we een lijst willen van alle leden met het lidmaatschapsnummer, volledige namen en geboortejaar, dan kunnen we de LEFT string-functie gebruiken om het geboortejaar uit het veld geboortedatum te halen. Het onderstaande script helpt ons daarbij.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
HIER
- “LINKS(`geboortedatum`,4)” the LINKER snaarfunctie accepteert de geboortedatum als parameter en retourneert slechts 4 tekens van links.
- “AS `geboortejaar`” is de kolomaliasnaam dat zal worden geretourneerd in onze resultaten. Merk op AS-trefwoord is optioneel, kunt u het weglaten en werkt de query nog steeds.
Voer de bovenstaande query uit in MySQL workbench tegen de myflixdb geeft ons de onderstaande resultaten.
lidmaatschapsnummer | volledige namen | geboortejaar |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smit Jones | 1980 |
3 | Robert Fil | 1989 |
4 | Gloria Williams | 1984 |
SQL-gebruik MySQL Werkbank
Wij gaan nu gebruiken MySQL workbench om het script te genereren dat alle veldnamen uit onze categorieëntabel weergeeft.
1. Klik met de rechtermuisknop op de categorieëntabel. Klik op “Selecteer rijen – Limiet 1000”
2. MySQL workbench maakt automatisch een SQL-query en plakt deze in de editor.
3. Queryresultaten worden weergegeven
Merk op dat we de SELECT-instructie niet zelf hebben geschreven. MySQL workbench heeft het voor ons gegenereerd.
Waarom de opdracht SELECT SQL gebruiken als we dat al hebben? MySQL Werkbank?
Nu denk je misschien waarom je de SQL SELECT-opdracht zou leren om gegevens uit de database op te vragen als je eenvoudigweg een tool zoals MySQL workbench's om dezelfde resultaten te krijgen zonder kennis van de SQL-taal. Natuurlijk is dat mogelijk, maar leren hoe u het SELECT-commando gebruikt geeft je meer flexibiliteit en onder controle te houden over je SQL SELECT-instructies.
MySQL werkbank valt in de categorie “Vraag per voorbeeldQBE-tools. Het is bedoeld om sneller SQL-instructies te genereren om de gebruikersproductiviteit te verhogen.
Door de SQL SELECT-opdracht te leren, kunt u creëren complexe vragen die niet eenvoudig kunnen worden gegenereerd met behulp van Query by example-hulpprogramma's zoals MySQL werkbank.
Om de productiviteit te verbeteren, kunt u dat doen genereer de code met behulp van MySQL werkbank harte aan te passen het aan aan uw eisen voldoen. Dit kan alleen gebeuren als u begrijpt hoe de SQL-instructies werken!
Samenvatting
- Het SQL SELECT-sleutelwoord wordt gebruikt om gegevens uit de database op te vragen en is de meest gebruikte opdracht.
- De eenvoudigste vorm heeft de syntaxis “SELECT * FROM tableName;”
- Expressies kunnen ook worden gebruikt in de select-instructie. Voorbeeld “SELECTEER aantal + prijs UIT Verkoop”
- De SQL SELECT-opdracht kan ook andere optionele parameters hebben, zoals WHERE, GROUP BY, HAVING, ORDER BY. Deze worden later besproken.
- MySQL workbench kan helpen bij het ontwikkelen van SQL-instructies, deze uitvoeren en het uitvoerresultaat in hetzelfde venster produceren.