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

SUB CONSULTAS EN SQL IMPORTACIN Y EXPORTACIN DE TABLAS DE A OTRA PLATAFORMA

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

5
Sub Consultas en SQL Importacin y exportacin de SQL a otra plataforma CONTENIDO
1. Sub consultas en SQL 2. Importacin de datos a SQL de otra plataforma 3. Exportacin de datos de SQL a otra plataforma

OBJETIVOS

Proporcionar al lector informacin bsica acerca consultas.

de sub

Desarrollar la Importacin de datos a SQL Server 2005 Desarrollar la exportacin de datos a SQL Server 2005

Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda

Pg. 129

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

1. LAS SUB CONSULTAS


Las sub consultas son como las consultas de accin son aquellas que no devuelven ningn registro, son las encargadas de acciones como aadir y borrar y modificar registros.

Consultas de Actualizacin
Las consultas de actualizacin son aquellas que no devuelven ningn registro, son las encargadas de acciones como aadir y borrar y modificar registros.

DELETE
Crea una consulta de eliminacin que elimina los registros de una o ms de las tablas listadas en la clusula FROM que satisfagan la clusula WHERE. Esta consulta elimina los registros completos, no es posible eliminar el contenido de algn campo en concreto. Su sintaxis es: DELETE Tabla.* FROM Tabla WHERE criterio DELETE es especialmente til cuando se desea eliminar varios registros. En una instruccin DELETE con mltiples tablas, debe incluir el nombre de tabla (Tabla.*). Si especifica ms de una tabla desde la que eliminar registros, todas deben ser tablas de muchos a uno. Si desea eliminar todos los registros de una tabla, eliminar la propia tabla es ms eficiente que ejecutar una consulta de borrado. Se puede utilizar DELETE para eliminar registros de una nica tabla o desde varios lados de una relacin uno a muchos. Las operaciones de eliminacin en cascada en una consulta nicamente eliminan desde varios lados de una relacin. Por ejemplo, en la relacin entre las tablas Clientes y Pedidos, la tabla Pedidos es la parte de muchos por lo que las operaciones en cascada solo afectaran a la tabla Pedidos. Una consulta de borrado elimina los registros completos, no nicamente los datos en campos especficos. Si desea eliminar valores en un campo especificado, crear una consulta de actualizacin que cambie los valores a Null. Una vez que se han eliminado los registros utilizando una consulta de borrado, no puede deshacer la operacin. Si desea saber qu registros se eliminarn, primero examine los resultados de una consulta de seleccin que utilice el mismo criterio y despus ejecute la consulta de borrado. Mantenga copias de seguridad de sus datos en todo momento. Si elimina los registros equivocados podr recuperarlos desde las copias de seguridad.
Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda Pg. 130

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

DELETE * FROM Empleados WHERE Cargo = Vendedor;

INSERT INTO
Agrega un registro en una tabla. Se la conoce como una consulta de datos aadidos. Esta consulta puede ser de dos tipos: Insertar un nico registro Insertar en una tabla los registros contenidos en otra tabla.

Para insertar un nico Registro:


En este caso la sintaxis es la siguiente: INSERT INTO Tabla (campo1, campo2, .., campoN) VALUES (valor1, valor2, ..., valorN) Esta consulta graba en el campo1 el valor1, en el campo2 y valor2 y as sucesivamente. Hay que prestar especial atencin a acotar entre comillas simples () los valores literales (cadenas de caracteres) y las fechas indicarlas en formato mm-dd-aa y entre caracteres de almohadillas (#).

Para insertar Registros de otra Tabla:


En este caso la sintaxis es: INSERT INTO Tabla [IN base_externa] (campo1, campo2, ..., campoN) SELECT TablaOrigen.campo1, TablaOrigen.campo2, TablaOrigen.campoN FROM TablaOrigen

...,

En este caso se seleccionarn los campos 1,2, , n de la tabla origen y se grabarn en los campos 1,2,.., n de la Tabla. La condicin SELECT puede incluir la clusula WHERE para filtrar los registros a copiar. Si Tabla y TablaOrigen poseen la misma estructura podemos simplificar la sintaxis a: INSERT INTO Tabla SELECT TablaOrigen.* FROM TablaOrigen De esta forma los campos de TablaOrigen se grabarn en Tabla, para realizar esta operacin es necesario que todos los campos de TablaOrigen estn contenidos con igual nombre en Tabla. Con otras palabras que Tabla posea todos los campos de TablaOrigen (igual nombre e igual tipo). En este tipo de consulta hay que tener especial atencin con los campos contadores o autonumricos puesto que al insertar un valor en un campo de este tipo se escribe el valor que contenga su campo homlogo en la tabla origen, no incrementndose como le corresponde. Se puede utilizar la instruccin INSERT INTO para agregar un registro nico a una tabla, utilizando la sintaxis de la consulta de adicin de registro
Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda Pg. 131

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

nico tal y como se mostr anteriormente. En este caso, su cdigo especifica el nombre y el valor de cada campo del registro. Debe especificar cada uno de los campos del registro al que se le va a asignar un valor as como el valor para dicho campo. Cuando no se especifica dicho campo, se inserta el valor predeterminado o Null. Los registros se agregan al final de la tabla. Tambin se puede utilizar INSERT INTO para agregar un conjunto de registros pertenecientes a otra tabla o consulta utilizando la clusula SELECT FROM como se mostr anteriormente en la sintaxis de la consulta de adicin de mltiples registros. En este caso la clusula SELECT especifica los campos que se van a agregar en la tabla destino especificada. La tabla destino u origen puede especificar una tabla o una consulta. Si la tabla destino contiene una clave principal, hay que asegurarse que es nica, y con valores no-Null; si no es as, no se agregarn los registros. Si se agregan registros a una tabla con un campo Contador, no se debe incluir el campo Contador en la consulta. Se puede emplear la clusula IN para agregar registros a una tabla en otra base de datos. Se pueden averiguar los registros que se agregarn en la consulta ejecutando primero una consulta de seleccin que utilice el mismo criterio de seleccin y ver el resultado. Una consulta de adicin copia los registros de una o ms tablas en otra. Las tablas que contienen los registros que se van a agregar no se vern afectadas por la consulta de adicin. En lugar de agregar registros existentes en otra tabla, se puede especificar los valores de cada campo en un nuevo registro utilizando la clusula VALUES. Si se omite la lista de campos, la clusula VALUES debe incluir un valor para cada campo de la tabla, de otra forma fallar INSERT. INSERT INTO Clientes SELECT Clientes_Viejos.* FROM Clientes_Nuevos; INSERT INTO Empleados (Nombre, Apellido, Cargo) VALUES (Luis, Snchez, Becario); INSERT INTO Empleados SELECT Vendedores.* FROM Vendedores WHERE Fecha_Contratacion < Now() - 30;

UPDATE
Crea una consulta de actualizacin que cambia los valores de los campos de una tabla especificada basndose en un criterio especfico. Su sintaxis es:

Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda

Pg. 132

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN WHERE Criterio; UPDATE es especialmente til cuando se desea cambiar un gran nmero de registros o cuando stos se encuentran en mltiples tablas. Puede cambiar varios campos a la vez. El ejemplo siguiente incrementa los valores Cantidad pedidos en un 10 por ciento y los valores Transporte en un 3 por ciento para aquellos que se hayan enviado al Reino Unido.: UPDATE Pedidos SET Pedido = Pedidos * 1.1, Transporte = Transporte * 1.03 WHERE PaisEnvo = ES; UPDATE no genera ningn resultado. Para saber qu registros se van a cambiar, hay que examinar primero el resultado de una consulta de seleccin que utilice el mismo criterio y despus ejecutar la consulta de actualizacin. UPDATE Empleados SET Grado = 5 WHERE Grado = 2; UPDATE Productos SET Precio = Precio * 1.1 WHERE Proveedor = 8 AND Familia = 3; Si en una consulta de actualizacin suprimimos la clusula WHERE todos los registros de la tabla sealada sern actualizados. UPDATE Empleados SET Salario = Salario * 1.1

2. IMPORTACIN DE DATOS A SQL DE OTRA PLATAFORMA


PASOS PARA IMPORTAR TABLAS XLS: Clic en el objeto de nombre BASE pie derecho - Tareas Importar datos clic en botn Siguiente En la opcin Origen de datos, seleccione: Microsoft Excel, Clic en el botn Examinar para ubicar la ruta donde se encuentra la tabla que se desea importar Una vez ubicada la ruta sealar la tabla de extensin xls y clic en el botn Abrir Siguiente otra vez Siguiente Debe aparecer por defecto marcado la bolita negrita (): Copiar datos de una o varias tablas o vistas Siguiente Clic en Vista previa En la pestaa Destino hacer clic en nombre de la base de datos con la tabla Siguiente Otra vez Siguiente Finalizar Fijarse cuantas filas han sido transferidos Cerrar Expandir el objeto BASE, pie derecho - Clic en la opcin Actualizar. Expandir el objeto Tablas y observar la tabla que acaba de importar Borre el signo dlar ($), con la opcin Renombrar. Abra la tabla que acaba de importar y luego observe los campos. Haga los ajustes necesarios de las columnas (Ampliar o achicar, segn sea

Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda

Pg. 133

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

conveniente). Ejemplo: Hay cuatro tablas grabadas en el disco duro D:\X Los nombres, contenidos y pesos de cada una es el siguiente: 1. La tabla Excel, Alumnos.xls, contiene la relacin de alumnos de la Escuela Profesional de Enfermera, consta de 1024 registros y pesa 123 kilobytes 2. La tabla Excel, Curso81.xls, contiene todos los cursos que se dicta en la Escuela Profesional de Enfermera (Plan de Estudios 1997), tiene 49 registros, pesa 27 kilobytes. 3. La tabla Excel, Profe.xls, contiene los profesores de toda la Universidad consta de 2615 registros, pesa 235 kilobytes. 4. La tabla Excel, 81Notas.xls, contiene las notas de todos los alumnos de la Escuela Profesional de Enfermera desde el semestre 2007A hasta el semestre 2010B, tiene 36,269 registros, pesa 6,627 kilobytes. Abra el programa SQL Server Management Studio. Si existe el objeto BASE, que cre en el laboratorio anterior, elimnelo. Ahora en seguida cree la base de datos de nombre BASE, como en los laboratorios anteriores. Importe a SQL, las cuatro tablas de plataforma laboratorios anteriores). Para lo cual: Realice las siguientes consultas en el Analizador de Consultas (Nueva consulta): 1 2 3 4 Que permita listar todas las columnas de la tabla Profe Que permita listar todas las columnas de la tabla Curso81 Que permita listar todas las columnas de la tabla 81Notas Que permita listar todas las columnas de la tabla Alumnos Excel (como en los

Expanda la Base de datos, haga clic en nombre de la base de datos: BASE - Pie derecho Clic en Nueva consulta - Realice las siguiente consulta en el Analizador de Consultas: USE BASE SELECT CODALU, NOMCUR, GH, NOTAFINAL, CODPRO, CODSEM FROM [81NOTAS] WHERE CODALU =082920B Al ejecutar la consulta se obtine la siguiente salida:
Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda Pg. 134

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

Se observa que en el listado slo aparecen: El cdigo del alumno (Col. CODALU), los cdigos cortos de los cursos (Col. NOMCUR), el grupo hoarario (Col. GH), las notas (Col. NOTAFINAL), cdigo de profesores (Col. CODPRO) y los cdigos del semestre (Col. CODSEM). Guarde la consulta con nombre Prctica 1 en la ruta C:\X. Realice la siguiente nueva consulta en el Analizador de Consultas. En la tabla 81Notas no se encuentran los nombres de los profesores, ni de los alumnos, ni de las asignaturas; por lo que con la siguiente consulta se puede mostrar los apellidos y nombres de los Profesores, relacionado las tablas 81Notas y Profesores, con la siguiente consulta: USE BASE SELECT N.CODALU, N.NOMCUR, N.GH, N.NOTAFINAL, N.CODSEM, P.CDIGO, P.APENOM FROM [81NOTAS] N, PROFE P WHERE N.CODALU =082920B AND N.CODPRO = P.CDIGO ORDER BY NOMCUR Al ejecutar la consulta se tiene la siguiente pantalla:

Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda

Pg. 135

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

Se observa que en el listado aparecen los nombres de los profesores. Guarde la consulta con nombre Prctica 2 en la ruta C:\X. La siguiente consulta relaciona la tabla Notas81 con las tablas Alumnos y Profesores, para listar los nombres de los profesores y de los alumnos: USE BASE SELECT N.CODALU, A.APENOM, N.NOMCUR, N.GH, N.NOTAFINAL, N.CODSEM, P.CDIGO, P.APENOM FROM [81NOTAS] N, PROFE P, ALUMNOS A WHERE N.CODPRO = P.CDIGO AND N.CODALU =082920B AND A.CODIGO =082920B La salida se observa en la siguiente pantalla:

Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda

Pg. 136

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

Realice una consulta que relaciona la tabla Notas81 con las tablas Alumnos, Profe y Curso81, para listar los nombres de las asignaturas, los nombres de los alumnos y los nombres de los profesores. USE BASE SELECT N.CODALU, A.APENOM, N.NOMCUR, C.DESCRIPCION, N.GH, N.NOTAFINAL, N.CODSEM, P.CDIGO, P.APENOM FROM [81NOTAS] N, PROFE P, ALUMNOS A, CURSO81 C WHERE N.CODPRO = P.CDIGO AND N.CODALU =082920B AND A.CODIGO =082920B AND N.CODCUR = C.CODIGO

Observe la diferencia con la consulta anterior La salida debe ser similar a la siguiente pantalla:

Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda

Pg. 137

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

TAREA
Realice las siguientes consultas en el Analizador de Consultas (Nueva consulta): 1. Que permita listar las columnas codcorto, cdigo, descripcin, tipo, ciclo y requi1 de la tabla Curso81, donde codcorto es igual a 33 de la tabla curso81 2. Que permita listar las columnas codalu y apenom de la tabla Alumnos, donde aparezca la cadena Roberto en la columna apenom 3. Que permita listar las columnas codalu, nomcur, codcur, notafinal, codsem y codpro de la tabla 81Notas. 4. Que permita listar las columnas codalu, nomcur, codcur, notafinal, codsem y codpro de la tabla 81Notas, donde codalu es 000114G 5. Que permita listar las columnas codalu, nomcur, codcur, notafinal, codsem y codpro de la tabla 81Notas de alumnos que tengan nota 20, 6. Que permita listar las columnas codalu, nomcur, codcur, notafinal, codsem y codpro de la tabla 81Notas de alumnos que tenga nota entre 17 y 20 7. Que permita listar las columnas codalu, nomcur, codcur, notafinal, codsem y codpro de la tabla 81Notas del semestre 2008B. 8. Que permita listar todas las columnas de la tabla Profe, cuya columna apenom contenga la cadena JOSE o CESAR o LUCIO o LUIS o CHA 9. Que permita listar todas las columnas de la tabla Profe cuyos apellidos empiezan con letras del rango F hasta P 10. Que permita listar el campo apenom de la tabla Profe, cuyos apellidos empiecen con cualquier letra menos las tetras C, D, M, P, R, S, ni T 11. Que permita listar los campos cdigo, apenom y sueldo de la tabla Profe, cuyos apellidos empiecen con las letras F, R u O

3. IMPORTACIN DE DATOS A SQL DE OTRA PLATAFORMA


PASOS PARA EXPORTAR.- Clic en nombre de la base de datos Base pie derecho - Tareas Exportar datos Siguiente En el recuadro Origen de datos, seleccionar: Se debe tener SQL native Client (por defecto) Siguiente En el recuadro Destino, seleccionar el programa Microsoft Excel, Clic en Examinar para ubicar la ruta C:\X, donde se ubicar la tabla exportada escriba el nombre Vista1, y haga clic en el botn Abrir Siguiente otra vez Siguiente Debe estar marcado la bolita negra: Copiar datos de una o varias tablas o vistas Siguiente Clic en el cuadradito que se encuentra a la izquierda de la Vista: [Base].[dbo].[Vista1], tal como se indica en la figura siguiente:

Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda

Pg. 138

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

El nombre de la tabla exportada ser: Prctica1 .xls en C:\X Siguiente, Siguiente, Finalizar, y debe aparecer la siguiente pantalla en seal de conformidad:

Clic en el botn cerrar

Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda

Pg. 139

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

Abra la tabla Prctica 1.xls que acaba de Exportar (Excel, se encuentra en C:\X) Configure como pgina horizontal, ajustar al 80%. Mejore la presentacin Haga una vista preliminar

Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda

Pg. 140

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE CIENCIAS DE LA SALUD

Texto: Base de datos, SQL Server 2005 en Enfermera Captulo V Sub consultas en SQL. Importacin y exportacin de tablas de SQL a otra plataforma

REFERENCIALES
1. CEVALLOS FCO. JAVIER SIERRA, Enciclopedia de Microsoft Visual C#, Edit. Alfaomega RA-MA, primera edicin 2006, Mxico 2. GUNDERLOY MIKE, La Biblia Microsoft SQL Server 2005, Edit. Anaya,2006, Espaa. Multimedia, 3. ROMERO RICARDO, SQL Server 2005, Edit. Ritisa Graff S.R.L., primera edicin 2006, Lima Per.

Autor: Ms. Lic. Lucio Arnulfo Ferrer Pearanda

Pg. 141