Skip to main content

What are the difference between DDL, DML , DCL and TCL commands?

Database Command Types

DDL
Data Definition Language (DDL) statements are used to define the database structure or schema. 
-          CREATE - to create objects in the database
-          ALTER - alters the structure of the database
-          DROP - delete objects from the database
-          TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed
-          COMMENT - add comments to the data dictionary
-          RENAME - rename an object

DML
Data Manipulation Language (DML) statements are used for managing data in database. DML commands are not auto-committed. It means changes made by DML command are not permanent to database, it can be rolled back.
-          SELECT – retrieve data from the a database
-          INSERT – insert data into a table
-          UPDATE – updates existing data within a table
-          DELETE – deletes all records from a table, the space for the records remain
-          MERGE – UPSERT operation (insert or update)
-          CALL – call a PL/SQL or Java subprogram
-          LOCK TABLE – control concurrency

DCL
Data Control Language (DCL) statements. Some examples:
-          GRANT - gives user's access privileges to database
-          REVOKE - withdraw access privileges given with the GRANT command

TCL

Transaction Control Language (TCL) statements are used to manage the changes made by DML statements. It allows statements to be grouped together into logical transactions.

-          COMMIT - save work done
-          SAVEPOINT - identify a point in a transaction to which you can later roll back
-          ROLLBACK - restore database to original since the last COMMIT
-     SET TRANSACTION - Change transaction options like isolation level and what rollback segment to use

Comments

kevingeorge said…
Appreciating the persistence you put into your blog and detailed information you provide.
oracle training in bangalore


Unknown said…
Nice one, thank you for sharing, keep up the hard work :)

Popular posts from this blog

Efficiently Paging Through Large Amounts of Data (PageIndex, Page Size) -SQL Server

In this article you learn how to fetch data according PageIndex and PageSize. In web application, it is much more important to increase webform performance, loadbalance. In my development experience, some of table hold large amount of records (more than 2GB) and user need to shows records in GridView. But problem is when we select all records and loads in webforms, webform has crashed. In that case, I will simply solved with Table Variable and using Grid Page Number and Page Size. 1. Create Procedure CREATE PROCEDURE Load_Data_WithPaging @PageIndex AS INT , /*Selected Row Index of selected grid*/ @PageSize AS INT , /*Total page size of selected grid*/ @TotalRecords AS INT OUT /*used for display virtual page no*/ AS BEGIN SET NOCOUNT ON ; DECLARE @FromIndex AS INT = 0 , @ToIndex AS INT = 0 ; SET @FromIndex = (@PageIndex * @PageSize) + 1 ; /*First row no selection*/ SET @ToIndex = ((@PageIndex

What is an Index? Explain Custered Index and Non-Clustered Index

Index Index is a database object, which can be created on one or more columns (16 Max column combination). When creating the index will read the column(s) and forms a relevant data structure to minimize the number of data comparisons. The index will improve the performance of data retrieval and adds some overhead on data modification such as create, delete and modify. So it depends on how much data retrieval can be performed on table versus how much of DML ( Insert , Delete and Update ) operations. clustered index A clustered index is something that reorganizes the way records in the table are physically stored. Therefore a table can have only one clustered index. The leaf nodes of a clustered index contain the data pages, by which I mean the key-value pair in the clustered index has the index key and the actual data value. Also remember, a clustered index will be created on a table by default the moment a primary key is created on the table. A clustered index is so

How to get all connected DBLINK information -SP_LINKEDSERVERS

I am working several remote server those are connected with DB link. I need create a DB link (remote server oracle db) with my SQL Server, but don't know the required server is connected or not.  at this moment used SQL server default procedure   EXEC SP_LINKEDSERVERS Found below results: all link server name, provider name, DataSource IP those are connected with DBLINK MSDN Column name Data type Description SRV_NAME sysname Name of the linked server. SRV_PROVIDERNAME nvarchar( 128 ) Friendly name of the OLE DB provider managing access to the specified linked server. SRV_PRODUCT nvarchar( 128 ) Product name of the linked server. SRV_DATASOURCE nvarchar( 4000 ) OLE DB data source property corresponding to the specified linked server. SRV_PROVIDERSTRING nvarchar( 4000 ) OLE DB provider string property corresponding to the linked server. SRV