Sunteți pe pagina 1din 50

Instituto Tecnolgico de las Amricas

(ITLA)
Tecnlogo en Desarrollo de
Software
Centro de Excelencia de Ing. De Software
Bases de Datos Avanzada
Ing. Mara Roco Santos, MAG
msantos@itla.edu.do
Objetivo General
Se busca que el estudiante conozca detalles
concernientes a bases de datos de gran
tamao, lo cual apoyar la base recibida en la
asignatura de Introduccin a bases de datos.
El estudiante tendr una visin ms amplia del
proceso de manejo de datos, aprender
tcnicas para reducir el tiempo de respuesta
de las consultas. As mismo, el alumno
conocer mecanismos para asegurar la alta
disponibilidad de los datos.
Bases de Datos Avanzadas
Objetivos Especficos
Dotar al estudiante con la capacidad de
crear bases de datos lo ms optimizadas
posibles.
Comprender que son los ndices y ser
crear capacidad de utilizarlo para agilizar
nuestra base de datos
Comprender el concepto de Base de
Datos Distribuida, y conocer como
implementarlas.
Comprender el concepto de Base de
Datos Paralela, y conocer como
implementarlas.
Bases de Datos Avanzadas
Sentencias LDD
Crear Base de Datos
CREATE DATABASE nombre_base_datos
Crear Tablas
CREATE TABLE nombre_tabla (
Campo1 tipo_dato,
Campo2 tipo_dato
);
CREATE TABLE nombre_tabla (
Campo1 tipo_dato primary key,
Campo2 tipo_dato references tabla2
);
CREATE TABLE nombre_tabla (
Campo1 tipo_dato,
Campo2 tipo_dato
CONSTRAINT nombre_constraint PRIMARY KEY (column [ ,...n ] )
FOREIGN KEY ( column [ ,...n ] ) REFERENCES ref_table ( ref_column [ ,...n ] );
Bases de Datos Avanzadas
Sentencias LDD
Modificar Tablas
Insertar una columna
ALTER TABLE table_name
ADD column_name tipo_dato;
Eliminar un Constraint
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
Eliminar una columna
ALTER TABLE table_name
DROP COLUMN column;
Insertar un Constraint
ALTER TABLE table_name
ADD CONSTRAINT constraint_name PRIMARY KEY (columna)
ALTER TABLE table_name
ADD CONSTRAINT constraint_name FOREIGN KEY ( column [ ,...n ] )
REFERENCES ref_table [ (ref_column [ ,...n ] )
Bases de Datos Avanzadas
Sentencias LDD
Eliminar tablas
DROP TABLE nombre_tabla ;
Bases de Datos Avanzadas
Insert
Agregando registros
Insert
Insert into nombre_tabla
values(valor1,valor2)
Agrega en nombre_tabla un registro escrito entre los parntesis
de Values los valores de los campos.
Deben estar todos los campos que existen en la tabla aunque no
sean requeridos
Deben colocarse los valores en el mismo orden en que estn los
campos en la tabla
Bases de Datos Avanzadas
Insert
Insert into nombre_tabla(campo1,campo2..)
values (valor1,valor2)
Agrega en nombre_tabla un registro, escrito entre los parntesis
de Values los valores de los campos que list entre parntesis
luego del nombre de la tabla
Deben estar todos los campos que list aunque no sean
requeridos
Deben colocarse los valores en el mismo orden en que estn
listado los campos
Bases de Datos Avanzadas
Insert
Insert into nombre_tabla
select valor1,valor2 from nombre_otra_tabla
Agrega en nombre_tabla todos los registros resultado del select.
Deben estar todos los campos que existen en la tabla aunque no
sean requeridos
Deben colocarse los valores en el mismo orden en que estn los
campos en la tabla
Bases de Datos Avanzadas
Insert
Insert into nombre_tabla(campo1,campo2..)
select valor1,valor2 from nombre_otra_tabla
Agrega en nombre_tabla todos los registros resultado del select.
Deben estar todos los campos que list aunque no sean
requeridos
Deben colocarse los valores en el mismo orden en que estn
listado los campos
Bases de Datos Avanzadas
Update
Actualizando registros
Update
Update nombre_tabla
SET campo1= valor1
WHERE condicion;
UPDATE nombre_tabla
SET campo1 = (
SELECT nombre_columna
FROM nombre_tabla
WHERE nombre_columna<condition> valor)
WHERE nombre_columna<condition> valor;
Bases de Datos Avanzadas
Update
UPDATE nombre_tabla
SET campo1= Val_campo1,
campo2= Val_campo2
WHERE condicion
Actualiza los campos de una tabla que
cumplen la condicin.
Bases de Datos Avanzadas
Update
UPDATE nombre_tabla <alias>
SET (campo1, campo2 ) = (
SELECT (campo1, campo2)
FROM nombre_tabla <alias>
WHERE <alias.nombre_columna> = <alias.
nombre_columna>)
WHERE <column_name> <condition>
<value>;
Bases de Datos Avanzadas
Delete
Eliminando registros
Sentencias SQL
Borrar
DELETE FROM nombre_tabla
Elimina todos los registros de una tabla.
DELETE nombre_tabla
Elimina todos los registros de una tabla.
DELETE FROM nombre_tabla
WHERE condicion
Elimina los registros de una tabla que cumplen la condicin.
DELETE nombre_tabla
WHERE condicion
Elimina los registros de una tabla que cumplen la condicin.
Bases de Datos Avanzadas
Select
Funciones y condiciones
Select. Estructura Bsica
Select *
From tabla1;
Lista todos los registros de la tabla1
Select campo3, campo4
From tabla1;
Lista todos los registros de la tabla1 solo
mostrando los campos: campo3 y campo4 de la
tabla1
Bases de Datos Avanzadas
Select
SELECT lista_valores|*
FROM nombre_tabla
SELECT *
FROM cliente
SELECT cliente .*
FROM cliente
SELECT nombre, apellido
FROM cliente
SELECT cliente .nombre, cliente .apellido
FROM cliente
ORDER BY cliente.apellido
Bases de Datos Avanzadas
Where
SELECT lista_valores|*
FROM nombre_tabla
WHERE condicion
SELECT *
FROM cliente
WHERE codigo_cliente = 2;
SELECT nombre, apellido
FROM cliente
WHERE codigo_cliente = 2 or codigo_cliente = 3;
Bases de Datos Avanzadas
Where
SELECT lista_valores|*
FROM nombre_tabla1, nombre_tabla2
WHERE condicion and nombre_tabla1.campo=
nombre_tabla2.campo
SELECT *
FROM cliente, facturaM
WHERE cliente.codigo_cliente = facturaM.codigo_cliente;
SELECT nombre, apellido, codigo_factura
FROM cliente , facturaM
WHERE cliente.codigo_cliente = 2 and cliente.codigo_cliente =
facturaM.codigo_cliente;
Bases de Datos Avanzadas
Left Join
SELECT lista_valores|*
FROM nombre_tabla1
LEFT JOIN nombre_tabla2
ON nombre_tabla1.campo= nombre_tabla2.campo
WHERE condicion
SELECT *
FROM cliente
LEFT JOIN facturaM
ON cliente.codigo_cliente = facturaM.codigo_cliente
WHERE cliente.codigo_cliente = 2;
Bases de Datos Avanzadas
Right Join
SELECT lista_valores|*
FROM nombre_tabla1
RIGHT JOIN nombre_tabla2
ON nombre_tabla1.campo= nombre_tabla2.campo
WHERE condicion
SELECT *
FROM cliente
RIGHT JOIN facturaM
ON cliente.codigo_cliente = facturaM.codigo_cliente
WHERE cliente.codigo_cliente = 2;
Bases de Datos Avanzadas
Inner Join
SELECT lista_valores|*
FROM nombre_tabla1
INNER JOIN nombre_tabla2
ON nombre_tabla1.campo= nombre_tabla2.campo
WHERE condicion
SELECT *
FROM cliente
INNER JOIN facturaM
ON cliente.codigo_cliente = facturaM.codigo_cliente
WHERE cliente.codigo_cliente = 2;
Bases de Datos Avanzadas
Expresiones aritmticas
Operador Descripcin
+ Suma
- Resta
* Multiplicacin
/ Divisin
Bases de Datos Avanzadas
Alias
Select campo3 as nombre1, campo4 nombre2
From tabla1;
Lista todos los registros de la tabla1 solo mostrando los
campos: campo3 y campo4 de la tabla1, sin embargo,
en ambos casos los ttulos de las columnas saldrn con
nombre1 y nombre2 respectivamente.
Es opcional utilizar la palabra as.
Bases de Datos Avanzadas
Concatenando String
Select nombre||apellido
From clientes;
Lista en una sola columna todos los registros los
empleados solo mostrando el nombre y apellido
Select nombre|| || apellido
From clientes;
Lista en una sola columna todos los registros los
empleados solo mostrando el nombre, un espacio y el
apellido
Bases de Datos Avanzadas
Filas Duplicadas
Select distinct nombre||apellido
From clientes;
Lista en una sola columna todos los registros diferentes
los empleados solo mostrando el nombre y apellido
Bases de Datos Avanzadas
Estructura de una tabla
describe clientes;
Despliega todos los campos, tipos de datos y si acepta
nulos de la tabla clientes.
Bases de Datos Avanzadas
Condiciones
Select *
From Clientes
Where condicion;
Condicin es sustituido por una expresin condicional
por medio del cual se van a filtrar los registros.
Select *
From Clientes
Where cliente_id>= 10;
Despliega todos los clientes cuyo codigo sea mayor o
igual a 10.
Bases de Datos Avanzadas
Condiciones
Operador Descripcin
= Igual a
> Mayor que
>= Mayor o igual a
< Menor que
<= Menor o igual a
<> Diferente a
Between..AND Entre dos valores (inclusive)
IN (set) Se encuentra entre una lista de valores
LIKE Igual a un patrn de caracteres
IS NULL Es un valor nulo
Bases de Datos Avanzadas
Condiciones
Select *
From Clientes
Where limite_credito BETWEEN 2000 AND 2005;
Despliega todos los clientes cuyo lmite de crdito sea
mayor o igual a 2000 y menor o igual a 2005.
Select *
From Clientes
Where cliente_id in (10, 14, 30, 25);
Despliega todos los clientes cuyo cdigo sea 10 o 14 o
30 o 25.
Bases de Datos Avanzadas
Condiciones
Select *
From Clientes
Where nombre like S%;
Despliega todos los clientes cuyo nombre inicie con S
mayscula.
Select *
From Clientes
Where nombre like _s%;
Despliega todos los clientes cuyo nombre tenga una s
minscula en la segunda posicin.
Bases de Datos Avanzadas
Condiciones
Select *
From Clientes
Where nombre IS NULL;
Despliega todos los clientes que no tengan valores en el
nombre.
Select *
From Clientes
Where cliente_id not in (10, 14, 30, 25);
Despliega todos los clientes cuyo cdigo sea diferente a
los integrantes de la lista es decir, 10, 14, 3 y 25.
Bases de Datos Avanzadas
Condiciones
Select *
From Clientes
Where nombre like _s% AND limite_credito>=1000;
Despliega todos los clientes cuyo nombre tenga una s
minscula en la segunda posicin y su lmite de crdito
sea mayor o igual que 1000. Deben cumplirse las dos
condiciones
Bases de Datos Avanzadas
Condiciones
Select *
From Clientes
Where nombre like _s% OR limite_credito>=1000;
Despliega todos los clientes cuyo nombre tenga una s
minscula en la segunda posicin o que su lmite de
crdito sea mayor o igual que 1000, es decir, si una de
las condiciones se cumple se despliega el registro en el
resultado
Bases de Datos Avanzadas
Precedencia
Operador Descripcin
1 Operaciones aritmticas
2 Operadores de Concatenacin
3 Condiciones de comparacin
4 IS Null, IS NOT Null, LIKE, NOT IN, IN
5 NOT Between.. AND, Between.. AND
6 Not Equal to
7 Condicin lgica NOT
8 Condicin lgica AND
9 Condicin lgica OR
Para alterar el orden en que se realicen estas
operaciones en una expresin utilice parntesis
Bases de Datos Avanzadas
Ordenando
Select *
From Clientes
Order by apellido;
Despliega todos los clientes ordenando ascendentemente
por apellido
Select *
From Clientes
Order by apellido, nombre desc;
Despliega todos los clientes ordenando descendentemente
por apellido y nombre, es decir, si hay dos apellidos iguales
toma en cuenta el nombre
Bases de Datos Avanzadas
Sustitucin de Variables
Select *
From Clientes
Where cliente_id = &vcliente_id;
Al ejecutar este select el sistema preguntar al usuario
un valor que va a ser sustituido por &vcliente_id, es
decir, si el usuario introduce el valor 1 listara le registro
que cumple con este criterio.
Las variables con el signo & delante son solicitadas al
usuario en le momento de ejecutar el select
Bases de Datos Avanzadas
Sustitucin de Variables
Select *
From Clientes
Where nombre = &vnombre;
Utilizando &variable el valor introducido por el usuario
sera tomado como un string
Select *
From Clientes
Where nombre = &vnombre
Orden by &vnombre;
Solicita al usuario que introduzca las dos variables,
aunque tenga el mismo nombre
Bases de Datos Avanzadas
Sustitucin de Variables
Select *
From Clientes
Where nombre = &vnombre
Orden by &&vnombre;
Solicita al usuario que introduzca el valor una sola vez.
Define vnombre=Juan
Select *
From Clientes
Where nombre = &vnombre
Orden by &&vnombre;
Undefine vnombre
Utiliza el valor definido, no lo solicita al usuario.
Bases de Datos Avanzadas
Funciones para caracteres
Funcin Descripcin
LOWER(columna o expresin) Convierte el contenido de la columna o el resultado
de la expresin a Minscula
UPPER(columna o expresin) Convierte el contenido de la columna o el resultado
de la expresin a Mayscula
INITCAP(columna o expresin) Convierte la primera letra de cada palabra del
contenido de la columna o el resultado de la
expresin a Mayscula
CONCAT(columna1 o
expresin1, columna2 o
expresin2)
Concatena el contenido de las columnas o el
resultado de las expresiones
Bases de Datos Avanzadas
Funcin Descripcin
SUBSTR(columna o expresin) Retorna una secuencia de caracteres desde la
posicin m, n posiciones adelantes. Si no se
incluye n retorna desde esa posicin hasta el final
del contenido de la columna o el resultado de la
expresin
Length(columna o expresin) Retorna la cantidad de caracteres que pose el
contenido de la columna o el resultado de la
expresin
REPLACE(text,string_busqueda
, string_reemplazo)
Busca en un text, un conjunto de caracteres
introducidos en string_busqueda, si lo encuentra lo
reemplaza con los valores en string_reemplazo
Funciones para caracteres
Bases de Datos Avanzadas
Funcin Descripcin
INSTR(columna o
expresin, string[,m][,n])
Retorna la posicin numrica donde se
encuentra el string en el contenido de la
columna o el resultado de la expresin.
Opcional m posicin inicial de la
bsqueda (si no lo introduce utiliza el
valor 1) n posicin final en que va a
buscar el string (si no lo introduce busca
hasta el final del campo o expresin)
Funciones para caracteres
Bases de Datos Avanzadas
Funciones numricas
Funcin Descripcin
Round(columna o
expresin,m)
Redondea el valor numrico con las
posiciones decimales introducidas en m
Trunc(columna o
expresin, m)
Tronca el valor numrico con las
posiciones decimales introducidas en m
Mod(m,n) Retorna el residuo de m mividido entre n
Bases de Datos Avanzadas
Operaciones con fechas
Operacin Resultado Descripcin
Fecha+numero Fecha Aade das a una fecha
Fecha-numero Fecha Resta das a una fecha
Fecha-fecha Cantidad de das Resta una fecha de otra
Fecha+
numero/24
fecha Aade una cantidad de
horas a una fecha
Select SYSDATE
From dual;
Retorna la fecha del sistema. La tabla dual es una tabla ficticia,
utilizada cuando queremos presentar valores resultado de
expresiones o de variables y no de tablas.
Bases de Datos Avanzadas
Funciones con fechas
Operacin Descripcin
Months_BETWEEN(fecha1,
fecha2)
Retorna la cantidad de meses existentes
entre la fecha1 y l a fecha2
ADD_MONTH(fecha1,m) Aade m meses a la fecha1
NEXT_DAY(fecha1,DIADELASE
MANA)
Devuelve la fecha de la proximo dia de la
semana introducido. Ej. Next_day(01-dec-
2005,FRIDAY)
LAST_DAY(fecha1) Devuelve el ultimo da de ese mes
Round(fecha,MONTH)
Round(fecha,YEAR)
Redondea la fecha al prximo MONTH o
el prximo YEAR
Trunc(fecha, MONTH)
Trunc(fecha,YEAR)
Tronca la fecha al prximo MONTH o el
prximo YEAR
Bases de Datos Avanzadas
Funciones con fechas
Funcin Resultado
Round(25-jul-03,MONTH) 01-AUG-03
Round(25-jul-03,YEAR) 01-JAN-04
Trunc(25-jul-03, MONTH) 01-JUL-03
Trunc(25-jul-03,YEAR) 01-JAN-03
Bases de Datos Avanzadas
Funciones Agregadas
SELECT funcion(campo)
FROM nombre_tabla1, nombre_tabla2
WHERE condicion and nombre_tabla1.campo=
nombre_tabla2.campo
SELECT count(codigo_cliente)
FROM cliente
SELECT count(*)
FROM cliente
SELECT codigo_ciudad, count(codigo_cliente)
FROM cliente
GROUP BY codigo_ciudad
Bases de Datos Avanzadas

S-ar putea să vă placă și