Пређи на садржај

Језик за дефинисање података

С Википедије, слободне енциклопедије
Чување .ddl датотеке у програму Oracle SQL Developer

У контексту SQL-а, језик за дефинисање података (DDL) је синтакса за креирање и модификовање објеката базе података као што су табеле, индекси и корисници. DDL наредбе су сличне програмском језику за дефинисање структура података, посебно шема базе података. Уобичајени примери DDL наредби укључују CREATE, ALTER и DROP. Ако се види.ddl датотека, то значи да датотека садржи наредбу за креирање табеле. Oracle SQL Developer садржи могућност извоза из ERD генерисаног помоћу Data Modeler-а у .sql датотеку или .ddl датотеку.

Многи језици за опис података користе декларативну синтаксу за дефинисање колона и типова података. SQL, међутим, користи колекцију императивних глагола чији је ефекат модификовање шеме базе података додавањем, променом или брисањем дефиниција табела или других елемената. Ови искази се могу слободно мешати са другим SQL исказима, што DDL чини не засебним језиком.

Исказ CREATE

[уреди | уреди извор]

Исказ create се користи за креирање нове базе података, табеле, индекса или складиштене процедуре .

CREATE у SQL-у креира компоненту у систему за управљање релационим базама података (RDBMS). У спецификацији SQL 1992, типови компоненти које се могу креирати су шеме, табеле, прикази, домени, скупови знакова, колације, преводи и тврдње. [1] Многе имплементације проширују синтаксу како би омогућиле креирање додатних елемената, као што су индекси и кориснички профили. Неки системи, као што су PostgreSQL и SQL Server, дозвољавају CREATE и друге DDL команде унутар трансакције базе података и стога се могу вратити уназад. [2] [3]

Исказ CREATE TABLE

[уреди | уреди извор]

Често коришћена команда CREATE је команда CREATE TABLE. Типична употреба је:

CREATE TABLE [назив табеле] ( [дефиниције колона] ) [параметри табеле]

Дефиниције колона су:

  • Листа одвојена зарезима која се састоји од било чега од следећег
  • Дефиниција колоне: [назив колоне] [тип података] {NULL | NOT NULL} {опције колоне}
  • Дефиниција примарног кључа : ПРИМАРНИ КЉУЧ ( [листа колона одвојених зарезима] )
  • Ограничења: {CONSTRAINT} [дефиниција ограничења]
  • Функционалност специфична за RDBMS

Пример изјаве за креирање табеле под називом „Запослени“ са неколико колона је:

CREATE TABLE Zaposleni (
  id      INTEGER    PRIMARY KEY,
  ime  VARCHAR(50)  not null,
  prezime   VARCHAR(75)  not null,
  datumrodjenja  DATE     not null
);

Неки облици CREATE TABLE DDL-а могу да садрже конструкције сличне DML-у (језик за манипулацију подацима), као што је CREATE TABLE AS SELECT (CTaS) синтакса SQL-а. [4]

DROP команда уништава постојећу базу података, табелу, индекс или приказ.

DROP команда у SQL-у уклања компоненту из система за управљање релационим базама података (RDBMS). Врсте објеката које је могуће уклонити зависе од тога који се RDBMS користи, али већина подржава уклањање табела, корисника и база података. Неки системи (као што је PostgreSQL ) дозвољавају да се DROP и друге DDL команде изврше унутар трансакције и стога се могу вратити уназад. Типична употреба је једноставно:

DROP тип објекта назив објекта.

На пример, команда за брисање табеле под називом Запослени је:

DROP TABLE Zaposleni;

Команда DROP се разликује од команди DELETE и TRUNCATE по томе што DELETE и TRUNCATE не уклањају саму табелу. На пример, наредба DELETE може избрисати неке (или све) податке из табеле, а саму табелу оставити у бази података, док наредба DROP уклања целу табелу из базе података.

Исказ ALTER

[уреди | уреди извор]

Команда ALTER мења постојећи објекат базе података.

Команда ALTER у SQL-у мења својства објекта унутар система за управљање релационим базама података (RDBMS). Врсте објеката које је могуће мењати зависе од тога који се RDBMS користи. Типична употреба је:

ALTER параметри типа објекта назив објекта .

На пример, команда за додавање (а затим уклањање) колоне под називом име родитеља за постојећу табелу под називом Запослени је:

ALTER TABLE Zaposleni ADD imeroditelja VARCHAR2(50);
ALTER TABLE Zaposleni DROP COLUMN imeroditelja;

Исказ TRUNCATE

[уреди | уреди извор]

Команда TRUNCATE се користи за брисање свих података из табеле. Много је бржа од команде DELETE.

TRUNCATE TABLE Zaposleni;

Искази о референцијалном интегритету

[уреди | уреди извор]

Друга врста DDL реченице у SQL-у се користи за дефинисање односа референцијалног интегритета, обично имплементираних као ознаке примарног и страног кључа у неким колонама табела. Ова два исказа могу бити укључена у реченицу CREATE TABLE или ALTER TABLE;

Други језици

[уреди | уреди извор]
  • XML шема је пример DDL-а за XML.
  • JSON шема је пример DDL-а за JSON.
  • DFDL шема је пример DDL-а који може да опише многе текстуалне и бинарне формате.

Референце

[уреди | уреди извор]
  1. ^ „Information Technology - Database Language SQL”. SQL92. Carnegie Mellon. Приступљено 12. 11. 2018. 
  2. ^ Laudenschlager, Douglas; Milener, Gene; Guyer, Craig; Byham, Rick. „Transactions (Transact-SQL)”. Microsoft Docs. Microsoft. Приступљено 12. 11. 2018. 
  3. ^ „PostgreSQL Transactions”. PostgreSQL 8.3 Documentation. PostgreSQL. 7. 2. 2013. Приступљено 12. 11. 2018. 
  4. ^ Allen, Grant (2010). The Definitive Guide to SQLite. Apresspod. Mike Owens (2 изд.). Apress. стр. 90—91. ISBN 9781430232254. Приступљено 2012-10-02. „The create table statement has a special syntax for creating tables from select statements. [...]: [...] create table foods2 as select * from foods; [...] Many other databases refer to this approach as CTaS, which stands for Create Table as Select, and that phrase is not uncommon among SQLite users. 

Спољашње везе

[уреди | уреди извор]