SQL-kommandoer: DQL, DDL, DML, DCL og TCL med eksempler

โšก Smart opsummering

SQL-kommandoer er grupperet i fem undersprog, der administrerer en relationsdatabase. DDL definerer struktur, DML รฆndrer data, DCL styrer adgang, TCL administrerer transaktioner, og DQL henter data, hver med sit eget sรฆt af sรฆtninger og syntaks.

  • ๐Ÿ—๏ธ DOF: CREATE, DROP, ALTER og TRUNCATE definerer og รฆndrer skemaet for tabeller og databaser.
  • โœ๏ธ DML: INSERT, UPDATE og DELETE รฆndrer rรฆkkerne i en tabel.
  • ๐Ÿ”‘ DCL: GRANT og REVOKE giver og fjerner adgangsrettigheder til databaseobjekter.
  • ๐Ÿ”„ TCL: COMMIT, ROLLBACK og SAVEPOINT styrer, hvordan transaktioner gemmes eller fortrydes.
  • ๐Ÿ” DQL: SELECT henter rรฆkker, filtreret af WHERE-klausulen.
  • ๐Ÿ—„๏ธ Standardsprog: Alle stรธrre RDBMS'er, fra MySQL til Oracle og SQL Server, bruger SQL.
  • โš ๏ธ Nรธglekontrast: Bรฅde TRUNCATE og DELETE rydder rรฆkker, men TRUNCATE er DDL og er ikke rรฆkke for rรฆkke.

SQL-kommandoer DQL DDL DML DCL TCL

Hvad er SQL?

SQL er et databasesprog designet til hentning og hรฅndtering af data i en relationel database.

SQL er standardsproget til databasestyring. Alle RDBMS-systemer kan lide MySQL, MS Access, Oracle, Sybase, Postgres og SQL Server bruger SQL som deres standard databasesprog. SQL-programmeringssproget bruger forskellige kommandoer til forskellige operationer. Vi vil lรฆre om DCL-, TCL-, DQL-, DDL- og DML-kommandoerne i SQL med eksempler.

Hvorfor bruge SQL?

Her er vigtige grunde til at bruge SQL:

  • Det hjรฆlper brugerne med at fรฅ adgang til data i RDBMS system.
  • Det hjรฆlper dig med at beskrive dataene.
  • Det giver dig mulighed for at definere dataene i en database og manipulere de specifikke data.
  • Ved hjรฆlp af SQL-kommandoer kan du oprette og slette databaser og tabeller.
  • SQL giver dig mulighed for at bruge funktioner i en database og oprette visninger og lagrede procedurer.
  • Du kan indstille tilladelser til tabeller, procedurer og visninger.

Kort historie om SQL

Her er vigtige vartegn fra SQLs historie:

  • 1970 - Dr. Edgar F. "Ted" Codd beskrev en relationel model for databaser.
  • 1974 โ€“ Structured Query Language dukkede op, oprindeligt kaldet SEQUEL. IBM.
  • 1979 - Oracle udgav den fรธrste kommercielt tilgรฆngelige SQL-baserede database, baseret pรฅ IBMs System R-forskningsprototype.
  • 1986 โ€“ ANSI udgav den fรธrste SQL-standard, SQL-86.
  • 1989 โ€“ SQL-89 ankom som den fรธrste revision af standarden.
  • 1992 โ€“ SQL-92 (SQL2) blev den primรฆre basis, som de fleste databaser stadig refererer til i dag.
  • 1999 โ€“ SQL:1999 (SQL3) blev lanceret med funktioner som triggere, rekursive forespรธrgsler og objektorientering.
  • 2003 โ€“ SQL:2003 tilfรธjede vinduesfunktioner, sekvensgeneratorer og XML-relaterede funktioner.
  • 2006 โ€“ SQL:2006 tilfรธjede understรธttelse af XML Query Language (XQuery).
  • 2008 โ€“ SQL:2008 introducerede TRUNCATE-sรฆtningen og INSTEAD OF-triggere.
  • 2011 โ€“ SQL:2011 forbedrede understรธttelse af temporale databaser.
  • 2016 โ€“ SQL:2016 tilfรธjede JSON-understรธttelse og matchning af rรฆkkemรธnstre (MATCH_RECOGNIZE).
  • 2019 โ€“ SQL/MDA (del 15) tilfรธjede understรธttelse af flerdimensionelle arrays til standarden.
  • 2023 โ€“ SQL:2023 tilfรธjede en indbygget JSON-datatype og egenskabsgrafforespรธrgsler (SQL/PGQ).
  • 2024 โ€“ GQL, det fรธrste nye ISO-databasesprog siden SQL, blev udgivet som en ledsagende standard til grafforespรธrgsler.
  • 2026 โ€“ SQL:2023 er fortsat den nuvรฆrende standard, og den nรฆste revision er under udvikling hos ISO/IEC.

Typer af SQL-kommandoer

Her er fem typer af udbredte SQL-kommandoer:

  • Data Definition Language (DDL)
  • Data Manipulation Language (DML)
  • Data Control Language (DCL)
  • Transaktionskontrolsprog (TCL)
  • Data Query Language (DQL)
Typer af SQL-kommandoer
Typer af SQL

Tabellen nedenfor opsummerer de fem kategorier, fรธr hver enkelt gennemgรฅs i detaljer.

Kategori Formรฅl Hovedkommandoer
DDL Definer struktur OPRET, SLIP, ร†NDRE, AFKORTE
DML Rediger data INDSร†T, OPDATER, SLET
DCL Kontroller adgang TILDELING, TILBAGETAGELSE
TCL Administrer transaktioner COMMIT, ROLLBACK, SAVEPOINT
DQL Hent data SELECT

Hvad er DDL?

Data Definition Language hjรฆlper dig med at definere databasestrukturen eller -skemaet. Lad os lรฆre om DDL-kommandoer med syntaks. De vigtigste DDL-kommandoer i SQL er CREATE, DROP, ALTER og TRUNCATE.

SKAB

CREATE-sรฆtningen bruges til at definere databasestrukturen eller -skemaet:

Syntaks:

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

For eksempel:

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

DROP

DROP-kommandoen fjerner tabeller og databaser fra RDBMS'en.

Syntaks:

DROP TABLE ;

For eksempel:

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

ร†NDRE

ALTER-kommandoen giver dig mulighed for at รฆndre databasens struktur.

Syntaks: for at tilfรธje en ny kolonne i tabellen:

ALTER TABLE table_name ADD column_name COLUMN-definition;

Sรฅdan รฆndrer du en eksisterende kolonne i tabellen:

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

For eksempel:

Alter table guru99 add subject varchar;

afkorte

Denne kommando bruges til at slette alle rรฆkker fra tabellen og frigรธre pladsen, der indeholder tabellen.

Syntaks:

TRUNCATE TABLE table_name;

Eksempel:

TRUNCATE table students;

Hvad er datamanipulationssprog?

Data Manipulation Language (DML) giver dig mulighed for at รฆndre databaseinstansen ved at indsรฆtte, รฆndre og slette dens data. Det er ansvarligt for at udfรธre alle typer dataรฆndringer i en database. De vigtige DML-kommandoer i SQL er:

  • INSERT
  • OPDATER
  • SLET

INSERT

Denne sรฆtning bruges til at indsรฆtte data i rรฆkkerne i en tabel.

Syntaks:

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

For eksempel:

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

OPDATER

Denne kommando bruges til at opdatere eller รฆndre vรฆrdien af โ€‹โ€‹en kolonne i tabellen.

Syntaks:

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

For eksempel:

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

SLET

Denne kommando bruges til at fjerne en eller flere rรฆkker fra en tabel.

Syntaks:

DELETE FROM table_name [WHERE condition];

For eksempel:

DELETE FROM students
WHERE FirstName = 'Jhon';

Hvad er DCL?

DCL (Data Control Language) indeholder kommandoer som GRANT og REVOKE, som er nyttige til at give rettigheder og tilladelser. Andre kommandoer styrer parametre i databasesystemet.

Grant

Denne kommando bruges til at give en bruger adgangsrettigheder til en database.

Syntaks:

GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;

For eksempel:

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

Revorden

Denne kommando er nyttig til at tage tilladelser tilbage fra brugeren.

Syntaks:

REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}

For eksempel:

REVOKE SELECT, UPDATE ON student FROM BCA, MCA;

Hvad er TCL?

Transaction Control Language, eller TCL-kommandoer, hรฅndterer transaktionen i databasen. De arbejder direkte med de tilstande, der er beskrevet under transaktionsstyring.

Commit

Denne kommando bruges til at gemme alle transaktioner i databasen.

Syntaks:

Commit;

For eksempel:

DELETE FROM Students
WHERE RollNo =25;
COMMIT;

Tilbagerulning

Med kommandoen "Rollback" kan du fortryde transaktioner, der ikke allerede er gemt i databasen.

Syntaks:

ROLLBACK;

Eksempel:

DELETE FROM Students
WHERE RollNo =25;

SAVEPOINT

Denne kommando hjรฆlper dig med at angive et gemt punkt i en transaktion.

Syntaks:

SAVEPOINT SAVEPOINT_NAME;

Eksempel:

SAVEPOINT RollNo;

Hvad er DQL?

Data Query Language (DQL) bruges til at hente data fra databasen. Det bruger kun รฉn kommando, SELECT.

SELECT

Denne kommando hjรฆlper dig med at vรฆlge attributterne baseret pรฅ den betingelse, der er beskrevet af WHERE-klausulen.

Syntaks:

SELECT expressions
FROM TABLES
WHERE conditions;

For eksempel:

SELECT FirstName
FROM Student
WHERE RollNo > 15;

SLET vs. AFKORTI vs. SLIP

Disse tre kommandoer fjerner alle data, men de adskiller sig i, hvad de fjerner, og om handlingen kan rulles tilbage. At forveksle dem er en almindelig begynderfejl.

Aspect SLET afkorte DROP
Kategori DML DDL DDL
Fjerner Valgte rรฆkker Alle rรฆkker Hele bordet
WHERE-klausul Tilladt Ikke tilladt Ikke relevant
Tilbagerulning Mulig Normalt ikke Ikke muligt
Struktur bevaret Ja Ja Ingen

Kort sagt, brug DELETE til at fjerne bestemte rรฆkker, TRUNCATE til at tรธmme en tabel hurtigt og DROP for at kassere tabellen helt.

Ofte Stillede Spรธrgsmรฅl

DELETE er en DML-kommando, der fjerner markerede rรฆkker og kan rulles tilbage. TRUNCATE er en DDL-kommando, der fjerner alle rรฆkker pรฅ รฉn gang, er hurtigere og kan normalt ikke rulles tilbage.

De tilhรธrer Data Control Language, eller DCL. GRANT giver en bruger privilegier pรฅ et databaseobjekt, og REVOKE fjerner disse privilegier, som tilsammen styrer adgang og sikkerhed.

Ja. Tekst-til-SQL-modeller omdanner en anmodning i naturligt sprog til en SELECT-sรฆtning eller anden sรฆtning mod et kendt skema. Gennemgรฅ altid den genererede forespรธrgsel, fรธr du kรธrer den pรฅ produktionsdata.

Ja. Ved at lรฆse udfรธrelsesplanen kan AI foreslรฅ et indeks, en omskrevet join eller en WHERE-รฆndring, der sรฆnker omkostningerne. Forslaget bรธr testes, da den hurtigste plan afhรฆnger af dataene.

DDL definerer eller รฆndrer databasens struktur, sรฅsom tabeller og kolonner. DML รฆndrer dataene i denne struktur via INSERT, UPDATE og DELETE. Struktur versus indhold er den vigtigste forskel.

Opsummer dette indlรฆg med: