¿Qué es el DDL?
El Lenguaje de Definición de Datos le ayuda a definir la estructura o el esquema de la base de datos. Los comandos DDL le ayudan a crear la estructura de la base de datos y los demás objetos de la base de datos. Sus comandos se autocommiten, por lo que los cambios se guardan en la base de datos de forma permanente. La forma completa de DDL es Data Definition Language.
En este tutorial diferencia entre DML y DDL, usted aprenderá:
- ¿Qué es DDL?
- ¿Qué es DML?
- ¿Por qué DDL?
- ¿Por qué DML?
- Diferencia entre DDL y DML en DBMS
- Comandos para DDL
- Comandos para DML
- Ejemplo de comando DDL
- Ejemplo de comando DML
¿Qué es DML?
Los comandos DML permiten gestionar los datos almacenados en la base de datos, aunque los comandos DML no son auto-comprometidos. Además, no son permanentes. Por lo tanto, es posible revertir la operación. La forma completa de DML es el Lenguaje de Manipulación de Datos.
A continuación se muestra la diferencia clave entre DDL y DML en DBMS:
DIFERENCIAS CLAVE:
- El Lenguaje de Definición de Datos (DDL) ayuda a definir la estructura o el esquema de la base de datos mientras que el Lenguaje de Manipulación de Datos (comando DML) permite gestionar los datos almacenados en la base de datos.
- El comando DDL se utiliza para crear el esquema de la base de datos mientras que el comando DML se utiliza para poblar y manipular la base de datos
- Comparando DDL vs DML, las sentencias DDL afectan a toda la tabla mientras que los comandos DML sólo afectan a una o más filas.
- En DDL, la sentencia SQL no puede ser revertida mientras que en DML la sentencia SQL puede ser revertida.
- DDL es un método declarativo mientras que DML es un método imperativo.
- Los comandos DDL más importantes son: 1) CREATE, 2) ALTER, 3) DROP, 4) TRUNCATE, etc. mientras que los comandos DML importantes son: 1) INSERT, 2) UPDATE, 3) DELETE, 4) MERGE, etc.
¿Por qué DDL?
Aquí, hay razones para usar el método DDL:
- Permite almacenar datos compartidos
- Independencia de los datos mejora de la integridad
- Permite múltiples usuarios
- Mejora de la seguridad acceso eficiente a los datos
¿Por qué DML?
Aquí, beneficios/ pros de DML:
- Las sentencias DML permiten modificar los datos almacenados en una base de datos.
- Los usuarios pueden especificar qué datos se necesitan.
- DML ofrece muchos sabores y capacidades diferentes entre los proveedores de bases de datos.
- Ofrece una eficiente interacción humana con el sistema.
Diferencia entre DDL y DML en DBMS
Aquí está la principal diferencia entre los comandos DDL y DML:
DDL | DML |
El lenguaje de definición de datos (DDL) ayuda a definir la estructura o el esquema de la base de datos. | Lenguaje de Manipulación de Datos (comando DML) permite gestionar los datos almacenados en la base de datos. |
El comando DML se utiliza para crear el esquema de la base de datos. | El comando DML se utiliza para poblar y manipular la base de datos |
DDL no se clasifica más. | DML se clasifica como DML de procedimiento y no de procedimiento. |
Crear, ALTER, DROP, TRUNCATE y COMENTARIO y RENAME, etc. | INSERT, UPDATE, DELETE, MERGE, CALL, etc. |
Define la columna de la tabla. | Agrega o actualiza la fila de la tabla |
Las sentencias DDL afectan a toda la tabla. | DML afecta a una o más filas. |
La sentencia SQL no puede ser rollback | La sentencia SQL puede ser rollback |
DDL es declarativo. | DML es imperativo. |
Comandos para DDL
Cinco tipos de comandos DDL son:
CREATE
Las sentencias Create se utilizan para definir el esquema de la estructura de la base de datos:
Sintaxis:
CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES);
Por ejemplo:
Create database university;Create table students;Create view for_students;
DROP
Los comandos Drops eliminan tablas y bases de datos del RDBMS.
Sintaxis:
DROP TABLE ;
Por ejemplo:
Drop object_type object_name;Drop database university;Drop table student;
ALTER
El comando Alters permite alterar la estructura de la base de datos.
Sintaxis:
Para añadir una nueva columna en la tabla
ALTER TABLE table_name ADD column_name COLUMN-definition;
Para modificar una columna existente en la tabla:
ALTER TABLE MODIFY(COLUMN DEFINITION....);
Por ejemplo:
Alter table guru99 add subject varchar;
TRUNCATE:
Este comando sirve para eliminar todas las filas de la tabla y liberar el espacio que la contiene.
Sintaxis:
TRUNCATE TABLE table_name;
Ejemplo:
TRUNCATE table students;
Comandos para DML
Aquí hay algunos comandos DML importantes:
- INSERT
- UPDATE
- DELETE
INSERT:
Esta es una sentencia que es una consulta SQL. Este comando se utiliza para insertar datos en la fila de una tabla.
Sintaxis:
INSERT INTO TABLE_NAME (col1, col2, col3,.... col N) VALUES (value1, value2, value3, .... valueN); Or INSERT INTO TABLE_NAME VALUES (value1, value2, value3, .... valueN);
Por ejemplo:
INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', 'Erichsen');
UPDATE:
Este comando se utiliza para actualizar o modificar el valor de una columna de la tabla.
Sintaxis:
UPDATE table_name SET
Por ejemplo:
UPDATE students SET FirstName = 'Jhon', LastName=' Wick' WHERE StudID = 3;
DELETE:
Este comando se utiliza para eliminar una o varias filas de una tabla.
Sintaxis:
DELETE FROM table_name ;
Por ejemplo:
DELETE FROM students WHERE FirstName = 'Jhon';
Ejemplo de comando DDL
CREAR
Sintaxis:
CREATE TABLE tableName( column_1 datatype , column_2 datatype , ...);
Aquí,
- El parámetro tableName denota el nombre de la tabla que se va a crear.
- Los parámetros column_1, column_2… denotan las columnas que se van a añadir a la tabla.
- Una columna debe especificarse como NULL o NOT NULL. Si no se especifica, SQL Server tomará NULL por defecto
Ejemplo:
CREATE TABLE Students(Student_ID Int,Student_Name Varchar(10))
ALTER
Sintaxis:
Alter TABLE <Table name> ADD Column1 datatype, Column2 datatype;
Ejemplo:
ALTER TABLE University.Students_Name ADD Course_Duration VARCHAR(20);
DROP
Sintaxis:
DROP TABLE <tableName>;
El parámetro tableName es el nombre de la tabla que se va a eliminar.
Ejemplo:
DROP TABLE COURSE_NAMES;
Ejemplo de comando DML
INSERT
En PL/SQL, podemos insertar los datos en cualquier tabla utilizando el comando SQL INSERT INTO. Este comando tomará el nombre de la tabla, la columna de la tabla y los valores de la columna como entrada e insertará el valor en la tabla base.
El comando INSERT también puede tomar los valores directamente de otra tabla utilizando la sentencia ‘SELECT’ en lugar de dar los valores de cada columna. Mediante la sentencia ‘SELECT’ podemos insertar tantas filas como contenga la tabla base.
Sintaxis:
BEGIN INSERT INTO <table_name>(<column1 >,<column2>,...<column_n>) VALUES(<valuel><value2>,...:<value_n>);END;
La sintaxis anterior muestra el comando INSERT INTO. El nombre de la tabla y los valores son campos obligatorios, mientras que los nombres de las columnas no son obligatorios si las sentencias de inserción tienen valores para todas las columnas de la tabla.
La palabra clave ‘VALUES’ es obligatoria si los valores se dan por separado, como se muestra arriba.
Sintaxis:
BEGIN INSERT INTO <table_name>(<columnl>,<column2>,...,<column_n>) SELECT <columnl>,<column2>,.. <column_n> FROM <table_name2>;END;
La sintaxis anterior muestra el comando INSERT INTO que toma los valores directamente de la <tabla_nombre2> utilizando el comando SELECT.
La palabra clave ‘VALUES’ no debe estar presente en este caso, ya que los valores no se dan por separado.
DELETE
A continuación se muestra la sintaxis para borrar la tabla
Sintaxis:
DROP TABLE <TableName>;
El parámetro TableName es el nombre de la tabla que se va a borrar.
Ejemplo:
DROP TABLE COURSE_NAMES;
SELECT
Para ver los datos en SQL Server, utilizamos la sentencia SELECT.
Sintaxis:
SELECT expressionFROM tableName;
Ejemplo:
SELECT * FROM Course;