SlideShare una empresa de Scribd logo
1 de 17
INGENIERÍA DE SISTTEMAS Y TELEMÁTICA
SQL: DDL/DML
Alumnos:
MONTALVAN CASTILLO, Romario
LEON TAPIA, Dina
DML
Modificando la instancia
• Con el Data Definition Language (DDL) creamos y
modificamos el esquema (o estructura) de la base
• Con el Data Manipulation Language (DML) modificamos la
instancia, es decir: insertamos, modificamos y eliminamos
tuplas en las tablas
• Veremos los comandos INSERT, UPDATE y DELETE de
forma muy simplificada
• Pueden surgir errores por intentar violar cualquier constraint
definida: Tipo de datos, NOT NULL, CHECK, PK, UK o FK
Sentencias
INSERT
• Permite insertar nuevas tuplas en una tabla existente
INSERT INTO <nombre_tabla> (col1, col2, ..., colN)
VALUES (val1, val2, ..., valN);
• Ejemplo:
INSERT INTO elementos (simbolo, nombre)
VALUES ('H', 'Hidrogeno');
INSERT INTO moleculas (nombre, carga)
VALUES ('Agua', 0);
INSERT INTO elementos_molecula (elemento, molecula, numero)
VALUES ('H', 'Agua', 2);
Sentencias
INSERT
• Si se omite el nombre de una columna, se insertará NULL
en esa columna
• Si no se especifican las columnas, se asume que en la
cláusula VALUES vendrán los valores para todas las
columnas en el orden en que fueron definidas en la tabla
• Se considera una buena práctica especificar siempre las
columnas en el INSERT
• Habrá valores nuevos donde antes no había: el RDBMS
debe verificar la integridad
Sentencias
INSERT
• Ejemplos de error
SQL> desc elementos
Name Null? Type
------------------------ -------- ----------------------------
SIMBOLO NOT NULL CHAR(2)
NOMBRE NOT NULL VARCHAR2(20)
NUMERO_ATOMICO NUMBER(10,2)
SQL> insert into elementos values ('He', null, null);
insert into elementos values ('He', null, null)
*
ERROR at line 1:
ORA-01400: cannot insert NULL into ("ALFONSO"."ELEMENTOS"."NOMBRE")
Sentencias
INSERT
SQL> insert into elementos values ('He', 'Helio', 'desconozco');
insert into elementos values ('He', 'Helio', 'desconozco')
*
ERROR at line 1:
ORA-01722: invalid number
SQL> insert into elementos values ('H', 'Hidrogeno', 1);
insert into elementos values ('H', 'Hidrogeno', 1)
*
ERROR at line 1:
ORA-00001: unique constraint (ALFONSO.SYS_C0029000) violated
SQL> insert into elementos_molecula values ('C', 'Metano', 1);
insert into elementos_molecula values ('C', 'Metano', 1)
*
ERROR at line 1:
ORA-02291: integrity constraint (ALFONSO.FK_MOLECULAS_ELEMENTOS)
violated - parent key not found
Sentencias
UPDATE
• Permite modificar tuplas existentes en una tabla existente
UPDATE <nombre_tabla>
SET col1 = val1, col2 = val2, ..., colN = valN
WHERE <predicado>;
• Ejemplo:
UPDATE elementos
SET nombre = 'Hidrógeno‘
WHERE nombre = 'Hidrogeno‘;
Sentencias
UPDATE
• Todas las tuplas que cumplen el predicado se modifican con
los valores del set
• El predicado (por ahora) debe versar sobre las columnas de
la tabla, y puede contener:
• Comparaciones simples: =, <, >, <>
• Comparaciones por rango: between
• Expresiones regulares: like
• Comparación con null: is null, is not null
• Expresiones lógicas: AND, OR, NOT
Sentencias
UPDATE
• Como en el INSERT, pueden ocurrir errores porque habrá
valores nuevos donde antes no había, pero además, valores
que existen pueden dejar de existir
• Un UPDATE podría modificar el padre de una FK definida
con la cláusula “ON UPDATE RESTRICT”
SQL> update elementos set simbolo = 'Z' where simbolo = 'H';
update elementos set simbolo = 'Z' where simbolo = 'H'
*
ERROR at line 1:
ORA-02292: integrity constraint (ALFONSO.FK_MOLECULAS_ELEMENTOS)
violated - child record found
Sentencias
DELETE
• Permite eliminar tuplas de una tabla existente
DELETE FROM <nombre_tabla>
WHERE <predicado>;
• Ejemplo:
DELETE FROM elementos WHERE simbolo = 'H';
DELETE FROM movimientos WHERE fecha_mov < '15/05/2002';
• Posibilidad de integrity constraint violated - child record
found en FKs con la cláusula “ON DELETE RESTRICT”
Sentencias
UPDATE y DELETE
• Cuidado con los predicados: un predicado mal escrito puede
modificar (o eliminar) tuplas que no se pretendían modificar
(o eliminar)
• El predicado vacío se evalúa TRUE para todas las tuplas !
UPDATE elementos set simbolo = 'H';
DELETE FROM elementos;
• ¿Qué hacemos si nos equivocamos?
Sentencias
TRANSACCIONES
• Los RDBMS implementan transacciones ACID
• Atomicity (se hacen en su totalidad o no se hacen)
UPDATE cuentas set saldo = saldo-500 where cuenta = 15263;
UPDATE cuentas set saldo = saldo+500 where cuenta = 9935;
INSERT INTO transferencias (fecha, desde, hacia, monto)
VALUES (SYSDATE, 15263, 9935, 500);
COMMIT; -- Aquí se confirma la transacción
Sentencias
TRANSACCIONES
• Los RDBMS implementan transacciones ACID
• Consistency (cualquier intento de violar una constraint
termina en un error)
• Isolation (mientras la transacción no se confirmó
mediante COMMIT nadie más ve los datos intermedios y
las transacciones no se afectan unas a otras)
• Durability (después del COMMIT los cambios perduran)
Sentencias
TRANSACCIONES
• ¿Qué sucede si nos equivocamos u obtenemos un error?
SQL> create table cuentas (
2 cuenta integer not null primary key,
3 saldo number(10, 2) not null
4 );
Table created.
SQL> alter table cuentas add constraint check_saldo_positivo
2 check ( saldo >= 0);
Table altered.
SQL> insert into cuentas values (15263, 400);
1 row created.
SQL> commit;
Commit complete.
Sentencias
TRANSACCIONES
• ¿Qué sucede si nos equivocamos u obtenemos un error?
SQL> UPDATE cuentas set saldo = saldo-500 where cuenta = 15263;
UPDATE cuentas set saldo = saldo-500 where cuenta = 15263
*
ERROR at line 1:
ORA-02290: check constraint (ALFONSO.CHECK_SALDO_POSITIVO)
violated
• No podemos continuar la transacción
SQL> rollback;
Rollback complete.
Sentencias
TRANSACCIONES
• Algunos RDBMSs tienen un modo autocommit, donde cada
sentencia termina con un commit implícito
• Todos tienen el modo opuesto, donde hay transacciones
• Las transacciones comienzan / terminan:
• Al iniciar la sesión
• Al ejecutar commit / rollback
• Al ejecutar DDLs o algunos comandos (según RDBMS)
• Al terminar la sesión
Sentencias
LOCKING
• Es la forma general de lograr Isolation, cuando hay
competencia por los mismos recursos
Sesión 1
SQL> UPDATE cuentas
2 set saldo = saldo – 200
3 where cuenta = 15263;
1 row updated.
Sesión 2
SQL> UPDATE cuentas
2 set saldo = saldo – 200
3 where cuenta = 15263;
lock wait

Más contenido relacionado

La actualidad más candente

La actualidad más candente (6)

Primary key
Primary keyPrimary key
Primary key
 
Trabajo grupal - Base de Datos
Trabajo grupal - Base de DatosTrabajo grupal - Base de Datos
Trabajo grupal - Base de Datos
 
PL/SQL
PL/SQLPL/SQL
PL/SQL
 
ResultSet
ResultSetResultSet
ResultSet
 
Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12
 
Introduccion al sql query
Introduccion al sql queryIntroduccion al sql query
Introduccion al sql query
 

Similar a COMANDOS ddl

Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sqlSuarezJhon
 
Administración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de DatosAdministración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de DatosHector Martinez
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDLbdatos
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql ServerCorfapo
 
Portafolio 1 sql
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sqlJuanKMillos
 
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)José Toro
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)José Toro
 
Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)José Toro
 
Insertar editarborrar registros sql_server_tutorial 2015
Insertar editarborrar registros sql_server_tutorial 2015Insertar editarborrar registros sql_server_tutorial 2015
Insertar editarborrar registros sql_server_tutorial 2015Jomar Burgos Palacios
 
Abf leccion 18
Abf leccion 18Abf leccion 18
Abf leccion 18victdiazm
 

Similar a COMANDOS ddl (20)

Lumisaca hector bdii_t7
Lumisaca hector bdii_t7Lumisaca hector bdii_t7
Lumisaca hector bdii_t7
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Administración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de DatosAdministración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de Datos
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
Portafolio 1 sql
Portafolio 1 sqlPortafolio 1 sql
Portafolio 1 sql
 
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
 
Transac sq ll
Transac sq llTransac sq ll
Transac sq ll
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Expo
ExpoExpo
Expo
 
Sql2
Sql2Sql2
Sql2
 
Qué es SQL
Qué es SQL Qué es SQL
Qué es SQL
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
 
Sesión 4
Sesión 4Sesión 4
Sesión 4
 
Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)
 
Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
Insertar editarborrar registros sql_server_tutorial 2015
Insertar editarborrar registros sql_server_tutorial 2015Insertar editarborrar registros sql_server_tutorial 2015
Insertar editarborrar registros sql_server_tutorial 2015
 
Taller 080364 sgbd-0102 - java&amp;postgre sql
Taller 080364 sgbd-0102 - java&amp;postgre sqlTaller 080364 sgbd-0102 - java&amp;postgre sql
Taller 080364 sgbd-0102 - java&amp;postgre sql
 
Abf leccion 18
Abf leccion 18Abf leccion 18
Abf leccion 18
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 

Más de ROMARIO MONTALVAN CASTILLO (14)

Oltp: Procesamiento de Transacciones en Linea
Oltp: Procesamiento de Transacciones en LineaOltp: Procesamiento de Transacciones en Linea
Oltp: Procesamiento de Transacciones en Linea
 
Diapositivas
DiapositivasDiapositivas
Diapositivas
 
Triggers-Activadores
Triggers-ActivadoresTriggers-Activadores
Triggers-Activadores
 
Vistas
VistasVistas
Vistas
 
Objeto connection
Objeto connectionObjeto connection
Objeto connection
 
Diapositivas grupo dina roma y maga
Diapositivas grupo dina roma y magaDiapositivas grupo dina roma y maga
Diapositivas grupo dina roma y maga
 
Gestor de base de datos
Gestor de base de datosGestor de base de datos
Gestor de base de datos
 
Result set
Result setResult set
Result set
 
Statemment
StatemmentStatemment
Statemment
 
Connection en Java
Connection en JavaConnection en Java
Connection en Java
 
Java con b ds
Java con b dsJava con b ds
Java con b ds
 
JDBC
JDBCJDBC
JDBC
 
Java
JavaJava
Java
 
Qué es java
Qué es javaQué es java
Qué es java
 

Último

BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 

COMANDOS ddl

  • 1. INGENIERÍA DE SISTTEMAS Y TELEMÁTICA SQL: DDL/DML Alumnos: MONTALVAN CASTILLO, Romario LEON TAPIA, Dina
  • 2. DML Modificando la instancia • Con el Data Definition Language (DDL) creamos y modificamos el esquema (o estructura) de la base • Con el Data Manipulation Language (DML) modificamos la instancia, es decir: insertamos, modificamos y eliminamos tuplas en las tablas • Veremos los comandos INSERT, UPDATE y DELETE de forma muy simplificada • Pueden surgir errores por intentar violar cualquier constraint definida: Tipo de datos, NOT NULL, CHECK, PK, UK o FK
  • 3. Sentencias INSERT • Permite insertar nuevas tuplas en una tabla existente INSERT INTO <nombre_tabla> (col1, col2, ..., colN) VALUES (val1, val2, ..., valN); • Ejemplo: INSERT INTO elementos (simbolo, nombre) VALUES ('H', 'Hidrogeno'); INSERT INTO moleculas (nombre, carga) VALUES ('Agua', 0); INSERT INTO elementos_molecula (elemento, molecula, numero) VALUES ('H', 'Agua', 2);
  • 4. Sentencias INSERT • Si se omite el nombre de una columna, se insertará NULL en esa columna • Si no se especifican las columnas, se asume que en la cláusula VALUES vendrán los valores para todas las columnas en el orden en que fueron definidas en la tabla • Se considera una buena práctica especificar siempre las columnas en el INSERT • Habrá valores nuevos donde antes no había: el RDBMS debe verificar la integridad
  • 5. Sentencias INSERT • Ejemplos de error SQL> desc elementos Name Null? Type ------------------------ -------- ---------------------------- SIMBOLO NOT NULL CHAR(2) NOMBRE NOT NULL VARCHAR2(20) NUMERO_ATOMICO NUMBER(10,2) SQL> insert into elementos values ('He', null, null); insert into elementos values ('He', null, null) * ERROR at line 1: ORA-01400: cannot insert NULL into ("ALFONSO"."ELEMENTOS"."NOMBRE")
  • 6. Sentencias INSERT SQL> insert into elementos values ('He', 'Helio', 'desconozco'); insert into elementos values ('He', 'Helio', 'desconozco') * ERROR at line 1: ORA-01722: invalid number SQL> insert into elementos values ('H', 'Hidrogeno', 1); insert into elementos values ('H', 'Hidrogeno', 1) * ERROR at line 1: ORA-00001: unique constraint (ALFONSO.SYS_C0029000) violated SQL> insert into elementos_molecula values ('C', 'Metano', 1); insert into elementos_molecula values ('C', 'Metano', 1) * ERROR at line 1: ORA-02291: integrity constraint (ALFONSO.FK_MOLECULAS_ELEMENTOS) violated - parent key not found
  • 7. Sentencias UPDATE • Permite modificar tuplas existentes en una tabla existente UPDATE <nombre_tabla> SET col1 = val1, col2 = val2, ..., colN = valN WHERE <predicado>; • Ejemplo: UPDATE elementos SET nombre = 'Hidrógeno‘ WHERE nombre = 'Hidrogeno‘;
  • 8. Sentencias UPDATE • Todas las tuplas que cumplen el predicado se modifican con los valores del set • El predicado (por ahora) debe versar sobre las columnas de la tabla, y puede contener: • Comparaciones simples: =, <, >, <> • Comparaciones por rango: between • Expresiones regulares: like • Comparación con null: is null, is not null • Expresiones lógicas: AND, OR, NOT
  • 9. Sentencias UPDATE • Como en el INSERT, pueden ocurrir errores porque habrá valores nuevos donde antes no había, pero además, valores que existen pueden dejar de existir • Un UPDATE podría modificar el padre de una FK definida con la cláusula “ON UPDATE RESTRICT” SQL> update elementos set simbolo = 'Z' where simbolo = 'H'; update elementos set simbolo = 'Z' where simbolo = 'H' * ERROR at line 1: ORA-02292: integrity constraint (ALFONSO.FK_MOLECULAS_ELEMENTOS) violated - child record found
  • 10. Sentencias DELETE • Permite eliminar tuplas de una tabla existente DELETE FROM <nombre_tabla> WHERE <predicado>; • Ejemplo: DELETE FROM elementos WHERE simbolo = 'H'; DELETE FROM movimientos WHERE fecha_mov < '15/05/2002'; • Posibilidad de integrity constraint violated - child record found en FKs con la cláusula “ON DELETE RESTRICT”
  • 11. Sentencias UPDATE y DELETE • Cuidado con los predicados: un predicado mal escrito puede modificar (o eliminar) tuplas que no se pretendían modificar (o eliminar) • El predicado vacío se evalúa TRUE para todas las tuplas ! UPDATE elementos set simbolo = 'H'; DELETE FROM elementos; • ¿Qué hacemos si nos equivocamos?
  • 12. Sentencias TRANSACCIONES • Los RDBMS implementan transacciones ACID • Atomicity (se hacen en su totalidad o no se hacen) UPDATE cuentas set saldo = saldo-500 where cuenta = 15263; UPDATE cuentas set saldo = saldo+500 where cuenta = 9935; INSERT INTO transferencias (fecha, desde, hacia, monto) VALUES (SYSDATE, 15263, 9935, 500); COMMIT; -- Aquí se confirma la transacción
  • 13. Sentencias TRANSACCIONES • Los RDBMS implementan transacciones ACID • Consistency (cualquier intento de violar una constraint termina en un error) • Isolation (mientras la transacción no se confirmó mediante COMMIT nadie más ve los datos intermedios y las transacciones no se afectan unas a otras) • Durability (después del COMMIT los cambios perduran)
  • 14. Sentencias TRANSACCIONES • ¿Qué sucede si nos equivocamos u obtenemos un error? SQL> create table cuentas ( 2 cuenta integer not null primary key, 3 saldo number(10, 2) not null 4 ); Table created. SQL> alter table cuentas add constraint check_saldo_positivo 2 check ( saldo >= 0); Table altered. SQL> insert into cuentas values (15263, 400); 1 row created. SQL> commit; Commit complete.
  • 15. Sentencias TRANSACCIONES • ¿Qué sucede si nos equivocamos u obtenemos un error? SQL> UPDATE cuentas set saldo = saldo-500 where cuenta = 15263; UPDATE cuentas set saldo = saldo-500 where cuenta = 15263 * ERROR at line 1: ORA-02290: check constraint (ALFONSO.CHECK_SALDO_POSITIVO) violated • No podemos continuar la transacción SQL> rollback; Rollback complete.
  • 16. Sentencias TRANSACCIONES • Algunos RDBMSs tienen un modo autocommit, donde cada sentencia termina con un commit implícito • Todos tienen el modo opuesto, donde hay transacciones • Las transacciones comienzan / terminan: • Al iniciar la sesión • Al ejecutar commit / rollback • Al ejecutar DDLs o algunos comandos (según RDBMS) • Al terminar la sesión
  • 17. Sentencias LOCKING • Es la forma general de lograr Isolation, cuando hay competencia por los mismos recursos Sesión 1 SQL> UPDATE cuentas 2 set saldo = saldo – 200 3 where cuenta = 15263; 1 row updated. Sesión 2 SQL> UPDATE cuentas 2 set saldo = saldo – 200 3 where cuenta = 15263; lock wait