inicio base de datos( lenguajes)
DESCRIPTION
Lenguajes de Base de DatosTRANSCRIPT
BASE DE DATOS
SQL Y OTROS 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
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.
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
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
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
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
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)
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)
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
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
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)
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
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)
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)
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
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
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
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
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
create view v as E; donde E es una consulta “select” del SQL, y v es el nombre de la vista.
SQLVISTAS
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
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.
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
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
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