De gestructureerde querytaal is een van de fundamentele bouwstenen van moderne database-architectuur. SQL definieert de methoden die worden gebruikt voor het maken en manipuleren van relationele databases op alle grote platforms. Op het eerste gezicht lijkt de taal misschien intimiderend en complex, maar dat is niet zo moeilijk.
Over SQL
De juiste uitspraak van SQL is een omstreden kwestie binnen de databasegemeenschap. In zijn SQL-standaard heeft het Amerikaanse National Standards Institute verklaard dat de officiële uitspraak "es queue el." Veel databaseprofessionals hebben echter de slang uitspraak "vervolg" genomen. De keuze is aan jou.
SQL is er in vele smaken. Oracle-databases gebruiken de gepatenteerde PL / SQL. Microsoft SQL Server maakt gebruik van Transact-SQL. Alle variaties zijn gebaseerd op de industriestandaard ANSI SQL. Deze inleiding maakt gebruik van ANSI-conforme SQL-opdrachten die werken op elk modern relationeel database-systeem.
DDL en DML
SQL-opdrachten kunnen worden onderverdeeld in twee hoofdsubtalen. De Data Definition Language (DDL) bevat de opdrachten die worden gebruikt om databases en database-objecten te maken en te vernietigen. Nadat de databasestructuur is gedefinieerd met DDL, kunnen databasebeheerders en gebruikers de Data Manipulation Language (DML) gebruiken om de daarin opgenomen gegevens in te voegen, op te halen en aan te passen.
Taalopdrachten voor gegevensdefinitie
De Data Definition Language wordt gebruikt om databases en database-objecten te maken en te vernietigen. Deze opdrachten worden voornamelijk gebruikt door databasebeheerders tijdens de installatie- en verwijderingsfasen van een databaseproject. Hier volgt een overzicht van de structuur en het gebruik van vier standaard DDL-opdrachten:
CREATE.Door een databasebeheersysteem op een computer te installeren, kunt u veel onafhankelijke databases maken en beheren. U wilt bijvoorbeeld een database bijhouden met klantcontacten voor uw verkoopafdeling en een personeelsdatabase voor uw HR-afdeling. De opdracht CREATE wordt gebruikt om elk van deze databases op uw platform te maken. Bijvoorbeeld het commando:
CREATE DATABASE-medewerkers
maakt een lege database met de naam "werknemers" op uw DBMS. Na het maken van de database, is de volgende stap om tabellen te maken die gegevens bevatten. Een andere variant van de opdracht CREATE kan voor dit doel worden gebruikt. Het bevel: CREATE TABLE personal_info (first_name char (20) not null, last_name char (20) not null, employee_id int not null)
stelt een tabel in met de naam "personal_info" in de huidige database. In het voorbeeld bevat de tabel drie kenmerken: voornaam, achternaam en werknemer_id, samen met wat aanvullende informatie. GEBRUIK.Met de opdracht USE kunt u de database opgeven waarmee u wilt werken in uw DBMS. Als u bijvoorbeeld in de verkoopdatabase werkt en enkele opdrachten wilt uitvoeren die van invloed zijn op de werknemersdatabase, geeft u deze de volgende SQL-opdracht op: GEBRUIK medewerkers
Het is belangrijk om altijd bewust te zijn van de database waarin u werkt voordat u SQL-opdrachten geeft die gegevens manipuleren. WIJZIGEN.Nadat u een tabel in een database hebt gemaakt, wilt u mogelijk de definitie ervan wijzigen. Met de opdracht ALTER kunt u de structuur van een tabel wijzigen zonder deze te verwijderen en opnieuw te maken. Bekijk het volgende commando: ALTER TABLE personal_info ADD salarisgeld nul
In dit voorbeeld wordt een nieuw kenmerk aan de tabel personal_info toegevoegd: het salaris van een werknemer. Het argument "geld" geeft aan dat het salaris van een werknemer wordt opgeslagen met behulp van een indeling in dollars en centen. Ten slotte vertelt het "nul" sleutelwoord de database dat het OK is dat dit veld geen waarde voor een bepaalde werknemer bevat. LATEN VALLEN.De laatste opdracht van de Data Definition Language, DROP, stelt ons in staat om complete database-objecten uit ons DBMS te verwijderen. Als we bijvoorbeeld de persoonlijke_info-tabel die we hebben gemaakt permanent willen verwijderen, gebruiken we de volgende opdracht: DROP TABLE persoonlijke_info
Op dezelfde manier zou de onderstaande opdracht worden gebruikt om de volledige werknemersdatabase te verwijderen: DROP DATABASE medewerkers
Gebruik deze opdracht voorzichtig. Met de opdracht DROP worden volledige gegevensstructuren uit uw database verwijderd. Als u afzonderlijke records wilt verwijderen, gebruikt u de DELETE-opdracht van de taal voor gegevensmanipulatie. De Data Manipulation Language (DML) wordt gebruikt om database-informatie op te halen, in te voegen en te wijzigen. Deze opdrachten worden door alle databasegebruikers gebruikt tijdens de routinematige werking van de database. Invoegen.De INSERT-opdracht in SQL wordt gebruikt om records aan een bestaande tabel toe te voegen. Terugkomend op het voorbeeld van personal_info uit de vorige sectie, stel je voor dat onze HR-afdeling een nieuwe medewerker aan zijn database moet toevoegen. U kunt een vergelijkbare opdracht gebruiken: INVOEGEN in personal_infowaarden ( 'bart', 'Simpson, 12345, $ 45000)
Merk op dat er vier waarden zijn gespecificeerd voor de record. Deze komen overeen met de tabelkenmerken in de volgorde waarin ze zijn gedefinieerd: voornaam, achternaam, medewerker_id en salaris. SELECT.De opdracht SELECT is de meest gebruikte opdracht in SQL. Hiermee kunnen databasegebruikers de specifieke informatie opvragen die ze wensen uit een operationele database. Bekijk enkele voorbeelden, opnieuw met behulp van de tabel personal_info in de werknemersdatabase. De onderstaande opdracht haalt alle informatie op uit de tabel personal_info. Merk op dat de asterisk wordt gebruikt als een wildcard in SQL. Dit betekent letterlijk "Selecteer alles uit de tabel personal_info." SELECT *VAN persoonlijke info
Als alternatief kunnen gebruikers de attributen die worden opgehaald uit de database, willen beperken. De personeelsafdeling kan bijvoorbeeld een lijst met de namen van alle werknemers in het bedrijf nodig hebben. De volgende SQL-opdracht haalt alleen die informatie op: SELECT achternaamVAN persoonlijke info
De WHERE-component kan worden gebruikt om de records die worden opgehaald te beperken tot die records die aan bepaalde criteria voldoen. De CEO is wellicht geïnteresseerd in het controleren van de personeelsadministratie van alle hoogbetaalde medewerkers. Met de volgende opdracht worden alle gegevens in persoonlijke_info opgehaald voor records met een salariswaarde van meer dan $ 50.000: SELECT *VAN persoonlijke infoWAAR salaris> $ 50000
BIJWERKEN.De UPDATE-opdracht kan worden gebruikt om de informatie in een tabel te wijzigen, hetzij in bulk of afzonderlijk. Stel dat het bedrijf alle werknemers jaarlijks een jaarlijkse salarisstijging van 3 procent geeft. De volgende SQL-opdracht kan worden gebruikt om dit snel toe te passen op alle werknemers die in de database zijn opgeslagen: UPDATE persoonlijke_infoSET salaris = salaris * 1,03
Wanneer de nieuwe werknemer Bart Simpson prestaties boven en buiten de plicht toont, wenst het management zijn geweldige prestaties te erkennen met een verhoging van $ 5.000. De WHERE-clausule zou kunnen worden gebruikt om Bart uit te delen voor deze verhoging: UPDATE persoonlijke_infoSET salaris = salaris + $ 5000WHERE employee_id = 12345
DELETE.Laten we tot slot eens kijken naar de opdracht DELETE. U zult zien dat de syntaxis van deze opdracht vergelijkbaar is met die van de andere DML-opdrachten. Helaas voldeed ons laatste bedrijfswinstenverslag niet helemaal aan de verwachtingen en is de arme Bart ontslagen. De DELETE-opdracht met een WHERE-component kan worden gebruikt om zijn record uit de tabel personal_info te verwijderen: VERWIJDEREN VAN personal_infoWHERE employee_id = 12345 Nu je de basis van SQL hebt geleerd, is het tijd om over te gaan naar een van de krachtigste concepten die de taal te bieden heeft - de JOIN-verklaring. Met een JOIN-instructie kunt u gegevens in meerdere tabellen combineren om grote hoeveelheden gegevens efficiënt te verwerken. Deze uitspraken zijn waar de ware kracht van een database ligt. Als u het gebruik van een eenvoudige JOIN-bewerking wilt verkennen om gegevens uit twee tabellen te combineren, gaat u door met het voorbeeld met de tabel PERSONAL_INFO en voegt u een extra tabel aan de mix toe. Stel dat u een tabel hebt met de naam DISCIPLINARY_ACTION die is gemaakt met de volgende instructie: CREATE TABLE disciplinair_action (action_id int niet null, employee_id int niet null, comments char (500))
Deze tabel bevat de resultaten van disciplinaire acties voor werknemers van het bedrijf. U zult merken dat het geen andere informatie over de werknemer bevat dan het werknemersnummer. U kunt zich gemakkelijk vele scenario's voorstellen waarin u wellicht informatie uit de tabellen DISCIPLINARY_ACTION en PERSONAL_INFO wilt combineren. Stel dat je de opdracht hebt gekregen om een rapport te maken met de disciplinaire maatregelen tegen alle werknemers met een salaris van meer dan $ 40.000. Het gebruik van een JOIN-operatie is in dit geval eenvoudig. We kunnen deze informatie ophalen met behulp van de volgende opdracht: SELECTEER personal_info.first_name, personal_info.last_name, discipllin_action_action.commentsVAN persoonlijke info, disciplinaire luchtvaartWHERE personal_info.employee_id = disciplinaire_action.employee_idEN personal_info.salary> 40000
De code geeft de twee tabellen aan waaraan we willen deelnemen in de FROM-component en bevat vervolgens een verklaring in de WHERE-component om de resultaten te beperken tot records met overeenkomende werknemers-ID's en voldeed aan onze criteria van een salaris van meer dan $ 40.000. Data Manipulation Language Commands
Doet mee




