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.

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)

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.
