Skip to main content

Introduktion til SQL Fundamentals

Ruby on Rails by Leila Hofer (Kan 2025)

Ruby on Rails by Leila Hofer (Kan 2025)
Anonim

Det strukturerede forespørgselssprog er en af ​​de grundlæggende byggesten i moderne databasearkitektur. SQL definerer de metoder, der bruges til at oprette og manipulere relationelle databaser på alle større platforme. Ved første øjekast kan sproget virke skræmmende og komplekst, men det er ikke så svært.

Om SQL

Den korrekte udtale af SQL er et omstridt problem inden for databasegruppen. I sin SQL-standard erklærede American National Standards Institute, at den officielle udtale er "es queue el." Imidlertid har mange database fagfolk taget til slang udtale "efterfølger." Det er dit valg.

SQL kommer i mange smag. Oracle databaser bruger sin proprietære PL / SQL. Microsoft SQL Server gør brug af Transact-SQL. Alle variationerne er baseret på branchens standard ANSI SQL. Denne introduktion anvender ANSI-kompatible SQL-kommandoer, der arbejder på ethvert moderne relationsdatabasesystem.

DDL og DML

SQL-kommandoer kan opdeles i to hovedundersprog. Data Definition Language (DDL) indeholder de kommandoer, der bruges til at oprette og ødelægge databaser og databaseobjekter. Når databasestrukturen er defineret med DDL, kan databaseadministratorer og brugere bruge DML (Data Manipulation Language) til at indsætte, hente og ændre data indeholdt i den.

Data Definition Sprogkommandoer

Data Definition Sprog bruges til at oprette og ødelægge databaser og databaseobjekter. Disse kommandoer bruges primært af databaseadministratorer under installations- og fjernelsesfasen af ​​et databaseprojekt. Her er et kig på strukturen og brugen af ​​fire grundlæggende DDL-kommandoer:

SKAB.Installation af et databasehåndteringssystem på en computer giver dig mulighed for at oprette og styre mange uafhængige databaser. For eksempel vil du muligvis opretholde en database med kundekontakter til din salgsafdeling og en personaledatabase til din HR afdeling. CREATE-kommandoen bruges til at etablere hver af disse databaser på din platform. F.eks. Kommandoen:

CREATE DATABASE medarbejdere

opretter en tom database med navnet "medarbejdere" på dit DBMS. Efter oprettelsen af ​​databasen er det næste skridt at oprette tabeller, der indeholder data. En anden variant af CREATE-kommandoen kan bruges til dette formål. Kommandoen:

CREATE TABLE personal_info (first_name char (20) ikke null, sidste navn char (20) ikke null, employee_id int ikke null)

etablerer en tabel med titlen "personal_info" i den nuværende database. I eksemplet indeholder tabellen tre attributter: fornavn, efternavn og medarbejder_id sammen med nogle yderligere oplysninger.

BRUG.Kommandoen USE giver dig mulighed for at angive den database, du vil arbejde med i dit DBMS. Hvis du for eksempel arbejder i salgsdatabasen og gerne vil udstede nogle kommandoer, der vil påvirke medarbejderdatabasen, skal du forord dem med følgende SQL-kommando:

Brug medarbejdere

Det er vigtigt altid at være opmærksom på den database, du arbejder inden, før du udsteder SQL-kommandoer, der manipulerer data.

ÆNDRE.Når du har oprettet en tabel i en database, kan du ændre dens definition. ALTER-kommandoen giver dig mulighed for at ændre strukturen på et bord uden at slette og genskabe det. Tag et kig på følgende kommando:

ALTER TABLE personal_info ADD løn penge nul

Dette eksempel tilføjer en ny attribut til personal_info-tabellen - en medarbejders løn. "Money" -argumentet angiver, at en medarbejders løn er opbevaret ved hjælp af et dollars og cent-format. Endelig fortæller "null" nøgleordet databasen, at det er OK, at dette felt ikke indeholder nogen værdi for en given medarbejder.

DRÅBE.Den endelige kommando i Data Definition Sprog, DROP, tillader os at fjerne hele databaseobjekter fra vores DBMS. Hvis vi f.eks. Vil permanent fjerne den personlige_info-tabel, som vi oprettede, bruger vi følgende kommando:

DROP TABLE personal_info

På samme måde vil kommandoen nedenfor blive brugt til at fjerne hele medarbejderdatabasen:

DROP DATABASE medarbejdere

Brug denne kommando med omhu. DROP-kommandoen fjerner hele datastrukturerne fra din database. Hvis du vil fjerne individuelle poster, skal du bruge DELETE-kommandoen i Data Manipulation Language.

Data Manipulation Sprogkommandoer

DML (Data Manipulation Language) bruges til at hente, indsætte og modificere databaseoplysninger. Disse kommandoer bruges af alle database brugere under den rutinemæssige drift af databasen.

INSERT.INSERT-kommandoen i SQL bruges til at tilføje poster til et eksisterende bord. Tilbage til personal_info-eksempelet fra det foregående afsnit, forestill dig, at vores HR-afdeling skal tilføje en ny medarbejder til sin database. Du kan bruge en kommando, der ligner denne:

INDSÆT i personlig_infoværdier ( 'bart', 'Simpson', 12345, $ 45000), om

Bemærk at der er fire værdier angivet til posten. Disse svarer til tabelattributterne i den rækkefølge, de blev defineret: fornavn, sidste navn, medarbejder_id og løn.

VÆLG.SELECT-kommandoen er den mest almindelige kommando i SQL. Det giver databrugerne mulighed for at hente de specifikke oplysninger, de ønsker fra en operationel database. Se et par eksempler, igen ved at bruge personal_info-tabellen fra medarbejderdatabasen.

Kommandoen vist nedenfor henter alle de oplysninger, der er indeholdt i personal_info-tabellen. Bemærk, at asterisken bruges som et jokertegn i SQL. Dette betyder bogstaveligt "Vælg alt fra personal_info-tabellen."

VÆLG *FRA personal_info

Alternativt kan brugere måske begrænse attributter, der hentes fra databasen. For eksempel kan Human Resources afdeling kræve en liste over de sidste navne på alle medarbejdere i virksomheden. Den følgende SQL-kommando ville kun hente den information:

Vælge sidste navnFRA personal_info

WHERE-klausulen kan bruges til at begrænse de poster, der hentes til dem, der opfylder bestemte kriterier. Den administrerende direktør kan være interesseret i at gennemgå personaldokumenterne for alle højtlønnede medarbejdere. Følgende kommando henter alle data indeholdt i personal_info for poster, der har en lønværdi på over $ 50.000:

VÆLG *FRA personal_infoHvor løn> $ 50000

UPDATE.UPDATE-kommandoen kan bruges til at ændre oplysningerne i en tabel, enten i bulk eller individuelt. Antag, at selskabet giver alle medarbejdere en 3 procent levetidsforøgelse i deres løn hvert år. Den følgende SQL-kommando kan bruges til hurtigt at anvende dette på alle medarbejdere, der er gemt i databasen:

OPDATER personlig_infoSET løn = løn * 1,03

Når den nye medarbejder Bart Simpson demonstrerer præstationer ud over call of duty, ønsker ledelsen at genkende sine fantastiske præstationer med en stigning på $ 5.000. WHERE-klausulen kan bruges til at udpege Bart for denne rejse:

OPDATER personlig_infoSET løn = løn + $ 5000HVOR medarbejder_id = 12345

SLET.Endelig lad os se på DELETE-kommandoen. Du vil opdage, at denne kommandos syntaks svarer til de andre DML-kommandoer. Desværre opfyldte vores seneste selskabsindtjeningsrapport ikke helt forventningerne, og fattige Bart er blevet afskediget. DELETE-kommandoen med et WHERE-udtryk kan bruges til at fjerne sin post fra personal_info-tabellen:

Slet fra personal_infoHVOR medarbejder_id = 12345

JOINs

Nu hvor du har lært det grundlæggende i SQL, er det på tide at gå videre til et af de mest kraftfulde begreber, sproget har at tilbyde - JOIN-erklæringen. En JOIN-sætning giver dig mulighed for at kombinere data i flere tabeller for effektivt at behandle store mængder data. Disse udsagn er hvor den sande magt i en database ligger.

For at undersøge brugen af ​​en grundlæggende JOIN-operation for at kombinere data fra to tabeller, fortsæt med eksemplet ved hjælp af tabellen PERSONAL_INFO og tilføj en ekstra tabel til blandingen. Antag, at du har en tabel kaldet DISCIPLINARY_ACTION, der blev oprettet med følgende erklæring:

CREATE TABLE disciplinary_action (action_id int ikke null, employee_id int ikke null, kommentarer char (500))

Denne tabel indeholder resultaterne af disciplinære aktioner på virksomhedens medarbejdere. Du vil bemærke, at den ikke indeholder nogen oplysninger om den anden medarbejder end medarbejdernummeret. Det er nemt at forestille sig mange scenarier, hvor du måske vil kombinere oplysninger fra DISCIPLINARY_ACTION og PERSONAL_INFO tabellerne.

Antag, at du har fået til opgave at oprette en rapport, der angiver de disciplinære foranstaltninger, der er truffet over for alle medarbejdere med en løn på over $ 40.000. Brugen af ​​en JOIN-operation er i dette tilfælde retfærdig. Vi kan hente disse oplysninger ved hjælp af følgende kommando:

VÆLG personal_info.first_name, personal_info.last_name, disciplinary_action.commentsFRA personal_info, disciplinær_actionHVOR personal_info.employee_id = disciplinary_action.employee_idOG personal_info.salary> 40000

Koden specificerer de to tabeller, som vi ønsker at deltage i FROM-klausulen, og indeholder derefter en erklæring i WHERE-klausulen for at begrænse resultaterne til poster, der havde matchende medarbejder-id'er og opfyldte vores kriterier for en løn på over $ 40.000.