SQL команди: DQL, DDL, DML, DCL и TCL с примери
⚡ Умно обобщение
SQL командите са групирани в пет подезика, които управляват релационна база данни. DDL дефинира структурата, DML променя данните, DCL контролира достъпа, TCL управлява транзакциите, а DQL извлича данни, всеки със собствен набор от оператори и синтаксис.

Какво е SQL?
SQL е език за база данни, предназначен за извличане и управление на данни в релационна база данни.
SQL е стандартният език за управление на бази данни. Всички RDBMS системи като MySQL, MS Access, Oracle, Sybase, Postgres и SQL Server използват SQL като стандартен език за бази данни. Езикът за програмиране SQL използва различни команди за различни операции. Ще научим за командите DCL, TCL, DQL, DDL и DML в SQL с примери.
Защо да използваме SQL?
Ето важни причини за използването на SQL:
- Това помага на потребителите да имат достъп до данни в RDBMS система.
- Това ви помага да опишете данните.
- Тя ви позволява да дефинирате данните в база данни и да манипулирате тези конкретни данни.
- С помощта на SQL команди можете да създавате и премахвате бази данни и таблици.
- SQL ви позволява да използвате функции в база данни и да създавате изгледи и съхранени процедури.
- Можете да задавате разрешения за таблици, процедури и изгледи.
Кратка история на SQL
Ето важни забележителности от история на SQL:
- 1970 – Д-р Едгар Ф. „Тед“ Код описва релационен модел за бази данни.
- 1974 г. – Появява се структуриран език за заявки, първоначално наречен SEQUEL. IBM.
- 1979 - Oracle пусна първата комерсиално достъпна SQL-базирана база данни, базирана на IBMИзследователският прототип на System R.
- 1986 г. – ANSI публикува първия SQL стандарт, SQL-86.
- 1989 г. – SQL-89 се появява като първата редакция на стандарта.
- 1992 г. – SQL-92 (SQL2) се превръща в основна базова линия, към която все още се позовават повечето бази данни днес.
- 1999 г. – SQL:1999 (SQL3) е пуснат с функции като тригери, рекурсивни заявки и обектно-ориентирана версия.
- 2003 – SQL:2003 добави функции за прозорци, генератори на последователности и функции, свързани с XML.
- 2006 г. – SQL:2006 добави поддръжка за XML език за заявки (XQuery).
- 2008 г. – SQL:2008 въведе оператора TRUNCATE и тригерите INSTEAD OF.
- 2011 – SQL:2011 подобри поддръжката за темпорални бази данни.
- 2016 – SQL:2016 добави поддръжка на JSON и съпоставяне на шаблони на редове (MATCH_RECOGNIZE).
- 2019 – SQL/MDA (част 15) добави поддръжка за многомерни масиви към стандарта.
- 2023 – SQL:2023 добави нативен JSON тип данни и заявки за графове на свойства (SQL/PGQ).
- 2024 г. – GQL, първият нов език за бази данни по ISO след SQL, е публикуван като стандарт за графични заявки.
- 2026 г. – SQL:2023 остава текущият стандарт, като следващата му редакция е в процес на разработка в ISO/IEC.
Видове SQL команди
Ето пет вида широко използвани SQL команди:
- Език за дефиниране на данни (DDL)
- Език за манипулиране на данни (DML)
- Език за управление на данни (DCL)
- Език за контрол на транзакциите (TCL)
- Език за заявка на данни (DQL)

Таблицата по-долу обобщава петте категории, преди всяка от тях да бъде разгледана подробно.
| категория | Цел | Основни команди |
|---|---|---|
| DDL | Дефиниране на структура | СЪЗДАВАНЕ, ИЗПУСКВАНЕ, ПРОМЯНА, СЪКРАЩАНЕ |
| ГСД | Промяна на данни | ВМЪКВАНЕ, АКТУАЛИЗИРАНЕ, ИЗТРИВАНЕ |
| DCL | Контролирайте достъпа | ПРЕДОСТАВЯ, ОТМЕНЯ |
| TCL | Управление на транзакции | КОМИТИРАНЕ, ВРЪЩАНЕ, ТОЧКА НА ЗАПАЗВАНЕ |
| DQL | Извличане на данни | МАРКИРАЙ |
Какво е DDL?
Езикът за дефиниране на данни ви помага да дефинирате структурата или схемата на базата данни. Нека да научим за DDL командите със синтаксис. Основните DDL команди в SQL са CREATE, DROP, ALTER и TRUNCATE.
CREATE
Изразът CREATE се използва за дефиниране на структурата или схемата на базата данни:
Синтаксис:
CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);
Например:
Create database university; Create table students; Create view for_students;
Капка
Командата DROP премахва таблици и бази данни от RDBMS.
Синтаксис:
DROP TABLE ;
Например:
Drop object_type object_name; Drop database university; Drop table student;
ПРОМЕНИ
Командата ALTER ви позволява да променяте структурата на базата данни.
Синтаксис: за да добавите нова колона в таблицата:
ALTER TABLE table_name ADD column_name COLUMN-definition;
За да промените съществуваща колона в таблицата:
ALTER TABLE MODIFY(COLUMN DEFINITION....);
Например:
Alter table guru99 add subject varchar;
ПРЕКРАТЕТЕ
Тази команда се използва за изтриване на всички редове от таблицата и освобождаване на пространството, съдържащо таблицата.
Синтаксис:
TRUNCATE TABLE table_name;
Пример:
TRUNCATE table students;
Какво е език за манипулиране на данни?
Езикът за манипулиране на данни (DML) ви позволява да променяте екземпляр на база данни, като вмъквате, променяте и изтривате данните в нея. Той е отговорен за извършването на всички видове модификация на данни в база данни. Важните DML команди в SQL са:
- INSERT
- АКТУАЛИЗАЦИЯ
- ИЗТРИЙ
INSERT
Този оператор се използва за вмъкване на данни в редовете на таблица.
Синтаксис:
INSERT INTO TABLE_NAME (col1, col2, col3,.... col N) VALUES (value1, value2, value3, .... valueN); Or INSERT INTO TABLE_NAME VALUES (value1, value2, value3, .... valueN);
Например:
INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', Erichsen');
АКТУАЛИЗАЦИЯ
Тази команда се използва за актуализиране или промяна на стойността на колона в таблицата.
Синтаксис:
UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]
Например:
UPDATE students SET FirstName = 'Jhon', LastName= 'Wick' WHERE StudID = 3;
ИЗТРИЙ
Тази команда се използва за премахване на един или повече редове от таблица.
Синтаксис:
DELETE FROM table_name [WHERE condition];
Например:
DELETE FROM students WHERE FirstName = 'Jhon';
Какво е DCL?
DCL (Data Control Language) включва команди като GRANT и REVOKE, които са полезни за предоставяне на права и разрешения. Други команди контролират параметрите на системата от бази данни.
Грант
Тази команда се използва за предоставяне на потребителски права за достъп до база данни.
Синтаксис:
GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;
Например:
GRANT SELECT ON Users TO'Tom'@'localhost;
Revдобре
Тази команда е полезна за възстановяване на разрешенията от потребителя.
Синтаксис:
REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}
Например:
REVOKE SELECT, UPDATE ON student FROM BCA, MCA;
Какво е TCL?
Езикът за контрол на транзакциите или TCL командите обработват транзакциите в базата данни. Те работят директно със състоянията, описани по-долу. управление на транзакциите.
Поемане на ангажимент
Тази команда се използва за запазване на всички транзакции в базата данни.
Синтаксис:
Commit;
Например:
DELETE FROM Students WHERE RollNo =25; COMMIT;
общо намаление на цените
Командата Rollback ви позволява да отмените транзакции, които все още не са запазени в базата данни.
Синтаксис:
ROLLBACK;
Пример:
DELETE FROM Students WHERE RollNo =25;
ТОЧКА НА ЗАПИСВАНЕ
Тази команда ви помага да зададете точка на запазване в рамките на транзакция.
Синтаксис:
SAVEPOINT SAVEPOINT_NAME;
Пример:
SAVEPOINT RollNo;
Какво е DQL?
Езикът за заявки към данни (DQL) се използва за извличане на данни от базата данни. Той използва само една команда, SELECT.
МАРКИРАЙ
Тази команда ви помага да изберете атрибутите въз основа на условието, описано от клаузата WHERE.
Синтаксис:
SELECT expressions FROM TABLES WHERE conditions;
Например:
SELECT FirstName FROM Student WHERE RollNo > 15;
ИЗТРИВАНЕ срещу ОТРЕЖАВАНЕ срещу КАЧВАНЕ
Тези три команди премахват данни, но се различават по това какво премахват и дали действието може да бъде отменено. Объркването им е често срещана грешка сред начинаещите.
| Аспект | ИЗТРИЙ | ПРЕКРАТЕТЕ | Капка |
|---|---|---|---|
| категория | ГСД | DDL | DDL |
| Премахва | Избрани редове | Всички редове | Цялата маса |
| WHERE клауза | Позволен | Не е позволено | Не е приложимо |
| общо намаление на цените | Възможен | Обикновено не | Не е възможно |
| Структурата е запазена | Да | Да | Не |
Накратко, използвайте DELETE, за да премахнете конкретни редове, TRUNCATE, за да изпразните бързо таблица, и DROP, за да отхвърлите таблицата изцяло.
