Lenguaje SQL. Manejadores de bases de datos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Lenguaje SQL. Manejadores de bases de datos"

Transcripción

1 Lenguaje SQL Lenguaje de definición de datos (DDL) Consultas: estructura básica Operaciones de conjuntos Funciones agregadas Valores nulos Subconsultas anidadas Relaciones derivadas Vistas Modificaciones de Bases de Datos Relaciones unidas (joined) SQL embebido, ODBC y JDBC Manejadores de bases de datos

2 Esquema utilizado en los ejemplos sucursal nombre-sucursal ciudad-sucursal activos cuenta numero-cuenta nombre-sucursal saldo depositante nombre-cliente numero-cuenta cliente nombre-cliente calle-cliente ciudad-cliente prestamo numero-prestamo nombre-sucursal cantidad prestatario nombre-cliente numero-prestamo Manejadores de Bases de datos

3 Lenguaje de definición de datos (DDL) Permite la especificación de un conjunto de relaciones y además de información sobre cada una de las relaciones, incluyendo: El esquema de cada relación. El dominio de los datos asociados a cada atributo. Restricciones de integridad. El conjunto de índices que se debe mantener para cada relación. Información de seguridad y autorización para cada relación. La estructura de almacenamiento físico de cada relación en disco. Manejadores de Bases de datos

4 Tipos de dominio en SQL char(n). Cadena de caracteres de longitud fija n indicada por el usuario. varchar(n). Cadena de caracteres de longitud variable, con una longitud máxima n indicada por el usuario. int. Entero (un subconjunto finito de enteros dependiente de la máquina). smallint. Entero corto (un subconjunto del dominio entero cuyo tamaño es dependiente de la máquina). numeric(p,d). Número en formato de punto fijo, con una precisión indicada por el usuario de p digitos, con n digitos a la derecha del punto decimal. real, double precision. Numeros en formato de punto flotante y punto flotante de doble precisión, con precisión dependiente de la máquina. float(n). Númeor en punto flotante, conuna precisión indicada por el usuario de al menos n digitos. En todos los tipos de dominios se permiten valores nulos. Si un atributose declara not null, se prohiben los valores nulos para ese atributo. La construcción create domain de SQL-92 permite crear dominios definidos por el usuario: create domain nombre-persona char(20) not null Manejadores de Bases 4

5 Tipos de Fecha/Hora en SQL (Cont.) date. Fechas, conteniendo un año (4 dígitos), mes y día. P.e. date time. Horas, minutos y segundos. P.e. time 09:00:30 time 09:00:30.75 timestamp: Fecha y hora. P.e. timestamp :00:30.75 Interval: periodo de tiempo P.e. Interval 1 día Restar un valor date/time/timestamp de otro nos da un valor de tipo intervalo Valores de tipo intervalo se pueden sumar a valores date/time/timestamp Podemos extraer valores de campos de date/time/timestamp P.e. extract (year from r.fechainicio) Podemos transformar tipos cadena de caracteres a date/time/timestamp P.e. cast <expresion-tipo-string> as date Manejadores de Bases de datos 5

6 Comando Create Table Una relación SQL se define mediante el comando create table: create table r (A 1 D 1 RI 1, A 2 D 2 RI 2,..., A n D n RI n, (restriccion-integridad 1 ),..., (restriccion-integridad k )) r es el nombre de la relación cada A i es un nombre de atributo en el esquema de la relación r D i es el tipo de datos de los valores del dominio del atributo A i Ejemplo: create table sucursal (nombre-sucursal ciudad-sucursal activos char(15) not null, char(30), integer) Manejadores de Bases 6

7 Restricciones de integridad en Create Table not null primary key (A 1,..., A n ) check (P), donde P es un predicado foreign key (A 1,..., A n ) references r (B 1,..., B n ) Ejemplo: Declarar nombre-sucursal como la clave primaria de sucursal y asegurar que el valor de activos no es negativo. create table sucursal (nombre-sucursal char(15), ciudad-sucursal char(30) activos integer, primary key (nombre-sucursal), check (activos >= 0)) Manejadores de Bases 7

8 Comandos Drop y Alter Table El comando drop table borra toda la información referente a la relación eliminada de la base de datos. El comando alter table se utiliza para añadir atributos a una relación existente. alter table r add A D donde A es el nombre del atributo a añadir a la relación r y D es el dominio de A. A todas las tuplas de la relación se les asigna null como valor del nuevo atributo. El comando alter table también se puede utilizar para eliminar atributos de una relación alter table r drop A donde A es el nombre de un atributo de la relación r Algunos SGBD no soportan la eliminación de atributos Manejadores de Bases 8

9 Integridad referencial Asegura que un valor que aparece en una relación para un conjunto de atributos determinado también aparece en un conjunto de atributos de otra relación. Ejemplo: Si Centro es un nombre de sucursal que aparece en una de las tuplas de la relación cuentas, entonces existe una tupla en la relación sucursales para la sucursal Centro. Definición formal Dadas las relaciones r 1 (R 1 ) y r 2 (R 2 ) con claves primarias K 1 y K 2 respectivamente. El subconjunto α de R 2 es una clave foránea referenciando K 1 en la relación r 1, si para cada t 2 en r 2 debe haber una tupla t 1 en r 1 tal que t 1 [K 1 ] = t 2 [α]. Las restricciones de integridad referencial también se denominan dependencias de subconjunto ya que se pueden expresar como α (r 2 ) K1 (r 1 ) Manejadores de Bases 9

10 Integridad referencial en el modelo E-AE Consideremos el conjunto asociación R entre los conjuntos entidad E 1 y E 2. El esquema relacional de R incluye las claves primarias K 1 de E 1 y K 2 de E 2. Entonces K 1 y K 2 son claves foráneas sobre los esquemas relacionales de E 1 y E 2 respectivamente. E1 R E2 Las asociaciones 1:N se pueden resolver mediante restricciones de integridad, en vez de mediante una nueva asociación Los jerarquías de especialización/generalización también dan lugar a restricciones de integridad referencial. Los conjuntos entidad débiles también dan lugar a restricciones de integridad referencial. El esquema de relación de un conjunto entidad débil debe incluir los atributos que forman la clave primaria del conjunto entidad del que depende Manejadores de Bases 10

11 Comprobación n de integridad referencial durante una modificación Se deben realizar las siguientes comprobaciones con el fin de preservar la siguiente restricción de integridad referencial: α (r 2 ) K (r 1 ) Insertar. Si una tupla t 2 se inserta en r 2, el sistema se debe asegurar de que hay una tupla t 1 en r 1 tal que t 1 [K] = t 2 [α]. Es decir t 2 [α] K (r 1 ) Eliminar. Si se elimina una tupla t 1 de r 1, el sistema debe hallar el conjunto de tuplas de r 2 que referencian t 1 : σ α = t1[k] (r 2 ) Si el conjunto no es vacío o bien se rechaza el comando como un error, o bien se deben eliminar las tuplas que referencian a t 1 (se permiten eliminaciones en cascada) Manejadores de Bases d 11

12 Modificaciones de la base de datos (Cont.) Actualizaciones. Hay dos casos: Si se actualiza una tupla t 2 en la relación r 2 y la actualización modifica los valores de la clave foránea α,entonces se debe hacer un test similar al caso de inserción: Si t 2 denota el nuevo valor de la tupla t 2, el sistema se debe asegurar de que t 2 [α] K (r 1 ) Si se actualiza una tupla t 1 en r 1, y la actualización modifica el valor de la clave primaria (K), entonces se debe realizar un test similar a la del caso de eliminación: 1. El sistema debe calcular σ α = t1[k] (r 2) utilizando el valor anterior de t 1 (el valor antes de hacer la actualización). 2. Si el conjunto no es vacío 1. la actualización se puede rechazar como un error, o 2. La actualización se puede hacer en cascada sobre las tuplas del conjunto, o 3. Las tuplas del conjunto se pueden eliminar. Bases de datos 12

13 Consultas: Estructura básica SQL está basado en operaciones sobre relaciones y sobre conjuntos con algunas modificaciones y mejoras Una consultatípica en SQL tiene la siguienteforma: select A 1, A 2,..., A n from r 1, r 2,..., r m where P A i s repesentan atributos r i s representan relaciones P es un predicado. Esta consulta es equivalente a la expresión de álgebra relacional: A1, A2,..., An (σ P (r 1 x r 2 x... x r m )) El resultado de una consulta SQL es una relación. Bases de datos 13

14 La cláusula select La cláusula select lista los atributos que queremos en el resultado de la consulta Corresponde a la operación de proyección del álgebra de relaciones P.e. encontrar los nombres de todas las sucursales de la relación prestamo select nombre-sucursal from prestamo En la sintaxis del álgebra relacional pura, la consulta sería: nombre-sucursal (prestamo) Bases de datos 14

15 La clausula select (Cont.) SQL permite duplicados tantoen relaciones (tablas) como en los resultados de las consultas. Para forzar la eliminación de duplicados en los resultados utilizamos distinct después de select. Encontrar los nombres de todas las sucursales en la relación prestamo eliminando duplicados select distinct nombre-sucursal from prestamo La palabra reservada all indicaque no se eliminen los duplicados (comportamiento por defecto). select all nombre-sucursal from prestamo Bases de datos 15

16 La clausula select (Cont.) Un asterisco en la clausula select indica todos los atributos select * from prestamo La clausula select puede contener expresiones aritméticas con las operaciones +,,, y /, y operar sobre constantes o atributos de tuplas. La consulta: select numero-prestamo, nombre-sucursal, cantidad 100 from prestamo devolverá una relación igual a la relación prestamo, excepto que el atributo cantidad estará multiplicado por 100. Bases de datos 16

17 La clausula where La clausula where especifica condiciones que debe satisfacer el resultado Corresponden al predicado de selección del álgebra relacional. Encontrar todos los números de préstamo hechso en la sucursal de Centro con cantidades prestadas mayores de 1200 pesos. select numero-prestamo from prestamo where nombre-sucursal = Centro and cantidad > 1200 Los resultados lógicos se pueden combinar con las conectivas lógicas and, or y not. Las comparaciones se pueden aplicar al resultado de expresiones aritméticas. Bases de datos 17

18 La clausula where (Cont.) SQL incluye un operador de comparación between P.e. Encontrar los números de prétamo de aquellos préstamos cuya cantidad esté entre 90,000 y 100,000 pesos (es decir, 90,000 y 100,000) select numero-prestamo from prestamo where cantidad between and Bases de datos 18

19 La clausula from La clausula from lista las relaciones involucradas en la consulta corresponde al producto cartesiano del álgebra relacional. Encontrar el producto cartesiano prestatario x prestamo select from prestatario, prestamo Encontrar el nombre, número de préstamo y cantidad prestada de todos los clientes con un préstamo en la sucursal Centro. select nombre-cliente, prestatario.numero-prestamo, cantidad from prestatario, prestamo where prestatario.numero-prestamo = prestamo.numero-prestamo and nombre-sucursal = Centro Bases de datos 19

20 La operación de renombrado SQL permite renombrar relaciones y atributos mediante la cláusula as : nombre-antiguo as nombre-nuevo Encontrar el nombre, número de préstamo y cantidad prestada de todos los clientes; renombrar la columna numero-prestamo como id-prestamo. select nombre-cliente, prestatario.numero-prestamo as id-prestamo, cantidad from prestatario, prestamo where prestatario.numero-prestamo = prestamo.numero-prestamo Bases de datos 20

21 Variables de tupla Las variables de tupla se definen en la cláusula from mediante el uso de la cláusula as. Encontrar los nombres de cliente y sus números de préstamo para todos los clientes que tengan un préstamo en alguna sucursal. select nombre-cliente, T.numero-prestamo, S.cantidad from prestatario as T, prestamo as S where T.numero-prestamo = S.numero-prestamo Encontrar los nombres de todas las oficinas que tienen unos activos mayores que alguna sucursal de Barcelona. select distinct T.nombre-sucursal from sucursal as T, sucursal as S where T.activos > S.activos and S.ciudad-sucursal = Barcelona Bases de datos 21

22 Operaciones sobre cadenas de caracteres SQL incluye un operador de coincidencia para comparar cadenas de caracteres. Los patrones se describen usando dos caracteres especiales: porcentaje (%). El % representa cualquier subcadena de caracteres. subrayado (_). El _ representa cualquier caractér. Encontrar los nombres de los clientes cuya calle incluya la subcadena Mayor. Para encontrar Mayor% select nombre-cliente from cliente where calle-cliente like %Mayor% like Mayor\% escape \ SQL soporta diversas operaciones sobre cadenas de caracteres, como concatenación (utilizando ) convertir de mayúsculas a minúsculas (y viceversa) calcular la longitud, extraer subcadenas, etc. Bases de datos 22

23 Ordenar las tuplas obtenidas Listar en orden alfabéticolos nombres de todos los clientes que tenganun préstamo en la sucursal Centro select distinct nombre-cliente from prestatario, prestamo where prestatario.numero-prestamo = prestamo.numero-prestamo and nombre-sucursal = Centro order by nombre-cliente Podemos especificar desc para orden descendente o asc para orden ascendente para cada atributo; el orden por defecto es el ascendente. P.e. order by nombre-cliente desc Bases de datos 23

24 Operaciones de conjuntos Las operaciones de conjuntos unión (union), intersección (intersect), y diferencia (except) se pueden aplicar sobre relaciones y equivalen a las operaciones,, del álgebra de relaciones. Cada una de las operaciones anteriores elimina dupicados automáticamente; para conservar los duplicados se debe utilizar union all, intersect all and except all. Supongamos que una tupla aparece m veces en r y n veces en s, entonces aparece: m + n veces en r union all s min(m,n) veces en r intersect all s max(0, m n) veces en r except all s Bases de datos 24

25 Operaciones de conjuntos Encontrar todos los clientes que tengan un préstamo, una cuentao ambas cosas: (select nombre-cliente from depositante) union (select nombre-cliente from prestatario) Encontrar todos los clientes que tienen tantouna cuentacomo un préstamo (select nombre-cliente from depositante) intersect (select nombre-cliente from borrower) Encontrar todos los clientes que tengan una cuenta pero no un préstamo. (select nombre-cliente from depositante) except (select nombre-cliente from prestatario) Bases de datos 25

26 Funciones agregadas Estas funciones operan sobre un conjuntode valores de una columna de una relación y devuelven un valor avg: valor medio min: valor mínimo max: valor máximo sum: suma de valores count: número de valores Bases de datos 26

27 Funciones agregadas (Cont.) Encontrar el saldo medio de las cuentas de la sucursal Centro. select avg (saldo) from cuenta where nombre-sucursal = Centro Encontrar el número de tuplas de la relación cliente. select count (*) from cliente Encontrar el número de depositantes del banco. select count (distinct nombre-cliente) from depositante Bases de datos 27

28 Funciones agregadas Group By Encontrar el número de depositantes de cada sucursal. select nombre-sucursal, count (distinct nombre-cliente) from depositante, cuenta where depositante.numero-cuenta = cuenta.numero-cuenta group by nombre-sucursal Nota: Los atributos en la clausula select fuera de las funciones agregadas deben aparecer en la lista group by Bases de datos 28

29 Funciones agregadas cláusula Having Encontrar los nombres de todas las sucursales donde el saldo medio de las cuentas sea de más de 1,200 pesos. select nombre-sucursal, avg (saldo) from cuenta group by nombre-sucursal having avg (saldo) > 1200 Bases de datos 29

30 Valores nulos (null) Las tuplas pueden tener valores nulos, indicado por null, para algunos de sus atributos. null significa valor desconocido o que esevalor no existe. El predicado is null se utiliza para comprobar valores nulos. P.e. Encontrar todos los números de préstamo que aparecen en la relación prestamo con un valor nulo en cantidad. select numero-prestamo from prestamo where cantidad is null El resultado de cualquier expresión aritméticaen la que participa null es null P.e. 5 + null devuelve null Sin embargo, las funciones agregadas simplemente ignoran los nulos Bases de datos 30

31 Valores nulos y lógica tri-valorada Cualquier comparación con null devuelve desconocido P.e. 5 < null o null <> null o null = null Lógicatri-valorada utilizando el valor de verdad desconocido: OR: (desconocido or true) = true, (desconocido or false) = desconocido (desconocido or desconocido) = desconocido AND: (desconocido and true) = desconocido, (desconocido and false) = false, (desconocido and desconocido) = desconocido NOT: (not desconocido) = desconocido Los resultados de los predicados de la cláusula where se tratan como false si toman el valor desconocido Bases de datos 31

32 Valores nulos y agregados Total de cantidades de todos los préstamos select sum (cantidad) from prestamo Esta sentencia ignora las cantidades nulas El resultado es nulo si no hay cantidades no nulas Todas las funciones agregadas excepto count(*) ignoran las tuplas con valores nulos en los atributos agregados. Bases de datos 32

33 Subconsultas anidadas SQL proporciona un mecanismo para anidar subconsultas. Una subconsulta es una expresión select-from-where que está anidada en otra consulta. Un uso habitual de las subconsultas es realizar comprobaciones de pertenencia a un conjunto, comparaciones de conjuntos y de cardinalidades de conjuntos. Bases de datos 33

34 Ejemplo Encontrar todos los clientes que tengan tanto una cuentacomo un préstamo en el banco. select distinct nombre-cliente from prestatario where nombre-cliente in (select nombre-cliente from depositante) Encontrar todos los clientes que tienen un préstamo pero no una cuenta en el banco select distinct nombre-cliente from prestatario where nombre-cliente not in (select nombre-cliente from depositante) Bases de datos 34

35 Ejemplo Encontrar todos los clientes que tiene tanto una cuenta como un préstamo en la sucursal Centro select distinct nombre-cliente from prestatario, prestamo where prestatario.numero-prestamo = prestamo.numero-prestamo and nombre-sucursal = Centro and (nombre-sucursal, nombre-cliente) in (select nombre-sucursal, nombre-cliente from depositante, cuenta where depositante.numero-cuenta = cuenta.numero-cuenta) Bases de datos 35

36 Comparación de conjuntos Encontrar todas las sucursales que tienen unos activos mayores que alguna sucursal de Madrid. select distinct T.nombre-sucursal from sucursal as T, sucursal as S where T.activos > S.activos and S.ciudad-sucursal = Veracruz La misma consulta utilizando la cláusula > some select nombre-sucursal from sucursal where activos > some (select activos from sucursal where ciudad-sucursal = Veracruz ) Bases de datos 36

37 Definición de la cláusula Some F <comp> some r t r que cumple (F <comp> t) Donde <comp> puede ser: <,, >, =, (5< some ) = true (leer: 5 < some tupla de la relación) (5< some (5 = some ) = false ) = true 0 (5 some 5 ) = true (dado que 0 5) (= some) in Sin embargo, ( some) not in Bases de datos 37

38 Definición de la cláusula All F <comp> all r t r (F <comp> t) (5< all ) = false (5< all (5 = all ) = true ) = false 4 (5 all 6 ) = true (dado que 5 4 y 5 6) ( all) not in Sin embargo, (= all) in Bases de datos 38

39 Consulta de ejemplo Encontrar los nombres de todas las sucursales que tengan unos activos mayores que todas las sucursales de Madrid. select nombre-sucursal from sucursales where activos > all (select activos from sucursas where ciudad-sucursal = Veracruz ) Bases de datos 39

40 Comprobación de relaciones vacías as La construcción exists devuelve el valor true si la subconsulta argumento no está vacía. exists r r Ø not exists r r = Ø Bases de datos 40

41 Consulta de ejemplo Encontrar todos los clientes que tengan una cuenta en todas las sucursales de Madrid. select distinct S.nombre-cliente from depositante as S where not exists ( (select nombre-sucursal from sucursal where ciudad-sucursal = Veracruz ) except (select R.nombre-sucursal from depositante as T, cuenta as R where T.numero-cuenta = R.numero-cuenta and S.nombre-cliente = T.nombre-cliente)) Notar que X Y = Ø X Y Nota: Esta consulta no se puede escribir con = all y sus variantes Bases de datos 41

42 Comprobación de ausencia de tuplas duplicadas La construcción unique comprueba si el resultado de una subconsulta tiene tuplas duplicadas. Encontrar todos los clientes que tienen como mucho una cuenta en la sucursal Centro. select T.nombre-cliente from depositante as T where unique ( select R.nombre-cliente from cuenta, depositante as R where T.nombre-cliente= R.nombre-cliente and R.numero-cuenta= cuenta.numero-cuenta and cuenta.nombre-sucursal = Centro Bases de datos 42

43 Consulta de ejemplo Encontrart todos los clientes que tengan al menos dos cuentas en la sucursal de Centro. select distinct T.nombre-cliente from depositante T where not unique ( select R.nombre-cliente from cuenta, depositante as R where T.nombre-cliente = R.nombre-cliente and R.numero-cuenta= cuenta.numero-cuenta and cuenta.nombre-sucursal = Centro ) Bases de datos 43

44 Vistas Proporcionan un mecanismo para ocultar ciertos datos a ciertos usuarios. Para crear una vista se usael comando: create view v as <consulta> donde: <consulta> es cualquier expresión legal El nombre de la vista es v Bases de datos 44

45 Ejemplo Una vista consistente en las sucursales y sus clientes create view clientes-sucursal as (select nombre-sucursal, nombre-cliente from depositante, cuenta where depositante.numero-cuenta = cuenta.numero-cuenta) union (select nombre-sucursal, nombre-cliente from prestatario, prestamo where prestatario.numero-prestamo = prestamo.numero-prestamo) Encontrar todos los clientes de la sucursal Centro select nombre-cliente from clientes-sucursal where nombre-sucursal = Centro Bases de datos 45

46 Relaciones derivadas Encontrar el saldo medio de las cuentas de aquellas sucursales donde el saldo medio de las cuentas es mayor de 1200 pesos. select nombre-sucursal, saldo-medio from (select nombre-sucursal, avg (saldo) from cuenta group by nombre-sucursal) as resultado (nombre-sucursal, saldo-medio) where saldo-medio > 1200 No necesitamos utilizar la cláusula having dado que calculamos una relación temporal (vista) resultado en la cláusula from, y los atributos de resultado se pueden utilizar directamente en la cláusula where. Bases de datos 46

47 Cláusula With La cláusula With definir vistas locales a una consulta, en vez de globalmente. Encontrar todas las cuentas con el saldomáximo with saldo-maximo (valor) as select max (saldo) from cuenta select numero-cuenta from cuenta, saldo-maximo where cuenta.saldo = saldo-maximo.valor Bases de datos 47

48 Consultas complejas con la cláusula With Encontrar todas las sucursales donde el total de sus cuentas es mayor que la media del total de cuentas de todas las sucursales. with total-sucursal (nombre-sucursal, valor) as select nombre-sucursal, sum (saldo) from cuenta group by nombre-sucursal with media-total-sucursal(valor) as select avg (valor) from total-sucursal select nombre-sucursal from total-sucursal, media-total-sucursal where total-sucursal.valor >= media-total-sucursal.valor Bases de datos 48

49 Modificación de datos Borrado Borrar todas las cuentas de la sucursal Centro delete from cuenta where nombre-sucursal = Centro Borrar todas las cuentas de todas las sucursales de Veracruz. delete from cuenta where nombre-sucursal in (select nombre-sucursal from sucursal where ciudad-sucursal = Veracruz ) delete from depositante where numero-cuenta in (select numero-cuenta from sucursal, cuenta where ciudad-sucursal = Veracruz and sucursal.nombre-sucursal = cuenta.nombresucursal) Bases de datos 49

50 Ejemplo de borrado Borrar todas las cuentas con saldos por debajo de la media del banco. delete from cuenta where saldo < (select avg (saldo) from cuenta) Problema: a medida que borramos tuplas, la media cambia Solución utilizada en SQL: 1. Primero, calcular avg y encontrar todas las tuplas a borrar 2. Segundo, borrar todas las tuplas encontradas antes (sin recalcular avg ni recomprobar las tuplas) Bases de datos 50

51 Modificación de Datos - Inserción Añadir una nueva tupla a cuenta insert into cuenta values ( A-9732, Centro,1200) o, como forma alternativa insert into cuenta (nombre-sucursal, saldo, numero-cuenta) values ( Centro, 1200, A-9732 ) Añadir una nueva tupla a cuenta con saldo puesto a nulo insert into cuenta values ( A-777,'Centro', null) Bases de datos 51

52 Modificación de datos Inserción Dar como premio a todos los clientes con préstamo en la sucursal de Centro una nueva cuenta de ahorro con 200 pesos de saldo. El número de préstamoservirá como númeor de cuenta para la nueva cuenta de ahorro. insert into cuenta select numero-prestamo, nombre-sucursal, 200 from prestamo where nombre-sucursal = Centro insert into depositante select nombre-cliente, numero-prestamo from prestamo, prestatario where nombre-sucursal = Centro and prestamo.numero-cuenta = prestatario.numerocuenta La sentencia select-from-where se evalúa totalmente antes de insertar ninguno de sus resultados en la relación (si no, consultas como insert into tabla1 select * from tabla1 causarían problemas Bases de datos 52

53 Modificación de datos Actualizaciones Incrementar todas las cuentas con más de 10,000 pesos un 6% y el resto de cuentas un 5%. Escribimos dos sentencias update: update cuentas set saldo = saldo 1.06 where saldo > El orden es importante update cuentas set saldo = saldo 1.05 where saldo Se puede hacer mejor con la sentencia case Bases de datos 53

54 Sentencia Case para actualizaciones condicionales La misma consultade antes: aumentar los saldos de todas las cuentas de más de 10,000 pesos un 6% y las demás un 5%. update cuenta set saldo = case when saldo <= then saldo *1.05 else saldo * 1.06 end Bases de datos 54

55 Actualización a través de vistas Crear una vista de todos los datos sobre préstamos en la relación prestamo, ocultando el atributo cantidad create view prestamo-sucursal as select nombre-sucursal, numero-prestamo from prestamo Añadir una nueva tupla a prestamo-sucursal insert into prestamo-sucursal values ( Centro, L-307 ) Esta inserción se debe transformar en la inserción de la tupla en la relación prestamo ( L-307, Centro, null) En vistas más complejas las actualizaciones pueden ser más difíciles o imposibles de transformar y no están, por tanto, permitidas. La mayoría de implementaciónes SQL sólo permiten actualizaciones a través de vistas simples (sin agregaciones) definidas sobre una sola relación. Bases de datos 55

56 Transacciones Una transacción es una secuencia de sentencias (normalmente de consulta y actualización) que se ejecutan como una sola unidad. Las transacciones se inician de manera implícita y se terminan mediante: Ejemplo: commit work: hace permanentes en la base de datos todos los cambios rollback work: deshace todos los cambios realizados en la transacción. La transferencia de dinero de una cuenta a otra supone dos pasos: quitarlo de una cuenta y añadirlo a la otra Si se realiza un paso y falla el otro, la base de datos queda en un estado inconsistente Por tanto, se deben realizar los dos pasos, o ninguno. Si cualquier paso de la transacción falla, todo el trabajo realizado por la transacción se puede desahcer mediante rollback work. El rollback de las transacciones incompletas se hace automáticamente en caso de fallos del sistema. Bases de datos 56

57 Transacciones (Cont.) En la mayoría de SGBD, cada sentencia SQL que se ejecuta correctamente se confirma (commit) automáticamente. En este caso, cada transacción debe consistir en una sola sentencia. Normalmente se puede deshabilitar la confirmación automática, permitiendo transacciones multi-sentencia, pero cómo se hace esto es dependiente del SGBD. Otra opción, en SQL:1999: rodear las sentencias de: begin atomic end Bases de datos 57

58 Relaciones unidas (join) Las operaciones join toman dos relaciones y devuelven otra relación. Estas operaciones normalmente se utilizan como subconsultas en la cláusula from. Condición del join define qué tuplas de las dos relaciones coinciden, y qué atributos aparecerán en el resustado del join. Tipo de join define como tratar aquellas tuplas de cada relación que no coinciden con ninguna tupla de la otra relación (en base a la condición de join. Tipos de join inner join left outer join right outer join full outer join Condición de join natural on <predicado> using (A 1, A 2,..., A n ) Bases de datos 58

59 Relaciones unidas Datos para los ejemplos Relación prestamo numero-prestamo L-170 L-230 L-260 Relación prestatario nombre-cliente Fernández Suárez López nombre-sucursal Villa Centro Vargas numero-prestamo L-170 L-230 L-155 cantidad Nota: falta la información del préstatario del préstamo L-260 y la información del préstamo L-155 Bases de datos 59

60 Relaciones unidas - Ejemplos prestamo inner join prestatario on prestamo.numero-prestamo = prestatario.numero-prestamo numero-prestamo nombre-sucursal cantidad nombre-cliente numero-prestamo L-170 Villa 3000 Fernández L-170 L-230 Centro 4000 Suárez L-230 prestamo left outer join prestatario on prestamo.numero-prestamo = prestatario.numero-prestamo numero-prestamo nombre-sucursal cantidad nombre-cliente numero-prestamo L-170 L-230 L-260 Villa Centro Vargas Fernández Suárez null L-170 L-230 null Bases de datos 60

61 Relaciones unidas - Ejemplos prestamo natural inner join prestatario numero-prestamo nombre-sucursal cantidad nombre-cliente L-170 Villa 3000 Fernández L-230 Centro 4000 Suárez prestamo natural right outer join prestatario numero-prestamo nombre-sucursal cantidad nombre-cliente L-170 Villa 3000 Fernández L-230 Centro 4000 Suárez L-155 null null López Bases de datos 61

62 Relaciones unidas - Ejemplos prestamo full outer join prestatario using (numero-prestamo) numero-prestamo nombre-sucursal cantidad nombre-cliente L-170 L-230 Villa Centro Fernández Suárez L-260 Vargas 1700 null L-155 null null López Encontrar todos los clientes que tengan o bien una cuenta o bien un préstamo (pero no ambos) en el banco. select nombre-cliente from (depositante natural full outer join prestatario) where numero-cuenta is null or numero-prestamo is null Bases de datos 62

63 SQL embebido El estándar SQL define la inclusión de SQL en diversos lengujes de programación como Pascal, PL/I, Fortran, C, y Cobol. EL lenguaje en el que se incluyen sentencias SQL se denomina lenguaje anfitrión (host), y las estructuras SQL permitidas en el lenguaje anfitrión se denominan SQL embebido (embedded). La forma básica de estos lenguajes sigue la utilizada en el Sistema R para incluir SQL en PL/I. La sentencia EXEC SQL se utiliza para identificar solicitudes embebidas SQL al preprocesador EXEC SQL <sentencia SQL embebida > END-EXEC Nota: en algunos lenguajes estocambia. P.e. en Java se usa # SQL {. } ; Bases de datos 63

64 Ejemplo de consulta Desde un lenguaje anfitrión, encontrar los nombres y ciudades con alguna cuenta que tenga más pesos de la cantidad almacenada en la variable cantidad. Especificamos la consultaen SQL y declaramos un cursor asociado EXEC SQL declare c cursor for select nombre-cliente, ciudad-cliente from depositante, cuenta, cantidad where depositante.nombre-cliente = cliente.nombre-cliente and depositante.numero-cuenta = cuenta.numero-cuenta and cuenta.saldo > :cantidad END-EXEC Bases de datos 64

65 SQL embebido (Cont.) La sentencia open hace que se evalúe la consulta EXEC SQL open c END-EXEC La sentencia fetch sitúa en variables del lenguaje anfitrión los valores de una tupla del resultado de la consulta. EXEC SQL fetch c into :cn, :cc END-EXEC Repetidas llamadas a fetch devuelve tuplas sucesivas del resultado de la consulta Una variable denominada SQLSTATE en el área de comunicación de SQL (SQLCA) se pone a para indicar que no hay más datos La sentencia close haceque el SGBD elimine la relación temporal que alamcena el resultado de la consulta. EXEC SQL close c END-EXEC Bases de datos 65

66 Actualizaciones mediante cursores Declarando que un cursor es para actualizaciones se puede modificar la tupla actual del cursor declare c cursor for select * from cuenta where nombre-sucursal = Centro for update Para actualizar la tupla en la posición actual del cursor: update cuenta set saldo = saldo where current of c Bases de datos 66

67 SQL dinámico Permite a los programas construir y ejecutar sentencias SQL en tiempo de ejecución. Ejemplo de usode SQL dinámicodesde un programa C. char * consultasql = update cuenta set saldo = saldo * 1.05 where numero-cuenta =? EXEC SQL prepare consultadin from :consultasql; char cuenta [10] = A-101 ; EXEC SQL execute consultadin using :cuenta; El programa SQL dinámico contiene un?, que es un hueco para el valor que se proporciona cuando se ejecuta el programa SQL. Bases de datos 67

68 ODBC Estándar Open DataBaseConnectivity (ODBC) Estándar para programar comunicaciones (accesos) a un servidor de bases de datos desde aplicaciones. API para abrir una conexión con una base de datos, enviar sentencias, recibir resultados. Bases de datos 68

69 ODBC (Cont.) Cada SGBD que soporta ODBC proporciona una librería "driver" que se debe enlazar con el programa cliente. Cuando el programa cliente hace una llamada al API ODBC, el código de la librería se comunica con el servidor para realizar la acción solicitada y obtener los resultados. El programa ODBC primero asigna un entorno SQL y, a continuacíón, un manejador de conexión a base de datos. Abre una conexión a la base de datos utilizando SQLConnect(). SQLConnect toma como parámetros: el manejador de la conexión, el servidor a que conectar, el identificador del usuario, su password También debe especificar los tipos de los argumentos: SQL_NTS indica que el argumento anterior es una cadena de carateres terminado en nulo. Bases de datos 69

70 Código ODBC int ejemploodbc() { RETCODE error; HENV env; /* entorno */ HDBC conn; /* conexion a base de datos */ SQLAllocEnv(&env); SQLAllocConnect(env, &conn); SQLConnect(conn, clave", SQL_NTS, usuario", SQL_NTS, usuariopass", SQL_NTS); {. Realizamos el trabajo } } SQLDisconnect(conn); SQLFreeConnect(conn); SQLFreeEnv(env); Bases de datos 70

71 Código ODBC (Cont.) Los programas envían comandos SQL a la base datos mediante SQLExecDirect Las tuplas del resultado se acceden mediante SQLFetch() SQLBindCol() asocia variables C a atributos del resultado de la consulta. Cuando se accede a una tupla, sus valores se almacenan automáticamente a las variables C correspondientes. Argumentos do SQLBindCol() Variable ODBC stmt, Posición del atributo en el resultado de la consulta El tipo de conversión de SQL a C. La dirección de la variable. Para tipos de longitud variable, como cadenas de caracteres,» La longitud máxima de la variable.» Lugar para almacenar la longitud actual cuando se acceda a la tupla. Bases de datos 71

72 Cuerpo principal del programa char nombresucursal[80]; float saldo; int longout1, longout2; HSTMT stmt; Código ODBC (Cont.) SQLAllocStmt(conn, &stmt); char * consultasql = "select nombre_sucursal, sum (saldo) from cuenta group by nombre_sucursal"; error = SQLExecDirect(stmt, consultasql, SQL_NTS); if (error == SQL_SUCCESS) { SQLBindCol(stmt, 1, SQL_C_CHAR, nombresucursal, 80, &longout1); SQLBindCol(stmt, 2, SQL_C_FLOAT, &saldo, 0, &longout2); while (SQLFetch(stmt) >= SQL_SUCCESS) { printf (" %s %g\n", nombresucursal, saldo); } } SQLFreeStmt(stmt, SQL_DROP); Bases de datos 72

73 Más características de ODBC Sentencias Preparadas Sentencia SQL preparada: compilada en la base de datos Puede tener huecos : P.e.: insert into cuenta values(?,?,?) Se ejecuta varias veces con valores concretos para los huecos Manejo de Metadatos Encontrar todas las relaciones de la base de datos y encontrar los nombres y tipos de las columnas de un resultado de consulta o una relación de la base de datos. Por defecto, cada sentencia SQL se trata como una transacción, es decir, se confirma automáticamente. Se puede desactivar la confirmación automática en una conexión SQLSetConnectOption(conn, SQL_AUTOCOMMIT, 0)} Y las transacciones de deben confirmar o anular entonces explícitamente mediante SQLTransact(conn, SQL_COMMIT) o SQLTransact(conn, SQL_ROLLBACK) Bases de datos 73

74 Niveles de conformidad ODBC Los niveles de conformidad especifican subconjuntos de la funcionalidad definida por el estándar. Core Nivel 1: requiere soporte de consulta de metadatos Nivel 2: requiere capacidad para enviar y obtener cadenas de valores de parámetros e información de catálogo más detallada. El estándar CLI (SQL Call Level Interface) es similar al interfaz ODBC, con pequeñas diferencias. Bases de datos 74

75 JDBC JDBC es una API Java para comunicarse con SGBD que soportan SQL JDBC soporta diversas características para consultar y actualizar datos y para obtener los resultados de consultas JDBC también soporta la obtención de metadatos, tales como consultas sobre relaciones de la base de datos y sobre los nombres y tipos de los atributos de las relaciones Modelo para comunicarse con la base de datos: Abrir una conexión Crear un objeto sentencia Ejecutar consultas utilizando el objeto Sentencia para enviar consultas y obtener resultados Mecanismos de excepción para gestionar errores Bases de datos 75

76 Código JDBC } public static void EjemploJDBC(String idusuario, String passwd) { } try { Class.forName ("oracle.jdbc.driver.oracledriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@bd.banco.mx:2000:bdbanco", idusuario, passwd); Statement stmt = conn.createstatement(); Realizar trabajo. stmt.close(); conn.close(); catch (SQLException sqle) { } System.out.println( ExcepciónSQL : " + sqle); Bases de datos 76

77 Actualizar la base de datos try { Código JDBC (Cont.) stmt.executeupdate( "insert into cuentas values ('A-9732', Centro', 1200)"); } catch (SQLException sqle) { } System.out.println( No se pudo introducir la tupla. " + sqle); Ejecutar una consulta y extraer e imprimir los resultados ResultSet rset = stmt.executequery( "select nombre_sucursal, avg(saldo) from cuenta group by nombre_sucursal"); while (rset.next()) { } System.out.println( rset.getstring( nombre_sucursal") + " " + rset.getfloat(2)); Bases de datos 77

78 Detalles del código JDBC Obtener campos del resultado: rs.getstring( nombresucursal ) y rs.getstring(1) son equivalentes si nombresucursal es el primer argumento del resultado del select. Tratamiento de valores Null int a = rs.getint( a ); if (rs.wasnull()) Systems.out.println( Obtenido un valor nulo ); Bases de datos 78

79 Sentencias preparadas Las sentencias preparadas permiten que las consultas se compilen y ejecuten varias veces con argumentos distintos PreparedStatement pstmt = conn.preparestatement( pstmt.setstring(1, "A-9732"); pstmt.setstring(2, Cenro"); pstmt.setint(3, 1200); pstmt.executeupdate(); insert into cuenta values(?,?,?) ); pstmt.setstring(1, "A-9733"); pstmt.executeupdate(); Bases de datos 79

80 Arquitecturas de la aplicación La aplicaciones se pueden construir siguiendo una de las dos arquitecturas siguientes: Modelo de dos capas El programa de aplicación en la máquina del usuario utiliza directamente JDBC/ODBC para comunicarse con la base de datos Modelo de tres capas Los usuarios/programas ejecutándose en la máquina del usuario se comunica con una aplicación del servidor. La aplicación del servidor a su vez se comunica con la base de datos Bases de datos 80

81 Modelo de dos capas P.e. código Java se ejecuta en la máquina cliente y utiliza JDBC para comunicarse con el servidor Beneficios: flexibilidad, no necesita restringirse a consultas predefinidas Problemas: Seguridad: las passwords están disponibles en la máquina cliente; se permiten todas las operaciones sobre la base de datos Más código en el cliente No apropiado entre organizaciones, o en aquellas grandes como universidades Bases de datos 81

82 Modelo de tres capas Programa CGI Servidor de Aplicaciones/HTTP Servlets JDBC Servidor de BD HTTP/Protocolo específico de la aplicación Red Cliente Cliente Cliente Bases de datos 82

83 Modelo de tres capas (Cont.) P.e. Cliente Web + Servlet Java utilizando JDBC para comunicarse con el servidor de bases de datos El cliente envía peticiones vía http o un protocolo específico de la aplicación La aplicación o el servidor Web recibe la petición La petición la gestiona un programa CGI program o servlets La seguridad la gestiona la aplicación en el servidor Mayor seguridad Seguridad de grado fino Cliente simple, pero sólo puede hacer transacciones predefinidas Bases de datos 83

84 Extensiones Procedimentales y Procedimientos Almacenados SQL proporciona un lenguaje modular permite definir procedimientos en SQL, con sentencias if-then-else, bucles for y while, etc. Procedimientos Almacenados Se pueden almacenar procedimientos en la base de datos y ejecutarlos mediante la sentencia call permite a las aplicaciones externas operar sobre la base de datos sin saber nada sobre detalles internos Bases de datos 84

85 Fin Bases de datos 85

Tema 4. SQL. Juan Ignacio Rodríguez de León

Tema 4. SQL. Juan Ignacio Rodríguez de León Tema 4. SQL Juan Ignacio Rodríguez de León Resumen Este tema se centra exclusivamente en el estudio del lenguaje de consultas SQL (Structured Query Language). SQL usa una combinación de álgebra relacional

Más detalles

A.1. Definiciones de datos en SQL

A.1. Definiciones de datos en SQL A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE

Más detalles

Consulta y manipulación de datos. El lenguaje SQL

Consulta y manipulación de datos. El lenguaje SQL Bloque 2 Consulta y manipulación de datos. El lenguaje SQL Como ya hemos visto en el bloque anterior, una base de datos relacional consiste en un conjunto de tablas, a cada una de las cuales se le asigna

Más detalles

Restricciones de Integridad

Restricciones de Integridad Restricciones de Integridad Amparo López Gaona México, D.F. Semestre 2000-I Restricciones de Integridad Las principales restricciones de integridad que pueden indicarse son: La clave primaria. Claves candidatas.

Más detalles

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL 5.6 MODIFICACIÓN DE LA BASE DE DATOS SQL posee comandos destinados también para modificar la base de datos, entre estos se tienen operaciones de borrado,

Más detalles

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ] SINTAXIS DE SQL-92 Introducción: Se presenta brevemente un resumen de la sintaxis de SQL según el estándar ISO 9075 (SQL- 92), dividido en tres partes: - Lenguaje de Definición de Daots (LDD), - Lenguaje

Más detalles

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL.

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL. 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Práctica preliminar Crear la siguiente base de datos de prácticas

Más detalles

Consultas con combinaciones

Consultas con combinaciones UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden

Más detalles

Lenguaje para descripción de datos

Lenguaje para descripción de datos Amparo López Gaona tación Fac. Ciencias, UNAM Mayo 2012 Definición de Datos El lenguaje para definición de datos permite especificar: Esquema de cada relación. El dominio de cada atributo. Restricciones

Más detalles

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite

Más detalles

Bases de Datos 2. Teórico

Bases de Datos 2. Teórico Bases de Datos 2 Teórico Structured Query Language (SQL) Características de SQL Standard Opera sobre conjuntos de tuplas: incluso para las operaciones de inserción, borrado y actualización. No elimina

Más detalles

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004 2do. Cuatrimestre de 2004 Elementos de Bases de Datos Dpto.Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Lic. María Mercedes Vitturini [mvitturi@cs.uns.edu.ar] Clase 14 1er. Cuatrimestre

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo - 2011

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo - 2011 Structured Query Language () Fundamentos de Bases de Datos InCo - Un poco de historia Lenguajes de consulta relacionales: SEQUEL (IBM-1970) QUEL (Ingres-1970) QBE (IBM-1970) es el lenguaje comercial más

Más detalles

8 SQL SERVER 2008 RA-MA

8 SQL SERVER 2008 RA-MA ÍNDICE Capítulo 1. Características, novedades y entorno de trabajo... 17 1.1 Novedades en SQL Server 2008... 17 1.2 Instalación de Microsoft SQL Server 2008... 19 1.3 Versiones de Microsoft SQL Server

Más detalles

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle: PL/SQL (Procedural Language/Structured Query Language) PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los

Más detalles

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas. Vistas. El resultado de una consulta en el caso de SQL siempre es una tabla, ésta se puede hacer permanente dentro de la base de datos. En este caso se dice que esta tabla resultado es una vista o una

Más detalles

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA ÍNDICE CAPÍTULO 1. CARACTERÍSTICAS, NOVEDADES Y ENTORNO DE TRABAJO...17 1.1 NOVEDADES EN SQL SERVER 2008 R2...17 1.2 INSTALACIÓN DE MICROSOFT SQL SERVER 2008 R2...18 1.3 VERSIONES DE MICROSOFT SQL SERVER

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL ESCUELA COLOMBIANA DE INGENIERÍA JULIO GARAVITO LABORATORIO DE INFORMÁTICA BOGOTÁ D. C. 2007-2 TABLA DE CONTENIDO INTRODUCCIÓN... 3 1. COMANDOS... 4 1.1 Comandos DLL... 4

Más detalles

Estructura de Bases de datos. Leonardo Víquez Acuña

Estructura de Bases de datos. Leonardo Víquez Acuña Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos

Más detalles

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 1 SQL Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 2 Structured Query Language Lenguaje de consulta para bases de datos comerciales. Originalmente llamado

Más detalles

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 Álgebra Relacional Álgebra Relacional El álgebra relacional es

Más detalles

SQL Los fundamentos del lenguaje

SQL Los fundamentos del lenguaje Introducción 1. Un poco de historia 11 2. Las normas SQL 12 3. Descripción rápida del modelo relacional 14 3.1 Principales conceptos del modelo relacional 15 3.2 Principales reglas 16 4. Los operadores

Más detalles

CURSO DE SQL SERVER 2005

CURSO DE SQL SERVER 2005 CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear

Más detalles

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos Grupo de Bases de Datos Avanzadas Univ. Carlos III de Madrid Índice V.1 Introducción V.1 SQL como Lenguaje de V.1.1 Definición del esquema V.1.2 Evolución del esquema V.2 SQL como Lenguaje de Manipulación

Más detalles

Práctica 3. Consultas SQL

Práctica 3. Consultas SQL Práctica 3. Consultas SQL 1. Enunciado En este ejercicio se realizarán consultas SQL que respondan a las preguntas que se plantearán sin utilizar QBE. Dada una base de datos denominada Empresa y definida

Más detalles

Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas)

Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Lo que aprenderá Esta clase es aplicable para los usuarios de Oracle8i, Oracle9i y Oracle Database 10g. En este

Más detalles

Tema 4. Manipulación de datos con SQL

Tema 4. Manipulación de datos con SQL Tema 4 Manipulación de datos con SQL Índice Tema 4 1. Inserción de registros. Consultas de datos anexados. 2. Modificación de registros. Consultas de actualización. 3. Borrado de registros. Consultas de

Más detalles

Bases de Datos Relacionales

Bases de Datos Relacionales 2da. Parte Bases de Datos Relacionales Objetivos de la Clase SQL. Tipos de sentencias SQL Describir los tipos de dato que se pueden utilizar al especificar la definición de columnas. Sentencias SQL Select.

Más detalles

Unidad. Lenguaje SQL. (Structured Query Language)

Unidad. Lenguaje SQL. (Structured Query Language) Unidad Lenguaje SQL (Structured Query Language) 1 SQL Definición DDL Consulta y Actualización DML Create Alter Drop Select Insert Update Delete 2 SQL DDL CREATE TABLE nombre_tabla (nombre_columna tipo_dato/dominio

Más detalles

ÍNDICE. Introducción... Capítulo 1. Novedades de Access 2013... 1

ÍNDICE. Introducción... Capítulo 1. Novedades de Access 2013... 1 Introducción... XIII Capítulo 1. Novedades de Access 2013... 1 Nuevas posibilidades de cifrado, compactación y reparación de archivos... 1 Trabajo en la nube... 2 Compartir la información... 3 Guardar

Más detalles

Cálculo Relacional. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

Cálculo Relacional. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz Cálculo Relacional Bibliografía: Fundamentos de bases de datos Korth, Silberschatz Cálculo Relacional de Tuplas Es un lenguaje de consulta no procedimental Describe la información deseada sin dar un procedimiento

Más detalles

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta Operaciones en el Modelo Relacional Bases de Datos Ingeniería a Técnica T en Informática de Sistemas El interés de los usuarios de las bases de datos se suele centrar en realizar consultas (contestar a

Más detalles

Base de datos Procedimientos Almacenados y Funciones

Base de datos Procedimientos Almacenados y Funciones Base de datos Procedimientos Almacenados y Eduardo Saavedra A. Universidad Nacional Andrés Bello 4 de noviembre de 2008 Contenidos Ventajas 1 Ventajas 2 3 4 5 Conceptos Ejemplo 6 Procedimiento Almacenado

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 9. Reglas de Integridad 1.- Introducción. 2.- Claves Primarias. 3.- Regla de Integridad de Entidades. 4.- Claves Ajenas. 5.- Regla de Integridad

Más detalles

T12 Vistas y tablas temporales

T12 Vistas y tablas temporales 1 de 9 17/05/2013 14:01 Lecciones SQL > T12 Vistas y tablas temporales En esta sesión vamos a mostrar dos tipos de objetos de uso habitual en cualquier SGBD: las vistas y las tablas temporales. Mientras

Más detalles

abacformacio@abacformacio.com 1

abacformacio@abacformacio.com 1 Cu Oracle 10gg Estudia el servidor de bases de datos Oracle 10g desde el punto de vista de un diseñador y programador de bases de datos, prestando atención a los objetos que puede crear, como tablas, consultas

Más detalles

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO LENGUAJE DE CONSULTA ESTRUCTURADO - SQL 1. TIPOS DE DATOS 2. COMANDOS DDL 2.1 Créate 2.2 Drop 2.3 Alter 3. COMANDOS DML 3.1 Select 3.2 Insert 3.3 Update 3.4 Delete 4. CLAUSULAS 4.1 From 4.2 Where 4.3 Having

Más detalles

Oracle 12c DISEÑO Y PROGRAMACIÓN

Oracle 12c DISEÑO Y PROGRAMACIÓN Oracle 12c Se estudia el servidor de bases de datos empresarial Oracle 12c, centrándose especialmente en el punto de vista de un diseñador o programador de bases de datos, pero explicando también cómo

Más detalles

Introducción a las bases de datos.

Introducción a las bases de datos. Introducción a las BBDD 1 Centro de Referencia Linux UAM-IBM Introducción a las bases de datos. Carmen B. Navarrete Navarrete carmen_navarrete@telefonica.net Introducción a las BBDD 2 Qué vamos a ver?

Más detalles

Bases de Datos: Structured Query Language (SQL)

Bases de Datos: Structured Query Language (SQL) Structured Query Language (SQL): Introducción Bases de Datos: Structured Query Language (SQL) Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile

Más detalles

CONSULTAS BASICAS EN SQL SERVER

CONSULTAS BASICAS EN SQL SERVER CONSULTAS BASICAS EN SQL SERVER CONSULTAS DE SELECCION Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta

Más detalles

Bases de Datos - 2006. SQL - Ejemplos

Bases de Datos - 2006. SQL - Ejemplos Bases de Datos - 2006 SQL - Ejemplos Consideramos la siguiente base de datos relacional: persona(dni,primer-nombre,apellido) biblioteca(nombre-biblioteca,calle,número) libro(título,isbn,editorial,edición)

Más detalles

select nombre from profesores where categoria='aso6';

select nombre from profesores where categoria='aso6'; 1 de 10 17/05/2013 14:00 Lecciones SQL > T11 Conjuntos Operaciones de conjuntos y MySQL Un operador sobre conjuntos combina el resultado de dos sentencias select en un único resultado. Dependiendo del

Más detalles

Tema 33. El lenguaje SQL

Tema 33. El lenguaje SQL Tema 33. El lenguaje SQL Introducción... 1 Modos de uso... 2 Ejecución de las sentencias SQL... 2 Instrucciones DDL Data Definition Language-... 3 Instrucciones DML Data Manipulation Language-... 4 Instrucciones

Más detalles

Repaso de Conceptos Básicos de Bases de Datos

Repaso de Conceptos Básicos de Bases de Datos escuela técnica superior de ingeniería informática Repaso de Conceptos Básicos de Bases de Datos Departamento de Lenguajes Grupo de Ingeniería del Software Septiembre 2004 Definición Una base de datos

Más detalles

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas, los tipos

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 8. Elementos Básicos 1.- Ejemplo Introductorio. 2.- Dominios. 3.- Relaciones. 4.- Bases de Datos Relacionales. (Capítulo 11 del Date) EJEMPLO

Más detalles

EXPLOTACIÓN DE BASES DE DATOS CON ACCESS

EXPLOTACIÓN DE BASES DE DATOS CON ACCESS EXPLOTACIÓN DE BASES DE DATOS CON ACCESS Por qué son importantes las Bases de Datos? Las Bases de Datos son el método preferido para el almacenamiento estructurado de datos. Desde las grandes aplicaciones

Más detalles

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl Resumen demandas de almacenamiento y procesamiento de datos. Es el conjunto de estas dos capacidades

Más detalles

5- Uso de sentencias avanzadas

5- Uso de sentencias avanzadas Objetivos: 5- Uso de sentencias avanzadas Elaborar sentencias de manejo de datos. Recursos: Microsoft SQL Server Management Studio Guías prácticas. Introducción: Después de trabajar con las sentencias

Más detalles

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes

Más detalles

Microsoft SQL Server 2005

Microsoft SQL Server 2005 Microsoft SQL Server 2005 Módulo 1: Diseño y programación Estudia el servidor de bases de datos SQL Server 2005 desde el punto de vista de un diseñador y programador de bases de datos, prestando atención

Más detalles

SQL (DML) Carlos A. Olarte (carlosolarte@puj.edu.co) Gestión y Modelación de SQL Datos (DML)

SQL (DML) Carlos A. Olarte (carlosolarte@puj.edu.co) Gestión y Modelación de SQL Datos (DML) SQL (DML) Carlos A. Olarte (carlosolarte@puj.edu.co) Gestión y Modelación de Datos Outline 1 Actualización, Inserción y Modificación 2 Consultas (Queries) 3 Renombramiento 4 Ordenamiento 5 Reuniones 6

Más detalles

Boletín de Problemas de la Asignatura II18 Bases de Datos. Ingeniería Informática Universitat Jaume I

Boletín de Problemas de la Asignatura II18 Bases de Datos. Ingeniería Informática Universitat Jaume I Boletín de Problemas de la Asignatura II18 Bases de Datos Ingeniería Informática Universitat Jaume I Ingeniería Informática. Universitat Jaume I II18 - Bases de Datos. Práctica 1 Práctica 1 Objetivos de

Más detalles

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc). LENGUAJE SQL Un manejador de base de datos debe de contener lenguajes que permitan definir el modelos de los datos, este mismo es que permite crear la estructura de la base de datos. Lenguaje de Definicion

Más detalles

Base de datos relacional

Base de datos relacional Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar

Más detalles

DESCRIPCIÓN ESPECÍFICA

DESCRIPCIÓN ESPECÍFICA DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios. SUBSECTOR: Informática. Nombre del Módulo: Programación de Base de Datos Código: CSTI0077 Duración total: 54 horas Objetivo General: Participar

Más detalles

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional PROGRAMAS DE ESTUDIO FORMATO 7 NOMBRE DE LA ASIGNATURA INTRODUCCIÓN A SQL CICLO, AREA O MODULO Área de Formación Profesional CLAVE DE LA ASIGNATURA IT222 OBJETIVOS GENERALES DE LA ASIGNATURA Al final del

Más detalles

BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1

BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1 BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1 1. Cuáles de los siguientes enunciados son declaraciones válidas? 2. Cuál de

Más detalles

SQL (Structured Query Language)- DML

SQL (Structured Query Language)- DML SQL (Structured Query Language)- DML Data Manipulation Language: Data Definition Language: Control Commands: Authorization Commands: SELECT, UPDATE, INSERT, DELETE CREATE: TABLE, INDEX, VIEW DROP: TABLE,

Más detalles

SQL Server 2000. FEMEPA SQL Server 2000

SQL Server 2000. FEMEPA SQL Server 2000 FEMEPA Partes del SQL El lenguaje SQL está compuesto de varios sub-lenguajes, entre los cuales destacan los tres siguientes: DML. Lenguaje de definición de datos. Todas las sentencias de manipulación de

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

ÍNDICE PRIMERA PARTE... 17

ÍNDICE PRIMERA PARTE... 17 ÍNDICE PREFACIO... xv PRIMERA PARTE... 17 CAPÍTULO 1. BASES DE DATOS... 19 BASE DE DATOS RELACIONAL... 20 ESTRUCTURA MÍNIMA DE ALMACENAMIENTO... 21 EJEMPLO DE TABLA... 22 RESUMEN... 23 CAPÍTULO 2. CONSULTAS

Más detalles

ACERCA DE LOS AUTO RES... III AGRADECIMIENTOS... xi INTRODUCCION... Xl

ACERCA DE LOS AUTO RES... III AGRADECIMIENTOS... xi INTRODUCCION... Xl Contenido ACERCA DE LOS AUTO RES..................................... III AGRADECIMIENTOS........................................... xi INTRODUCCION............................................... Xl Introduccion

Más detalles

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 1 SQL Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 2 SQL + Procedural La mayoría de los DBMS actuales permiten extensiones de SQL para la creación de bloques

Más detalles

EL LENGUAJE DE BASES DE DATOS SQL (DDL, DML, TRIGGERS Y STORE PROCEDURES)

EL LENGUAJE DE BASES DE DATOS SQL (DDL, DML, TRIGGERS Y STORE PROCEDURES) EL LENGUAJE DE BASES DE DATOS SQL (DDL, DML, TRIGGERS Y STORE PROCEDURES) Por qué son importantes las Bases de Datos? Las Bases de Datos son el método preferido para el almacenamiento estructurado de datos.

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127 I. DATOS INFORMATIVOS Carrera Especialidad Curso Código Ciclo : Tercero Requisitos Duración Horas Semana : 06 horas Versión : v.0110 II. SUMILLA : COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería

Más detalles

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers Subconsultas Stored Procedures - Triggers Subconsultas Concepto Ubicación En el SELECT En el FROM En el WHERE Operadores IN ANY-ALL EXISTS Concepto Son sentencias SELECT que aparecen dentro de otra consulta

Más detalles

Sub consultas avanzadas

Sub consultas avanzadas Sub consultas avanzadas Objetivo Después de completar este capítulo conocerá lo siguiente: Escribir una consulta de múltiples columnas Describir y explicar el comportamiento de las sub consultas cuando

Más detalles

Procedimientos para agrupar y resumir datos

Procedimientos para agrupar y resumir datos Procedimientos para agrupar y resumir datos Contenido Introducción Presentación de los primeros n valores Uso de funciones de agregado 4 Fundamentos de GROUP BY 8 Generación de valores de agregado dentro

Más detalles

Bases de datos y tablas

Bases de datos y tablas Mario Martínez http://www.lawebdelprogramador.com Bases de datos y tablas Creación con SQL 100499. Cuando concluyas la lectura de este documento sabrás como: Crear bases de datos. Crear tablas y sus campos.

Más detalles

BASES DE DATOS TEMA 4. SQL. UN LENGUAJE DE CONSULTA COMERCIAL PARA BASES DE DATOS RELACIONALES Contenidos generales

BASES DE DATOS TEMA 4. SQL. UN LENGUAJE DE CONSULTA COMERCIAL PARA BASES DE DATOS RELACIONALES Contenidos generales BASES DE DATOS TEMA 4. SQL. UN LENGUAJE DE CONSULTA COMERCIAL PARA BASES DE DATOS RELACIONALES Contenidos generales * Definición de datos en SQL * Consulta de datos en SQL - Estructura básica de una sentencia

Más detalles

Acceso a BD desde Java. JDBC

Acceso a BD desde Java. JDBC JDBC (Java DataBase Connectivity) es una interfaz para programar la ejecución de sentencias SQL sobre SGBDR El API JDBC facilita programar el acceso a BD sin que se tenga en cuenta a que Servidor nos dirigimos

Más detalles

ÍNDICE INTRODUCCIÓN...13

ÍNDICE INTRODUCCIÓN...13 ÍNDICE INTRODUCCIÓN...13 CAPÍTULO 1. EL MODELO RELACIONAL. LENGUAJE SQL...17 1.1 INTRODUCCIÓN AL MODELO RELACIONAL...17 1.2 RELACIONES...19 1.2.1 Definición formal de relación...21 1.2.2 Propiedades y

Más detalles

Acceso a bases de datos MySQL con PHP

Acceso a bases de datos MySQL con PHP GESTIÓN Y ADMINISTRACIÓN WEB Acceso a bases de datos MySQL con PHP Ing. CIP Fabián Silva Alvarado fsilvasys@hotmail.com DEFINICIÓN DE BASE DE DATOS Base de Datos es un conjunto de datos relacionados entre

Más detalles

DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios.

DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios. DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios. SUBSECTOR: Informática y Comunicación. Nombre del Módulo: Base de datos Código: CSTI0170 total: 94 horas Objetivo General: Resolver problemas

Más detalles

MANUALITO MS-SQL SERVER

MANUALITO MS-SQL SERVER MANUALITO MS-SQL SERVER Contenido 1. Crear Store Procedures en MS SQL Server... 1 2. Crear Triggers en MS SQL Server... 5 3. Crear Vistas en MS SQL Server... 9 1. Crear Store Procedures en MS SQL Server

Más detalles

Bases de datos relacionales y el modelo entidad-relación

Bases de datos relacionales y el modelo entidad-relación Bases de datos relacionales y el modelo entidad-relación Qué es una base de datos relacional? El sistema gestor de bases de datos El modelo entidad-relación entidad, atributos y elementos (tablas, columnas

Más detalles

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar / S Q Lenguaje de Consulta Estructurado L Wael Najjar / Wael Stephenson Najjar / Prieto Stephenson Prieto Contenido Parte I El Lenguaje de Consulta Estructurado. Lo que se puede hacer. Lenguaje Estandarizado.

Más detalles

SQL EMBEBIDO FELIPE GARCÍA GÓMEZ

SQL EMBEBIDO FELIPE GARCÍA GÓMEZ UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA SQL EMBEBIDO FELIPE GARCÍA GÓMEZ Profesor: Asignatura: Titulación: Fecha: D. Francisco Ruiz González Bases de Datos Ing. Sup. Informática

Más detalles

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL. GUIA DE LABORATORIO # 5 Nombre de la Practica: Manipulación de datos Lugar de ejecución: Centro de Computo MATERIA: Base de Datos II CICLO: 02-2012 I. OBJETIVOS ESPECIFICOS Qué el estudiante: Manipule

Más detalles

Desarrollo Cobol/DB2

Desarrollo Cobol/DB2 Desarrollo Cobol/DB2 Preparación de programas Precompilador DB2 Toma los postulados SQL del programa fuente Revisa la sintaxis de SQL Crea un programa fuente traducido de las sentencias SQL Crea el DBRM

Más detalles

6- Combinación de tablas

6- Combinación de tablas Objetivos: 6- Combinación de tablas Utiliza sentencias para unir los datos de diferentes tablas. Recursos: Microsoft SQL Server Management Studio Guías prácticas. Script de bases de datos. Introducción

Más detalles

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com. Maestría en Bioinformática Bases de Datos y Sistemas de Información Diseño Lógico Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Conceptos Herramientas Diseño lógico Modelo Relacional Las

Más detalles

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos: CONTENIDO. 1. INTRODUCCIÓN 2. TIPOS DE SENTENCIAS SQL 3. TIPOS DE DATOS 4. SQL PLUS 5. CONSULTAS DE DATOS 6. RESTRICCIÓN Y CLASIFICACIÓN DE LOS DATOS 7. FUNCIONES A NIVEL DE FILA 8. VISUALIZACIÓN DE DATOS

Más detalles

Curso Oficial Microsoft: LENGUAJE DE CONSULTA DE SQL SERVER. Duración : 35 Hrs.

Curso Oficial Microsoft: LENGUAJE DE CONSULTA DE SQL SERVER. Duración : 35 Hrs. Curso Oficial Microsoft: LENGUAJE DE CONSULTA DE SQL SERVER Duración : 35 Hrs. Sobre este curso Este curso de 5 días impartido por un instructor proporciona a estudiantes con las habilidades técnicas necesarias

Más detalles

Modelos y Bases de Datos

Modelos y Bases de Datos Modelos y Bases de Datos MODELOS Y BASES DE DATOS 1 Sesión No. 12 Nombre: Lenguaje SQL: Valores Nulos Contextualización Qué más ofrece el lenguaje SQL? Así como te has introducido en el desarrollo de la

Más detalles

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS AUTORÍA JOSEFA PÉREZ DOMÍNGUEZ TEMÁTICA NUEVAS TECNOLOGIAS ETAPA CICLOS FORMATIVOS DE GRADO SUPERIOR DE INFORMÁTICA Resumen En esta publicación se

Más detalles

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo: TEMA 7.- EL ESTANDAR SQL. El Sublenguaje de Manipulación. El Sublenguaje de Definición. El Sublenguaje de Control. El Sublenguaje Huésped. 1. El Sublenguaje de Manipulación. (Se verá en la clase de problemas)

Más detalles

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación. Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden

Más detalles

Base de datos I Facultad de Ingeniería. Escuela de computación.

Base de datos I Facultad de Ingeniería. Escuela de computación. Base de datos I Facultad de Ingeniería. Escuela de computación. Introducción Este manual ha sido elaborado para orientar al estudiante de Bases de datos I en el desarrollo de sus prácticas de laboratorios,

Más detalles

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con

Más detalles

Tema 3. El modelo Relacional

Tema 3. El modelo Relacional Tema 3. El modelo Relacional Juan Ignacio Rodríguez de León Resumen Presenta el modelo entidad-relación. Visión de alto nivel de las cuestiones referentes a diseño de bases de datos y los problemas encontrados

Más detalles