SlideShare una empresa de Scribd logo
1 de 35
3.1
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Capítulo 3: SQLCapítulo 3: SQL
Structura básica
Operaciones con Conjuntos
Funciones de Agregado
Valores Null
Subconsultas Anidadas
Relaciones Derivadas
Vistas
Modificació n de la Base de Datos
Union de Relaciones
DDL, Data Definition Language
3.2
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Agencia (AgenciaNombre, AgenciaCiudad)
Cuenta (Cuenta-numero, AgenciaNombre, CuentaMonto)
Depositor (ClienteNombre, CuentaNumero)
Cliente (ClienteNombre, ClienteCalle, ClienteCiudad)
Prestatario (ClienteNombre, PrestamoNumero)
Prestamo (PrestamoNumero, AgenciaNombre, Monto)
Esquema usado en los EjemplosEsquema usado en los Ejemplos
3.3
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Estructura BásicaEstructura Básica
SQL esta basado en un conjunto de operaciones relacionales.
Una tipica consulta en SQL ha de tener la siguiente forma:
select A1, A2, ..., An
from r1, r2, ..., rm
where P
A representa attributos
r representa relaciones
P es un condicionante
El resultado de una consulta SQL es una relació n
3.4
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
La clausula SelectLa clausula Select
Select lista los atributos deseados en una consulta
Ejemplo: Encuentra los nombres de los clientes
select nombre
from cliente
NOTE: SQL no permite ‘-’ en los nombres, en ves de ese caracter puede usar “_”
NOTE: SQL no es sensible a las mayúsculas y minúsculas, por lo que puede
indistamente escribir en cualquiera de ellas.
SQL permite registros duplicados en él resultado de una consulta.
Para forzar la eliminació n de registros o filas duplicadas teclee distinct despues
de la palabra select.
Encuentre todos los precios de videos de videos disponibles en el videocentro,
pero sin que estos precios se vean repetidos
select distinct video_precio
from video
3.5
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
La clausula Select (Cont.)La clausula Select (Cont.)
Un asterisco en la clausula Select es un comodin que significa “todos los
atributos”
select *
from alquiler
Select puede incluir expresiones aritméticas (+, –, ∗, /). Ejemplo
select prestamo_numero, prestamo_ciudad, monto*1000 from prestamo
Note como en el ejemplo anterior el valor monto es multiplicado por 100.
3.6
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Clausula WhereClausula Where
Where especifica condiciones que deben cumplir los registros o filas a mostrar
en los resultados.
Ejemplo: Encontrar todos los numeros de prestamos realizados en la Agencia de
la ciudad de Manta cuyos montos sean mayor a $1200
select prestamo_numero
from prestamo
where agencia_nombre = ‘Manta’ and monto >1200
Note como es posible utilizar los operadores ló gicos AND, OR, NOT.
Como detalle considere tambien la posibilidad de incluir expresiones aritméticas
en las condiciones del where.
SQL incluye el operador de comparació n between (tiene significado “entre” en
españ ol)
Ejemplo: encuentra el numero de prestamos cuyos montos esten entre $90,000 y
$100,000
select prestamo_numero from prestamo where monto between 90000 and
100000
3.7
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
La clausula fromLa clausula from
Lista las entidades que participan en la consulta; pero
un uso más avanzado es lo que se conoce como
producto cartesiano….
Encuentre el producto cartesiano de Prestatario por
Prestamo
select ∗ from prestatario, prestamo
Encuentra el nombre , numero de prestamos y monto
del prestamo de todos los clientes que tienen un
prestamo en la agencia Manta.
select cliente-nombre, prestatario.prestamo-numero,
monto from prestatario, prestamo where
prestatario.prestamo-numero= prestamo.prestamo-
numero and agencia-nombre = ‘Manta’
3.8
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
La operació n de renombresLa operació n de renombres
(atributos derivados)(atributos derivados)
SQL permite renombrar relaciones y atributos usando la sentencia AS:
viejonombre as nuevonombre
Encuentra el nombre, numero de prestamos, monto de prestamos de todos los
clientes. Renombra la columna numero-prestamo como prestamo.id
select cliente-nombre, prestatario.numero-prestamo as prestamo-id, monto
from prestatario, prestamo
where prestatario.numero-prestamo = prestamo.numero-prestamo
3.9
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Operaciones con cadenasOperaciones con cadenas
SQL incluye varios operadores para manejar cadenas como los siguientes
(realmente son muchos pero se iran aprendiendo de a poco):
porcentaje (%). el % permite hacer referencia a cualquier subcadena.
subrayado (_). _ para hacer referencia a cualquier caracter.
Encuentra el nombre de los clientes cuyo nombre de calle incluya la palabra
“Main”.
select cliente-nombre
from cliente
where cliente-calle like ‘%Main%’
SQL soporta una variedad de operaciones de cadena como:
concatenació n (using “||”)
convertir de minusculas a mayusculas y viceversa
encontrar tamañ os de cadenas, extraer subcadenas, etc.
3.10
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Ordenando registrosOrdenando registros
Liste ordenadamente los nombres de los clientes que tienen un prestamo en la
Agencia Manta. Dichos datos no han de estar repetidos (por ejemplo cuando un
cliente tuviese dos creditos y no antepongo distinct sin duda que el aparecería
dos veces en el resultado y eso en este ejemplo no es deseable )
select distinct cliente-nombre
from prestatario, prestamo
where prestatrio.prestamo-numero = prestamo.prestamo-numero and
agencia-nombre = ‘Manta’
order by cliente-nombre
La clausula desc es una variante para ordenar los datos de forma descendente.
Si ella no se especifica se asume que usted uso asc que sirve para ordenar de
forma ascendente.
Ejemplo: order by cliente-nombre desc
3.11
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Operaciones con conjuntos,Operaciones con conjuntos,
EjemplosEjemplos
Las operaciones de conjuntos tales como union, intersect, and except
operan de la misma forma en que les estudió en Teoría de conjuntos.
Cada una de las operaciones anteriores de forma automática eliminan
duplicados; Si se quisiesen los datos duplicados bastaría escribir union all,
intersect all y except all.
Encuentre todos los clientes que tienen un préstamo, una cuenta, o ambos :
(select cliente-nombre from depositor)
union
(select cliente-nombre from prestatario)
Encuentre todos los clientes que tienen préstamo y cuenta.
(select cliente-nombre from depositor)
intersect
(select cliente-nombre from prestatario)
Encuentre todos los clientes que tienen una cuenta pero ningún préstamo
(select cliente-nombre from depositor)
except
(select cliente-nombre from prestatario)
3.12
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Funciones de Agregado, EjemplosFunciones de Agregado, Ejemplos
Estas funciones retornan un valor y operan sobre un conjuntos de valores de un
campo.
avg: valor medio
min: valor minimo
max: valor maximo
sum: suma de valores
count: numero de valores
Encuentre el valor medio del saldo de cuentas en la agencia ‘Manta’
select avg (cuenta-monto) from cuenta where Agencia-Nombre = ‘Manta’
Encuentre el numero de clientes registrados
select count (*) from cliente
3.13
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Funciones de Agregado, Ejemplos–Funciones de Agregado, Ejemplos–
Group ByGroup By
Encuentra el número de depositores de cada agencia.
Select agencia-nombre, count (cliente-nombre)
from depositor, cuenta
where depositor.cuenta-numero = cuenta.cuenta-numero
group by agencia-nombre
Nota: Los atributos en la cláusula Select que esten fuera de las funciones de
agregado deben aparecer en la sentencia group by
3.14
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Funciones de Agregado, Ejemplos–Funciones de Agregado, Ejemplos–
HAVINGHAVING
Encuentra el nombre de las agencia donde la media de saldos de cuentas es
mayor a $1200.
select Agencia-nombre, avg (cuenta-nomto)
from cuenta
group by agencia-nombre
having avg (cuenta-monto) > 1200
Note: Las condiciones de having se aplican después de la formació n de
grupos, en tanto que las condiciones del where son aplicadas antes de la
formació n de los grupos
3.15
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Valores NullValores Null
Es posible que para algunos registros se tenga valores null en algunos de sus
atributos
null significa un valor desconocido o que es un valor que no existe.
El predicado is null puede ser usado para checar valores nulos.
Ejemplo: Encuentra todos los numeros de prestamos que aparecen en la
tabla prestamos con valores nulos en los montos.
select prestamo-numero
from prestamo
where monto is null
El resultado de cualquier expresió n aritmética que involucre null es tambien
null
Ejemplo: 5 + null retorna null
Nota: algunas funciones de agregado simplemente ignoran los valores nulos
3.16
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Valores Null y operaciones ló gicasValores Null y operaciones ló gicas
Cualquier comparació n con null retorna unknown (que tiene
significado desconocido)
Ejemplo 5 < null or null <> null or null = null
Three-valued logic using the truth value unknown:
OR: (unknown or true) = true, (unknown or false) = unknown
(unknown or unknown) = unknown
AND: (true and unknown) = unknown, (false and unknown) =
false,
(unknown and unknown) = unknown
NOT: (not unknown) = unknown
3.17
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Subconsultas anidadas (SentenciaSubconsultas anidadas (Sentencia
IN)IN)
SQL provee mecanismos para realizar subconsultas
Una subconsulta es un select-from-where que es especificado dentro de una
subconsulta.
Un uso común de las subconsultas es ejecutar consultas sobre subgrupos
ló gicos de datos
Ejemplo: Encuentre todos los clientes que tienen cuenta y préstamo en el banco
select distinct cliente-nombre from prestatario where cliente-nombre in
(select cliente-nombre from depositor)
Ejemplo de un caso supuesto: Encuentre todos los clientes que tienen un
préstamo en el banco pero no tenga una cuenta en el banco
select distinct cliente-nombre from prestatario where cliente-nombre NOT in (select
cliente-nombre from depositor)
3.18
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Subconsultas anidadas (SentenciaSubconsultas anidadas (Sentencia
IN)IN)
Encuentre todos los clientes que tienen una cuenta y un prestamo en la agencia
Chone
select distinct cliente-nombre from prestatario, prestamo where
prestatario.prestamo-numero = prestamo.prestamo-numero and Agencia-
nombre = ‘Chone’
and (agencia-nombre, cliente-nombre) in
(select agencia-nombre, cliente-nombre from depositor, cuenta
where depositor.cuenta-numero = cuenta.cuenta-numero)
Note: Esta consulta puede ser escrita de una manera muy simple, por tanto el
ejemplo es realmente ilustrativo
3.19
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Relaciones DerivadasRelaciones Derivadas
Encuentre la media del saldo de cuentas de esas agencias donde la media del
saldo de cuentas es mayor a $1200
select agencia-nombre, media-saldo
from (select agencia-nombre, avg (saldo) from cuenta group by Agencia-nombre)
as rel-derivada (Agencia-nombre, media-saldo)
where media-saldo > 1200
Note que no se necesita usar having, después de calcular temporalmente la
vista rel-derivada en la clausula from, pues los atributos de la relació n derivada
pueden ser usados directamente en la claúsula where.
3.22
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Modificando BD – Delete-sqlModificando BD – Delete-sql
Borra todas las cuentas registradas en la agencia ‘FLAVIO
ALFARO’ delete from cuenta
where agencia-nombre = ‘FLAVIO ALFARO’
Borra todas las cuentas de todas las agencias localizadas en la
ciudad de QUITO.
delete from CUENTA
where agencia-nombre in (select agencia-nombre
from agencia
where agencia-ciudad = ‘QUITO’)
delete from depositor
where cuenta-numero in
(select cuenta-numero
from agencia, cuenta
where agencia-ciudad = ‘QUITO’
and agencia-nombre = cuenta.agencia-nombre)
3.23
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Modificando BD – Delete-sqlModificando BD – Delete-sql
Borra todos los registros que esten por debajo de la media del
saldo de cuentas del banco.
delete from cuenta
where cuenta-monto< (select avg (cuenta-monto)
from cuenta)
Problem: as we delete tuples from deposit, the average balance
changes
Solution used in SQL:
1. First, compute avg balance and find all tuples to delete
2. Next, delete all tuples found above (without recomputing avg or
retesting the tuples)
3.24
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Modificando BD – Insert-sqlModificando BD – Insert-sql
Agrega una nueva cuenta
insert into cuenta
values (‘C001’, ‘CHONE’,1200)
O LO QUE ES LO MISMO
insert into cuenta (agencia-nombre, cuenta-monto, cuenta-
numero) values (‘CHONE’, 1200, ‘C001’)
Agrega un nuevo registro a una cuenta pero con un saldo null
insert into cuenta values (‘C002’,‘MANTA’, null)
3.26
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Modificando BD – Insert-sqlModificando BD – Insert-sql
Incrementa en un 6% todas las cuentas con montos sobre los
$10000, todas las otras se deben icrementar en un 5%.
Se necesita escribir dos sentencias updtes:
update cuenta
set cuenta-monto = cuenta-monto ∗ 1.06
where cuenta-monto > 10000
update cuenta
set cuenta-monto = cuenta-monto ∗ 1.05
where balance ≤ 10000
El orden es importante, en la siguiente lámina vamos a usar la
sentencia case
3.27
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Uso de Case-End para hacerUso de Case-End para hacer
Updates condicionalesUpdates condicionales
Consultas como las anteriores donde se nos presenten casos
del clasico if-else se pueden escribir así:
update cuenta
set cuenta-monto
= case
when cuenta-monto <= 10000
then cuenta-monto*1.05
else cuenta-monto * 1.06
end
3.30
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Joined RelationsJoined Relations
La operació n JOIN toma dos relaciones y devuelve otra relaciín.
En suma esta operació n es utilizada como las tipicas subconsultas (consultas en
FROM)
La condicion del JOIN define que tuplas (esto es filas o registros) y por ende que
atributos se presentaran en la relació n resultantes
Join type – Esxsiten cuatro tipos de JOIN a saber:
Nota: Aunque existen cuatro tipos de JOIN en la práctica se suele usar INNER JOIN y
pocas veces los otros…
Ejemplo;
Join Types
inner join
left outer join
right outer join
full outer join
Join Conditions
natural
on <predicate>
using (A1, A2, ..., An)
3.31
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Joined Relations – Datasets forJoined Relations – Datasets for
ExamplesExamples
Relation loan
Relation borrower
customer-name loan-number
Jones
Smith
Hayes
L-170
L-230
L-155
amount
3000
4000
1700
branch-name
Downtown
Redwood
Perryridge
loan-number
L-170
L-230
L-260
Note: borrower information missing for L-260 and loan
information missing for L-155
3.32
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Joined Relations – ExamplesJoined Relations – Examples
loan inner join borrower on
loan.loan-number = borrower.loan-number
loan left outer join borrower on
loan.loan-number = borrower.loan-number
branch-name amount
Downtown
Redwood
3000
4000
customer-name loan-number
Jones
Smith
L-170
L-230
loan-number
L-170
L-230
branch-name amount
Downtown
Redwood
Perryridge
3000
4000
1700
customer-name loan-number
Jones
Smith
null
L-170
L-230
null
loan-number
L-170
L-230
L-260
3.33
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Joined Relations – ExamplesJoined Relations – Examples
loan natural inner join borrower
loan natural right outer join borrower
branch-name amount
Downtown
Redwood
3000
4000
customer-name
Jones
Smith
loan-number
L-170
L-230
branch-name amount
Downtown
Redwood
null
3000
4000
null
customer-name
Jones
Smith
Hayes
loan-number
L-170
L-230
L-155
3.34
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Joined Relations – ExamplesJoined Relations – Examples
loan full outer join borrower using (loan-number)
Find all customers who have either an account or a loan (but
not both) at the bank.
branch-name amount
Downtown
Redwood
Perryridge
null
3000
4000
1700
null
customer-name
Jones
Smith
null
Hayes
loan-number
L-170
L-230
L-260
L-155
select customer-name
from (depositor natural full outer join borrower)
where account-number is null or loan-number is null
3.35
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Data Definition Language (DDL)Data Definition Language (DDL)
The schema for each relation.
The domain of values associated with each attribute.
Integrity constraints
The set of indices to be maintained for each relations.
Security and authorization information for each relation.
The physical storage structure of each relation on disk.
Allows the specification of not only a set of relations but also
information about each relation, including:
3.36
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Domain Types in SQLDomain Types in SQL
char(n). Fixed length character string, with user-specified length n.
varchar(n). Variable length character strings, with user-specified
maximum length n.
int. Integer (a finite subset of the integers that is machine-dependent).
smallint. Small integer (a machine-dependent subset of the integer
domain type).
numeric(p,d). Fixed point number, with user-specified precision of p
digits, with n digits to the right of decimal point.
real, double precision. Floating point and double-precision floating
point numbers, with machine-dependent precision.
float(n). Floating point number, with user-specified precision of at least n
digits.
Null values are allowed in all the domain types. Declaring an attribute to be
not null prohibits null values for that attribute.
create domain construct in SQL-92 creates user-defined domain types
create domain person-name char(20) not null
3.37
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Date/Time Types in SQL (Cont.)Date/Time Types in SQL (Cont.)
date. Dates, containing a (4 digit) year, month and date
E.g. date ‘2001-7-27’
time. Time of day, in hours, minutes and seconds.
E.g. time ’09:00:30’ time ’09:00:30.75’
timestamp: date plus time of day
E.g. timestamp ‘2001-7-27 09:00:30.75’
Interval: period of time
E.g. Interval ‘1’ day
Subtracting a date/time/timestamp value from another gives an interval value
Interval values can be added to date/time/timestamp values
Can extract values of individual fields from date/time/timestamp
E.g. extract (year from r.starttime)
Can cast string types to date/time/timestamp
E.g. cast <string-valued-expression> as date
3.38
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Example QueryExample Query
Specify the query in SQL and declare a cursor for it
EXEC SQL
declare c cursor for
select customer-name, customer-city
from depositor, customer, account
where depositor.customer-name = customer.customer-name
and depositor account-number = account.account-number
and account.balance > :amount
END-EXEC
From within a host language, find the names and cities of
customers with more than the variable amount dollars in some
account.
3.39
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Updates Through CursorsUpdates Through Cursors
Can update tuples fetched by cursor by declaring that the cursor
is for update
declare c cursor for
select *
from account
where branch-name = ‘Perryridge’
for update
To update tuple at the current location of cursor
update account
set balance = balance + 100
where current of c
3.40
U.L.E.A.M. – Chone
Administración de Bases de Datos
Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com
Ver el esquema Atras
Other SQL FeaturesOther SQL Features
SQL sessions
client connects to an SQL server, establishing a session
executes a series of statements
disconnects the session
can commit or rollback the work carried out in the session
An SQL environment contains several components,
including a user identifier, and a schema, which
identifies which of several schemas a session is using.

Más contenido relacionado

Destacado

ISOECO PRESENTACIÓN dECO
ISOECO PRESENTACIÓN dECOISOECO PRESENTACIÓN dECO
ISOECO PRESENTACIÓN dECOfetopax
 
Tiposdeautoestima
TiposdeautoestimaTiposdeautoestima
TiposdeautoestimaCompa01
 
D-vain Negocio
D-vain NegocioD-vain Negocio
D-vain Negociomjnavarrot
 
Sherlock Holmes ako ho (ne)poznáte
Sherlock Holmes ako ho (ne)poznáteSherlock Holmes ako ho (ne)poznáte
Sherlock Holmes ako ho (ne)poznáteNin
 
Prevencion migraña
Prevencion migrañaPrevencion migraña
Prevencion migrañaLorena Gil
 
D I A N A T I R O N Presentation
D  I  A  N  A    T  I  R O N PresentationD  I  A  N  A    T  I  R O N Presentation
D I A N A T I R O N Presentationdiana_tiron
 
Dream home project.pptm
Dream home project.pptmDream home project.pptm
Dream home project.pptm13dshardin
 
Trabajando en Wallwisher
Trabajando en WallwisherTrabajando en Wallwisher
Trabajando en WallwisherDel Cardoza
 
Power point presentacion
Power point presentacionPower point presentacion
Power point presentaciondaviidtgn
 
O dragão rabugento
O dragão rabugentoO dragão rabugento
O dragão rabugentocjzz112
 
Aspectos centrales de_la_propuesta_curricular_del_nivel (3)
Aspectos centrales de_la_propuesta_curricular_del_nivel (3)Aspectos centrales de_la_propuesta_curricular_del_nivel (3)
Aspectos centrales de_la_propuesta_curricular_del_nivel (3)genesisk11
 

Destacado (20)

ISOECO PRESENTACIÓN dECO
ISOECO PRESENTACIÓN dECOISOECO PRESENTACIÓN dECO
ISOECO PRESENTACIÓN dECO
 
antecedentes del periodismos cibernetico
antecedentes del periodismos ciberneticoantecedentes del periodismos cibernetico
antecedentes del periodismos cibernetico
 
New year 2012
New year 2012New year 2012
New year 2012
 
Tiposdeautoestima
TiposdeautoestimaTiposdeautoestima
Tiposdeautoestima
 
Como estudar
Como estudarComo estudar
Como estudar
 
Bruno mars ♥
Bruno mars ♥Bruno mars ♥
Bruno mars ♥
 
D-vain Negocio
D-vain NegocioD-vain Negocio
D-vain Negocio
 
Ministerio de inclucion social
Ministerio de inclucion socialMinisterio de inclucion social
Ministerio de inclucion social
 
Sherlock Holmes ako ho (ne)poznáte
Sherlock Holmes ako ho (ne)poznáteSherlock Holmes ako ho (ne)poznáte
Sherlock Holmes ako ho (ne)poznáte
 
Prevencion migraña
Prevencion migrañaPrevencion migraña
Prevencion migraña
 
Mejores navegadores en internet
Mejores navegadores en internetMejores navegadores en internet
Mejores navegadores en internet
 
D I A N A T I R O N Presentation
D  I  A  N  A    T  I  R O N PresentationD  I  A  N  A    T  I  R O N Presentation
D I A N A T I R O N Presentation
 
Dream home project.pptm
Dream home project.pptmDream home project.pptm
Dream home project.pptm
 
Historia de lagunillas
Historia de lagunillasHistoria de lagunillas
Historia de lagunillas
 
Trabajando en Wallwisher
Trabajando en WallwisherTrabajando en Wallwisher
Trabajando en Wallwisher
 
Halloween
HalloweenHalloween
Halloween
 
Power point presentacion
Power point presentacionPower point presentacion
Power point presentacion
 
O dragão rabugento
O dragão rabugentoO dragão rabugento
O dragão rabugento
 
Aspectos centrales de_la_propuesta_curricular_del_nivel (3)
Aspectos centrales de_la_propuesta_curricular_del_nivel (3)Aspectos centrales de_la_propuesta_curricular_del_nivel (3)
Aspectos centrales de_la_propuesta_curricular_del_nivel (3)
 
Alumnos
AlumnosAlumnos
Alumnos
 

Similar a Ch3 español (20)

Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
P:\Lenguajes Formales
P:\Lenguajes FormalesP:\Lenguajes Formales
P:\Lenguajes Formales
 
Laboratorio n2 de ayudantía sie
Laboratorio n2 de ayudantía  sieLaboratorio n2 de ayudantía  sie
Laboratorio n2 de ayudantía sie
 
Fundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacionalFundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacional
 
SantaellaU9-EstructurasdeRegistros
SantaellaU9-EstructurasdeRegistrosSantaellaU9-EstructurasdeRegistros
SantaellaU9-EstructurasdeRegistros
 
Sql2rjerez3
Sql2rjerez3Sql2rjerez3
Sql2rjerez3
 
Sq lhorizonte
Sq lhorizonteSq lhorizonte
Sq lhorizonte
 
Sql
SqlSql
Sql
 
Datos Numéricos parte 1
Datos Numéricos parte 1Datos Numéricos parte 1
Datos Numéricos parte 1
 
DISEÑO DE NEGOCIOS DE LA OPERACIÓN RUP
DISEÑO DE NEGOCIOS DE LA OPERACIÓN RUPDISEÑO DE NEGOCIOS DE LA OPERACIÓN RUP
DISEÑO DE NEGOCIOS DE LA OPERACIÓN RUP
 
Guia sql
Guia sqlGuia sql
Guia sql
 
Guia sql
Guia sqlGuia sql
Guia sql
 
Sql2
Sql2Sql2
Sql2
 
Prueba 1 oracle_273
Prueba 1 oracle_273Prueba 1 oracle_273
Prueba 1 oracle_273
 
1. modelo entidad relacion ejemplo
1. modelo entidad relacion   ejemplo1. modelo entidad relacion   ejemplo
1. modelo entidad relacion ejemplo
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Algoritmo en informática
Algoritmo en informáticaAlgoritmo en informática
Algoritmo en informática
 
Uml Xp 02 Ucc
Uml Xp 02 UccUml Xp 02 Ucc
Uml Xp 02 Ucc
 
Proyecto 2
Proyecto 2Proyecto 2
Proyecto 2
 

Ch3 español

  • 1. 3.1 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Capítulo 3: SQLCapítulo 3: SQL Structura básica Operaciones con Conjuntos Funciones de Agregado Valores Null Subconsultas Anidadas Relaciones Derivadas Vistas Modificació n de la Base de Datos Union de Relaciones DDL, Data Definition Language
  • 2. 3.2 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Agencia (AgenciaNombre, AgenciaCiudad) Cuenta (Cuenta-numero, AgenciaNombre, CuentaMonto) Depositor (ClienteNombre, CuentaNumero) Cliente (ClienteNombre, ClienteCalle, ClienteCiudad) Prestatario (ClienteNombre, PrestamoNumero) Prestamo (PrestamoNumero, AgenciaNombre, Monto) Esquema usado en los EjemplosEsquema usado en los Ejemplos
  • 3. 3.3 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Estructura BásicaEstructura Básica SQL esta basado en un conjunto de operaciones relacionales. Una tipica consulta en SQL ha de tener la siguiente forma: select A1, A2, ..., An from r1, r2, ..., rm where P A representa attributos r representa relaciones P es un condicionante El resultado de una consulta SQL es una relació n
  • 4. 3.4 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras La clausula SelectLa clausula Select Select lista los atributos deseados en una consulta Ejemplo: Encuentra los nombres de los clientes select nombre from cliente NOTE: SQL no permite ‘-’ en los nombres, en ves de ese caracter puede usar “_” NOTE: SQL no es sensible a las mayúsculas y minúsculas, por lo que puede indistamente escribir en cualquiera de ellas. SQL permite registros duplicados en él resultado de una consulta. Para forzar la eliminació n de registros o filas duplicadas teclee distinct despues de la palabra select. Encuentre todos los precios de videos de videos disponibles en el videocentro, pero sin que estos precios se vean repetidos select distinct video_precio from video
  • 5. 3.5 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras La clausula Select (Cont.)La clausula Select (Cont.) Un asterisco en la clausula Select es un comodin que significa “todos los atributos” select * from alquiler Select puede incluir expresiones aritméticas (+, –, ∗, /). Ejemplo select prestamo_numero, prestamo_ciudad, monto*1000 from prestamo Note como en el ejemplo anterior el valor monto es multiplicado por 100.
  • 6. 3.6 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Clausula WhereClausula Where Where especifica condiciones que deben cumplir los registros o filas a mostrar en los resultados. Ejemplo: Encontrar todos los numeros de prestamos realizados en la Agencia de la ciudad de Manta cuyos montos sean mayor a $1200 select prestamo_numero from prestamo where agencia_nombre = ‘Manta’ and monto >1200 Note como es posible utilizar los operadores ló gicos AND, OR, NOT. Como detalle considere tambien la posibilidad de incluir expresiones aritméticas en las condiciones del where. SQL incluye el operador de comparació n between (tiene significado “entre” en españ ol) Ejemplo: encuentra el numero de prestamos cuyos montos esten entre $90,000 y $100,000 select prestamo_numero from prestamo where monto between 90000 and 100000
  • 7. 3.7 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras La clausula fromLa clausula from Lista las entidades que participan en la consulta; pero un uso más avanzado es lo que se conoce como producto cartesiano…. Encuentre el producto cartesiano de Prestatario por Prestamo select ∗ from prestatario, prestamo Encuentra el nombre , numero de prestamos y monto del prestamo de todos los clientes que tienen un prestamo en la agencia Manta. select cliente-nombre, prestatario.prestamo-numero, monto from prestatario, prestamo where prestatario.prestamo-numero= prestamo.prestamo- numero and agencia-nombre = ‘Manta’
  • 8. 3.8 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras La operació n de renombresLa operació n de renombres (atributos derivados)(atributos derivados) SQL permite renombrar relaciones y atributos usando la sentencia AS: viejonombre as nuevonombre Encuentra el nombre, numero de prestamos, monto de prestamos de todos los clientes. Renombra la columna numero-prestamo como prestamo.id select cliente-nombre, prestatario.numero-prestamo as prestamo-id, monto from prestatario, prestamo where prestatario.numero-prestamo = prestamo.numero-prestamo
  • 9. 3.9 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Operaciones con cadenasOperaciones con cadenas SQL incluye varios operadores para manejar cadenas como los siguientes (realmente son muchos pero se iran aprendiendo de a poco): porcentaje (%). el % permite hacer referencia a cualquier subcadena. subrayado (_). _ para hacer referencia a cualquier caracter. Encuentra el nombre de los clientes cuyo nombre de calle incluya la palabra “Main”. select cliente-nombre from cliente where cliente-calle like ‘%Main%’ SQL soporta una variedad de operaciones de cadena como: concatenació n (using “||”) convertir de minusculas a mayusculas y viceversa encontrar tamañ os de cadenas, extraer subcadenas, etc.
  • 10. 3.10 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Ordenando registrosOrdenando registros Liste ordenadamente los nombres de los clientes que tienen un prestamo en la Agencia Manta. Dichos datos no han de estar repetidos (por ejemplo cuando un cliente tuviese dos creditos y no antepongo distinct sin duda que el aparecería dos veces en el resultado y eso en este ejemplo no es deseable ) select distinct cliente-nombre from prestatario, prestamo where prestatrio.prestamo-numero = prestamo.prestamo-numero and agencia-nombre = ‘Manta’ order by cliente-nombre La clausula desc es una variante para ordenar los datos de forma descendente. Si ella no se especifica se asume que usted uso asc que sirve para ordenar de forma ascendente. Ejemplo: order by cliente-nombre desc
  • 11. 3.11 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Operaciones con conjuntos,Operaciones con conjuntos, EjemplosEjemplos Las operaciones de conjuntos tales como union, intersect, and except operan de la misma forma en que les estudió en Teoría de conjuntos. Cada una de las operaciones anteriores de forma automática eliminan duplicados; Si se quisiesen los datos duplicados bastaría escribir union all, intersect all y except all. Encuentre todos los clientes que tienen un préstamo, una cuenta, o ambos : (select cliente-nombre from depositor) union (select cliente-nombre from prestatario) Encuentre todos los clientes que tienen préstamo y cuenta. (select cliente-nombre from depositor) intersect (select cliente-nombre from prestatario) Encuentre todos los clientes que tienen una cuenta pero ningún préstamo (select cliente-nombre from depositor) except (select cliente-nombre from prestatario)
  • 12. 3.12 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Funciones de Agregado, EjemplosFunciones de Agregado, Ejemplos Estas funciones retornan un valor y operan sobre un conjuntos de valores de un campo. avg: valor medio min: valor minimo max: valor maximo sum: suma de valores count: numero de valores Encuentre el valor medio del saldo de cuentas en la agencia ‘Manta’ select avg (cuenta-monto) from cuenta where Agencia-Nombre = ‘Manta’ Encuentre el numero de clientes registrados select count (*) from cliente
  • 13. 3.13 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Funciones de Agregado, Ejemplos–Funciones de Agregado, Ejemplos– Group ByGroup By Encuentra el número de depositores de cada agencia. Select agencia-nombre, count (cliente-nombre) from depositor, cuenta where depositor.cuenta-numero = cuenta.cuenta-numero group by agencia-nombre Nota: Los atributos en la cláusula Select que esten fuera de las funciones de agregado deben aparecer en la sentencia group by
  • 14. 3.14 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Funciones de Agregado, Ejemplos–Funciones de Agregado, Ejemplos– HAVINGHAVING Encuentra el nombre de las agencia donde la media de saldos de cuentas es mayor a $1200. select Agencia-nombre, avg (cuenta-nomto) from cuenta group by agencia-nombre having avg (cuenta-monto) > 1200 Note: Las condiciones de having se aplican después de la formació n de grupos, en tanto que las condiciones del where son aplicadas antes de la formació n de los grupos
  • 15. 3.15 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Valores NullValores Null Es posible que para algunos registros se tenga valores null en algunos de sus atributos null significa un valor desconocido o que es un valor que no existe. El predicado is null puede ser usado para checar valores nulos. Ejemplo: Encuentra todos los numeros de prestamos que aparecen en la tabla prestamos con valores nulos en los montos. select prestamo-numero from prestamo where monto is null El resultado de cualquier expresió n aritmética que involucre null es tambien null Ejemplo: 5 + null retorna null Nota: algunas funciones de agregado simplemente ignoran los valores nulos
  • 16. 3.16 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Valores Null y operaciones ló gicasValores Null y operaciones ló gicas Cualquier comparació n con null retorna unknown (que tiene significado desconocido) Ejemplo 5 < null or null <> null or null = null Three-valued logic using the truth value unknown: OR: (unknown or true) = true, (unknown or false) = unknown (unknown or unknown) = unknown AND: (true and unknown) = unknown, (false and unknown) = false, (unknown and unknown) = unknown NOT: (not unknown) = unknown
  • 17. 3.17 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Subconsultas anidadas (SentenciaSubconsultas anidadas (Sentencia IN)IN) SQL provee mecanismos para realizar subconsultas Una subconsulta es un select-from-where que es especificado dentro de una subconsulta. Un uso común de las subconsultas es ejecutar consultas sobre subgrupos ló gicos de datos Ejemplo: Encuentre todos los clientes que tienen cuenta y préstamo en el banco select distinct cliente-nombre from prestatario where cliente-nombre in (select cliente-nombre from depositor) Ejemplo de un caso supuesto: Encuentre todos los clientes que tienen un préstamo en el banco pero no tenga una cuenta en el banco select distinct cliente-nombre from prestatario where cliente-nombre NOT in (select cliente-nombre from depositor)
  • 18. 3.18 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Subconsultas anidadas (SentenciaSubconsultas anidadas (Sentencia IN)IN) Encuentre todos los clientes que tienen una cuenta y un prestamo en la agencia Chone select distinct cliente-nombre from prestatario, prestamo where prestatario.prestamo-numero = prestamo.prestamo-numero and Agencia- nombre = ‘Chone’ and (agencia-nombre, cliente-nombre) in (select agencia-nombre, cliente-nombre from depositor, cuenta where depositor.cuenta-numero = cuenta.cuenta-numero) Note: Esta consulta puede ser escrita de una manera muy simple, por tanto el ejemplo es realmente ilustrativo
  • 19. 3.19 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Relaciones DerivadasRelaciones Derivadas Encuentre la media del saldo de cuentas de esas agencias donde la media del saldo de cuentas es mayor a $1200 select agencia-nombre, media-saldo from (select agencia-nombre, avg (saldo) from cuenta group by Agencia-nombre) as rel-derivada (Agencia-nombre, media-saldo) where media-saldo > 1200 Note que no se necesita usar having, después de calcular temporalmente la vista rel-derivada en la clausula from, pues los atributos de la relació n derivada pueden ser usados directamente en la claúsula where.
  • 20. 3.22 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Modificando BD – Delete-sqlModificando BD – Delete-sql Borra todas las cuentas registradas en la agencia ‘FLAVIO ALFARO’ delete from cuenta where agencia-nombre = ‘FLAVIO ALFARO’ Borra todas las cuentas de todas las agencias localizadas en la ciudad de QUITO. delete from CUENTA where agencia-nombre in (select agencia-nombre from agencia where agencia-ciudad = ‘QUITO’) delete from depositor where cuenta-numero in (select cuenta-numero from agencia, cuenta where agencia-ciudad = ‘QUITO’ and agencia-nombre = cuenta.agencia-nombre)
  • 21. 3.23 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Modificando BD – Delete-sqlModificando BD – Delete-sql Borra todos los registros que esten por debajo de la media del saldo de cuentas del banco. delete from cuenta where cuenta-monto< (select avg (cuenta-monto) from cuenta) Problem: as we delete tuples from deposit, the average balance changes Solution used in SQL: 1. First, compute avg balance and find all tuples to delete 2. Next, delete all tuples found above (without recomputing avg or retesting the tuples)
  • 22. 3.24 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Modificando BD – Insert-sqlModificando BD – Insert-sql Agrega una nueva cuenta insert into cuenta values (‘C001’, ‘CHONE’,1200) O LO QUE ES LO MISMO insert into cuenta (agencia-nombre, cuenta-monto, cuenta- numero) values (‘CHONE’, 1200, ‘C001’) Agrega un nuevo registro a una cuenta pero con un saldo null insert into cuenta values (‘C002’,‘MANTA’, null)
  • 23. 3.26 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Modificando BD – Insert-sqlModificando BD – Insert-sql Incrementa en un 6% todas las cuentas con montos sobre los $10000, todas las otras se deben icrementar en un 5%. Se necesita escribir dos sentencias updtes: update cuenta set cuenta-monto = cuenta-monto ∗ 1.06 where cuenta-monto > 10000 update cuenta set cuenta-monto = cuenta-monto ∗ 1.05 where balance ≤ 10000 El orden es importante, en la siguiente lámina vamos a usar la sentencia case
  • 24. 3.27 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Uso de Case-End para hacerUso de Case-End para hacer Updates condicionalesUpdates condicionales Consultas como las anteriores donde se nos presenten casos del clasico if-else se pueden escribir así: update cuenta set cuenta-monto = case when cuenta-monto <= 10000 then cuenta-monto*1.05 else cuenta-monto * 1.06 end
  • 25. 3.30 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Joined RelationsJoined Relations La operació n JOIN toma dos relaciones y devuelve otra relaciín. En suma esta operació n es utilizada como las tipicas subconsultas (consultas en FROM) La condicion del JOIN define que tuplas (esto es filas o registros) y por ende que atributos se presentaran en la relació n resultantes Join type – Esxsiten cuatro tipos de JOIN a saber: Nota: Aunque existen cuatro tipos de JOIN en la práctica se suele usar INNER JOIN y pocas veces los otros… Ejemplo; Join Types inner join left outer join right outer join full outer join Join Conditions natural on <predicate> using (A1, A2, ..., An)
  • 26. 3.31 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Joined Relations – Datasets forJoined Relations – Datasets for ExamplesExamples Relation loan Relation borrower customer-name loan-number Jones Smith Hayes L-170 L-230 L-155 amount 3000 4000 1700 branch-name Downtown Redwood Perryridge loan-number L-170 L-230 L-260 Note: borrower information missing for L-260 and loan information missing for L-155
  • 27. 3.32 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Joined Relations – ExamplesJoined Relations – Examples loan inner join borrower on loan.loan-number = borrower.loan-number loan left outer join borrower on loan.loan-number = borrower.loan-number branch-name amount Downtown Redwood 3000 4000 customer-name loan-number Jones Smith L-170 L-230 loan-number L-170 L-230 branch-name amount Downtown Redwood Perryridge 3000 4000 1700 customer-name loan-number Jones Smith null L-170 L-230 null loan-number L-170 L-230 L-260
  • 28. 3.33 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Joined Relations – ExamplesJoined Relations – Examples loan natural inner join borrower loan natural right outer join borrower branch-name amount Downtown Redwood 3000 4000 customer-name Jones Smith loan-number L-170 L-230 branch-name amount Downtown Redwood null 3000 4000 null customer-name Jones Smith Hayes loan-number L-170 L-230 L-155
  • 29. 3.34 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Joined Relations – ExamplesJoined Relations – Examples loan full outer join borrower using (loan-number) Find all customers who have either an account or a loan (but not both) at the bank. branch-name amount Downtown Redwood Perryridge null 3000 4000 1700 null customer-name Jones Smith null Hayes loan-number L-170 L-230 L-260 L-155 select customer-name from (depositor natural full outer join borrower) where account-number is null or loan-number is null
  • 30. 3.35 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Data Definition Language (DDL)Data Definition Language (DDL) The schema for each relation. The domain of values associated with each attribute. Integrity constraints The set of indices to be maintained for each relations. Security and authorization information for each relation. The physical storage structure of each relation on disk. Allows the specification of not only a set of relations but also information about each relation, including:
  • 31. 3.36 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Domain Types in SQLDomain Types in SQL char(n). Fixed length character string, with user-specified length n. varchar(n). Variable length character strings, with user-specified maximum length n. int. Integer (a finite subset of the integers that is machine-dependent). smallint. Small integer (a machine-dependent subset of the integer domain type). numeric(p,d). Fixed point number, with user-specified precision of p digits, with n digits to the right of decimal point. real, double precision. Floating point and double-precision floating point numbers, with machine-dependent precision. float(n). Floating point number, with user-specified precision of at least n digits. Null values are allowed in all the domain types. Declaring an attribute to be not null prohibits null values for that attribute. create domain construct in SQL-92 creates user-defined domain types create domain person-name char(20) not null
  • 32. 3.37 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Date/Time Types in SQL (Cont.)Date/Time Types in SQL (Cont.) date. Dates, containing a (4 digit) year, month and date E.g. date ‘2001-7-27’ time. Time of day, in hours, minutes and seconds. E.g. time ’09:00:30’ time ’09:00:30.75’ timestamp: date plus time of day E.g. timestamp ‘2001-7-27 09:00:30.75’ Interval: period of time E.g. Interval ‘1’ day Subtracting a date/time/timestamp value from another gives an interval value Interval values can be added to date/time/timestamp values Can extract values of individual fields from date/time/timestamp E.g. extract (year from r.starttime) Can cast string types to date/time/timestamp E.g. cast <string-valued-expression> as date
  • 33. 3.38 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Example QueryExample Query Specify the query in SQL and declare a cursor for it EXEC SQL declare c cursor for select customer-name, customer-city from depositor, customer, account where depositor.customer-name = customer.customer-name and depositor account-number = account.account-number and account.balance > :amount END-EXEC From within a host language, find the names and cities of customers with more than the variable amount dollars in some account.
  • 34. 3.39 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Updates Through CursorsUpdates Through Cursors Can update tuples fetched by cursor by declaring that the cursor is for update declare c cursor for select * from account where branch-name = ‘Perryridge’ for update To update tuple at the current location of cursor update account set balance = balance + 100 where current of c
  • 35. 3.40 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, pj-83@hotmail.com Ver el esquema Atras Other SQL FeaturesOther SQL Features SQL sessions client connects to an SQL server, establishing a session executes a series of statements disconnects the session can commit or rollback the work carried out in the session An SQL environment contains several components, including a user identifier, and a schema, which identifies which of several schemas a session is using.

Notas del editor

  1. 1
  2. 2
  3. 3
  4. 5
  5. 6
  6. 8
  7. 9