COMANDOS DDL/DML
DEFINICIÓN
Lenguaje de definición de datos (DDL)
El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Incluye órdenes para modificar,borrar o definir las tablas en las que se almacenan las base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE.
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, [[Vista 'CAMPO 2' STRING
Ejemplo (crear una función)
CREATE OR REPLACE FUNCTION 'NOMBRE FUNCION'('PARAMETROS')
RETURNS 'TIPO RETORNO' AS
$BODY$
BEGIN
'INSTRUCCIÓN SQL'
--por Ejemplo:
DELETE FROM con empleado WHERE id empleado = 'ANY' (ids);
END;
$BODY$
LANGUAGE 'plpgsql';
ALTER
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.
Ejemplo (agregar columna a una tabla)
ALTER TABLE 'TABLA_NOMBRE' (
ADD NUEVO_CAMPO INT UNSIGNED meel
)
DROP
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo
ALTER TABLE ''TABLA_NOMBRE''
(
DROP COLUMN ''CAMPO_NOMBRE1''
)
TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.
Ejemplo
TRUNCATE TABLE ''TABLA_NOMBRE1''
El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional.
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.
Forma básica
INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...''])
Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error.
Ejemplo
INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto Jeldrez', 4886850);
Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada:
INSERT INTO ''tabla'' VALUES (''valor1'', [''valor2,...''])
Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas de la tabla 'agenda_telefonica'):
INSERT INTO agenda_telefonica VALUES ('Roberto Jeldrez', 080473968);
Formas avanzadas
Inserciones en múltiples filas
Una característica de SQL (desde SQL-92) es el uso de constructores de filas para insertar múltiples filas a la vez, con una sola sentencia SQL:
INSERT INTO ''tabla'' (''columna1'', [''columna2,... ''])
VALUES (''valor1a'', [''valor1b,...'']), (''value2a'', [''value2b,...'']),...
Esta característica es soportada por DB2, PostgreSQL (desde la versión 8.2), MySQL, y H2.
Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas en la tabla 'agenda_telefonica'):
INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850'), ('Alejandro Sosa', '4556550');
Que podía haber sido realizado por las sentencias
INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850');
INSERT INTO agenda_telefonica VALUES ('Alejandro Sosa', '4556550');
Notar que las sentencias separadas pueden tener semántica diferente (especialmente con respecto a los triggers), y puede tener diferente rendimiento que la sentencia de inserción múltiple.
Para insertar varias filas en MS SQL puede utilizar esa construcción:
INSERT INTO phone_book
SELECT 'John Doe', '555-1212'
UNION ALL
SELECT 'Peter Doe', '555-2323';
Tenga en cuenta que no se trata de una sentencia SQL válida de acuerdo con el estándar SQL, debido a la cláusula subselect incompleta.
Para hacer lo mismo en Oracle se usa DUAL TABLE, siempre que se trate de solo una simple fila:
INSERT INTO phone_book
SELECT 'John Doe', '555-1212' FROM DUAL
UNION ALL
SELECT 'Peter Doe','555-2323' FROM DUAL
Una implementación conforme al estándar de esta lógica se muestra el siguiente ejemplo, o como se muestra arriba (no aplica en Oracle):
INSERT INTO phone_book
SELECT 'John Doe', '555-1212' FROM LATERAL ( VALUES (1) ) AS t(c)
UNION ALL
SELECT 'Peter Doe','555-2323' FROM LATERAL ( VALUES (1) ) AS t(c)]
Copia de filas de otras tablas
Un INSERT también puede utilizarse para recuperar datos de otros, modificarla si es necesario e insertarla directamente en la tabla. Todo esto se hace en una sola sentencia SQL que no implica ningún procesamiento intermedio en la aplicación cliente. Un SUBSELECT se utiliza en lugar de la cláusula VALUES. El SUBSELECT puede contener JOIN, llamadas a funciones, y puede incluso consultar en la misma TABLA los datos que se inserta. Lógicamente, el SELECT se evalúa antes que la operación INSERT esté iniciada. Un ejemplo se da a continuación.
INSERT INTO phone_book2
SELECT *
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')
Una variación es necesaria cuando algunos de los datos de la tabla fuente se está insertando en la nueva tabla, pero no todo el registro. (O cuando los esquemas de las tablas no son iguales.)
INSERT INTO phone_book2 ( [name], [phoneNumber] )
SELECT [name], [phoneNumber]
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')
El SELECT produce una tabla (temporal), y el esquema de la tabla temporal debe coincidir con el esquema de la tabla donde los datos son insertados.]
UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.
Ejemplo
UPDATE My_table SET field1 = 'updated value asd' WHERE field2 = 'N';
DELETE
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
Forma básica
SQL="DELETE FROM ''tabla'' WHERE ''columna1'' = ''valor1''"
Ejemplo
DELETE FROM My_table WHERE field2 = 'N';
El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Incluye órdenes para modificar,borrar o definir las tablas en las que se almacenan las base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE.
COMANDOS CREATE, ALTER, DROP Y TRUNCATE
CREATEEste comando crea un objeto dentro de la base de datos. Puede ser una tabla, [[Vista 'CAMPO 2' STRING
Ejemplo (crear una función)
CREATE OR REPLACE FUNCTION 'NOMBRE FUNCION'('PARAMETROS')
RETURNS 'TIPO RETORNO' AS
$BODY$
BEGIN
'INSTRUCCIÓN SQL'
--por Ejemplo:
DELETE FROM con empleado WHERE id empleado = 'ANY' (ids);
END;
$BODY$
LANGUAGE 'plpgsql';
ALTER
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.
Ejemplo (agregar columna a una tabla)
ALTER TABLE 'TABLA_NOMBRE' (
ADD NUEVO_CAMPO INT UNSIGNED meel
)
DROP
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo
ALTER TABLE ''TABLA_NOMBRE''
(
DROP COLUMN ''CAMPO_NOMBRE1''
)
TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.
Ejemplo
TRUNCATE TABLE ''TABLA_NOMBRE1''
Lenguaje de manipulación de datos DML(Data Manipulation Language)
Definición
Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional.
COMANDOS INSERT, SELECT, UPDATE Y DELETE
INSERTUna sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.
Forma básica
INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...''])
Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error.
Ejemplo
INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto Jeldrez', 4886850);
Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada:
INSERT INTO ''tabla'' VALUES (''valor1'', [''valor2,...''])
Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas de la tabla 'agenda_telefonica'):
INSERT INTO agenda_telefonica VALUES ('Roberto Jeldrez', 080473968);
Formas avanzadas
Inserciones en múltiples filas
Una característica de SQL (desde SQL-92) es el uso de constructores de filas para insertar múltiples filas a la vez, con una sola sentencia SQL:
INSERT INTO ''tabla'' (''columna1'', [''columna2,... ''])
VALUES (''valor1a'', [''valor1b,...'']), (''value2a'', [''value2b,...'']),...
Esta característica es soportada por DB2, PostgreSQL (desde la versión 8.2), MySQL, y H2.
Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas en la tabla 'agenda_telefonica'):
INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850'), ('Alejandro Sosa', '4556550');
Que podía haber sido realizado por las sentencias
INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850');
INSERT INTO agenda_telefonica VALUES ('Alejandro Sosa', '4556550');
Notar que las sentencias separadas pueden tener semántica diferente (especialmente con respecto a los triggers), y puede tener diferente rendimiento que la sentencia de inserción múltiple.
Para insertar varias filas en MS SQL puede utilizar esa construcción:
INSERT INTO phone_book
SELECT 'John Doe', '555-1212'
UNION ALL
SELECT 'Peter Doe', '555-2323';
Tenga en cuenta que no se trata de una sentencia SQL válida de acuerdo con el estándar SQL, debido a la cláusula subselect incompleta.
Para hacer lo mismo en Oracle se usa DUAL TABLE, siempre que se trate de solo una simple fila:
INSERT INTO phone_book
SELECT 'John Doe', '555-1212' FROM DUAL
UNION ALL
SELECT 'Peter Doe','555-2323' FROM DUAL
Una implementación conforme al estándar de esta lógica se muestra el siguiente ejemplo, o como se muestra arriba (no aplica en Oracle):
INSERT INTO phone_book
SELECT 'John Doe', '555-1212' FROM LATERAL ( VALUES (1) ) AS t(c)
UNION ALL
SELECT 'Peter Doe','555-2323' FROM LATERAL ( VALUES (1) ) AS t(c)]
Copia de filas de otras tablas
Un INSERT también puede utilizarse para recuperar datos de otros, modificarla si es necesario e insertarla directamente en la tabla. Todo esto se hace en una sola sentencia SQL que no implica ningún procesamiento intermedio en la aplicación cliente. Un SUBSELECT se utiliza en lugar de la cláusula VALUES. El SUBSELECT puede contener JOIN, llamadas a funciones, y puede incluso consultar en la misma TABLA los datos que se inserta. Lógicamente, el SELECT se evalúa antes que la operación INSERT esté iniciada. Un ejemplo se da a continuación.
INSERT INTO phone_book2
SELECT *
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')
Una variación es necesaria cuando algunos de los datos de la tabla fuente se está insertando en la nueva tabla, pero no todo el registro. (O cuando los esquemas de las tablas no son iguales.)
INSERT INTO phone_book2 ( [name], [phoneNumber] )
SELECT [name], [phoneNumber]
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')
El SELECT produce una tabla (temporal), y el esquema de la tabla temporal debe coincidir con el esquema de la tabla donde los datos son insertados.]
UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.
Ejemplo
UPDATE My_table SET field1 = 'updated value asd' WHERE field2 = 'N';
DELETE
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
Forma básica
SQL="DELETE FROM ''tabla'' WHERE ''columna1'' = ''valor1''"
Ejemplo
DELETE FROM My_table WHERE field2 = 'N';
RESUMEN
El lenguaje de consulta estructurado o SQL
(Structured Query Language) que no es más queun lenguaje estándar de comunicación con bases de datos. Hablamos por tanto de un lenguajenormalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) encombinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...).
Lenguaje de definición de datos (DDL)
Es el que se encarga de la modificación de la estructura de los objetos de la base de datos.Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE.
CREATE
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, [[Vista 'CAMPO2' STRING </source>
ALTER
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar camposa una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar untrigger, etc.
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger,función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Sepuede combinar con la sentencia ALTER.
TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, esque si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si latabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminarabsolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en unprincipio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es enrealidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve acrear y no ejecuta ninguna transacción.
Lenguaje de manipulación de datos DML(Data Manipulation Language):
Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es unlenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuariosllevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo dedatos adecuado.El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar ymanipular datos en una base de datos relacional.
INSERT
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una basede datos relacional.
Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, leserá asignado el valor por omisión. Los valores especificados (o implícitos) por la sentenciaINSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o sialguna de las restricciones es violada, no se agrega la fila y se devuelve un error.
El SELECT
utilizado para consultar registros de la base de datos que satisfagan un criteriodeterminadoEl SELECT produce una tabla (temporal), y el esquema de la tabla temporal debe coincidir conel esquema de la tabla donde los datos son insertados.
UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto deregistros existentes en una tabla.
DELETE
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
SUMMARY
The structured query language or SQL
(Structured Query Language) which is nothing more than a standard language for communication with databases. We speak therefore of a normalized language that allows us to work with any type of language (ASP or PHP) with any type of database (MS Access, SQL Server, MySQL ...).
Data definition language (DDL)
It is responsible for the modification of the structure of the objects in the database. There are four basic operations: CREATE, ALTER, DROP and TRUNCATE.
CREATE
This command creates an object within the database. It can be a table, [[View 'CAMPO2' STRING </ source>
ALTER
This command allows you to modify the structure of an object. You can add / remove a table, modify the type of a field, add / remove indexes to a table, modify untrigger, etc.
This command deletes an object from the database. It can be a table, view, index, trigger, function, procedure or any other object that the database engine supports. It can be combined with the ALTER statement.
TRUNCATE
This command truncates all the contents of a table. The advantage over the DROP command, esque if you want to delete all the contents of the table, is much faster, especially if the table is very large. The disadvantage is that TRUNCATE only works when you want to delete all records absolutely, since the WHERE clause is not allowed. Although, in a principle, this sentence would seem to be DML (Data Manipulation Language), it is actually a DDL, since internally, the TRUNCATE command deletes the table and returns it to acreate and does not execute any transaction.
Data manipulation language DML (Data Manipulation Language):
A data manipulation language (Data Manipulation Language, or DML in English) is a language provided by the database management system that allows users to carry out the tasks of consultation or manipulation of the data, organized by the data model. The most popular data manipulation language today is SQL, used to retrieve and manipulate data in a relational database.
INSERT
An SQL INSERT statement adds one or more records to one (and only one) table in a relational database.
The amounts of columns and values must be equal. If a column is not specified, it will be assigned the default value. The values specified (or implicit) by the INSERT statement must satisfy all applicable restrictions. If a syntax error occurs or any restrictions are violated, the row is not added and an error is returned.
The SELECT
used to query database records that satisfy a certain criterion SELECT produces a (temporary) table, and the schema of the temporary table must match the schema of the table where the data is inserted.
UPDATE
An UPDATE SQL statement is used to modify the values of an existing set of records in a table.
DELETE
A SQL DELETE statement deletes one or more existing records in a table.
RECOMENDACIONES
Se recomienda usar estos comando para poder administrar una base de datos de manera mas sencilla.
Es recomendable porque permites manipular los datos tal como lo requieras.
Otra recomendación es que nos permite administrar datos usando el menor tiempo posible ya que gracias a estos comandos podemos ejecutar diversas consultas, actualizaciones o transacciones usando el menor tiempo posible.
CONCLUSIONES
Los comandos DDL y DML nos permiten administrar o crear una base de datos o generar información de datos ademas permite realizar la creación , modificación o mantenimiento de tablas, vistas, transacciones, procedimientos,recuperar datos o importarlas de varias maneras.
Gracias a estos comandos podemos realizar administrar bases de datos de manera correcta y podemos evitar la pérdida, recuperación de datos mediante los comandos DDL, DML u combinados.
APRECIACIÓN DEL EQUIPO
Gracias a los comandos DDL podemos crear, modificar, actualizar y crear transacciones a los objetos dentro una base de Datos, sin importar el software de modelación, creación y diseñador de la base de datos.
Hay que tener en cuenta también que los comandos DDL van de la mano de los comandos DML ya que se pueden combinar ambos para realzar consultas mas complejas dentro de una base de datos; sin importar si la base de datos esta en un servidor físico o servidor virtual.
Cabe resaltar también que estos comandos son similares casi en la mayoría de software.
GLOSARIO DE TÉRMINOS
Abstraction (abstracción). Característica esencial de un objeto que lo diferencia de otros objetos.
SERVER (SERVIDOR): Un objeto que proporciona servicios que se utilizan por otros objetos. Los objetos que utilizan los servicios son clientes.
Abstract class (clase abstracta): Una clase abstracta actúa como una plantilla de otras clases. Normalmente se utiliza como la raíz de una jerarquía de clases.
Object (objeto): Combinación de datos y colección de operaciones que actúan sobre los datos. En c++, una instancia de una clase (un tipo objeto). Variable: Posición de almacenamiento que puede contener diferentes valores.
DDL(Data Definition Language): Lenguaje de Definición de Datos.
DML(Data Manipulation Language): Lenguaje de Manipulación de Datos.
Void keyword (palabra reservada void): Palabra reservada que indica tipo desconocido o ningún tipo. Un procedimiento es una función que devuelve void.
LINKOGRAFÍA
https://www.ibm.com/support/knowledgecenter/es/SSEPGG_8.2.0/com.ibm.db2.udb.doc/ad/c0005785.htm
http://decsai.ugr.es/~cdemesa/bd/docs/tema2BBDD.pdf
https://technet.microsoft.com/es-es/library/ms174050(v=sql.110).aspx
https://luisperis.com/como-aprender-sql/
http://www.mundoracle.com/ddl.html?Pg=sql_plsql_8.htm