Base de datos SQL Cap9-3
-
Upload
francisco-reyes-valente -
Category
Documents
-
view
213 -
download
0
Transcript of Base de datos SQL Cap9-3
-
8/20/2019 Base de datos SQL Cap9-3
1/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--11 SQL Server Básico
Insertar,Insertar,
actualizar yactualizar y
borrar datos en la BD.borrar datos en la BD.
Parte 9Parte 9
Parte 9 SQL-Server Básico
Página 1 de 18
-
8/20/2019 Base de datos SQL Cap9-3
2/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--22 SQL Server Básico
ObjetivosObjetivos
Al completar esta lección, deberá ser capaz deAl completar esta lección, deberá ser capaz de
hacer lo siguiente :hacer lo siguiente :
Insertar nuevos renglones a una tablaInsertar nuevos renglones a una tabla
Insertar valores nulosInsertar valores nulos
Modificar valores en los renglonesModificar valores en los renglones
UtilizarUtilizar queriesqueries para cambiar valorespara cambiar valores
Eliminar renglones en la tablaEliminar renglones en la tabla
Eliminar renglones basados en otrasEliminar renglones basados en otras
tablastablas
Verificar las reglas de integridadVerificar las reglas de integridad
Parte 9 SQL-Server Básico
Página 2 de 18
-
8/20/2019 Base de datos SQL Cap9-3
3/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--33 SQL Server Básico
Lenguaje de manipulación de datosLenguaje de manipulación de datos
Una instrucción DML es ejecutada cuando:Una instrucción DML es ejecutada cuando:
Agrega nuevos registros a la tablaAgrega nuevos registros a la tabla
Modificar los renglones existentes en la tablaModificar los renglones existentes en la tabla
Elimina renglones existentes de la tablaElimina renglones existentes de la tabla
UnaUna transaccióntransacción consiste de una colección deconsiste de una colección deinstrucciones DML que forman una unidad lógicainstrucciones DML que forman una unidad lógicade trabajo.de trabajo.
Lenguaje de manipulación de datos
Es el lenguaje de manipulación de datos (DML) es una parte de SQL. Cuandodesea agregar , actualizar o borrar datos de una base de datos, debe ejecutarinstrucciones DML. Un conjunto de instrucciones DML que forman una unidad
logica de trabajo es llamada transacción.
Considere una base de datos bancaria, cuando el cliente del banco transfieredinero de su cuenta de ahorros a una cuenta de cheques, la transacción consistiráen tres operaciones separadas: decrementar la cuenta de ahorros, incrementar lacuenta de cheques y registrar la transacción en la bitácora de transacciones.Microsoft SQL Server debe garantizar que estas tres instrucciones SQL seanejecutadas con éxito para mantener la consistencia de las cuentas.
Parte 9 SQL-Server Básico
Página 3 de 18
-
8/20/2019 Base de datos SQL Cap9-3
4/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--44 SQL Server Básico
Agregando nuevos registros a la TablaAgregando nuevos registros a la Tabla
DEPTDEPT
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
New rowNew row
50 DEVELOPMENT DETROIT
DEPTDEPT
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
“…insertar un nuevo“…insertar un nuevorenglón en la tablarenglón en la tabla
DEPT …”DEPT …”
50 DEVELOPMENT DETROIT
Parte 9 SQL-Server Básico
Página 4 de 18
-
8/20/2019 Base de datos SQL Cap9-3
5/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--55 SQL Server Básico
La instrucciónLa instrucción INSERTINSERT
Agregar nuevos registros a la tablaAgregar nuevos registros a la tabla
utilizando la instrucción INSERTutilizando la instrucción INSERT
Sólo un renglón es insertado a la vez conSólo un renglón es insertado a la vez con
esta sintaxisesta sintaxis
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
Agregando un nuevo renglón a la tabla
Puede agregar nuevos renglones a la tabla utilizando la instrucción INSERT.
Sintaxis:
Table es el nombre de la tabla.Column es el nombre de la columna.Values es el valor que le corresponde a la columna
Parte 9 SQL-Server Básico
Página 5 de 18
-
8/20/2019 Base de datos SQL Cap9-3
6/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--66 SQL Server Básico
Insertando nuevos registrosInsertando nuevos registros
Insertar un nuevo renglón conteniendo valoresInsertar un nuevo renglón conteniendo valorespara cada columna.para cada columna.
Listar los valores en el orden por default de lasListar los valores en el orden por default de lascolumnas en la tabla.columnas en la tabla.
Listar opcionalmente las columnas en la cláusulaListar opcionalmente las columnas en la cláusulainsert.insert.
Encierre los caracteres y fechas en comillasEncierre los caracteres y fechas en comillassimplessimples
INSERT INTO dept (deptno, dname, loc)
VALUES (50, 'DEVELOPMENT', 'DETROIT');
Agregando un nuevo renglón a la tabla (continuación)
Debido a que puede insertar un nuevo renglón que contiene valores para cadacolumna, la lista de columnas no es necesaria en la cláusula INSERT. Sinembargo, si no utiliza la lista de columnas. Los valores deben ser listados deacuerdo al orden por default que tienen las columnas en la tabla.
Parte 9 SQL-Server Básico
Página 6 de 18
-
8/20/2019 Base de datos SQL Cap9-3
7/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--77 SQL Server Básico
Insertando registrosInsertando registros
con valores Nullcon valores NullMétodo implícito: omita a la columna de la lista deMétodo implícito: omita a la columna de la lista de
columnas.columnas.
INSERT INTO dept (deptno, dname )
VALUES (60, 'MIS');
Método explícito: especifique la palabra NULLMétodo explícito: especifique la palabra NULL.
INSERT INTO dept
VALUES (70, 'FINANCE', NULL);
Métodos por insertar valores nulos
Method Description
Implicit Omit the column from the solumn list
Explicit Specify the NULL keyword in the VALUES list
Parte 9 SQL-Server Básico
Página 7 de 18
-
8/20/2019 Base de datos SQL Cap9-3
8/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--88 SQL Server Básico
Insertando valores especialesInsertando valores especiales
La función GETDATE() registra la fecha y horaLa función GETDATE() registra la fecha y hora
actuales.actuales.
INSERT INTO emp (empno, ename, job,
mgr, hiredate, sal, comm,
deptno)
VALUES (7196, 'GREEN', 'SALESMAN',
7782, GETDATE(), 2000, NULL,
10);
Insertando valores especiales utilizando funciones SQL
Puede actualizar Pseudocolumnas para insertar valores especiales en las tablas.El ejemplo graba al empleado Green en la tabla: Utiliza la función GETDATE ( )para obtener la fecja hora actuales.
Confirmando la inserción en la tabla
SELECT empno, ename , job, hiredate,,, comm
FROM empWHERE empno = 7196;
EMPNO ENAME JOB HIREDATE COMM
7196 GREEN SALESMAN 01-DEC-97
Parte 9 SQL-Server Básico
Página 8 de 18
-
8/20/2019 Base de datos SQL Cap9-3
9/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--99 SQL Server Básico
Cambiando Datos en la TablaCambiando Datos en la Tabla
EMPEMP
EMPEMP
EMPNO ENAME JOB ... DEPTNO
7839 KING PRESIDENT 10
7698 BLAKE MANAGER 30
7782 CLARK MANAGER
7566 JONES MANAGER 20
...
20
EMPNO ENAME JOB ... DEPTNO
7839 KING PRESIDENT 10
7698 BLAKE MANAGER 30
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
...
Cambiando datos en una tabla
El ejemplo actualiza el número del departamento de clark de 10 a 20.
Parte 9 SQL-Server Básico
Página 9 de 18
-
8/20/2019 Base de datos SQL Cap9-3
10/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--1010 SQL Server Básico
La instrucción UPDATELa instrucción UPDATE
Modificar renglones existentes con laModificar renglones existentes con la
instrucción UPDATEinstrucción UPDATE
Actualizar más de un renglón a la vez, siActualizar más de un renglón a la vez, si
se requierese requiere..
UPDATE table
SET column = value [, column = value]
[WHERE condition];
UPDATE table
SET column = value [, column = value]
[WHERE condition];
Cambiando datos en una tabla
Puede modificar renglones existentes utilizando la instrucción UPDATE.
Sintaxis:
• Table es el nombre de la tabla
• Column es el nombre de la columna
• Values es el valor que le corresponderá a la columna.
• Condition identifica a los renglones que serán actualizados y se componepor nombre de Columnas, expresiones, constantes, subqueries yoperadores de comparación.
Confirme la operación de actualización ejecutando un query a la tabla paramostrar los renglones actualizados.
Parte 9 SQL-Server Básico
Página 10 de 18
-
8/20/2019 Base de datos SQL Cap9-3
11/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--1111 SQL Server Básico
Actualizando renglones en una tablaActualizando renglones en una tabla
Cuando especifica una cláusula WHERE unoCuando especifica una cláusula WHERE uno
o más renglones son modificados.o más renglones son modificados.
Todos los renglones son modificados siTodos los renglones son modificados siomite la cláusula WHERE.omite la cláusula WHERE.
UPDATE emp
SET deptno = 20
WHERE ename = 'CLARK';
(1 row(s) affected)(1 row(s) affected)
UPDATE emp
SET deptno = 20;
(14 row(s) affected).
UPDATE emp
SET deptno = 20;
(14 row(s) affected).(14 row(s) affected).
Actualizando renglones (continuación)
La instrucción UPDATE modificar renglones específicos si se especifica unacláusula WHERE. El ejemplo transfiere el empleado 7782 (Clark) al departamento20.
Si se omite la cláusula WHERE, todos los renglones en la tabla serán modificados.
Parte 9 SQL-Server Básico
Página 11 de 18
-
8/20/2019 Base de datos SQL Cap9-3
12/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--1212 SQL Server Básico
Actualizando renglonesActualizando renglones
basados en otro tablabasados en otro tabla
Utilice un subquery en la instrucción UPDATEUtilice un subquery en la instrucción UPDATE
para actualizar renglones en una tabla basadopara actualizar renglones en una tabla basado
en los valores de otra tabla.en los valores de otra tabla.
UPDATE employee
SET deptno = (SELECT deptno
FROM emp
WHERE empno = 7788)
WHERE job = (SELECT job
FROM emp
WHERE empno = 7788);
(2 row(s) affected)
UPDATE employee
SET deptno = (SELECT deptno
FROM emp
WHERE empno = 7788)
WHERE job = (SELECT job
FROM emp
WHERE empno = 7788);
(2 row(s) affected)(2 row(s) affected)
Actualizando renglones basados en otro tabla
Puede utilizar subqueries en una instrucción UPDATE para actualizar renglonesen un atabla. El ejemplo actualiza EMPLOYEE basada en los valores de la tablaEMP. Cambia el numero de departamento de todos los empleados cuyo puestosea el mismo que el del empleado 7788 al valor del departamento de este mismoempleado.
Parte 9 SQL-Server Básico
Página 12 de 18
-
8/20/2019 Base de datos SQL Cap9-3
13/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--1313 SQL Server Básico
Servidor: mensaje 547, nivel 16, estado 1, línea 1
Instrucción UPDATE en conflicto
con la restricción
COLUMN FOREIGN KEY 'FK_EMP_DEPT'.
El conflicto ha aparecido en la base de datos
'curso', tabla 'DEPT', column 'DEPTNO'.
Se terminó la instrucción.
Servidor: mensaje 547, nivel 16, estado 1, línea 1
Instrucción UPDATE en conflicto
con la restricción
COLUMN FOREIGN KEY 'FK_EMP_DEPT'.
El conflicto ha aparecido en la base de datos
'curso', tabla 'DEPT', column 'DEPTNO'.
Se terminó la instrucción.
UPDATE emp
SET deptno = 55
WHERE deptno = 10;
UPDATE emp
SET deptno = 55 WHERE deptno = 10;
Actualizando renglones:Actualizando renglones:
Errores de integridadErrores de integridad
E l d e p
a r t a m e
n t o n ú
m e r o
5 5 n o
e x i s t e
E l d e p a
r t a m e
n t o n ú
m e r o
5 5 n o e
x i s t e
E l d e p
a r t a m e
n t o n ú
m e r o
5 5 n o
e x i s t e
Errores de integridad
Si intenta actualizar un registro con un valor que viola una regla de integridad(como la referencial), obtendrá un error.
En el ejemplo, el numero de departamento 55 no existe en la tabla padre, DEPT ,
obtendra un error de violación del constraint referencial.
Parte 9 SQL-Server Básico
Página 13 de 18
-
8/20/2019 Base de datos SQL Cap9-3
14/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--1414 SQL Server Básico
“…borrar un renglón“…borrar un renglón
de la tabla DEPT…”de la tabla DEPT…”
Eliminando renglones de una tablaEliminando renglones de una tabla
DEPTDEPT
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 DEVELOPMENT DETROIT
60 MIS
...DEPTDEPT
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
60 MIS
...
Parte 9 SQL-Server Básico
Página 14 de 18
-
8/20/2019 Base de datos SQL Cap9-3
15/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--1515 SQL Server Básico
La instrucción DELETELa instrucción DELETE
Puede eliminar renglones de una tablaPuede eliminar renglones de una tablautilizando la instrucción DELETE.utilizando la instrucción DELETE.
DELETE [FROM] table
[WHERE condition];
DELETE [FROM] table
[WHERE condition];
Eliminando renglones
Puede eliminar renglones existentes utilizando instrucción DELETE
Sintaxis:
Table es el nombre de la tabla
Condition identifica a los renglones que serán borrados y se componepor nombres de Columnas, expresiones, constantes,subqueries y operadores de comparación.
Parte 9 SQL-Server Básico
Página 15 de 18
-
8/20/2019 Base de datos SQL Cap9-3
16/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--1616 SQL Server Básico
Cuando especifica una cláusula WHERE uno oCuando especifica una cláusula WHERE uno o
más renglones son borrados.más renglones son borrados.
Todos los renglones son borrados si omite laTodos los renglones son borrados si omite lacláusula WHERE.cláusula WHERE.
Borrando registros de una tablaBorrando registros de una tabla
DELETE FROM dept
WHERE dname = 'DEVELOPMENT';
DELETE FROM dept
WHERE dname = 'DEVELOPMENT';
DELETE FROM dept;DELETE FROM dept;
Eliminando renglones (continuación)
Puede borrar renglones específicos utilizando la cláusula WHERE en la instrucciónDELETE. El ejemplo borra el departamento DEVELOPMENT de la tabla dept.
Parte 9 SQL-Server Básico
Página 16 de 18
-
8/20/2019 Base de datos SQL Cap9-3
17/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--1717 SQL Server Básico
Eliminando renglonesEliminando renglones
basados en otras tablasbasados en otras tablas
Utilice un subquery en la instrucción DELETE paraUtilice un subquery en la instrucción DELETE paraeliminar renglones de una tabla basado en los valoreseliminar renglones de una tabla basado en los valoresde otra tabla.de otra tabla.
DELETE FROM emp
WHERE deptno = (SELECT deptno
FROM dept
WHERE dname ='SALES');
Eliminando renglones basados en otras tablas.
Puede utilizar subqueries para borrar renglones de una tabla basado en losvalores de otra tabla. El ejemplo borra todos los empleados que están en eldepartamento 30. El subquery busca en la tabla DEPT para encontrar el númerode departamento que pertenece a SALES. El subquery retorna este número de
departamento al query principal, el cuál borra un registro de la tabla EMPLOYEEbasado en este número de departamento.
Parte 9 SQL-Server Básico
Página 17 de 18
-
8/20/2019 Base de datos SQL Cap9-3
18/18
Inserción,Inserción, ModifModif y borrado 9y borrado 9--1818 SQL Server Básico
Eliminando renglones:Eliminando renglones:
Errores de integridadErrores de integridad
DELETE FROM dept
WHERE deptno = 10;
DELETE FROM dept
WHERE deptno = 10;
Servidor: mensaje 547, nivel 16, estado 1, línea 1
Instrucción DELETE en conflicto con la restricción COLUMN
REFERENCE 'EMP_DEPTNO_FK'. El conflicto ha aparecido en la
base de datos 'curso', tabla 'EMP', column 'DEPTNO'.
Se terminó la instrucción.
Servidor: mensaje 547, nivel 16, estado 1, línea 1
Instrucción DELETE en conflicto con la restricción COLUMN
REFERENCE 'EMP_DEPTNO_FK'. El conflicto ha aparecido en la
base de datos 'curso', tabla 'EMP', column 'DEPTNO'.
Se terminó la instrucción.
No puede borrar un r englón que contenga unaNo puede bor rar un renglón que contenga una
llave primaria que esté siendo utilizada por unallave pr imaria que esté siendo utilizada por una
llave foránea en otra tabla.llave foránea en otr a tabla.
Errores de integridad
Si intenta borrar un renglón con valor que pertenece a una regla de integridadobtendrá un error. El ejemplo intenta borrar el departamento 10 de la tabla DEPT.
Si la tabla padre que intenta borrar tiene registros hijos, entonces obtiene un error
de integridad referencial.
Parte 9 SQL-Server Básico
Página 18 de 18