SQL-komennot: DQL, DDL, DML, DCL ja TCL esimerkkeineen

โšก ร„lykรคs yhteenveto

SQL-komennot on ryhmitelty viiteen relaatiotietokantaa hallinnoivaan alikieleen. DDL mรครคrittelee rakenteen, DML muuttaa tietoja, DCL hallitsee kรคyttรถoikeuksia, TCL hallitsee tapahtumia ja DQL hakee tietoja, joilla kullakin on omat lause- ja syntaksinsa.

  • ๐Ÿ—๏ธ DOF: CREATE-, DROP-, ALTER- ja TRUNCATE-kรคskyillรค mรครคritetรครคn ja muutetaan taulukoiden ja tietokantojen skeemaa.
  • โœ๏ธ DML: INSERT, UPDATE ja DELETE muokkaavat taulukon sisรคllรค olevia rivejรค.
  • ๐Ÿ”‘ DCL: GRANT ja REVOKE antavat ja poistavat tietokantaobjektien kรคyttรถoikeuksia.
  • ๐Ÿ”„ TCL: COMMIT, ROLLBACK ja SAVEPOINT ohjaavat tapahtumien tallentamista tai kumoamista.
  • ๐Ÿ” DQL: SELECT hakee rivit, jotka on suodatettu WHERE-lausekkeen avulla.
  • ๐Ÿ—„๏ธ Standardikieli: Jokainen merkittรคvรค RDBMS, alkaen MySQL ettรค Oracle ja SQL Server kรคyttรครค SQL:รครค.
  • โš ๏ธ Keskeinen kontrasti: Sekรค TRUNCATE ettรค DELETE tyhjentรคvรคt rivejรค, mutta TRUNCATE on DDL-funktio eikรค rivi riviltรค -funktio.

SQL-komennot, DQL, DDL, DML, DCL, TCL

Mikรค on SQL?

SQL on tietokantakieli, joka on suunniteltu tietojen hakemiseen ja hallintaan relaatiotietokannassa.

SQL on tietokannan hallinnan vakiokieli. Kaikki RDBMS-jรคrjestelmรคt pitรคvรคt MySQL, MS Access, OracleSybase, Postgres ja SQL Server kรคyttรคvรคt SQL:รครค vakiotietokantakielenรครคn. SQL-ohjelmointikieli kรคyttรครค erilaisia โ€‹โ€‹komentoja eri toimintoihin. Opimme SQL:n DCL-, TCL-, DQL-, DDL- ja DML-komennoista esimerkkien avulla.

Miksi kรคyttรครค SQL:รครค?

Tรคssรค on tรคrkeitรค syitรค SQL:n kรคyttรถรถn:

  • Se auttaa kรคyttรคjiรค pรครคsemรครคn kรคsiksi tietoihin RDBMS-jรคrjestelmรค.
  • Se auttaa sinua kuvailemaan dataa.
  • Sen avulla voit mรครคrittรครค tietokannan tiedot ja kรคsitellรค kyseisiรค tietoja.
  • SQL-komentojen avulla voit luoda ja poistaa tietokantoja ja taulukoita.
  • SQL:n avulla voit kรคyttรครค funktioita tietokannassa sekรค luoda nรคkymiรค ja tallennettuja proseduureja.
  • Voit mรครคrittรครค kรคyttรถoikeuksia taulukoille, menettelyille ja nรคkymille.

SQL:n lyhyt historia

Tรคssรค on tรคrkeitรค maamerkkejรค ajalta SQL:n historiasta:

  • 1970 โ€“ Tohtori Edgar F. "Ted" Codd kuvaili tietokantojen relaatiomallia.
  • 1974 โ€“ Structured Query Language ilmestyi, alun perin nimeltรครคn SEQUEL osoitteessa IBM.
  • 1979 - Oracle julkaisi ensimmรคisen kaupallisesti saatavilla olevan SQL-pohjaisen tietokannan, joka perustui IBMn System R -tutkimusprototyyppi.
  • 1986 โ€“ ANSI julkaisi ensimmรคisen SQL-standardin, SQL-86:n.
  • 1989 โ€“ SQL-89 saapui standardin ensimmรคisenรค versiona.
  • 1992 โ€“ SQL-92:sta (SQL2) tuli tรคrkein perusohjelmointikieli, johon useimmat tietokannat edelleen viittaavat.
  • 1999 โ€“ SQL:1999 (SQL3) julkaistiin ominaisuuksilla, kuten liipaisimet, rekursiiviset kyselyt ja oliopohjaisuus.
  • 2003 โ€“ SQL:2003 lisรคsi ikkunafunktioita, sekvenssigeneraattoreita ja XML:รครคn liittyviรค ominaisuuksia.
  • 2006 โ€“ SQL:2006 lisรคsi tuen XML-kyselykielelle (XQuery).
  • 2008 โ€“ SQL:2008 esitteli TRUNCATE-lausekkeen ja INSTEAD OF -liipaisimet.
  • 2011 โ€“ SQL:2011 paransi tukea ajallisille tietokannoille.
  • 2016 โ€“ SQL:2016 lisรคsi JSON-tuen ja rivikuvioiden tรคsmรคytyksen (MATCH_RECOGNIZE).
  • 2019 โ€“ SQL/MDA (osa 15) lisรคsi standardiin moniulotteisen taulukon tuen.
  • 2023 โ€“ SQL:2023 lisรคsi natiivin JSON-tietotyypin ja ominaisuusgraafikyselyt (SQL/PGQ).
  • 2024 โ€“ GQL, ensimmรคinen uusi ISO-tietokantakieli SQL:n jรคlkeen, julkaistiin graafikyselyiden kumppanistandardina.
  • 2026 โ€“ SQL:2023 on edelleen nykyinen standardi, ja seuraavaa versiota kehitetรครคn parhaillaan ISO/IEC:ssรค.

SQL-komentojen tyypit

Tรคssรค on viisi laajalti kรคytettyรค SQL-komentotyyppiรค:

  • Data Definition Language (DDL)
  • Data Manipulation Language (DML)
  • Data Control Language (DCL)
  • Transaction Control Language (TCL)
  • Tietokyselykieli (DQL)
SQL-komentojen tyypit
SQL:n tyypit

Alla oleva taulukko tiivistรครค viisi luokkaa ennen kuin kutakin kรคsitellรครคn yksityiskohtaisesti.

Luokka Tarkoitus Pรครคkomennot
DDL Mรครคrittele rakenne LUO, PUDOTA, MUUTA, LYHENNY
DML Muokkaa tietoja LISร„ร„, Pร„IVITร„, POISTA
DCL Hallitse pรครคsyรค MYร–NTร„ร„, PERUUTTAA
TCL Hallinnoi tapahtumia VAHVISTUS, PERUUTUS, TALLENNUSPISTE
DQL Hae tiedot VALITSE

Mikรค on DDL?

Data Definition Language auttaa sinua mรครคrittelemรครคn tietokannan rakenteen tai skeeman. Tutustutaanpa DDL-komentoihin ja niiden syntaksiin. SQL:n tรคrkeimmรคt DDL-komennot ovat CREATE, DROP, ALTER ja TRUNCATE.

LUODA

CREATE-lausetta kรคytetรครคn tietokannan rakenteen tai skeeman mรครคrittรคmiseen:

Syntaksi:

CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);

Esimerkiksi:

Create database university;
Create table students;
Create view for_students;

DROP

DROP-komento poistaa taulukoita ja tietokantoja RDBMS:stรค.

Syntaksi:

DROP TABLE ;

Esimerkiksi:

Drop object_type object_name;
Drop database university;
Drop table student;

MUUTTAA

ALTER-komennolla voit muuttaa tietokannan rakennetta.

Syntaksi: lisรคtรคksesi uuden sarakkeen taulukkoon:

ALTER TABLE table_name ADD column_name COLUMN-definition;

Taulukon olemassa olevan sarakkeen muokkaaminen:

ALTER TABLE MODIFY(COLUMN DEFINITION....);

Esimerkiksi:

Alter table guru99 add subject varchar;

KATKAISTA

Tรคtรค komentoa kรคytetรครคn poistamaan kaikki rivit taulukosta ja vapauttamaan taulukon sisรคltรคvรค tila.

Syntaksi:

TRUNCATE TABLE table_name;

Esimerkiksi:

TRUNCATE table students;

Mikรค on tiedonkรคsittelykieli?

Data Manipulation Language (DML) mahdollistaa tietokannan instanssin muokkaamisen lisรครคmรคllรค, muokkaamalla ja poistamalla sen tietoja. Se vastaa kaikenlaisten tietojen muokkaamisesta tietokannassa. Tรคrkeimmรคt DML-komennot SQL:ssรค ovat:

  • INSERT
  • Pร„IVITYS
  • POISTA

INSERT

Tรคtรค lausetta kรคytetรครคn tietojen lisรครคmiseen taulukon riveille.

Syntaksi:

INSERT INTO TABLE_NAME (col1, col2, col3,.... col N)
VALUES (value1, value2, value3, .... valueN);
Or
INSERT INTO TABLE_NAME
VALUES (value1, value2, value3, .... valueN);

Esimerkiksi:

INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', Erichsen');

Pร„IVITYS

Tรคtรค komentoa kรคytetรครคn taulukon sarakkeen arvon pรคivittรคmiseen tai muokkaamiseen.

Syntaksi:

UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]

Esimerkiksi:

UPDATE students
SET FirstName = 'Jhon', LastName= 'Wick'
WHERE StudID = 3;

POISTA

Tรคtรค komentoa kรคytetรครคn yhden tai useamman rivin poistamiseen taulukosta.

Syntaksi:

DELETE FROM table_name [WHERE condition];

Esimerkiksi:

DELETE FROM students
WHERE FirstName = 'Jhon';

Mikรค on DCL?

DCL (Data Control Language) sisรคltรครค komentoja, kuten GRANT ja REVOKE, jotka ovat hyรถdyllisiรค oikeuksien ja lupien myรถntรคmiseen. Muut komennot ohjaavat tietokantajรคrjestelmรคn parametreja.

Grant

Tรคtรค komentoa kรคytetรครคn antamaan kรคyttรคjรคlle kรคyttรถoikeudet tietokantaan.

Syntaksi:

GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;

Esimerkiksi:

GRANT SELECT ON Users TO'Tom'@'localhost;

Revokei

Tรคmรค komento on hyรถdyllinen kรคyttรคjรคn oikeuksien takaisinottamiseen.

Syntaksi:

REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}

Esimerkiksi:

REVOKE SELECT, UPDATE ON student FROM BCA, MCA;

Mikรค on TCL?

Transaktionhallintakielen eli TCL-komennot kรคsittelevรคt tietokannan sisรคllรค olevia tapahtumia. Ne tyรถskentelevรคt suoraan kohdassa kuvattujen tilojen kanssa. transaktioiden hallinta.

Commit

Tรคtรค komentoa kรคytetรครคn kaikkien tapahtumien tallentamiseen tietokantaan.

Syntaksi:

Commit;

Esimerkiksi:

DELETE FROM Students
WHERE RollNo =25;
COMMIT;

Hintojen lasku

Rollback-komennolla voit kumota tapahtumia, joita ei ole vielรค tallennettu tietokantaan.

Syntaksi:

ROLLBACK;

Esimerkiksi:

DELETE FROM Students
WHERE RollNo =25;

SAVEPOINT

Tรคmรคn komennon avulla voit asettaa tallennuspisteen tapahtuman sisรคllรค.

Syntaksi:

SAVEPOINT SAVEPOINT_NAME;

Esimerkiksi:

SAVEPOINT RollNo;

Mikรค on DQL?

Data Query Language (DQL) -kieltรค kรคytetรครคn tietojen hakemiseen tietokannasta. Se kรคyttรครค vain yhtรค komentoa, SELECT.

VALITSE

Tรคmรค komento auttaa sinua valitsemaan mรครคritteet WHERE-lausekkeen kuvaaman ehdon perusteella.

Syntaksi:

SELECT expressions
FROM TABLES
WHERE conditions;

Esimerkiksi:

SELECT FirstName
FROM Student
WHERE RollNo > 15;

POISTA vs. LYHENNETTY vs. PUDOTA

Nรคmรค kolme komentoa poistavat kaikki tietoja, mutta ne eroavat toisistaan โ€‹โ€‹siinรค, mitรค ne poistavat ja voidaanko toiminto peruuttaa. Niiden sekoittaminen on yleinen aloittelijoiden virhe.

Aspect POISTA KATKAISTA DROP
Luokka DML DDL DDL
Poistaa Valitut rivit Kaikki rivit Koko pรถytรค
WHERE-lauseke Sallittu Ei sallittu Ei sovellettavissa
Hintojen lasku mahdollinen Yleensรค ei Ei mahdollista
Rakenne sรคilytetty Kyllรค Kyllรค Ei

Lyhyesti sanottuna, kรคytรค DELETE-komentoa poistaaksesi tiettyjรค rivejรค, TRUNCATE-komentoa tyhjentรครคksesi taulukon nopeasti ja DROP-komentoa hylรคtรคksesi taulukon kokonaan.

UKK

DELETE on DML-komento, joka poistaa valitut rivit ja jonka voi peruuttaa. TRUNCATE on DDL-komento, joka poistaa kaikki rivit kerralla, on nopeampi eikรค sitรค yleensรค voida peruuttaa.

Ne kuuluvat Data Control Languageen eli DCL:รครคn. GRANT antaa kรคyttรคjรคlle oikeudet tietokanta-objektiin ja REVOKE poistaa nรคmรค oikeudet, jotka yhdessรค hallitsevat kรคyttรถoikeuksia ja suojausta.

Kyllรค. Tekstistรค SQL:รครคn -mallit muuttavat luonnollisen kielen pyynnรถn SELECT- tai muuksi lausekkeeksi tunnettua skeemaa vasten. Tarkista aina luotu kysely ennen sen suorittamista tuotantodatalle.

Kyllรค. Lukemalla suoritussuunnitelman tekoรคly voi ehdottaa indeksiรค, uudelleenkirjoitettua liitosta tai WHERE-muutosta, joka alentaa kustannuksia. Ehdotusta tulisi testata, koska nopein suunnitelma riippuu datasta.

DDL mรครคrittelee tai muuttaa tietokannan rakennetta, kuten taulukoita ja sarakkeita. DML muuttaa rakenteen sisรคllรค olevia tietoja INSERT-, UPDATE- ja DELETE-komentojen avulla. Rakenne ja sisรคltรถ ovat keskeisiรค eroja.

Tiivistรค tรคmรค viesti seuraavasti: