You are on page 1of 6

UNIVERSIDAD TECNOLGICA DE LOS ANDES-CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS E INFORMTICA BASE DE DATOS II

SQL DNI 41889923 22556632 85947812 52165244 Tabla cliente NOMBRE EDAD Marco 12 Antonio Julio 15 Alejandro 16 Mauro 14 DNI 41889923 22556632 85947812 52165244 NACIONALIDAD Peruano Boliviano Peruano Peruano

Tabla prestamo cantidad fecha 120 10/05/2010 50 15/05/2010 100 17/06/2010 150 19/04/2010

1. ESTRUCTURA BASICA 1.1 La clasula SELECT Corresponde a la operacin proyeccin del lgebra relacional. Se usa para listar los atributos deseados del resultado de una consulta. SELECT nacionalidad FROM cliente SQL permite duplicidad en las relaciones, as como en el resultado de las expresiones SQL. En aquellos casos donde se quiera forzar la eliminacin de duplicados, se insertar la palabra clave distinct despus de select. Por lo tanto, se puede reescribir la consulta anterior como: SELECT DISTINCT nacionalidad FROM cliente Asi tambien SQL permite usar la palabra clave all para especificar explcitamente que no se eliminan los duplicados: SELECT ALL nacionalidad FROM cliente El smbolo asterisco * se puede usar para denotar todos los atributos. SELECT * FROM cliente La clusula select puede contener tambin expresiones aritmticas que contengan los operadores, +, , * y / operando sobre constantes o atributos de la tuplas. SELECT nombre, edad*10 FROM cliente 1.2 La clasula FROM La clusula from corresponde a la operacin producto cartesiano del lgebra relacional. Lista las relaciones que deben ser analizadas en la evaluacin de la expresin. SELECT cliente.nombre, prestamo.cantidad FROM cliente, prestamo WHERE cliente.dni=prestamo.dni 1.3 La clasula WHERE La clusula where corresponde al predicado seleccin del lgebra relacional. Es un predicado que engloba a los atributos de las relaciones que aparecen en la clusula from. SQL usa las conectivas lgicas and, or y not (en lugar de los smbolos matemticos y ) en la clusula where. Los operandos de las conectivas lgicas pueden ser expresiones que contengan los operadores de comparacin <, <=, >, >=, = y <>. SQL permite usar los operadores de comparacin para comparar cadenas y expresiones

UNIVERSIDAD TECNOLGICA DE LOS ANDES-CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS E INFORMTICA BASE DE DATOS II

aritmticas, as como tipos especiales, tales como el tipo fecha. SQL incluye un operador de comparacin between para simplificar las clusulas where que especifica que un valor sea menor o igual que un valor y mayor o igual que otro valor. SELECT cliente.nombre, prestamo.cantidad FROM cliente, prestamo WHERE cliente.dni=prestamo.dni AND prestamo.cantidad BETWEEN 100 AND 150 1.4 La operacin renombramiento SQL proporciona un mecanismo para renombrar tanto relaciones como atributos. Para ello utiliza la clusula as. la clusula as puede aparecer tanto en select como en from. SELECT cliente.nombre, prestamo.cantidad as PRESTAMO FROM cliente, prestamo WHERE cliente.dni=prestamo.dni AND prestamo.cantidad BETWEEN 100 AND 150 1.5 Variables tupla La clusula as es particularmente til en la definicin del concepto de variables tupla. Una variable tupla en SQL se debe asociar con una relacin concreta. Las variables tupla se definen en la clusula from, se puede utilizar la clusula as (es opcional). SELECT C.nombre, P.cantidad FROM cliente as C, prestamo P WHERE C.dni=P.dni AND P.cantidad BETWEEN 100 AND 150 1.6 Operaciones sobre cadenas SQL especifica las cadenas encerrndolas entre comillas simple, como Julio. La operacin ms usada sobre cadenas es el encaje de patrones, para el que se usa el operador like. Para la descripcin de patrones se utilizan los dos caracteres siguientes: Tanto por ciento (%): El carcter % encaja con cualquier subcadena. Subrayado (_): El carcter _ encaja con cualquier carcter. Los patrones son muy sensibles, esto es, los caracteres en maysculas no encajan con los caracteres en minscula, o viceversa. Nava% encaja con cualquier cadena que empiece con Nava. %cer% encaja con cualquier cadena que contenga uli como subcadena, por ejemplo julio. _ _ _ encaja con cualquier cadena de tres caracteres. _ _ _% encaja con cualquier cadena de al menos tres caracteres. EJEMPLO(en clase) 1.7 Orden en la presentacin de las tuplas SQL ofrece al usuario cierto control sobre el orden en el cual se presentan las tuplas de una relacin. La clusula order by hace que las tuplas resultantes de una consulta se presenten en un cierto orden. SELECT C.nombre, P.cantidad FROM cliente as C, prestamo P WHERE C.dni=P.dni AND P.cantidad BETWEEN 100 AND 150 ORDER BY C.nombre De manera predeterminada la clusula order by lista los elementos en orden ascendente. Para especificar el tipo de ordenacin se puede incluir la clusula desc para orden descendente o asc para orden ascendente. Adems, se puede ordenar con respecto a ms de un atributo. SELECT C.nombre, P.cantidad FROM cliente as C, prestamo P WHERE C.dni=P.dni AND P.cantidad BETWEEN 100 AND 150 ORDER BY C.nombre ASC, d.importe DESC 2. FUNCIONES DE AGREGACION Las funciones de agregacin son funciones que toman una coleccin (un conjunto o ulticonjunto) de valores como entrada y producen un nico valor como salida. SQL proporciona cinco funciones de agregacin primitivas: Media: avg Mnimo: min

UNIVERSIDAD TECNOLGICA DE LOS ANDES-CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS E INFORMTICA BASE DE DATOS II

Mximo: max Total: sum Cuenta: count Existen situaciones en las cuales se debe aplicar las funciones de agregacin no slo a un nico conjunto de tuplas sino tambin a un grupo de conjuntos de tuplas; esto se especifica en SQL usando la clusula group by. El atributo o atributos especificados en la clusula group by se usan para formar grupos. Las tuplas con el mismo valor en todos los atributos especificados en la clusula group by se colocan en un grupo. Tambin se puede establecer condicines a los grupos. Esta condicin no es aplicable a una nica tupla; se aplica a cada grupo construido por la clusula group by. Para expresar este tipo de consultas se utiliza la clusula having de SQL. select nombre-sucursal, avg (saldo) from cuenta group by nombre-sucursal having avg (saldo) > 1200 3. VALORES NULOS SQL permite el uso de valores nulos para indicar la ausencia de informacin sobre el valor de un atributos. Se usa la palabra clave null para comprobar si un valor es nulo. Se usa is not null para verificar valores no nulos 4. OPERACIONES SOBRE CONJUNTOS 4.1 La operacin Unin Select nombre_cliente from cliente UNION Select nombre_cliente from prestatario La operacin unin elimina los duplicados automticamente; pero si se desea conservar los duplicados se debe usar UNION ALL. 4.2 La operacin interseccin Select nombre_cliente from cliente INTERSECT Select nombre_cliente from prestatario La operacin interseccion elimina los duplicados automticamente; pero si se desea conservar los duplicados se debe usar INTERSECT ALL. 4.3 La operacin excepto Select nombre_cliente from cliente EXCEPT Select nombre_cliente from prestatario La operacin except (resta) elimina los duplicados automticamente; pero si se desea conservar los duplicados se debe usar EXCEPT ALL. 5. SUB CONSULTAS ANIDADAS Una subconsulta es una expresin select-from-where que se anida dentro de otra consulta. 5.1)Pertenencia a conjuntos SQL utiliza el clculo relacional para las operaciones que permiten comprobar la pertenencia de una tupla a una relacin. La conectiva in comprueba la pertenencia a un conjunto, donde el conjunto es la coleccin de valores resultado de una clusula select. select m.idestudiante from matricula m where m.idsemestre='2010-1' and m. idestudiante='092188' and m.idestudiante in (select idestudiante from estudiante) Tambien se puede formular la sub consulta de laforma siguiente:

UNIVERSIDAD TECNOLGICA DE LOS ANDES-CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS E INFORMTICA BASE DE DATOS II

select m.idestudiante from matricula m where m.idsemestre='2010-1' and m. idestudiante='092188' and (m.idestudiante, m.idescuela) in (select idestudiante, idescuela from estudiante) Tambin es posible utilizar NOT IN. 5.2) Comparacin de conjuntos Compara un valor escalar con un conjunto de valores de una sola columna Puede ser utilizando la constructora SOME, y realizar las siguientes comparaciones: <some, <= some, >= some, = some y <> some. Ejm: select idestudiante, idsemestre, totcreditos from matricula where idsemestre='2009-2' and totcreditos >some( select totcreditos from matricula where idestudiante='091194') 5.3) Comprobacin de relaciones vacas SQL permite la posibilidad de comprobar si una subconsulta no produce ninguna tupla como resultado. La constructora exists devuelve el valor verdadero si la subconsulta no es vaca. Se utiliza la constructora exists. Utilizando la constructora not exists se puede comprobar la inexistencia de tuplas en el resultado de una subconsulta 6. MODIFICACIN DE LA BASE DE DATOS 6.1 Eliminar Un borrado se expresa de igual modo que una consulta. Se pueden borrar slo tuplas completas, es decir, no se pueden borrar valores de atributos concretos. La estructura de la operacin eliminar es: delete from r where P 6.2 Insertar Para insertar datos en una relacin, o bien se especifica la tupla que se desea insertar o se formula una consulta cuyo resultado sea el conjunto de tuplas que se desean insertar. Obviamente, los valores de los atributos de la tuplas que se inserten deben pertenecer al dominio de los atributos. Se utiliza la instruccin insert. Ejm: *)insert into cuenta values (C-9732, Navacerrada, 1200) *) insert into cuenta (nombre-sucursal, nmerocuenta, saldo) values (Navacerrada, C-9732, 1200) *) insert into cuenta select nombre-sucursal, nmero-prstamo, 200 from prstamo where nombre-sucursal = Navacerrada 6.3 Actualizar Sql permite cambiar un valor dentro de una tupla, sin cambiar todos los valores de la misma. Para este tipo de situaciones se utiliza la instruccin update. update cuenta set saldo = saldo * 1.05 update cuenta set saldo = saldo * 1.05 where (saldo > select avg(saldo) from cuenta)

UNIVERSIDAD TECNOLGICA DE LOS ANDES-CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS E INFORMTICA BASE DE DATOS II

7. VISTAS Una vista es una tabla derivada de otras tablas (bsicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla virtual (no tiene una correspondencia a nivel fsico) Se puede consultar como cualquier tabla bsica. Las actualizaciones se transfieren a la/s tabla/s original/es. Una vista en SQL se define utilizando la orden create view. Para definir una vista se le debe dar un nombre y se debe construir la consulta que genere dicha vista. La forma de la orden create view es la siguiente: create view v as <expresin de consulta> CREATE OR REPLACE FORCE VIEW "JULIO"."V_ACTA_NOTAS" ("IDESCUELA", "IDASIGNATURA", "IDSEMESTRE", "NOMSEMESTRE", "GRUPO", "IDDOCENTE", "NOMASIGNATURA", "CREDITOS", "IDCATEGORIA", "NOMESCUELA", "NOMDOCENTE") AS SELECT d.idescuela, d.idasignatura, d.idsemestre, s.nomsemestre , nvl(d.grupo,' ') grupo, d.iddocente , a.nomasignatura, a.creditos, a.idcategoria,e.nomescuela, t.apdocente || ' ' || t.amdocente || ' ' || t.nombresdocente nomdocente FROM detcargaacademica d, asignatura a, escuela e, docente t, semestre s WHERE d.idasignatura = a.idasignatura AND d.idescuela = e.idescuela AND d.idsemestre = s.idsemestre AND d.iddocente(+) = t.iddocente; 8. PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado Transact-SQL es una coleccin guardada de instrucciones Transact-SQL que puede tomar y devolver los parmetros proporcionados por el usuario. Por ejemplo, un procedimiento almacenado puede contener las instrucciones necesarias para insertar una nueva fila en una o ms tablas segn la informacin suministrada por la aplicacin cliente o es posible que el procedimiento almacenado devuelva datos de la base de datos a la aplicacin cliente. Por ejemplo, una aplicacin Web de comercio electrnico puede utilizar un procedimiento almacenado para devolver informacin acerca de determinados productos en funcin de los criterios de bsqueda especificados por el usuario en lnea. Create Procedure IngresarFacultad @TFacul_Codigo char(5), @TUni_Codigo char(5), @TFacul_Nombre varchar(40), @TFacul_Estado varchar(10) As Begin insert into TFacultad(TFacul_Codigo,TUni_Codigo, TFacul_Nombre, TFacul_Estado) Values (@TFacul_Codigo, @TUni_Codigo, @TFacul_Nombre, @TFacul_Estado) END Go 9. DESENCADENADORES Un desencadenador (Trigger) es un tipo especial de procedimiento almacenado que se activa de forma controlada por sucesos antes que por llamadas directas. Los desencadenadores (Triggers) estn asociados a tablas. Son una gran herramienta para controlar las reglas de negocio ms complejas que una simple integridad referencial, los

UNIVERSIDAD TECNOLGICA DE LOS ANDES-CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS E INFORMTICA BASE DE DATOS II

desencadenadores (Triggers) y las sentencias que desencadenan su ejecucin trabajan unidas como una transaccin. Las instrucciones de la definicin del Desencadenador deben ser INSERT, UPDATE o DELETE. Un Desencadenador para insercin de registros genera automticamente una tabla en el cache con la informacin que intenta aadir, esta tablita se denomina INSERTED y es a travs de esta tabla que se pueden hacer comparaciones en otras tablas. Un Desencadenador para eliminacin de registros genera automticamente una tabla en el cache con la informacin que intenta eliminar, esta tablita se denomina DELETED y es a travs de esta tabla que se pueden hacer comparaciones en otras tablas. Si se trata de un Desencadenador para actualizacin se generan ambas tablas INSERTED con los nuevos datos y DELETED con la informacin que ser reemplazada La sintaxis para la creacin de triggers es la siguiente: CREATE TRIGGER <trigger name> FOR <INSERT|DELETE|UPDATE> ON <relation name> EXECUTE PROCEDURE <procedure name> (<function args>);