Академический Документы
Профессиональный Документы
Культура Документы
Insertar,
actualizar y
borrar datos en la BD.
Objetivos
Al completar esta leccin, deber ser capaz de
hacer lo siguiente :
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
La instruccin INSERT
INSERT
INSERT INTO
INTO
VALUES
VALUES
table
table [(column
[(column [,
[, column...])]
column...])]
(value
(value [,
[, value...]);
value...]);
es el nombre de la tabla.
es el nombre de la columna.
es el valor que le corresponde a la columna
INSERT INTO
VALUES
Insertando registros
con valores Null
INSERT INTO
VALUES
dept
(70, 'FINANCE', NULL);
Description
Omit the column from the solumn list
Specify the NULL keyword in the VALUES list
INSERT INTO
VALUES
EMPNO
7196
ENAME
GREEN
JOB
SALESMAN
HIREDATE
01-DEC-97
COMM
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
...
DEPTNO
10
30
20
20
La instruccin UPDATE
UPDATE
UPDATE
SET
SET
[WHERE
[WHERE
table
table
column
column == value
value [,
[, column
column == value]
value]
condition];
condition];
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.
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 ==
7788)
7788)
7788);
7788);
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
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.
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
LOC
-------NEW YORK
DALLAS
CHICAGO
BOSTON
La instruccin DELETE
Puede eliminar renglones de una tabla
utilizando la instruccin DELETE.
DELETE
DELETE [FROM]
[FROM]
[WHERE
[WHERE
table
table
condition];
condition];
Eliminando renglones
Puede eliminar renglones existentes utilizando instruccin DELETE
Sintaxis:
Table
es el nombre de la tabla
Condition
dept
dept
dname
dname == 'DEVELOPMENT';
'DEVELOPMENT';
dept;
dept;
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.
deptno
dept
dname ='SALES');
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.
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.