Manipulacion de Bases de Datos

22
SQL: MANIPULACION DE DATOS Herramienta: Oracle

description

manipulacion de bases de datos, fundamentos de bases de datos

Transcript of Manipulacion de Bases de Datos

Page 1: Manipulacion de Bases de Datos

SQL: MANIPULACION DE DATOSHerramienta: Oracle

Page 2: Manipulacion de Bases de Datos

5.3.5 Subconsultas Se trata de utilizar una instrucción SELECT completa incluida

dentro de otra instrucción SELECT. Se pueden utilizar SELECT internos como subconsultas en:

Clausulas WHERE y HAVINGINSERT, UPDATE y DELETE

Existen tres tipos de subconsultas:Subconsulta escalarSubconsulta de filaSubconsulta de tabla

Page 3: Manipulacion de Bases de Datos

5.3.5 Subconsultas Las reglas aplicables a las subconsultas son las siguientes:

No puede utilizarse la cláusula ORDER BY dentro de una subconsulta.La lista SELECT de la subconsulta debe estar compuesta por un único

nombre de columna o expresión.De manera predeterminada, los nombres de columna de una subconsulta

hacen referencia al nombre de tabla incluido en la clausula FROM de la subconsulta

Cuando una subconsulta actúa como uno de los operandos implicados en una comparación. La subconsulta debe aparecer en el lado derecho de la comparación.

Page 4: Manipulacion de Bases de Datos

5.3.6 ANY y ALL Las palabras clave ANY y ALL pueden utilizarse con aquellas

subconsultas que generan una única columna de números. La clave ALL solo será cierta si se ve satisfecha por todos los

valores generados por la subconsulta. Si una subconsulta esta precedidad por la clave ANY, la condición

sólo será cierta si se va satisfecha por alguno (uno o más) de los valores generados por la subconsulta.

Page 5: Manipulacion de Bases de Datos

La s pa la bra s c la ve e xis t y no e xis t e s ta n dis e ña da s pa ra utiliz a rla s unica me nte de ntro de una s ubcons ulta .

E s ta s pa la bra s c la ve produce n un s imple re s ulta do de tipo ve rda de ro / fa ls o.

E xis t e s ve rda de ra s i y s olo s i e xis te una fila e n la ta b la de re s ulta dos y E s fa ls a s i la s ubcons ulta de vue lve una ta b la de re s ulta dos va c ia .

No e xis t e s la condic ion opue s ta a e xis t.

E xis t y no e xis t s olo comprue ba n la e xis te nc ia o no e xis te nc ia de fila s e n la ta b la de re s ulta dos de la s ubcons ulta , la s ubcons ulta pue de te ne r cua lquie r nume ro columna s .

Page 6: Manipulacion de Bases de Datos

SELECT hotelname, cityFROM hotel aWHERE EXISTS (select * FROM room b WHERE a.hotelno = b.hotelno AND type = ‘doble');

MUESTRA TODOS LOS HOTELES DONDE EXISTE RESERVACIONES EN HABITACIONES DOBLES

Page 7: Manipulacion de Bases de Datos

SELECT notelname, cityFROM hotel aWHERE NO EXISTS (select * FROM room b WHERE a.hotelno = b.hotelno AND type = 'simple');

MUE S TR A TODOS LOS HOTE LE S DONDE NO E XIS TE R E S E R VACIONE S E N HAB ITACIONE S S IMP LE S

Page 8: Manipulacion de Bases de Datos

E n s q l pode mos utiliz a r la s ope ra c ione s norma le s de conjuntos union, inte rs e cc ion y dife re nc ia pa ra combina r los re s ulta dos de dos o ma s cons ulta s e n una unica ta b la de re s ulta dos .

Union de dos ta b la s a y b , e s una ta b la que contie ne toda s la s fila s que e s ta n inc luida s e n a , e n b o e n a mba s .

Inte rce pc ion de dos ta b la s e s una ta b la que contie ne toda s la s fila s que s on comune s ta nto e n a como e n b.

Dife re nc ia de dos ta b la s e s una ta b la que contie ne toda s la s fila s que e s tá n conte nida s e n a pe ro no e n b.

Page 9: Manipulacion de Bases de Datos

SELECT *FROM hotelWHERE (hotelno = 10001)UNIONSELECT *FROM hotelWHERE (hotelno = 10003);

E xis te n re s tricc ione s s obre la s ta b la s que pue de n combina rs e me dia nte e s ta s ope ra c ione s de conjuntos , s ie ndo la ma s importa nte a que lla que e xplic a que la s ta b la s de be n s e r compa tib le s re s pe c to a la union

De be n te ne r la mis ma e s truc tura , e s to implic a que la s dos ta b la s pue de n conte ne r e l mis mo nume ro de columna s y que s us corre s ponde nte s columna s de be n te ne r e l mis mo tipo de da to y long itude s .

Page 10: Manipulacion de Bases de Datos

R E S ULTADO DE LA UNION DE LOS E LE ME NTOS DE LA TAB LA HOTE L

Page 11: Manipulacion de Bases de Datos

(SELECT hotelnoFROM roomWHERE (roomno = 20001)INTERSECTSELECT hotelnoFROM bookingWHERE (roomno = 20001);

Al re a liz a r la cons ulta utiliz a ndo inte rs e c t, s e e je cuta n la s s e nte nc ia s g e ne ra ndo una ta b la de re s ulta dos pa ra la prime ra cons ulta y otra ta b la a pa rtir de la s e g unda cons ulta y lue g o c re a ndo una unica ta b la de re s ulta dos compue s ta por toda s la s fila s que s e a n comune s a a mba s ta b la s .

Page 12: Manipulacion de Bases de Datos

R E S ULTADO DE LA INTE R CE P CION DE LOS E LE ME NTOS DE LAS TAB LAS R OOM Y B OOKING

Page 13: Manipulacion de Bases de Datos

SELECT DISTINCT hotelnoFROM HotelWHERE hotelno NOT IN(SELECT hotelnoFROM RoomWHERE type = 'Doble');

Al re a liz a r la cons ulta utiliz a ndo e xce pt s e produce una ta b la de re s ulta dos a pa rtir de la prime ra cons utla y otra ta b la de la s e g unda , lue g o s e c re a una ta b la compue s ta por la s fla s que a pa re ce n e n la prime ra ta b la de re s ulta dos , pe ro no e n la s e g unda

Page 14: Manipulacion de Bases de Datos

RESULTADO DE LA DISTINCION DEL NUMERO DE HOTEL EN DONDE ENCUARTOS DOBLES HAY RESERVACIONES

Todos excepto estas condiciones

Page 15: Manipulacion de Bases de Datos

5.3 .10 ACTUALIZACIONES DE LA BAS E DE DATOS

Page 16: Manipulacion de Bases de Datos

SQL nos ofrece tres instrucciones para modificar los contenidos de las tablas de la base de datos.

• INSERT: añade nuevas filas de datos a una tabla.• UPDATE: modifica los datos existentes en una tabla.• DELETE: elimina filas de datos de una tabla

Page 17: Manipulacion de Bases de Datos

Existen dos formas de instrucciones INSERT. La primera permite insertar una única fila en una tabla

especificada, y su formato es el siguiente:

INSERT INTO Nombre Tabla [(Lista Columnas)] VALUES (lista_valores_datos)

La segunda forma de la instrucción INSERT permite copiar múltiples filas de una o más tablas en otra tabla, su formato es:

INSERT INTO nombre [(ListaColumnas)] SELECT…

INSTRUCCIÓN INSERT

Page 18: Manipulacion de Bases de Datos

Ejemplos:

Insertar una nueva fila en la tabla Hotel.

Page 19: Manipulacion de Bases de Datos

Permite modificar el contenido de filas ya existentes en una tabla especificada, su formato es:

UPDATE NombreTabla SET NombreColumna1=

valorDatos1[,NombreColumna2=valorDatos2…] [WHERE condiciónBúsqueda]

La cláusula SET especifica los nombre de una o más columnas que hay que actualizar.

INSTRUCCIÓN UPDATE

Page 20: Manipulacion de Bases de Datos

Ejemplos:

Incrementar un 2% el precio de las habitaciones dobles y cambiar el tipo de la habitación doble a simple.

Page 21: Manipulacion de Bases de Datos

INSTRUCCIÓN DELETE

Permite borrar filas de una tabla especificada. El formato del comando es:

DELETE FROM NombreTabla [WHERE CondicionBúsqueda]

De igual manera la condición de búsqueda es opcional; si se la omite, toda s las filas serán borradas de la tabla

Si necesitamos borrar una tabla, debemos utilizar la instrucción DROP TABLE.

Page 22: Manipulacion de Bases de Datos

Ejemplos:

Borrar una fila de la tabla Hotel donde RoomNo=10005.