Base de datos SQL Cap9-3

download Base de datos SQL Cap9-3

of 8

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