Você está na página 1de 0

Lenguaje SQL: Sentencias de Manipulacin

Administracin de Base de Datos [1]


Ing. Eduardo Chvez Vsquez

LENGUAJE SQL: SENTENCIAS DE MANIPULACIN

Una vez creada la base de datos con sus tablas, debemos poder insertar, modificar y
borrar los valores de las filas de las tablas.

Para poder hacer esto, el SQL92 nos ofrece las siguientes sentencias INSERT para
insertar, UPDATE para modificar y DELETE para borrar. Una vez hemos insertado
valores en nuestras tablas, tenemos !ue poder consultarlos. La sentencia para hacer
consultas a una base de datos con el SQL92 es SELECT FROM. "eamos a continuaci#n
estas sentencias.

1. INSERCIN DE FILAS EN UNA TABLA

$ntes de poder consultar los datos de una base de datos, es preciso introducirlos con la
sentencia INSERT INTO VALUES, !ue tiene el formato

INSERT INTO nombre_tabla [(columnas)]
{VALUES ({v1|DEFAULT|NULL}, ..., {vn/DEFAULT/NULL})|<consulta>};

Los valores v%, v2,..., vn se deben corresponder e&actamente con las columnas !ue
hemos dicho !ue tendr'amos con el ()*$+* +$,L* y deben estar en el mismo orden, a
menos !ue las volvamos a poner a continuaci#n del nombre de la tabla. *n este -ltimo
caso, los valores se deben disponer de forma coherente con el nuevo orden !ue hemos
impuesto. Podr'a darse el caso de !ue !uisi.ramos !ue algunos valores para insertar
fuesen valores por omisi#n, definidos previamente con la opci#n /*0$UL+. *ntonces
pondr'amos la palabra reservada /*0$UL+. Si se trata de introducir valores nulos,
tambi.n podemos utilizar la palabra reservada 1ULL.

Insercin de una i!a en "RUPOTEC

La forma de insertar a un cliente en la tabla clientes de la base de datos de 2)UP3+*(
es

INSERT INTO clientes
VALUES (10, 'JUAN', '40201516', 'JR. LIMA S/N', 'ABANCAY', 083-
321565);

o bien

INSERT INTO clientes (cdigo_cli, nombre_cli, dni, direccion,
ciudad, telefono)
VALUES (20, 'PEDRO', '40151218', 'AV. EL SOL 1045', 'CUSCO', '084-
234561');

#. BORRADO DE FILAS DE UNA TABLA

Para borrar valores de algunas filas de una tabla podemos utilizar la sentencia DELETE
FROM $%ERE. Su formato es el siguiente

DELETE FROM nombre_tabla
[WHERE condiciones];

*n cambio, si lo !ue !uisi.ramos conseguir es borrar todas las filas de una tabla,
entonces s#lo tendr'amos !ue poner la sentencia /*L*+* 0)34, sin 56*)*.


Lenguaje SQL: Sentencias de Manipulacin
Administracin de Base de Datos [2]
Ing. Eduardo Chvez Vsquez
B&rrar '&das !as i!as de una 'a(!a en "RUPOTEC

*n nuestra base de datos, borrar los datos del cliente con c#digo 27 se har'a de la forma
!ue mostramos a continuaci#n

DELETE FROM clientes WHERE codigo_cli = 20;

Podemos de8ar la tabla clientes sin ninguna fila

DELETE FROM clientes;

). MODIFICACIN DE FILAS DE UNA TABLA

Si !uisi.ramos modificar los valores de algunas filas de una tabla, tendr'amos !ue
utilizar la sentencia UPDATE SET $%ERE. $ continuaci#n presentamos su formato

UPDATE nombre_tabla
SET columna = {expresin|DEFAULT|NULL}
[, columna = {expr|DEFAULT|NULL} ...]
WHERE condiciones;

M&diicacin de !&s *a!&res de a!+unas i!as en "RUPOTEC

Supongamos !ue !ueremos incrementar el sueldo de todos los empleados del proyecto 2
en %777. La modificaci#n a e8ecutar ser'a

UPDATE empleados
SET sueldo = sueldo + 1000
WHERE num_proyec = 2;

,. INTRODUCCIN DE FILAS EN LA BASE DE DATOS RELACIONAL BDUOC

$ntes de empezar a hacer consultas a la base de datos "RUPOTEC, habremos
introducido unas cuantas filas en sus tablas con la sentencia INSERT INTO. /e esta
forma, podremos ver refle8ado el resultado de las consultas !ue iremos haciendo, a
partir de este momento, sobre cada e&tensi#n9 esto lo podemos observar en las tablas
correspondientes a cada e&tensi#n, !ue presentamos a continuaci#n

: Ta(!a departamentos

departamentos
nombre_dep ciudad_dep telefono
DIR Abancay 1234568
DIR Cusco 7895649
DIS Lima 1598747
DIS Arequipa 1245789
PROG Callao 3265984
PROG Abancay 1562345
PROG Cusco 3020541


Lenguaje SQL: Sentencias de Manipulacin
Administracin de Base de Datos [3]
Ing. Eduardo Chvez Vsquez
: Ta(!a clientes

clientes
Codigo_cli Nombre_cli Dni Direccin Ciudad telefono
10 Juan 01230654 Av. Arequipa
120
Abancay 083-321245
20 Pedro 01548746 Av. El sol
1045
Cusco 084-235689
30 Joaquin 31254876 Av. Arica
1084
Lima 01-3265987
40 Remo 12345678 Jr. Cusco
425
Abancay 083-326598

: Ta(!a proyectos

proyectos
codigo_proye
cto
nombre_proye
cto
precio fecha_ini
cio
fecha_prev_
fin
fecha_fi
n
codigo_clie
nte
1 GESCOM 10,000.
00
01/01/200
8
01/01/2009 NULL 10
2 PESCI 35,000.
00
01/10/200
6
31/03/2008 01/05/20
08
10
3 SALSA 28,500.
00
10/02/200
8
01/02/2009 NULL 20
4 TINELL 15,000.
00
01/01/200
7
01/12/2009 NULL 30

: Ta(!a empleados

empleados
codigo_empl nombre_empl apellido_empl sueldo nombre_dep ciudad_dep num_proyec
1 Mara Sanz 10,000 DIR Abancay 1
2 Ana Jara 8,500 DIR Cusco 4
3 Jorge Pacheco 7,250 DIS Lima 3
4 Clara Daz 14,250 DIS Arequipa 4
5 Laura Chvez 20,000 PROG Callao 1
6 Rogelio Flix 8,000 PROG Abancay 3
7 Sergio Ramos 8,500 NULL NULL 4
8 Juanito Cusi 7,100 PROG Cusco NULL


-. CONSULTAS A UNA BASE DE DATOS RELACIONAL

Para hacer consultas sobre una tabla con el SQL es preciso utilizar la sentencia
SELECT FROM, !ue tiene el siguiente formato

SELECT nombre_columna_a_seleccionar [[AS] col_renombrada]
[,nombre_columna_a_seleccionar [[AS] col_renombrada]...]
FROM tabla_a_consultar [[AS] tabla_renombrada] ;

La opci#n AS nos permite renombrar las columnas !ue !ueremos seleccionar o
las tablas !ue !ueremos consultar !ue en este caso, es s#lo una. /icho de otro
modo, nos permite la definici#n de alias. 0i8.monos en !ue la palabra clave $S
es opcional, y es bastante habitual poner s#lo un espacio en blanco en lugar de
toda la palabra.


Lenguaje SQL: Sentencias de Manipulacin
Administracin de Base de Datos [4]
Ing. Eduardo Chvez Vsquez
C&nsu!'as a "RUPOTEC

$ continuaci#n presentamos un e8emplo de consulta a la base de datos ,/U3( para
conocer todos los datos !ue aparece en la tabla clientes

SELECT *
FROM clientes;

Si hubi.semos !uerido ver s#lo el c#digo, el nombre, la direcci#n y la ciudad, habr'amos
hecho

SELECT codigo_cli, nombre_cli, direccion, ciudad FROM clientes;

(on la sentencia S*L*(+ 0)34 podemos seleccionar columnas de una tabla, pero para
seleccionar filas de una tabla es preciso a;adirle la cl<usula 56*)*. *l formato es

SELECT nombre_columnas_a_seleccionar
FROM tabla_a_consultar
WHERE condiciones;

La cl<usula 56*)* nos permite obtener las filas !ue cumplen la condici#n especificada
en la consulta.

"eamos un e8emplo en el !ue pedimos =los c#digos de los empleados !ue traba8an en el
proyecto n-mero >?

SELECT codigo_empl FROM empleados WHERE num_proyec = 4;

Para definir las condiciones en la cl<usula 56*)*, podemos utilizar alguno de los
operadores de los !ue dispone el SQL, !ue son los siguientes

Operadores de comparacin Operadores lgicos
= Igual

NOT
Para la negacin de
condiciones
< Menor

AND
Para la conjuncin de
condiciones
> Mayor

OR
Para la disyuncin de
condiciones
<= Menor o igual

>= Mayor o igual

< > Diferente


Si !ueremos !ue en una consulta nos aparezcan las filas resultantes sin repeticiones, es
preciso poner la palabra clave /@S+@1(+ inmediatamente despu.s de S*L*(+. +ambi.n
podr'amos e&plicitar !ue lo !ueremos todo, incluso con repeticiones, poniendo $LL
Aopci#n por defectoB en lugar de /@S+@1(+. *l formato de /@S+@1(+ es

SELECT DISTINCT nombre_columnas_a_seleccionar
FROM tabla_a_consultar
[WHERE condiciones];

Por e8emplo, si !uisi.ramos ver !u. sueldos se est<n pagando en nuestra empresa,
podr'amos hacer

SELECT DISTINCT sueldo FROM empleados;

Você também pode gostar