Вы находитесь на странице: 1из 18

Parte 9

Insertar,
actualizar y
borrar datos en la BD.

Insercin, Modif y borrado 99-1

SQL Server Bsico

Parte 9 SQL-Server Bsico


Pgina 1 de 18

Objetivos
Al completar esta leccin, deber ser capaz de
hacer lo siguiente :

Insertar nuevos renglones a una tabla


Insertar valores nulos
Modificar valores en los renglones
Utilizar queries para cambiar valores
Eliminar renglones en la tabla
Eliminar renglones basados en otras
tablas

Verificar las reglas de integridad


Insercin, Modif y borrado 99-2

SQL Server Bsico

Parte 9 SQL-Server Bsico


Pgina 2 de 18

Lenguaje de manipulacin de datos


Una instruccin DML es ejecutada cuando:
Agrega nuevos registros a la tabla
Modificar los renglones existentes en la tabla
Elimina renglones existentes de la tabla
Una transaccin consiste de una coleccin de
instrucciones DML que forman una unidad lgica
de trabajo.

Insercin, Modif y borrado 99-3

SQL Server Bsico

Lenguaje de manipulacin de datos


Es el lenguaje de manipulacin de datos (DML) es una parte de SQL. Cuando
desea agregar , actualizar o borrar datos de una base de datos, debe ejecutar
instrucciones DML. Un conjunto de instrucciones DML que forman una unidad
logica de trabajo es llamada transaccin.
Considere una base de datos bancaria, cuando el cliente del banco transfiere
dinero de su cuenta de ahorros a una cuenta de cheques, la transaccin consistir
en tres operaciones separadas: decrementar la cuenta de ahorros, incrementar la
cuenta de cheques y registrar la transaccin en la bitcora de transacciones.
Microsoft SQL Server debe garantizar que estas tres instrucciones SQL sean
ejecutadas con xito para mantener la consistencia de las cuentas.

Parte 9 SQL-Server Bsico


Pgina 3 de 18

Agregando nuevos registros a la Tabla


50 DEVELOPMENT DETROIT

New row
DEPT
DEPTNO
-----10
20
30
40

DNAME
---------ACCOUNTING
RESEARCH
SALES
OPERATIONS

LOC
-------NEW YORK
DALLAS
CHICAGO
BOSTON

insertar un nuevo
rengln en la tabla
DEPT
DEPT
DEPTNO
-----10
20
30
40

DNAME
---------ACCOUNTING
RESEARCH
SALES
OPERATIONS

LOC
-------NEW YORK
DALLAS
CHICAGO
BOSTON

50 DEVELOPMENT DETROIT
Insercin, Modif y borrado 99-4

SQL Server Bsico

Parte 9 SQL-Server Bsico


Pgina 4 de 18

La instruccin INSERT

Agregar nuevos registros a la tabla


utilizando la instruccin INSERT

INSERT
INSERT INTO
INTO
VALUES
VALUES

table
table [(column
[(column [,
[, column...])]
column...])]
(value
(value [,
[, value...]);
value...]);

Slo un rengln es insertado a la vez con


esta sintaxis

Insercin, Modif y borrado 99-5

SQL Server Bsico

Agregando un nuevo rengln a la tabla


Puede agregar nuevos renglones a la tabla utilizando la instruccin INSERT.
Sintaxis:
Table
Column
Values

es el nombre de la tabla.
es el nombre de la columna.
es el valor que le corresponde a la columna

Parte 9 SQL-Server Bsico


Pgina 5 de 18

Insertando nuevos registros


Insertar un nuevo rengln conteniendo valores
para cada columna.

Listar los valores en el orden por default de las


columnas en la tabla.

Listar opcionalmente las columnas en la clusula


insert.

INSERT INTO
VALUES

dept (deptno, dname, loc)


(50, 'DEVELOPMENT', 'DETROIT');

Encierre los caracteres y fechas en comillas


simples

Insercin, Modif y borrado 99-6

SQL Server Bsico

Agregando un nuevo rengln a la tabla (continuacin)


Debido a que puede insertar un nuevo rengln que contiene valores para cada
columna, la lista de columnas no es necesaria en la clusula INSERT. Sin
embargo, si no utiliza la lista de columnas. Los valores deben ser listados de
acuerdo al orden por default que tienen las columnas en la tabla.

Parte 9 SQL-Server Bsico


Pgina 6 de 18

Insertando registros
con valores Null

Mtodo implcito: omita a la columna de la lista de


columnas.

INSERT INTO
VALUES

dept (deptno, dname )


(60, 'MIS');

Mtodo explcito: especifique la palabra NULL.


INSERT INTO
VALUES

dept
(70, 'FINANCE', NULL);

Insercin, Modif y borrado 99-7

SQL Server Bsico

Mtodos por insertar valores nulos


Method
Implicit
Explicit

Description
Omit the column from the solumn list
Specify the NULL keyword in the VALUES list

Parte 9 SQL-Server Bsico


Pgina 7 de 18

Insertando valores especiales


La funcin GETDATE() registra la fecha y hora
actuales.

INSERT INTO
VALUES

emp (empno, ename, job,


mgr, hiredate, sal, comm,
deptno)
(7196, 'GREEN', 'SALESMAN',
7782, GETDATE(), 2000, NULL,
10);

Insercin, Modif y borrado 99-8

SQL Server Bsico

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 funcin GETDATE ( )
para obtener la fecja hora actuales.
Confirmando la insercin en la tabla
SELECT
FROM
WHERE

EMPNO
7196

empno, ename , job, hiredate,,, comm


emp
empno = 7196;

ENAME
GREEN

JOB
SALESMAN

HIREDATE
01-DEC-97

Parte 9 SQL-Server Bsico


Pgina 8 de 18

COMM

Cambiando Datos en la Tabla


EMP
EMPNO ENAME
7839
7698
7782
7566
...

KING
BLAKE
CLARK
JONES

JOB

...

DEPTNO

PRESIDENT
MANAGER
MANAGER
MANAGER

10
30
10
20

EMP
EMPNO ENAME
7839
7698
7782
7566
...

KING
BLAKE
CLARK
JONES

JOB
PRESIDENT
MANAGER
MANAGER
MANAGER

Insercin, Modif y borrado 99-9

...

DEPTNO
10
30
20
20

SQL Server Bsico

Cambiando datos en una tabla


El ejemplo actualiza el nmero del departamento de clark de 10 a 20.

Parte 9 SQL-Server Bsico


Pgina 9 de 18

La instruccin UPDATE

Modificar renglones existentes con la


instruccin UPDATE

UPDATE
UPDATE
SET
SET
[WHERE
[WHERE

table
table
column
column == value
value [,
[, column
column == value]
value]
condition];
condition];

Actualizar ms de un rengln a la vez, si


se requiere.
requiere.

Insercin, Modif y borrado 99-10

SQL Server Bsico

Cambiando datos en una tabla


Puede modificar renglones existentes utilizando la instruccin 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 sern actualizados y se compone
por nombre de Columnas, expresiones, constantes, subqueries y
operadores de comparacin.

Confirme la operacin de actualizacin ejecutando un query a la tabla para


mostrar los renglones actualizados.

Parte 9 SQL-Server Bsico


Pgina 10 de 18

Actualizando renglones en una tabla


Cuando especifica una clusula WHERE uno
o ms renglones son modificados.
UPDATE emp
SET
deptno = 20
WHERE
ename = 'CLARK';
(1 row(s) affected)

Todos los renglones son modificados si


omite la clusula WHERE.
UPDATE
UPDATE emp
emp
SET
deptno
SET
deptno == 20;
20;
(14
(14 row(s)
row(s) affected).
affected).

Insercin, Modif y borrado 99-11

SQL Server Bsico

Actualizando renglones (continuacin)


La instruccin UPDATE modificar renglones especficos si se especifica una
clusula WHERE. El ejemplo transfiere el empleado 7782 (Clark) al departamento
20.
Si se omite la clusula WHERE, todos los renglones en la tabla sern modificados.

Parte 9 SQL-Server Bsico


Pgina 11 de 18

Actualizando renglones
basados en otro tabla
Utilice un subquery en la instruccin UPDATE
para actualizar renglones en una tabla basado
en los valores de otra tabla.
UPDATE
UPDATE
SET
SET

employee
employee
deptno
deptno == (SELECT
(SELECT
FROM
FROM
WHERE
WHERE
WHERE
job
== (SELECT
WHERE
job
(SELECT
FROM
FROM
WHERE
WHERE
(2
(2 row(s)
row(s) affected)
affected)

deptno
deptno
emp
emp
empno
empno ==
job
job
emp
emp
empno
empno ==

Insercin, Modif y borrado 99-12

7788)
7788)
7788);
7788);

SQL Server Bsico

Actualizando renglones basados en otro tabla


Puede utilizar subqueries en una instruccin UPDATE para actualizar renglones
en un atabla. El ejemplo actualiza EMPLOYEE basada en los valores de la tabla
EMP. Cambia el numero de departamento de todos los empleados cuyo puesto
sea el mismo que el del empleado 7788 al valor del departamento de este mismo
empleado.

Parte 9 SQL-Server Bsico


Pgina 12 de 18

Actualizando renglones:
Errores de integridad
UPDATE
UPDATE
SET
SET
WHERE
WHERE

emp
emp
deptno
deptno == 55
55
deptno
deptno == 10;
10;

ee
iisstt
eexx
nnoo
5555
o
eerro
m
m

Servidor:
nnestado
Servidor: mensaje
mensaje 547,
547, nivel
nivelt16,
16,
estado 1,
1, lnea
lnea 11
too
n
n
Instruccin
UPDATE
en
conflicto
ee
Instruccin UPDATE en m
conflicto
ttaam
r
con
la
restriccin
r
con la restriccin
ppaa
ddee KEY
COLUMN
l
COLUMN FOREIGN
FOREIGN
KEY 'FK_EMP_DEPT'.
'FK_EMP_DEPT'.
l
EE

El
El conflicto
conflicto ha
ha aparecido
aparecidoen
en la
la base
base de
de datos
datos
'curso',
'curso', tabla
tabla 'DEPT',
'DEPT', column
column 'DEPTNO'.
'DEPTNO'.
Se
Se termin
termin la
la instruccin.
instruccin.
Insercin, Modif y borrado 99-13

SQL Server Bsico

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 violacin del constraint referencial.

Parte 9 SQL-Server Bsico


Pgina 13 de 18

Eliminando renglones de una tabla


DEPT
DEPTNO
-----10
20
30
40
50
60
...

DNAME
---------ACCOUNTING
RESEARCH
SALES
OPERATIONS

LOC
-------NEW YORK
DALLAS
CHICAGO
BOSTON
DEVELOPMENT DETROIT
MIS

borrar un rengln
de la tabla DEPT
DEPT
DEPTNO
-----10
20
30
40
60
...

DNAME
---------ACCOUNTING
RESEARCH
SALES
OPERATIONS
MIS

Insercin, Modif y borrado 99-14

LOC
-------NEW YORK
DALLAS
CHICAGO
BOSTON

SQL Server Bsico

Parte 9 SQL-Server Bsico


Pgina 14 de 18

La instruccin DELETE
Puede eliminar renglones de una tabla
utilizando la instruccin DELETE.
DELETE
DELETE [FROM]
[FROM]
[WHERE
[WHERE

table
table
condition];
condition];

Insercin, Modif y borrado 99-15

SQL Server Bsico

Eliminando renglones
Puede eliminar renglones existentes utilizando instruccin DELETE
Sintaxis:
Table

es el nombre de la tabla

Condition

identifica a los renglones que sern borrados y se compone


por nombres de Columnas, expresiones, constantes,
subqueries y operadores de comparacin.

Parte 9 SQL-Server Bsico


Pgina 15 de 18

Borrando registros de una tabla

Cuando especifica una clusula WHERE uno o


ms renglones son borrados.
DELETE
DELETE FROM
FROM
WHERE
WHERE

dept
dept
dname
dname == 'DEVELOPMENT';
'DEVELOPMENT';

Todos los renglones son borrados si omite la


clusula WHERE.
DELETE
DELETE FROM
FROM

dept;
dept;

Insercin, Modif y borrado 99-16

SQL Server Bsico

Eliminando renglones (continuacin)


Puede borrar renglones especficos utilizando la clusula WHERE en la instruccin
DELETE. El ejemplo borra el departamento DEVELOPMENT de la tabla dept.

Parte 9 SQL-Server Bsico


Pgina 16 de 18

Eliminando renglones
basados en otras tablas
Utilice un subquery en la instruccin DELETE para
eliminar renglones de una tabla basado en los valores
de otra tabla.

DELETE FROM emp


WHERE
deptno = (SELECT
FROM
WHERE

deptno
dept
dname ='SALES');

Insercin, Modif y borrado 99-17

SQL Server Bsico

Eliminando renglones basados en otras tablas.


Puede utilizar subqueries para borrar renglones de una tabla basado en los
valores de otra tabla. El ejemplo borra todos los empleados que estn en el
departamento 30. El subquery busca en la tabla DEPT para encontrar el nmero
de departamento que pertenece a SALES. El subquery retorna este nmero de
departamento al query principal, el cul borra un registro de la tabla EMPLOYEE
basado en este nmero de departamento.

Parte 9 SQL-Server Bsico


Pgina 17 de 18

Eliminando renglones:
Errores de integridad
No puede borrar un rengln que contenga una
llave primaria que est siendo utilizada por una
llave fornea en otra tabla.
DELETE
DELETE FROM
FROM dept
dept
WHERE
deptno
WHERE
deptno == 10;
10;

Servidor:
Servidor:mensaje
mensaje547,
547,nivel
nivel16,
16,estado
estado1,1,lnea
lnea11
Instruccin
DELETE
en
conflicto
con
la
restriccin
Instruccin DELETE en conflicto con la restriccinCOLUMN
COLUMN
REFERENCE
REFERENCE'EMP_DEPTNO_FK'.
'EMP_DEPTNO_FK'.El
Elconflicto
conflictoha
haaparecido
aparecidoen
enlala
base
de
datos
'curso',
tabla
'EMP',
column
'DEPTNO'.
base de datos 'curso', tabla 'EMP', column 'DEPTNO'.
Se
Setermin
terminlalainstruccin.
instruccin.

Insercin, Modif y borrado 99-18

SQL Server Bsico

Errores de integridad
Si intenta borrar un rengln con valor que pertenece a una regla de integridad
obtendr 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 Bsico


Pgina 18 de 18

Вам также может понравиться