SQL-kommandon: DQL, DDL, DML, DCL och TCL med exempel

โšก Smart sammanfattning

SQL-kommandon grupperas i fem undersprรฅk som hanterar en relationsdatabas. DDL definierar struktur, DML รคndrar data, DCL styr รฅtkomst, TCL hanterar transaktioner och DQL hรคmtar data, vart och ett med sin egen uppsรคttning satser och syntax.

  • ๐Ÿ—๏ธ DOF: CREATE, DROP, ALTER och TRUNCATE definierar och รคndrar schemat fรถr tabeller och databaser.
  • โœ๏ธ DML: INSERT, UPDATE och DELETE รคndrar raderna i en tabell.
  • ๐Ÿ”‘ DCL: BEVILJ och ร…TERKALL ger och tar bort รฅtkomstbehรถrigheter fรถr databasobjekt.
  • ๐Ÿ”„ TCL: COMMIT, ROLLBACK och SAVEPOINT styr hur transaktioner sparas eller รฅngras.
  • ๐Ÿ” DQL: SELECT hรคmtar rader, filtrerade med WHERE-klausulen.
  • ๐Ÿ—„๏ธ Standardsprรฅk: Varje stรถrre RDBMS, frรฅn MySQL till Oracle och SQL Server, anvรคnder SQL.
  • โš ๏ธ Nyckelkontrast: Bรฅde TRUNCATE och DELETE rensar rader, men TRUNCATE รคr DDL och รคr inte rad-fรถr-rad.

SQL-kommandon DQL DDL DML DCL TCL

Vad รคr SQL?

SQL รคr ett databassprรฅk designat fรถr hรคmtning och hantering av data i en relationsdatabas.

SQL รคr standardsprรฅket fรถr databashantering. Alla RDBMS-system gillar MySQL, MS Access, Oracle, Sybase, Postgres och SQL Server anvรคnder SQL som standardsprรฅk fรถr databaser. Programmeringssprรฅket SQL anvรคnder olika kommandon fรถr olika operationer. Vi kommer att lรคra oss om kommandona DCL, TCL, DQL, DDL och DML i SQL med exempel.

Varfรถr anvรคnda SQL?

Hรคr รคr viktiga skรคl till att anvรคnda SQL:

  • Det hjรคlper anvรคndare att fรฅ tillgรฅng till data i RDBMS-system.
  • Det hjรคlper dig att beskriva informationen.
  • Det lรฅter dig definiera data i en databas och manipulera den specifika datan.
  • Med hjรคlp av SQL-kommandon kan du skapa och slรคppa databaser och tabeller.
  • Med SQL kan du anvรคnda funktioner i en databas och skapa vyer och lagrade procedurer.
  • Du kan stรคlla in behรถrigheter fรถr tabeller, procedurer och vyer.

Kort historik om SQL

Hรคr รคr viktiga landmรคrken frรฅn historia av SQL:

  • 1970 โ€“ Dr. Edgar F. "Ted" Codd beskrev en relationsmodell fรถr databaser.
  • 1974 โ€“ Structured Query Language dรถk upp, ursprungligen kallat SEQUEL pรฅ IBM.
  • 1979 - Oracle slรคppte den fรถrsta kommersiellt tillgรคngliga SQL-baserade databasen, baserad pรฅ IBMs System R-forskningsprototyp.
  • 1986 โ€“ ANSI publicerade den fรถrsta SQL-standarden, SQL-86.
  • 1989 โ€“ SQL-89 kom som den fรถrsta revisionen av standarden.
  • 1992 โ€“ SQL-92 (SQL2) blev den viktigaste baslinje som fortfarande refereras till av de flesta databaser idag.
  • 1999 โ€“ SQL:1999 (SQL3) lanserades med funktioner som triggers, rekursiva frรฅgor och objektorientering.
  • 2003 โ€“ SQL:2003 lade till fรถnsterfunktioner, sekvensgeneratorer och XML-relaterade funktioner.
  • 2006 โ€“ SQL:2006 lade till stรถd fรถr XML Query Language (XQuery).
  • 2008 โ€“ SQL:2008 introducerade TRUNCATE-satsen och INSTEAD OF-triggers.
  • 2011 โ€“ SQL:2011 fรถrbรคttrade stรถdet fรถr temporala databaser.
  • 2016 โ€“ SQL:2016 lade till JSON-stรถd och matchning av radmรถnster (MATCH_RECOGNIZE).
  • 2019 โ€“ SQL/MDA (del 15) lade till stรถd fรถr flerdimensionella arrayer i standarden.
  • 2023 โ€“ SQL:2023 lade till en inbyggd JSON-datatyp och egenskapsgraffrรฅgor (SQL/PGQ).
  • 2024 โ€“ GQL, det fรถrsta nya ISO-databassprรฅket sedan SQL, publicerades som en standard fรถr graffrรฅgor.
  • 2026 โ€“ SQL:2023 รคr fortfarande den nuvarande standarden, med nรคsta revision under utveckling hos ISO/IEC.

Typer av SQL-kommandon

Hรคr รคr fem typer av vanligt fรถrekommande SQL-kommandon:

  • Data Definition Language (DDL)
  • Data Manipulation Language (DML)
  • Data Control Language (DCL)
  • Transaction Control Language (TCL)
  • Data Query Language (DQL)
Typer av SQL-kommandon
Typer av SQL

Tabellen nedan sammanfattar de fem kategorierna innan var och en behandlas i detalj.

Kategori Syfte Huvudkommandon
DDL Definiera struktur SKAPA, TA BORT, ร„NDRING, AVKORTA
DML ร„ndra data INFOGA, UPPDATERA, DELETE
DCL Kontrollera รฅtkomst BEVILJANDE, ร…TERKALLANDE
TCL Hantera transaktioner COMMIT, ROLLBACK, SAVEPOINT
DQL Hรคmta data Vร„LJA

Vad รคr DDL?

Data Definition Language hjรคlper dig att definiera databasens struktur eller schema. Lรฅt oss lรคra oss om DDL-kommandon med syntax. De viktigaste DDL-kommandona i SQL รคr CREATE, DROP, ALTER och TRUNCATE.

SKAPA

CREATE-satsen anvรคnds fรถr att definiera databasstrukturen eller schemat:

Syntax:

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

Till exempel:

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

FALLA

DROP-kommandot tar bort tabeller och databaser frรฅn RDBMS.

Syntax:

DROP TABLE ;

Till exempel:

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

ร„NDRA

Med kommandot ALTER kan du รคndra databasens struktur.

Syntax: fรถr att lรคgga till en ny kolumn i tabellen:

ALTER TABLE table_name ADD column_name COLUMN-definition;

Sรฅ hรคr รคndrar du en befintlig kolumn i tabellen:

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

Till exempel:

Alter table guru99 add subject varchar;

STYMPA

Detta kommando anvรคnds fรถr att ta bort alla rader frรฅn tabellen och frigรถra utrymmet som innehรฅller tabellen.

Syntax:

TRUNCATE TABLE table_name;

Exempel:

TRUNCATE table students;

Vad รคr datamanipulationssprรฅk?

Data Manipulation Language (DML) lรฅter dig modifiera databasinstansen genom att infoga, รคndra och ta bort dess data. Det ansvarar fรถr att utfรถra alla typer av datamodifieringar i en databas. De viktiga DML-kommandona i SQL รคr:

  • INFOGA
  • UPPDATERING
  • RADERA

INFOGA

Denna sats anvรคnds fรถr att infoga data i raderna i en tabell.

Syntax:

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

Till exempel:

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

UPPDATERING

Detta kommando anvรคnds fรถr att uppdatera eller รคndra vรคrdet pรฅ en kolumn i tabellen.

Syntax:

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

Till exempel:

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

RADERA

Detta kommando anvรคnds fรถr att ta bort en eller flera rader frรฅn en tabell.

Syntax:

DELETE FROM table_name [WHERE condition];

Till exempel:

DELETE FROM students
WHERE FirstName = 'Jhon';

Vad รคr DCL?

DCL (Data Control Language) innehรฅller kommandon som GRANT och REVOKE, vilka รคr anvรคndbara fรถr att ge rรคttigheter och behรถrigheter. Andra kommandon styr parametrar i databassystemet.

Grant

Det hรคr kommandot anvรคnds fรถr att ge en anvรคndare รฅtkomstbehรถrighet till en databas.

Syntax:

GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;

Till exempel:

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

Revok

Det hรคr kommandot รคr anvรคndbart fรถr att รฅterstรคlla behรถrigheter frรฅn anvรคndaren.

Syntax:

REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}

Till exempel:

REVOKE SELECT, UPDATE ON student FROM BCA, MCA;

Vad รคr TCL?

Transaction Control Language, eller TCL-kommandon, hanterar transaktionen i databasen. De arbetar direkt med de tillstรฅnd som beskrivs nedan. transaktionshantering.

Begรฅ

Detta kommando anvรคnds fรถr att spara alla transaktioner till databasen.

Syntax:

Commit;

Till exempel:

DELETE FROM Students
WHERE RollNo =25;
COMMIT;

rollback

Med kommandot Rollback kan du รฅngra transaktioner som inte redan har sparats i databasen.

Syntax:

ROLLBACK;

Exempel:

DELETE FROM Students
WHERE RollNo =25;

SPARA PUNKT

Det hรคr kommandot hjรคlper dig att ange en sparpunkt i en transaktion.

Syntax:

SAVEPOINT SAVEPOINT_NAME;

Exempel:

SAVEPOINT RollNo;

Vad รคr DQL?

Data Query Language (DQL) anvรคnds fรถr att hรคmta data frรฅn databasen. Det anvรคnder bara ett kommando, SELECT.

Vร„LJA

Det hรคr kommandot hjรคlper dig att vรคlja attribut baserat pรฅ villkoret som beskrivs av WHERE-klausulen.

Syntax:

SELECT expressions
FROM TABLES
WHERE conditions;

Till exempel:

SELECT FirstName
FROM Student
WHERE RollNo > 15;

TA BORT vs AVKRYP vs SLร„PP

Dessa tre kommandon tar alla bort data, men de skiljer sig รฅt i vad de tar bort och om รฅtgรคrden kan รฅterstรคllas. Att fรถrvรคxla dem รคr ett vanligt nybรถrjarmisstag.

Aspect RADERA STYMPA FALLA
Kategori DML DDL DDL
avlรคgsnar Valda rader Alla rader Hela bordet
VAR klausul Tillรฅten Inte tillรฅtet ej tillรคmplig
rollback Mรถjligt Vanligtvis inte Inte mรถjligt
Strukturen bibehรฅlls Ja Ja Nej

Kort sagt, anvรคnd DELETE fรถr att ta bort specifika rader, TRUNCATE fรถr att tรถmma en tabell snabbt och DROP fรถr att slรคnga tabellen helt.

Vanliga frรฅgor

DELETE รคr ett DML-kommando som tar bort markerade rader och kan รฅterstรคllas. TRUNCATE รคr ett DDL-kommando som tar bort alla rader pรฅ en gรฅng, รคr snabbare och kan vanligtvis inte รฅterstรคllas.

De tillhรถr Data Control Language, eller DCL. GRANT ger en anvรคndare privilegier pรฅ ett databasobjekt, och REVOKE tar bort dessa privilegier, vilket tillsammans styr รฅtkomst och sรคkerhet.

Ja. Text-till-SQL-modeller omvandlar en begรคran i naturligt sprรฅk till en SELECT-sats eller annan sats mot ett kรคnt schema. Granska alltid den genererade frรฅgan innan du kรถr den pรฅ produktionsdata.

Ja. Genom att lรคsa exekveringsplanen kan AI fรถreslรฅ ett index, en omskriven join eller en WHERE-รคndring som sรคnker kostnaden. Fรถrslaget bรถr testas, eftersom den snabbaste planen beror pรฅ data.

DDL definierar eller รคndrar databasens struktur, sรฅsom tabeller och kolumner. DML รคndrar data som finns i den strukturen genom INSERT, UPDATE och DELETE. Struktur kontra innehรฅll รคr den viktigaste skillnaden.

Sammanfatta detta inlรคgg med: