sql >> Database teknologi >  >> RDS >> Mysql

Introduktion til SQL-kommandoer

I dagens verden med øget digitalisering, big data og cloud computing er datastyring blandt de vigtigste færdigheder, en softwareingeniør kan have. Til dette formål er SQL et af de mest kraftfulde databaseværktøjer.

SQL (Structured Query Language) er standardprogrammeringssproget, der bruges til at manipulere datastrukturobjekter. De opererer på data, der er indeholdt i et relationelt databasestyringssystem (RDBMS). Nogle velkendte RDBMS er MySQL og PostgreSQL.

I denne vejledning lærer du om undersættene af SQL-sproget, og hvordan du bruger nogle grundlæggende SQL-kommandoer, såsom SELECT , INSERT , OPDATERING og SLET .

Undersæt af SQL

Listen nedenfor inkluderer de forskellige sprogundersæt af forskellige SQL-kommandoer. Hver delmængde har sin egen funktion og formål.

  • Datadefinitionssprog (DDL):Dette giver dig mulighed for at oprette, slette og opdatere databaseskemadefinitioner (nemlig tabeller og indekser), uden egentlig at manipulere dataene i databasetabellerne.
  • Dataforespørgselssprog (DQL):DQL bruges til at hente data fra databasen ved hjælp af SELECT erklæring.
  • Datamanipulationssprog (DML):Dette undersprog giver mulighed for datamanipulation i databasen ved hjælp af INSERT , OPDATERING og SLET udsagn.

Denne vejledning bruger et eksempel på en database for en skole til yderligere at demonstrere SQL-kommandoerne for hver delmængde, der er anført ovenfor. Skoledatabasen har flere tabeller for elever, kurser, karakterer og så videre. Definitionen af ​​Studenten tabel indeholder kolonner for elevens SSNumber , Fornavn og Efternavn , og definitionen af ​​CourseTaken tabel indeholder kolonner for SSNumber , CourseId , NumericGrade og YearTaken .

Eksemplet forudsætter, at der er tre elever på skolen, som hver har gennemført to forløb. Eksempeldataene er vist i tabellen nedenfor:

SSNumber Efternavn Fornavn CourseId NumericGrade YearTaken
111111111 Smith John CSC101 98 2021
111111111 Smith John ENG101 95 2022
222222222 Jones Mary CSC101 100 2022
222222222 Jones Mary EEE101 75 2022
333333333 Hansen Robert POL101 92 2021
333333333 Hansen Robert SOC103 84 2022

Opret, rediger og slip tabeller ved hjælp af SQL-kommandoer

Fra kommandolinjen skal du bruge CREATE TABLE kommando efterfulgt af navnet på tabellen og tabeldataene. Kommandoen nedenfor opretter Student tabel.

OPRET TABEL Elev (SSNumber CHAR(9) NOT NULL, Efternavn VARCHAR(30) NOT NULL, Fornavn VARCHAR(20) NOT NULL); 

Parentesen omslutter tabeldataene, startende med en kolonne, der mærker hver rækkes data. Den næste kolonne angiver den datatype, som denne række indeholder. CHAR angiver en strengdatatype med fast længde og VARCHAR angiver en strengdatatype med variabel længde. I den sidste kolonne er NOT NULL attribut sikrer, at en post ikke kan tilføjes til tabellen, hvis nogen af ​​NOT NULL kolonner har ikke data knyttet til dem.

Bemærk OPRET TABEL sætning er afgrænset med et efterfølgende semikolon (;), selvom det er muligt, at nogle kommercielle relationelle databasesystemer måske ikke kræver det afgrænser.
Bemærk Medmindre andet er nævnt, fungerer alle databasekommandoer, der er vist i denne vejledning, godt på både MySQL og PostgreSQL .

For at oprette CourseTaken tabel, skal du udføre følgende kommando:

OPRET TABEL CourseTaken (SSNumber CHAR(9) NOT NULL, CourseId CHAR(6) NOT NULL, NumericGrade INT NOT NULL); 

YearTaken kolonne er med vilje ikke inkluderet i CourseTaken tabel for at demonstrere brugen af ​​ALTER TABLE kommando. For at tilføje YearTaken kolonnen i CourseTaken tabel, behøver du ikke slippe CourseTaken bordet helt. I stedet kan du bruge DDL ALTER TABLE kommando. Følgende kommando ændrer CourseTaken tabel ved at tilføje den manglende kolonne til tabellen.

ÆNDRINGSTABEL CourseTaken ADD (YearTaken INT NOT NULL); 

Kommandoen ovenfor følger en lignende syntaks som før. Det kræver tabelnavnet samt tre argumenter:rækkenavn, rækkedatatype og IKKE NULL attribut. Hvis du ønsker at slette CourseTaken hele tabellen, udsted DDL DROP TABLE kommando efterfulgt af tabelnavnet.

DROP TABEL CourseTaken; 
Forsigtig Sletning af en tabel sletter alle data i tabellen.

Sådan indsætter du data i en tabel i SQL

For at indsætte data i tabellen skal du bruge SQL INSERT INTO udmelding. For at kalde denne kommando skal du angive tabelnavnet og listen over rækkenavne (i parentes), som du vil indsætte dataene i. Dette efterfølges af VALUES nøgleord og de faktiske værdier (i parentes), som du ønsker at indsætte. Værdierne indsættes i rækkerne i den rækkefølge, de kaldes.

Bemærk
  • SQL-kommandoer kan opdeles på tværs af linjer. Slutningen af ​​SQL-kommandoen er afgrænset af et semikolon (; ).
  • Tegndataene er afgrænset af en åbnings- og lukkeapostrof ( ), hvorimod numeriske data ikke er det.

Følgende INSERT kommandoer indsætter tre rækker i Student bord. Disse kommandoer bruger flere INSERT udsagn.

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES('111111111', 'Smith', 'John');INSERT INTO Student (SSNumber, LastName, FirstName) VALUES('222222222', 'Jones' , 'Mary');INSERT INTO Student (SSNumber, LastName, FirstName) VALUES('333333333', 'Hansen', 'Robert'); 

På samme måde kan du også indsætte flere rækker i tabellen i en enkelt SQL-forespørgsel som vist nedenfor:

INSERT INTO CourseTaken(SSNumber, CourseId, NumericGrade, YearTaken)VALUES('111111111', 'CSC101', 98, 2021),('111111111', 'ENG101', 95,'22222), ', 'CSC101', 100, 2022); 
Bemærk

Du kan bruge INSERT INTO kommando på samme måde i PostgreSQL for at tilføje rækker til tabellen. Sørg for, at værdierne stemmer overens med rækkefølgen af ​​kolonnerne i tabeldefinitionen.

INSERT INTO elev VALUES ('111111111', 'Smith', 'John'); 

Slet data fra en tabel

For at slette data fra en tabel skal du bruge SQL DELETE FROM udmelding. Brug WHERE klausul for at specificere betingelsen, og hvis der er mere end én betingelse, skal du bruge AND klausul sammen med WHERE .

For eksempel sletter følgende kommando en post fra CourseTaken tabel med SSNumber 333333333 og CourseId POL101 .

Forsigtig Hvis du udelader WHERE klausul, slettes alle poster i tabellen.
SLET FRA CourseTaken WHERE SSNumber ='333333333' OG CourseId ='POL101'; 

SQL-kommando til at opdatere data i en tabel

For at opdatere den eksisterende post i en tabel skal du bruge SQL UPDATE kommando. SET klausul bruges til at sætte (opdatere) en ny værdi til en bestemt kolonne og WHERE klausul bruges til at opdatere de valgte rækker.

For eksempel opdaterer følgende kommando NumericGrade kolonne i CourseTaken tabel for poster med SSNumber 222222222 og CourseId EE101 .

OPDATERING CourseTakenSET NumericGrade =95WHERE SSNumber ='222222222' OG CourseId ='EEE101'; 

SQL-kommando til at hente data fra en tabel

Den sande kraft af relationelle databasesystemer er i dets evne til at hente information i et multitabel-skema via SQL SELECT kommando, og muligheden for at forbinde tabeller via fælles nøgler. Selvom denne introduktionsvejledning ikke undersøger oprettelsen af ​​nøgler og indekser, der bruger disse nøgler, bruger den SSNumber kolonne i hver tabel som et køretøj (nøgle) til at relatere (eller forbinde) tabellerne for at generere information. De følgende eksempler giver forskellige anvendelsesmuligheder for brug af SQL SELECT kommando fra kommandolinjen.

Eksempel 1: For at hente listen over alle elever på skolen.

VÆLG * fra Elev; 

Output: +------------+----------+-----------+| SSNumber | Efternavn | Fornavn |+-----------+----------+-----------+| 111111111 | Smith | John || 222222222 | Jones | Mary || 333333333 | Hansen | Robert |+-----------+-----------+-----------+

Eksempel 2: For at hente listen over alle elever og kurser, de har taget.

SELECT Student.SSNumber, Student.LastName, Student.FirstName, CourseTaken.CourseIdFROM Student, CourseTakenWHERE Student.SSNumber =CourseTaken.SSNumber; 

Output:

+------------+-----------+------------+-------- --+| SSNumber | Efternavn | Fornavn | CourseId |+----------------------------------+| 111111111 | Smith | John | CSC101 || 111111111 | Smith | John | ENG101 || 222222222 | Jones | Mary | CSC101 |+-----------+---------------------+
Bemærk I ovenstående kommando, de to tabeller, Student og CourseTaken er tilsluttet for at hente de nødvendige oplysninger. Kolonnenavnene i SELECT og Hvor klausuler er foranstillet med deres tabelnavne for overskuelighed. Men i tilfælde af SSNumber kolonne, er vi forpligtet til at angive de relevante tabelnavne-præfikser, da begge tabeller deler det samme kolonnenavn. FROM klausul angiver de tabeller, der bruges i denne forespørgsel.

Eksempel 3: Hent listen over elever med CourseId CSC101 og det år, de tog dette kursus.

SELECT Student.LastName, Student.FirstName, CourseTaken.CourseId, CourseTaken.YearTakenFROM Student, CourseTakenWHERE Student.SSNumber =CourseTaken.SSNumberAND CourseTaken.CourseId ='CSC101'; 

Output: +-----------+------------------- --+| Efternavn | Fornavn | CourseId | YearTaken |+------+---------------------+| Smith | John | CSC101 | 2021 || Jones | Mary | CSC101 | 2022 |+-----------+--------------------+

Eksempel 4: Hent listen over elevernes navne, kurser taget og karakterer modtaget for dem, der havde kursuskarakterer over 90 .

VÆLG Student.LastName, Student.FirstName, CourseTaken.CourseId, CourseTaken.NumericGradeFROM Student, CourseTakenWHERE Student.SSNumber =CourseTaken.SSNumberAND CourseTaken.NumericGrade> 90; 

Output: +-----------+------------------- -----+| Efternavn | Fornavn | CourseId | NumericGrade |+------+---------------------- -+| Smith | John | ENG101 | 95 || Smith | John | CSC101 | 98 || Jones | Mary | CSC101 | 100 |+-----------+--------------------- -+

Bemærk AND klausul i kommandoen ovenfor giver dig mulighed for at filtrere resultaterne efter en betinget karaktertest.

Konklusion

Denne vejledning om SQL-kommandoer er en introduktion til, hvordan man opretter databaseskemaer og manipulerer data i disse databaser. Selvom de her introducerede begreber blot ridser i overfladen med hensyn til relationelle databasesystemers brug, er det et godt udgangspunkt for grundlæggende og væsentlige kommandoer og begreber.


  1. Giver mening om Postgres rækkestørrelser

  2. Forstå MySQL TRUNCATE TABLE ved hjælp af praktiske eksempler

  3. Skift datatype for en kolonne til seriel

  4. Hvordan make_timestamp() virker i PostgreSQL