inicio base de datos( lenguajes)

26
BASE DE DATOS SQL Y OTROS LENGUAJES

Upload: yara-anez

Post on 23-Jun-2015

1.062 views

Category:

Education


3 download

DESCRIPTION

Lenguajes de Base de Datos

TRANSCRIPT

Page 1: Inicio Base de Datos( Lenguajes)

BASE DE DATOS

SQL Y OTROS LENGUAJES

Page 2: Inicio Base de Datos( Lenguajes)

Lenguaje de definición de datos DDL, es una serie de definiciones que especifican el esquema de la base de datos

Lenguaje de manejo de datos DML, permite manipular la base de datos, utilizando las operaciones de recuperar, insertar, actualizar y borrar. Hay 2 tipos:- DML procedimental, se especifica qué datos se necesitan y cómo obtenerlos.- DML no procedimentales, solo se indica qué datos se necesitan, no cómo obtenerlos.

Lenguajes de bases de datos

Page 3: Inicio Base de Datos( Lenguajes)

SQL se ha establecido claramente en el lenguaje estándar de bases de datos relacionales.

Es un lenguaje LDD o de definición de datos, LMD de manipulación de datos, y LCD o de control de datos. Todo esto en un solo lenguaje SQL.

SQL

Los comandos más importante son: LDD, definición de datos:

CREATE TABLE, CREATE INDEX, CREATE VIEW, DROP TABLE, DROP INDEX, DROP VIEW, ALTER TABLE, COMMENT.

LMD, manipulación de datos:

SELECT, INSERT, UPDATE, DELETE. LCD, control de datos:

GRANT, REVOKE, COMMIT, ROOLBACK.

Page 4: Inicio Base de Datos( Lenguajes)

SQLSELECT

Permite recuperar información de la base de datos. Junto con insert, update y delete permiten manipular los

datos de cualquier forma.

SELECT - SELECCIÓNpréstamo (nom_suc nro_pres importe)

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

Ej.1.- “Los préstamos de la sucursal JUNIN” :select * from prestamo where nom_suc=‘JUNIN’

JUNIN 125 1800JUNIN 132 1600

Page 5: Inicio Base de Datos( Lenguajes)

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

Ej.2.- “Los préstamos de la sucursal JUNIN, con importe mayor a 1650” :select * from prestamo where nom_suc=‘JUNIN’ and importe>1650

JUNIN 125 1800

SQLSELECT - SELECCIÓN

Page 6: Inicio Base de Datos( Lenguajes)

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

Ej.3.- “Los clientes que tienen el mismo nombre quesu oficial de créditos” :select * from resp_presta where nom_clien=nom_emple

RUBÉN RUBÉN 178

SQLSELECT - SELECCIÓN

Page 7: Inicio Base de Datos( Lenguajes)

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

Ej.4.- “Número de préstamo e importe de los préstamos con importe mayor a 1500” :select nro_pres, importe from préstamo

where importe = 1500 125 1800132 1600177 1550

SQLSELECT - PROYECCIÓN

Page 8: Inicio Base de Datos( Lenguajes)

Ej.5.- “Los clientes que tienen el mismo nombre quesu oficial de créditos, sin repetir el nombre” :select nom_clien from resp_presta where nom_clien=nom_emple

RUBÉN

SQLSELECT - PROYECCIÓN

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

Page 9: Inicio Base de Datos( Lenguajes)

Ej.6.- “Los clientes que tienen oficial y la ciudad donde radican”. Select * from cliente, resp_presta:

MARCO calle5 La PazRUBÉN calle12 Potosí

cliente(nom_clien calle ciudad)

MARCO calle5 La Paz SUCHA RAMONA 134MARCO calle5 La Paz MARCO JAIME 122MARCO calle5 La Paz RUBÉN RUBÉN 178RUBÉN calle12 Potosí SUCHA RAMONA 134RUBÉN calle12 Potosí MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. resp_presta.nom_clien calle ciudad nom_clien nom_emple

SQLSELECT - PRODUCTO

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

Page 10: Inicio Base de Datos( Lenguajes)

Select * from cliente, resp_presta :

Select * from cliente, resp_presta where resp_presta.nom_clien, cliente.nom_clien

MARCO calle5 La Paz MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. atiende.nom_clien calle ciudad nom_clien nom_emple nro_pres

SQLSELECT - PRODUCTO

MARCO calle5 La Paz SUCHA RAMONA 134MARCO calle5 La Paz MARCO JAIME 122MARCO calle5 La Paz RUBÉN RUBÉN 178RUBÉN calle12 Potosí SUCHA RAMONA 134RUBÉN calle12 Potosí MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. resp_presta.nom_clien calle ciudad nom_clien nom_emple nro_pres

Page 11: Inicio Base de Datos( Lenguajes)

Select * from cliente, resp_présta where resp_presta.nom_clien, cliente.nom_clien

Select cliente.nom_clien, ciudad from cliente, resp_présta where resp_presta.nom_clien, cliente.nom_clien

MARCO La PazRUBÉN Potosí

cliente. nom_clien ciudad

SQLSELECT - PRODUCTO

MARCO calle5 La Paz MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. resp_préstamo.nom_clien calle ciudad nom_clien nom_emple nro_pres

Page 12: Inicio Base de Datos( Lenguajes)

Permite cambiar el nombre de la relación, para diferenciar atributos del mismo nombre.

SUCHA calle5 Sta. CruzRUBÉN calle12 PotosíRAMONA calle8 TarijaRENATO calle1 Potosí

cliente(nom_clien calle ciudad)

Select * from cliente, resp_presta, cliente as cl

SQLSELECT - RENOMBRAR

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

Page 13: Inicio Base de Datos( Lenguajes)

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

Ej.7.- “Los clientes que tienen préstamo o depósito”(select nom_clien from prestatario) union(select nom_clien from impositor)

MARCOSUCHARUBEN

nom_suc

SQLSELECT - UNION

Page 14: Inicio Base de Datos( Lenguajes)

Ej.7.- “Los clientes que tienen préstamo pero notienen depósito”(select nom_clien from prestatario) except(select nom_clien from impositor)

SUCHAnom_suc

SQLSELECT - DIFERENCIA

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

Page 15: Inicio Base de Datos( Lenguajes)

Ej.7.- “Los clientes que tienen préstamo y depósito”(select nom_clien from prestatario) intersect(select nom_clien from impositor)

MARCOnom_suc

SQLSELECT - INTERSECCIÓN

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

Page 16: Inicio Base de Datos( Lenguajes)

Reunión externa.- Cuando hacemos producto natural, las tuplas de una tabla que no se combinan con tuplas de la otra tabla no aparecen en la relación resultante.

1 Select * from tabla1, tabla2 where tabla1.columna (+) = tabla2.columnaen el producto natural mantiene las tuplas de r que no se combinan.

SQLSELECT - OUTER JOIN

Page 17: Inicio Base de Datos( Lenguajes)

2 Select * from tabla1, tabla2 where tabla1.columna = tabla2.columna (+)en el producto natural mantiene las tuplas de s que no se combinan.

3 Select * from tabla1, tabla2 where tabla1.columna (+) = tabla2.columna (+) en el producto natural mantiene las tuplas de r y s que no se combinan.

SQLSELECT - OUTER JOIN

Page 18: Inicio Base de Datos( Lenguajes)

Funciones agregadas.- se puede usar las funciones agregadas: sum, avg, max, min, count, count_distinct, etc. Se usan así:select sum(importe) from préstamosuma todos los importes de la relación préstamo.

Agrupación.- Saca los resultados agrupando por los atributos indicados. La forma es:select sum(importe) from préstamo group by nom_suc suma los préstamos de cada sucursal.

SQLSELECT - FUNCIONES

AGREGADAS

Page 19: Inicio Base de Datos( Lenguajes)

Hasta ahora todos los programas se han centrado en extraer información. Es necesario además, insertar, borrar y modificar información en la base de datos.

Borrado.- Permite eliminar tuplas de la base de datos. Se expresa así:delete from r where <condición>donde r es una relación y es una condición where de SQL, que obtiene las tuplas de r que se eliminarán.

SQLDELETE

Page 20: Inicio Base de Datos( Lenguajes)

Inserción.- Permite aumentar una o varias tuplas en la base de datos. Se usa:insert into r E donde r es una relación y E es un consulta “select” o “values(...)” donde se indican los datos de la tupla a insertar.

Actualización.- Permite modificar uno o varios valores de la base de datos. Se puede usar la proyección extendida:update set <asigna> where <condición>

SQLINSERT, UPDATE

Page 21: Inicio Base de Datos( Lenguajes)

create view v as E; donde E es una consulta “select” del SQL, y v es el nombre de la vista.

SQLVISTAS

Page 22: Inicio Base de Datos( Lenguajes)

Query by example QBE es un lenguaje para bases de datos relacionales, basado en el cálculo relacional de dominios.

Por tanto es lo más próximo a un lenguaje no procedural, en la práctica no existe como lenguaje, está inmerso en los lenguajes comerciales, con excelentes resultados.

También se conoce el QUEL basado en el cálculo relacional de tuplas, el cual no los trataremos.

QBE

Page 23: Inicio Base de Datos( Lenguajes)

QBESELECT

Permite recuperar información de la base de datos. QBE elimina los resultados duplicados por default.

Junto con insert, update y delete permiten manipular los datos de cualquier forma.

Page 24: Inicio Base de Datos( Lenguajes)

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_préstamo (nom_clien nom_emple nro_pres)

Ej.3.- “Los clientes que tienen el mismo nombre quesu oficial de créditos” :

RUBÉN RUBÉN 178

QBESELECT - SELECCIÓN

resp_préstamo nom_clien nom_emple nro_pres

P. _x _x

Page 25: Inicio Base de Datos( Lenguajes)

Hasta ahora todos los programas se han centrado en extraer información. Es necesario además, insertar, borrar y modificar información en la base de datos.

Borrado.- Permite eliminar tuplas de la base de datos. Por ejemplo para eliminar los préstamos de la sucursal JUNIN:

SQLDELETE

préstamo nom_suc nro_pres importe

D. BOLIVAR

Page 26: Inicio Base de Datos( Lenguajes)

Inserción.- Permite aumentar una o varias tuplas en la base de datos. Por ejemplo para insertar un cliente:

Actualización.- Permite modificar uno o varios valores de la base de datos. Por ejemplo para incrementar el 5% a todos los saldos de las cuentas:

QBEINSERT, UPDATE

cliente nom_clien calle ciudad

I. JOSELITO ca3 SCZ

cuenta nom_suc nro_cuen saldo

U. _x * 1.05_x