SlideShare una empresa de Scribd logo
1 de 157
Fundamentos de SQL
Compilado por : MSc Edgar Taya Acost
Fuente original:Prof. Nelliud D. Torres
CONTENIDO
• FORMATO BÁSICO DEL SELECT
PARA UNA O MÁS TABLAS
• SELECT STATEMENT
• ALGEBRA RELACIONAL
• INFORMACIÓN ADICIONAL Y
EJEMPLOS DE SELECT
• USO DEL SELECT CON:
– WHERE
– ALIAS
– OPERADORES DE
COMPARACIÓN (=, >, <, >=, <=,
<>, !=)
– OPERADORES LÓGICOS (AND,
OR, NOT)
– OPERADOR BETWEEN
– COLUMNAS CALCULADAS
– OPERADOR LIKE
– OPERADOR IN
– OPERADOR DISTINTC
– SORT
– GROUP BY
– HAVING
– FUNCIONES
• Single Values
– ROUND
– NLV
– TRUNC & SYSDATE
– MOD
• Group of Values
– AVERAGE (AVG)
– MAX & MIN
– COUNT
– SUM
• Operaciones aritméticas en
consultas
• Operaciones alfanuméricas en
consultas
• Comandos de actualizaciones
• Practica de Laboratorio
SELECT PARA UNA O MÁS
TABLAS
Volver a los
Objetivos
Sintaxis básica para las consultas
para una sola entidad (tabla):
SELECT atributos
FROM entidad
WHERE condición
GROUP BY atributos
HAVING condición
ORDER BY atributos;
Solamente el
SELECT y el
FROM son
obligatorios
Solamente el
SELECT y el
FROM son
obligatorios
Siempre termina
con punto y coma
(;).
Siempre termina
con punto y coma
(;).
Sintaxis para las consultas de dos o
más entidades (tablas):
SELECT atributos (columnas, campos)
FROM Tabla_1, Tabla_2,…
ON condición JOIN
WHERE condición
GROUP BY atributos
HAVING condición
ORDER BY atributos;
SELECT STATEMENT
Volver a los
Objetivos
7
SELECT Statement
• Se utiliza para hacer queries a una tabla sencilla o a
múltiples tablas
• Las clausulas más importantes son:
– SELECTSELECT
• List a las columnas y expresiones que deben ser devueltos por el query
– FROMFROM
• Indica la(s) tabla(s) o view(s) de donde se va a btener los datos
– WHEREWHERE
• Indica las condiciones en las que una fila debe ser incluida en el resultado
– GROUP BYGROUP BY
• Indica la categoría de los resultados
– HAVINGHAVING
• Indica las condiciones bajo las cuales una categoría (grupo) será incluida
– ORDER BYORDER BY
• Organiz (Sort) el resultado de aucerdo a un criterio especificado.
Pag: 309
ALGEBRA RELACIONAL
Volver a los
Objetivos
ALGEBRA RELACIONAL
• La instrucción SELECT combina las tres
operaciones relacionales básicas del
álgebra relacional.
• Estas operaciones son:
– Proyección (π)
– Selección (σ)
– Join (|x|)
ALGEBRA RELACIONAL (Cont.)
• La expresión relacional πa,b,c (R) en SQL
se escribiría:
SELECT a,b,c
FROM R
• La expresión relacional πa,b,c (σ condición R)
en SQL se escribiría:
SELECT a,b,c
FROM R
WHERE condición;
ALGEBRA RELACIONAL (Cont.)
• La expresión relacional πa,b,c (R|x|S) en
SQL se escribiría:
SELECT a,b,c
FROM R,S
WHERE R.c = S.c;
Ojo Esta expresión provee un resultado
en donde une dos tablas.
ALGEBRA RELACIONAL (Cont.)
• La expresión relacional πa,b,c (σ condición R|x|S)
en SQL se escribiría:
SELECT a,b,c
FROM R,S
WHERE R.c = S.c AND condición;
Aquí se están relacionando dos tablas utilizando el
PK de una y el FK de la otra en adición a una o
más condiciones adicionales.
INFORMACIÓN ADICIONAL Y
EJEMPLOS DE SELECT
Volver a los
Objetivos
Figure 7-10
SQL statement
processing
order (adapted
from van der
Lans, p.100)
Pag: 322
Ejemplo de un SELECT
• Consigue aquellos productos con un precio
estándar menor de $275
SELECTSELECT PRODUCT_NAME, STANDARD_PRICE
FROMFROM PRODUCT_V
WHEREWHERE STANDARD_PRICE < 275;
Table 7-3: Comparison Operators in SQL
Pag: 309
Otro ejemplo que muestra ciertas
columnas y todas las filas de una tabla
• Un comando puede obtener columnas en específico
y todas las filas de una tabla.
– Mostrar el número, nombre y balance de todos los
clientes
• La clausula WHERE no hace falta ya que se van a
mostrar todos los clientes de la tabla (filas).
Ejemplo de un SELECT que selecciona 3
columnas
Buscar (Retrieve) todas las
columnas y filas de una tabla
• Utilice el asterisco (*) para indicar todas las columnas en
la clausula SELECT
• Como resultado se van a mostrar todas las columnas en
el orden en que la tabla fue creada
• El orden de las columnas en la clausula SELECT pueden
tener un orden diferente al orden en que las columnas se
crearon en la tabla.
• Esto le da la opción al usuario de mostrar los datos en el
orden de columna que prefiera.
Ejemplo de un SELECT que busca todas las
columnas de una tabla
USO DEL SELECT CON:
Volver a los
Objetivos
WHERE
Uso de la Clausula WHERE
• Se utiliza la clausula WHERE para buscar filas que
satisfagan alguna condición.
– ¿Cuál es el nombre del cliente número 148?
• Una condición simple incluye: nombre de columna,
operador de comparación y finalmente un nombre
de columna o un valor.
Uso de la Clausula WHERE (cont.)
• Los valores de los caracteres en SQL son case
sensitive.
– “Pepito” es diferente de “pepito”
• las condiciones simples pueden comparar
columnas.
– WHERE BALANCE > CREDIT_LIMIT
Ejemplo de un SELECT con WHERE
ALIAS
26
Ejemplo de SELECT utilizando un
Alias
• El Alias se utiliza como alternativa para nombre
de columna o tabla
SELECT CUSTCUST.CUSTOMER AS NAMENAME,
CUSTCUST.CUSTOMER_ADDRESS
FROM CUSTOMER_V CUSTCUST
WHERE NAMENAME = ‘Home Furnishings’;
OJO El ALIAS se puede utilizar para
reemplazar el nombre de una entidad o de
un atributo
Pag: 310
OPERADORES DE
COMPARACIÓN
Los operadores de comparación
OPERADORES LÓGICOS
Usando condiciones compuestas
• Condiciones compuestas conectan dos o más
condiciones simples con los operadores AND, OR y
NOT
– AND – Muestra los resultados cuando ambas
condiciones simples son ciertas
– OR - Muestra los resultados cuando cualquiera de
las condiciones simples sea cierta
– NOT - invierte el resultado de la condición original
SELECT Example–Boolean Operators
• ANDAND, OROR, and NOTNOT Operators for customizing
conditions in WHERE clause
SELECT PRODUCT_DESCRIPTION, PRODUCT_FINISH,
STANDARD_PRICE
FROM PRODUCT_V
WHERE (PRODUCT_DESCRIPTION LIKELIKE ‘%%Desk’
OROR PRODUCT_DESCRIPTION LIKELIKE ‘%%Table’)
ANDAND UNIT_PRICE > 300;
Note: the LIKE operator allows you to compare strings using wildcards.
For example, the % wildcard in ‘%Desk’ indicates that all strings that
have any number of characters preceding the word “Desk” will be allowed
Pag: 315
32
Diagrama de Venn del Query del Slide
anterior
Ejemplo de un SELECT con AND
Ejemplo del mismo SELECT con el
AND en una misma línea
Ejemplo de un SELECT con OR
Ejemplo de un SELECT con NOT
OPERADOR BETWEEN
Utilizando el operador BETWEEN
• No es un clausula esencial en SQL
• se pueden obtener los mismos resultados sin esta
clausula
• Sin embargo simplifica la construcción del SELECT en
donde se quiera aplicar
• El operador BETWEEN solo incluye valores de un rango
– Por ejemplo si usas BETWEEN 2000 and 5000, todos
aquellos valores entre 2000 y 5000 son ciertos.
Ejemplo de un SELECT sin BETWEEN
Ejemplo de un SELECT con BETWEEN
COLUMNAS CALCULADAS
UTILIZANDO COLUMNAS CALCULADAS
• Computed column – No existen en la base de datos,
pero se calcula utilizando datos de columnas que ya
existen.
• Los cálculos pueden incluir los operadores matemáticos.
– + para suma
– - para resta
– * para multiplicación
– / para división
Ejemplo de un SELECT que crea una
columna calculada
OPERADOR LIKE
Utilizando el operador LIKE
• Se utiliza para obtener los datos en donde no hay un
pareo exacto (exact match) al utilizar los wildcards (*).
• LIKE %Central% te va a devolver datos que contengan
esos caracteres como por ejemplo:
– “3829 Central” or “Centralia”
• El underscore (_) representa cualquier caracter sencillo
– “T_M” para TIM o TOM o T3M
OPERADOR IN
Utilizando el Operador IN
• El operador IN permite examinar diferentes valores
simultáneamente. Por ejemplo:
OPERADOR DISTINCT
Utilizando el Operador DISTINCT
• Se utiliza para garantizar inequidad (uniqueness)
en los resultados.
• En otras palabras elimina repeticiones
A Guide to SQL, Seventh Edition
Ejemplo que no utiliza el Operador
DISTINCT
Ejemplo que utiliza el Operador
DISTINCT
SORT
SORTING
• ORDER BY – Indica el order por el cual se van a
organizar los datos
• esta columna seleccionada se le conoce también
como el sort key
• Se utiliza el ORDER BY seguido del sort key
• Las filas se organizan en orden ascendente a
menos que se especifique lo contrario.
Opciones Adicionales para
Organizar (Sort)
• Es posible organizar datos por más de un key
• Major sort key y minor sort key
• Se lista el orden de los sort keys en orden de
importancia en la clausula ORDER BY
• Se utiliza DESC para organizar en orden
descendente.
Ejemplo de un SORT con dos Keys
SELECT Example –
Sorting Results with the ORDER BY Clause
• Sort the results first by STATE, and within a
state by CUSTOMER_NAME
SELECT CUSTOMER_NAME, CITY, STATE
FROM CUSTOMER_V
WHERE STATE ININ (‘FL’, ‘TX’, ‘CA’, ‘HI’)
ORDER BYORDER BY STATE, CUSTOMER_NAME;
Note: the IN operator in this example allows you to include rows whose
STATE value is either FL, TX, CA, or HI. It is more efficient than separate
OR conditions
Pág: 319
GROUP BY
USO DE LA CLAUSULA GROUP
• For use with aggregate functions
– Scalar aggregate: single value returned from SQL query with
aggregate function
– Vector aggregate: multiple values returned from SQL query with
aggregate function (via GROUP BY)
SELECT CUSTOMER_STATE,
COUNT(CUSTOMER_STATE)
FROM CUSTOMER_V
GROUP BYGROUP BY CUSTOMER_STATE;
Note: you can use single-value fields with aggregate
functions if they are included in the GROUP BY clause
Database Systems: Design, Implementation, & Management, 7th
Edition, Rob & Coronel
EJEMPLO DE GROUP BY
Database Systems: Design, Implementation, & Management, 7th
Edition, Rob & Coronel
EJEMPLO DE GROUP BY (Cont.)
Database Systems: Design, Implementation, & Management, 7th
Edition, Rob & Coronel
EJEMPLO DE GROUP BY (Cont-2)
HAVING
SELECT Example – Uso de la cláusula
HAVING
• Se utiliza con la cláusula GROUP BY
SELECT CUSTOMER_STATE,
COUNT(CUSTOMER_STATE)
FROM CUSTOMER_V
GROUP BY CUSTOMER_STATE
HAVINGHAVING COUNT(CUSTOMER_STATE) > 1;
Like a WHERE clause, but it operates on groups (categories), not on
individual rows. Here, only those groups with total numbers greater than
1 will be included in final result.
FUNCIONES
Volver a los
Objetivos
OPERACIONES DE FUNCIONES
• Como todos sabemos, las funciones son
un conjunto de instrucciones que ejecutan
una tarea en particular.
• A continuación se muestra una tabla con
ejemplos de funciones agregadas (que
leen varios datos de una columna para
poder obtener el resultado).
UTILIZANDO FUNCIONES
Aggregate
functions –
Calculan
sumatorias,
promedios,
valores
mínimos o
máximos, etc.
(también se
conocen como
Group of
Values)
Database Systems: Design, Implementation, & Management, 7th
Edition, Rob & Coronel
OPERACIONES DE FUNCIONES
• Aquí vamos a explicar dos tipos de
funciones:
– Single Values
– Group of Values
• A continuación explicamos la Función de
Single Values
Operaciones de Funciones –
Single Values
• Se llaman single values porque solo
devuelven un solo valor como resultado.
• Algunas de las funciones que caen bajo esta
categoría son: valor absoluto (ABS(valor)),
la raíz cuadrada (SQRT(valor)), entre otros.
• A continuación mostramos algunos ejemplos
Operaciones de Funciones Single
Values Ejemplo – 1 (ROUND)
• Mostrar el nombre y lo que gana el empleado
en comisión para aquellos que son
vendedores. Se redondea a dos lugares la
ganancia de la comisión.
SELECT emp_nombre, ROUND(emp_commision * emp_salario / 100,2)
FROM empleado
WHERE emp_titulo = ‘Vendedores’;
Operaciones de Funciones – Single
Values Ejemplo – 2 (NVL)
• Mostrar el nombre de todos los vendedores
y el porciento de comisión que tienen
asignado. En caso de que el vendedor no
gane comisión (valor nulo) que muestre un
cero.
SELECT emp_nombre, NVL(emp_comision,0)
FROM empleado;
Operaciones de Funciones – Single
Values Ejemplo – 3 (TRUNC)
• Mostrar el nombre de los empleados y la
cantidad de días que llevan en la empresa.
SELECT emp_nombre, TRUNC(SYSDATE –
emp_fecha_inicio) AS DIAS
FROM empleado;
* TRUNC - Quita las posiciones decimales y
SYSDATE trae la fecha del día del sistema.
Operaciones de Funciones – Single
Values Ejemplo – 4 (MOD)
• Mostrar el nombre de los empleados y la
cantidad de semanas y días que llevan en la
empresa.
SELECT emp_nombre, TRUNC((SYSDATE –
emp_fecha_inicio)/7) AS SEMANAS,
MOD(TRUNC(SYSDATE –
emp_fecha_inicio),7) AS DIAS
FROM empleado;
Operaciones de Funciones –
Group of Values
• Estas funciones ofrecen resultados que se
aplican a los valores de una columna en
total o en parte.
• Algunos de ejemplos de estas funciones son
promedio (AVG), valor máximo (MAX), valor
mínimo (MIN), entre otros.
• A continuación mostramos algunos ejemplos
Operaciones de Funciones – Group
of Values Ejemplo AVG
• Esta función saca el promedio de una
columna en particular dentro de una tabla.
• Ejemplo: Calcular el promedio de sueldos de
todos los empleados:
SELECT AVG(emp_salario)
FROM empleado;
Database Systems: Design, Implementation, & Management, 7th
Edition, Rob & Coronel
OTRO EJEMPLO DE AVERAGE
(AVG)
MAX & MIN
• Calculan el valor Máximo y el Valor
Mínimo de una columna.
• A continuación mostraremos algunos
ejemplos que utilizan estas funciones.
Operaciones de Funciones – Group
of Values Ejemplo MAX
• Mostrar el salario mayor de todos los
empleados (¿Cuánto gana el que más
gana?)
SELECT MAX(emp_salario)
FROM empleado;
Database Systems: Design, Implementation, & Management, 7th
Edition, Rob & Coronel
EJEMPLO DE MAX y MIN
Utilizando la función COUNT
• Cuenta el número de filas en una tabla
• Se utiliza el asterisco cuando se quiere utilizar
cualquier columna
Ejemplo-libro usando la función
COUNT
• Utilize la función agregada (aggregate
function) COUNT para encontrar totales
SELECT COUNT(*)COUNT(*) FROM ORDER_LINE_V
WHERE ORDER_ID = 1004;
Pag: 311
Database Systems: Design, Implementation, & Management, 7th
Edition, Rob & Coronel
OTRO EJEMPLO DEL COUNT
Operaciones de Funciones – Group
of Values Ejemplo COUNT - 1
• ¿Cuántos empleados hay en la tabla?
SELECT COUNT(*)
FROM empleado;
*COUNT – Si en lugar del *, se pone el
nombre de un atributo, si este tiene valores
nulos, el COUNT no los cuenta.
Operaciones de Funciones – Group
of Values Ejemplo COUNT - 2
• Mostrar cuantos puestos diferentes hay en
la tabla de empleados y el total de
empleados.
SELECT COUNT(DISTINCT emp_titulo),
COUNT(*)
FROM empleado;
Operaciones de Funciones – Group
of Values Ejemplo COUNT - 3
• Mostrar los diferentes puestos y cuantos
empleados tienen ese puesto.
SELECT emp_titulo AS Puestos, COUNT(title)
AS “Cantidad de Empleados”
FROM empleado
GROUP BY emp_titulo;
Operaciones de Funciones – Group
of Values Ejemplo COUNT - 4
• Mostrar los diferentes puestos y cuantos
empleados tienen ese puesto que sean dos o
más. Los puestos con un solo empleado no
deben mostrarse.
SELECT emp_titulo AS Puestos, COUNT(title)
AS “Cantidad de Empleados”
FROM empleado
GROUP BY emp_titulo
HAVING COUNT(emp_titulo) > 2;
Operaciones de Funciones – Group
of Values Ejemplo SUM
• ¿A cuanto suma los salarios de todos los
empleados?
SELECT SUM(emp_salario)
FROM empleado;
Operaciones de Funciones – Group
of Values Ejemplo – 8 (Varias)
• Mostrar la cantidad de empleados, el
promedio de sueldos y el total de sueldos.
SELECT COUNT(*) AS ‘Cantidad de empleados’
AVG(emp_salario) AS ‘Promedio de sueldos’
SUM(emp_salario) AS ‘Total de sueldos’
FROM empleado;
* - Si se quiere poner un título separado por
espacio, se puede poner entre comillas.
Utilizando la función SUM
• Se utiliza para calcular totales de columnas
• Estas columnas tienen que especificarse y deben
ser numéricas
• Funciones como AVG, MAX y MIN son similares,
pero producen resultados diferentes
• Los valores nulos (Null) son ignorados y no se
utilizan en estos tipos de cálculos
A Guide to SQL, Seventh Edition
Database Systems: Design, Implementation, & Management, 7th
Edition, Rob & Coronel
EJEMPLO DE SUM
Operaciones de Funciones – Group
of Values Ejemplo (Varias)
• Mostrar la cantidad de empleados, el
promedio de sueldos y el total de sueldos.
SELECT COUNT(*) AS ‘Cantidad de empleados’
AVG(emp_salario) AS ‘Promedio de sueldos’
SUM(emp_salario) AS ‘Total de sueldos’
FROM empleado;
* - Si se quiere poner un título separado por
espacio, se puede poner entre comillas.
OPERACIONES ARITMÉTICAS EN
CONSULTAS
Volver a los
Objetivos
Operaciones Aritméticas en Consultas
• Dentro de un SELECT podemos mostrar
resultados que provienen de uno o varios
campos de la base de datos utilizando
operaciones matemáticas.
• Las operaciones básicas son suma (+),
resta (-), división (/) y multiplicación (*).
• A continuación vamos a mostrar algunos
ejemplos
Operaciones Aritméticas – Mult.
• Mostrar el nombre y el salario anual de los
empleados. (asuma que el atributo salario
sólo tiene el pago mensual)
SELECT emp_nombre, emp_salario * 12
FROM empleado;
Operaciones Aritméticas - Suma
• ¿A cuanto subiría el salario de cada
empleado si le incluimos 300 dólares de
aumento? Mostrar el nombre y el salario
incluyéndole el aumento de 300 dólares.
SELECT emp_nombre, emp_salario + 300
FROM empleado;
Operaciones Aritméticas - Varios
• Mostrar el nombre y lo que gana el
empleado en comisión para aquellos que
son vendedores.
SELECT emp_nombre, emp_commision *
emp_salario / 100
FROM empleado
WHERE emp_titulo = ‘Vendedores’;
OPERACIONES
ALFANUMÉRICAS EN
CONSULTAS
Volver a los
Objetivos
Operaciones Alfanuméricas en
Consultas
• En estas operaciones se juega con el
manejo de caracteres y “string”.
• Permiten una mejor presentación de los
datos en pantalla y/o reportes.
• Ayuda en la búsqueda de instancias en la
tabla.
• A continuación mostramos algunos ejemplos
Operaciones Alfanuméricas en
Consultas – Ejemplo 1
• Mostrar el nombre y apellido (que no queden
separados por espacios en blanco)
SELECT emp_nombre || emp_apellidos
FROM empleado;
Operaciones Alfanuméricas en
Consultas – Ejemplo 2
• Mostrar los apellidos y luego el nombre
separado por coma
SELECT emp_apellidos || ’,’ || emp_nombre
FROM empleado;
Operaciones Alfanuméricas en
Consultas – Ejemplo 3
• Mostrar los apellidos y luego el nombre
separado por un espacio en blanco.
SELECT emp_apellidos || ’ ’ || emp_nombre
FROM empleado;
Operaciones Alfanuméricas en
Consultas – Ejemplo 4
• Mostrar el apellido del empleado 1234 y de
cuantos caracteres se compone
SELECT emp_apellido,
LENGHT(emp_apellido)
FROM empleado
WHERE emp_numero = 1234;
Operaciones Alfanuméricas en
Consultas – Ejemplo 5
• Mostrar todos los apellidos de los
empleados que tengan 5 caracteres de
largo.
SELECT emp_apellido,
FROM empleado
WHERE LENGHT(emp_apellido) = 5;
Operaciones Alfanuméricas en
Consultas – Ejemplo 6
• Mostrar todos los apellidos de los empleados
en letra minúscula.
SELECT LOWER(emp_apellido),
FROM empleado;
Operaciones Alfanuméricas en
Consultas – Ejemplo 7
• Buscar entre los apellidos de los empleados,
aquellos que sean igual a Benicio. Mostrar el
nombre y los apellidos. OJO, en la base de
datos pued estar escrito BENICIO, Benicio,
benicio, etc.
SELECT emp_nombre ||’ ‘|| emp_apellidos
FROM empleado
WHERE UPPER(emp_apellido) = ‘BENICIO’;
* Aparte de UPPER y LOWER, existe INITCAP
(la primera mayúsculas y el resto minúsculas)
Operaciones Alfanuméricas en
Consultas – Ejemplo 8
• Tomar dos caracteres del apellido del
empleado 1234 comenzando en la posición
tres y extrayendo dos caracteres.
SELECT SUBSTR(emp_apellido,3,2)
FROM empleado
WHERE emp_numero = 1234;
*-Si el apellido era Benicio, el resultado sería: “ni”.
Operaciones Alfanuméricas en
Consultas – Ejemplo 9
• Mostrar todos los empleados por apellidos y
nombre (separado por coma) y su número de
empleado. Se desea que los espacios en
blanco que sobren del nombre y apellido, se
rellenen de puntos (.).
SELECT RPAD(emp_apellidos || ‘,’ || emp_nombre,20,’.’) AS
Nombre
FROM empleado;
* El 20 significa que el largo total es de 20 caracteres y el punto
entre comillas es el carácter que se va a utilizar para rellenar
los espacios en blanco.
Operaciones Alfanuméricas en
Consultas – Ejemplo 10
• En que posición se encuentra la primera
letra ‘i’ que pueda tener el empleado 1234;
SELECT INSTR(emp_apellido,’i’)
FROM empleado
WHERE emp_numero = 1234;
* - Si el apellido es Benicio, debe devolver 4.
Operaciones Aritméticas con
Fechas en Consultas
• SQL permite ejecutar queries que incluyan
operaciones aritméticas con fechas.
• Es útil para manejar días, diferencias entre
fechas y calcular estimados de tiempo.
• A continuación mostramos algunos ejemplos
Operaciones Aritméticas con
Fechas en Consultas – Ejemplo 1
• Mostrar el nombre del empleado, la fecha que
comenzó y la fecha en que le corresponde
evaluarlo en la empresa ( La evaluación se
hace después de los primeros 6 meses de
comenzar a trabajar)
SELECT emp_nombre, emp_fecha_inicio,
ADD_MONTHS(emp_fecha_inicio,6) AS
‘Fecha Evaluación’
FROM empleado;
Operaciones Aritméticas con
Fechas en Consultas – Ejemplo 2
• Mostrar el nombre de los empleados y la
cantidad de meses que han transcurrido
desde su fecha de inicio en la compañía.
SELECT emp_nombre,
MONTHS_BETWEEN(SYSDATE,
emp_fecha_inicio) AS Meses
FROM empleado;
Operaciones Aritméticas con
Fechas en Consultas – Ejemplo 3
• Mostrar el nombre del empleado y la fecha
menor entre fecha nacimiento y fecha de
iniciar a trabajar.
SELECT emp_name,
LEAST(emp_fecha_nacimiento,
emp_fecha_inicio) AS “Fecha menor”
FROM empleado;
Operaciones Aritméticas con
Fechas en Consultas – Ejemplo 4
• Mostrar el nombre del empleado y la fecha
mayor entre fecha nacimiento y fecha de
iniciar a trabajar.
SELECT emp_name,
GREATEST(emp_fech_nacimiento,
emp_fecha_inicio) AS “Fecha mayor”
FROM empleado;
Operaciones Aritméticas con
Fechas en Consultas – Ejemplo 5
• Mostrar el nombre, fecha de nacimiento y el
último día del mes de esa fecha de
nacimiento de todos los empleados.
SELECT emp_nombre,
emp_fecha_nacimiento,
LAST_DAY(emp_fecha_nacimiento)
FROM empleado;
Operaciones Aritméticas con
Fechas en Consultas – Ejemplo 6
• ¿Cuál es el próximo viernes despues de la
fecha de nacimiento de cada empleado?
Mostrar su nombre y la fecha del próximo
viernes.
SELECT emp_nombre,
NEXT_DAY(emp_fecha_nacimiento,
‘FRIDAY’) AS ‘Próximo viernes’
FROM empleado;
Operaciones Aritméticas con
Fechas en Consultas – Ejemplo 7
• Mostrar el nombre y la fecha de nacimiento
del empleado en formato de palabras.
SELECT emp_nombre,
TO_CHAR(emp_fecha_nacimiento,
‘fmDdspth “of” Month “of” YYYY’)
FROM empleado;
* Si la fecha es 17-JUN-03, saldría
Seventeenth of June of 2003
Operaciones Aritméticas con
Fechas en Consultas – Ejemplo 8
• Buscar al empleado que nació el 24 de junio
de 1984.
SELECT emp_nombre
FROM empleado
WHERE emp_fecha_nacimiento =
TO_DATE( ‘Jun 24, 1984’, ‘Month dd, YYYY’);
* - Nos permite buscar en la tabla usando otro
formato de fecha. Esta función se puede
utilizar también con el comando de INSERT.
COMANDOS DE
ACTUALIZACIONES A LA BASE
DE DATOS
Volver a los
Objetivos
UPDATE
• Nos permite actualizar atributos de las
tablas
• Puede actualizar una o varias filas
simultáneamente
• Su formáto básico es:
UPDATE tabla SET atributo [atributo = valor]
WHERE [condición]
• Ejemplo:
INSERT
• Permite insertar filas en las tablas.
• Se especifica un solo valor a la vez.
• Su formato básico es:
INSERT INTO tabla VALUES (valores);
• Ejemplo:
DELETE
• Elimina filas de la tabla.
• Puede eliminar una o más filas
dependiendo del formato del comando.
• Su formato básico es:
DELETE FROM tabla WHERE (condición);
• Ejemplo:
DROP
• Elimina tablas completas.
• Esto incluye los datos y el formato de la
tabla.
• Su formato es:
DROP TABLE tabla;
• Ejemplo:
Database Systems: Design, Implementation, & Management, 7th
Edition, Rob & Coronel
Variaciones de los comandos
previamente explicados
PRACTICA DE LABORATORIO
Volver a los
Objetivos
Utilizando el siguiente Diagrama de
Relación:
Que debe estar creado en Oracle
con el siguiente script.REM **************************************************************
REM * Author: Nelliud D. Torres Batista *
REM * Comentarios: Este sript crea la tablas solicitadas en el *
REM * primer laboratorio. *
REM **************************************************************
REM SET ECHO ON
REM ***************************************************************
REM * Creacion de la tabla DEPARTAMENTO *
REM ***************************************************************
CREATE TABLE DEPARTAMENTO (
dep_numero NUMBER(1) NOT NULL,
dep_nombre VARCHAR2(25) NOT NULL,
dep_localización VARCHAR2(15),
CONSTRAINT dep_numero_pk PRIMARY KEY (dep_numero) );
REM ***************************************************************
REM * Creacion de la tabla ASEGURADORA *
REM ***************************************************************
CREATE TABLE ASEGURADORA (
ase_numeroPlan NUMBER(1) NOT NULL,
ase_descripcion VARCHAR2(15) NOT NULL,
CONSTRAINT ase_numeroPlan_pk PRIMARY KEY (ase_numeroPlan) );
REM ***************************************************************
REM * Creacion de la tabla FACULTAD *
REM ***************************************************************
CREATE TABLE FACULTAD (
fac_numero NUMBER(3) NOT NULL,
fac_nombre VARCHAR2(25) NOT NULL,
fac_direccion VARCHAR2(20),
fac_salario NUMBER(7,2),
fac_salarioAcumulado NUMBER(9,2),
dep_numero NUMBER(1) NOT NULL,
fac_grado VARCHAR2(3),
fac_especialidad VARCHAR2(12),
fac_rango CHAR(4) NOT NULL,
ase_numeroPlan NUMBER(1),
fac_dependientes CHAR(1),
CONSTRAINT fac_departamento_fk FOREIGN KEY (dep_numero)
REFERENCES DEPARTAMENTO (dep_numero),
CONSTRAINT fac_aseguradora_fk FOREIGN KEY (ase_numeroPlan)
REFERENCES ASEGURADORA (ase_numeroPlan),
CONSTRAINT fac_numero_pk PRIMARY KEY (fac_numero)
);
REM ***************************************************************
REM * Creacion de la tabla CONFERENCIA *
REM ***************************************************************
CREATE TABLE CONFERENCIA (
fac_numero NUMBER(3) NOT NULL,
conf_id NUMBER(1)
NOT NULL,
conf_titulo VARCHAR2(25) NOT NULL,
conf_cuentasVeces NUMBER(2),
conf_ultimaVez DATE
NOT NULL,
CONSTRAINT fac_numero_fk FOREIGN KEY
(fac_numero)
REFERENCES FACULTAD (fac_numero),
CONSTRAINT conf_pk PRIMARY
KEY (fac_numero, conf_id)
);
REM ***************************************************************
REM * Creacion de la tabla HISTORIAL *
REM ***************************************************************
CREATE TABLE HISTORIAL (
fac_numero NUMBER(3) NOT NULL,
hist_id NUMBER(1)
NOT NULL,
hist_rango VARCHAR2(4) NOT NULL,
hist_fechaRango DATE
NOT NULL,
CONSTRAINT fac_numero2_fk FOREIGN KEY (fac_numero)
REFERENCES FACULTAD (fac_numero),
CONSTRAINT hist_pk PRIMARY
KEY (fac_numero, hist_id) );
Y con la siguiente data entrada
REM ***************************************************************
REM * Datos de la tabla DEPARTMENTO *
REM ***************************************************************
INSERT INTO DEPARTAMENTO VALUES (2,'Physics','Edificio 100');
INSERT INTO DEPARTAMENTO VALUES (5,'Computer
Science','Edificio 100');
INSERT INTO DEPARTAMENTO VALUES (7,'Geology','Edificio
200');
COMMIT;
REM ***************************************************************
REM * Datos de la tabla ASEGURADORA *
REM ***************************************************************
INSERT INTO ASEGURADORA VALUES (1,'Triple-Azul');
INSERT INTO ASEGURADORA VALUES (2,'Cruz SSS');
INSERT INTO ASEGURADORA VALUES (4,'Extra');
COMMIT;
REM ***************************************************************
REM * Datos de la tabla FACULTAD *
REM ***************************************************************
INSERT INTO FACULTAD VALUES (119,'Nelliud
Torres','Bayamón',70100.00,890900.00,5,'MS','Information','Asst
',1,1);
INSERT INTO FACULTAD VALUES (120,'José
Díaz','Carolina',69000.69,789000.00,5,'MS','Engineer','Asso',2,1)
;
INSERT INTO FACULTAD VALUES (201,'Alz
Heimer','Cayey',55500.10,324000.00,7,'PhD','Geology','Full',1,0)
;
INSERT INTO FACULTAD VALUES (204,'Park
REM ***************************************************************
REM * Datos de la tabla CONFERENCIA *
REM ***************************************************************
INSERT INTO CONFERENCIA VALUES (120,1,'El Tarot ',3,'6-
Jun-2004');
INSERT INTO CONFERENCIA VALUES (119,1,'Base de Datos',5,'6-
May-2004');
INSERT INTO CONFERENCIA VALUES (119,2,'Usando
Access',1,'7-Feb-2005');
COMMIT;
REM ***************************************************************
REM * Datos de la tabla HISTORIAL *
REM ***************************************************************
INSERT INTO HISTORIAL VALUES (119,1,'Asst','1-May-1990');
INSERT INTO HISTORIAL VALUES (120,1,'Asso','1-Jun-1991');
INSERT INTO HISTORIAL VALUES (120,2,'Full','1-Jul-2001');
INSERT INTO HISTORIAL VALUES (204,1,'Asst','15-Feb-04');
COMMIT;
Evalúe los siguientes ejemplos de SQL:
Condiciones simples – 1 – Caso - 1
1. Seleccionar el número, nombre y salario
de todos los profesores de la facultad.
Evalúe los siguientes ejemplos de SQL:
Condiciones simples – 1 – Caso - 2
2. Seleccionar todos los campos de la tabla
DEPARTAMENTO.
Evalúe los siguientes ejemplos de SQL:
Condiciones simples – 1 – Caso - 3
3. ¿Cuál es el nombre del profesor cuyo
número es 120?
120;
Evalúe los siguientes ejemplos de SQL:
Condiciones simples – 1 – Caso - 4
4. Seleccionar todos los profesores cuyo
nombre comienzen con la letra “A”.
‘A%’;
Evalúe los siguientes ejemplos de SQL:
Condiciones simples – 1 – Caso - 5
5. Seleccionar todos los profesores cuyo
nombre/apellido contenga la letra r
“%r%”;
Evalúe los siguientes ejemplos de SQL:
Condiciones simples – 1 – Caso - 6
6. Seleccionar todos loa profesores con un
salario igual o mayor de $38,500.
Evalúe los siguientes ejemplos de SQL:
Condiciones simples – 1 – Caso - 7
7. Dar el nombre de todas las conferencias que se hayan dado más de
dos veces y la fecha en que se dieron por última vez.
conf_titulo, conf_ultimaVez CONFERENCIA
conf_cuantasVeces
Corrida SQL Compuesto - 1
Aparentemente en Oracle no trabaja el espacio en blanco
Corrida SQL Compuesto - 2
Corrida SQL Compuesto - 3
Corrida SQL Compuesto - 4
Corrida SQL (SORT) - 1
Corrida SQL (SORT) - 2
Corrida SQL (Funciones) - 1
Corrida SQL (Funciones) - 2
Corrida SQL (Funciones) - 3
Corrida SQL (Funciones) - 4
Corrida SQL (Funciones) - 5
Seleccioné el departamento 5 ya que es el único que tiene más de un record
Corrida SQL (Agrupamiento) - 1
Corrida SQL (Agrupamiento) - 2
Corrida SQL (Agrupamiento) - 3
se incluyó el # 3 y no el 4
se incluyó el # 3 y no el 4
Se utilizó la tabla
CONFERENCIA.
FIN

Más contenido relacionado

La actualidad más candente (20)

Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
 
Consultas en sql básico
Consultas en sql básicoConsultas en sql básico
Consultas en sql básico
 
SENTENCIAS SQL
SENTENCIAS SQL SENTENCIAS SQL
SENTENCIAS SQL
 
520tui
520tui520tui
520tui
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sql
 
Consultas base de datos en SQL
Consultas base de datos en SQLConsultas base de datos en SQL
Consultas base de datos en SQL
 
Anon manual sql
Anon   manual sqlAnon   manual sql
Anon manual sql
 
Sql
SqlSql
Sql
 
Lenguaje estructurado de consulta
Lenguaje estructurado de consultaLenguaje estructurado de consulta
Lenguaje estructurado de consulta
 
Tutorial sql
Tutorial sqlTutorial sql
Tutorial sql
 
Sql 2010
Sql 2010Sql 2010
Sql 2010
 
Subconsultas sql
Subconsultas sqlSubconsultas sql
Subconsultas sql
 
Funciones sql
Funciones sqlFunciones sql
Funciones sql
 
BD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQLBD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQL
 
Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizaje
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
 
SENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVER
 
Introduccion al sql query
Introduccion al sql queryIntroduccion al sql query
Introduccion al sql query
 

Similar a Fundamentos sql

Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
josecuartas
 

Similar a Fundamentos sql (20)

MANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓNMANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓN
 
Tutorial SQL
Tutorial SQLTutorial SQL
Tutorial SQL
 
Expo
ExpoExpo
Expo
 
Fundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sqlFundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sql
 
Sql b
Sql bSql b
Sql b
 
Tsql
TsqlTsql
Tsql
 
SQL-b.pdf
SQL-b.pdfSQL-b.pdf
SQL-b.pdf
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
Sentencias
SentenciasSentencias
Sentencias
 
Sql
SqlSql
Sql
 
Tutorial sql
Tutorial sqlTutorial sql
Tutorial sql
 
Sql
SqlSql
Sql
 
Manual sql
Manual sqlManual sql
Manual sql
 
Tsql
TsqlTsql
Tsql
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Sql
SqlSql
Sql
 
Sentencias SQL Cristian Benalcázar
Sentencias SQL Cristian BenalcázarSentencias SQL Cristian Benalcázar
Sentencias SQL Cristian Benalcázar
 
Sql2
Sql2Sql2
Sql2
 
Introducción a sql server
Introducción a sql serverIntroducción a sql server
Introducción a sql server
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Fundamentos sql

  • 1. Fundamentos de SQL Compilado por : MSc Edgar Taya Acost Fuente original:Prof. Nelliud D. Torres
  • 2. CONTENIDO • FORMATO BÁSICO DEL SELECT PARA UNA O MÁS TABLAS • SELECT STATEMENT • ALGEBRA RELACIONAL • INFORMACIÓN ADICIONAL Y EJEMPLOS DE SELECT • USO DEL SELECT CON: – WHERE – ALIAS – OPERADORES DE COMPARACIÓN (=, >, <, >=, <=, <>, !=) – OPERADORES LÓGICOS (AND, OR, NOT) – OPERADOR BETWEEN – COLUMNAS CALCULADAS – OPERADOR LIKE – OPERADOR IN – OPERADOR DISTINTC – SORT – GROUP BY – HAVING – FUNCIONES • Single Values – ROUND – NLV – TRUNC & SYSDATE – MOD • Group of Values – AVERAGE (AVG) – MAX & MIN – COUNT – SUM • Operaciones aritméticas en consultas • Operaciones alfanuméricas en consultas • Comandos de actualizaciones • Practica de Laboratorio
  • 3. SELECT PARA UNA O MÁS TABLAS Volver a los Objetivos
  • 4. Sintaxis básica para las consultas para una sola entidad (tabla): SELECT atributos FROM entidad WHERE condición GROUP BY atributos HAVING condición ORDER BY atributos; Solamente el SELECT y el FROM son obligatorios Solamente el SELECT y el FROM son obligatorios Siempre termina con punto y coma (;). Siempre termina con punto y coma (;).
  • 5. Sintaxis para las consultas de dos o más entidades (tablas): SELECT atributos (columnas, campos) FROM Tabla_1, Tabla_2,… ON condición JOIN WHERE condición GROUP BY atributos HAVING condición ORDER BY atributos;
  • 7. 7 SELECT Statement • Se utiliza para hacer queries a una tabla sencilla o a múltiples tablas • Las clausulas más importantes son: – SELECTSELECT • List a las columnas y expresiones que deben ser devueltos por el query – FROMFROM • Indica la(s) tabla(s) o view(s) de donde se va a btener los datos – WHEREWHERE • Indica las condiciones en las que una fila debe ser incluida en el resultado – GROUP BYGROUP BY • Indica la categoría de los resultados – HAVINGHAVING • Indica las condiciones bajo las cuales una categoría (grupo) será incluida – ORDER BYORDER BY • Organiz (Sort) el resultado de aucerdo a un criterio especificado. Pag: 309
  • 9. ALGEBRA RELACIONAL • La instrucción SELECT combina las tres operaciones relacionales básicas del álgebra relacional. • Estas operaciones son: – Proyección (π) – Selección (σ) – Join (|x|)
  • 10. ALGEBRA RELACIONAL (Cont.) • La expresión relacional πa,b,c (R) en SQL se escribiría: SELECT a,b,c FROM R • La expresión relacional πa,b,c (σ condición R) en SQL se escribiría: SELECT a,b,c FROM R WHERE condición;
  • 11. ALGEBRA RELACIONAL (Cont.) • La expresión relacional πa,b,c (R|x|S) en SQL se escribiría: SELECT a,b,c FROM R,S WHERE R.c = S.c; Ojo Esta expresión provee un resultado en donde une dos tablas.
  • 12. ALGEBRA RELACIONAL (Cont.) • La expresión relacional πa,b,c (σ condición R|x|S) en SQL se escribiría: SELECT a,b,c FROM R,S WHERE R.c = S.c AND condición; Aquí se están relacionando dos tablas utilizando el PK de una y el FK de la otra en adición a una o más condiciones adicionales.
  • 13. INFORMACIÓN ADICIONAL Y EJEMPLOS DE SELECT Volver a los Objetivos
  • 14. Figure 7-10 SQL statement processing order (adapted from van der Lans, p.100) Pag: 322
  • 15. Ejemplo de un SELECT • Consigue aquellos productos con un precio estándar menor de $275 SELECTSELECT PRODUCT_NAME, STANDARD_PRICE FROMFROM PRODUCT_V WHEREWHERE STANDARD_PRICE < 275; Table 7-3: Comparison Operators in SQL Pag: 309
  • 16. Otro ejemplo que muestra ciertas columnas y todas las filas de una tabla • Un comando puede obtener columnas en específico y todas las filas de una tabla. – Mostrar el número, nombre y balance de todos los clientes • La clausula WHERE no hace falta ya que se van a mostrar todos los clientes de la tabla (filas).
  • 17. Ejemplo de un SELECT que selecciona 3 columnas
  • 18. Buscar (Retrieve) todas las columnas y filas de una tabla • Utilice el asterisco (*) para indicar todas las columnas en la clausula SELECT • Como resultado se van a mostrar todas las columnas en el orden en que la tabla fue creada • El orden de las columnas en la clausula SELECT pueden tener un orden diferente al orden en que las columnas se crearon en la tabla. • Esto le da la opción al usuario de mostrar los datos en el orden de columna que prefiera.
  • 19. Ejemplo de un SELECT que busca todas las columnas de una tabla
  • 20. USO DEL SELECT CON: Volver a los Objetivos
  • 21. WHERE
  • 22. Uso de la Clausula WHERE • Se utiliza la clausula WHERE para buscar filas que satisfagan alguna condición. – ¿Cuál es el nombre del cliente número 148? • Una condición simple incluye: nombre de columna, operador de comparación y finalmente un nombre de columna o un valor.
  • 23. Uso de la Clausula WHERE (cont.) • Los valores de los caracteres en SQL son case sensitive. – “Pepito” es diferente de “pepito” • las condiciones simples pueden comparar columnas. – WHERE BALANCE > CREDIT_LIMIT
  • 24. Ejemplo de un SELECT con WHERE
  • 25. ALIAS
  • 26. 26 Ejemplo de SELECT utilizando un Alias • El Alias se utiliza como alternativa para nombre de columna o tabla SELECT CUSTCUST.CUSTOMER AS NAMENAME, CUSTCUST.CUSTOMER_ADDRESS FROM CUSTOMER_V CUSTCUST WHERE NAMENAME = ‘Home Furnishings’; OJO El ALIAS se puede utilizar para reemplazar el nombre de una entidad o de un atributo Pag: 310
  • 28. Los operadores de comparación
  • 30. Usando condiciones compuestas • Condiciones compuestas conectan dos o más condiciones simples con los operadores AND, OR y NOT – AND – Muestra los resultados cuando ambas condiciones simples son ciertas – OR - Muestra los resultados cuando cualquiera de las condiciones simples sea cierta – NOT - invierte el resultado de la condición original
  • 31. SELECT Example–Boolean Operators • ANDAND, OROR, and NOTNOT Operators for customizing conditions in WHERE clause SELECT PRODUCT_DESCRIPTION, PRODUCT_FINISH, STANDARD_PRICE FROM PRODUCT_V WHERE (PRODUCT_DESCRIPTION LIKELIKE ‘%%Desk’ OROR PRODUCT_DESCRIPTION LIKELIKE ‘%%Table’) ANDAND UNIT_PRICE > 300; Note: the LIKE operator allows you to compare strings using wildcards. For example, the % wildcard in ‘%Desk’ indicates that all strings that have any number of characters preceding the word “Desk” will be allowed Pag: 315
  • 32. 32 Diagrama de Venn del Query del Slide anterior
  • 33. Ejemplo de un SELECT con AND
  • 34. Ejemplo del mismo SELECT con el AND en una misma línea
  • 35. Ejemplo de un SELECT con OR
  • 36. Ejemplo de un SELECT con NOT
  • 38. Utilizando el operador BETWEEN • No es un clausula esencial en SQL • se pueden obtener los mismos resultados sin esta clausula • Sin embargo simplifica la construcción del SELECT en donde se quiera aplicar • El operador BETWEEN solo incluye valores de un rango – Por ejemplo si usas BETWEEN 2000 and 5000, todos aquellos valores entre 2000 y 5000 son ciertos.
  • 39. Ejemplo de un SELECT sin BETWEEN
  • 40. Ejemplo de un SELECT con BETWEEN
  • 42. UTILIZANDO COLUMNAS CALCULADAS • Computed column – No existen en la base de datos, pero se calcula utilizando datos de columnas que ya existen. • Los cálculos pueden incluir los operadores matemáticos. – + para suma – - para resta – * para multiplicación – / para división
  • 43. Ejemplo de un SELECT que crea una columna calculada
  • 45. Utilizando el operador LIKE • Se utiliza para obtener los datos en donde no hay un pareo exacto (exact match) al utilizar los wildcards (*). • LIKE %Central% te va a devolver datos que contengan esos caracteres como por ejemplo: – “3829 Central” or “Centralia” • El underscore (_) representa cualquier caracter sencillo – “T_M” para TIM o TOM o T3M
  • 47. Utilizando el Operador IN • El operador IN permite examinar diferentes valores simultáneamente. Por ejemplo:
  • 49. Utilizando el Operador DISTINCT • Se utiliza para garantizar inequidad (uniqueness) en los resultados. • En otras palabras elimina repeticiones A Guide to SQL, Seventh Edition
  • 50. Ejemplo que no utiliza el Operador DISTINCT
  • 51. Ejemplo que utiliza el Operador DISTINCT
  • 52. SORT
  • 53. SORTING • ORDER BY – Indica el order por el cual se van a organizar los datos • esta columna seleccionada se le conoce también como el sort key • Se utiliza el ORDER BY seguido del sort key • Las filas se organizan en orden ascendente a menos que se especifique lo contrario.
  • 54. Opciones Adicionales para Organizar (Sort) • Es posible organizar datos por más de un key • Major sort key y minor sort key • Se lista el orden de los sort keys en orden de importancia en la clausula ORDER BY • Se utiliza DESC para organizar en orden descendente.
  • 55. Ejemplo de un SORT con dos Keys
  • 56. SELECT Example – Sorting Results with the ORDER BY Clause • Sort the results first by STATE, and within a state by CUSTOMER_NAME SELECT CUSTOMER_NAME, CITY, STATE FROM CUSTOMER_V WHERE STATE ININ (‘FL’, ‘TX’, ‘CA’, ‘HI’) ORDER BYORDER BY STATE, CUSTOMER_NAME; Note: the IN operator in this example allows you to include rows whose STATE value is either FL, TX, CA, or HI. It is more efficient than separate OR conditions Pág: 319
  • 58. USO DE LA CLAUSULA GROUP • For use with aggregate functions – Scalar aggregate: single value returned from SQL query with aggregate function – Vector aggregate: multiple values returned from SQL query with aggregate function (via GROUP BY) SELECT CUSTOMER_STATE, COUNT(CUSTOMER_STATE) FROM CUSTOMER_V GROUP BYGROUP BY CUSTOMER_STATE; Note: you can use single-value fields with aggregate functions if they are included in the GROUP BY clause
  • 59. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel EJEMPLO DE GROUP BY
  • 60. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel EJEMPLO DE GROUP BY (Cont.)
  • 61. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel EJEMPLO DE GROUP BY (Cont-2)
  • 63. SELECT Example – Uso de la cláusula HAVING • Se utiliza con la cláusula GROUP BY SELECT CUSTOMER_STATE, COUNT(CUSTOMER_STATE) FROM CUSTOMER_V GROUP BY CUSTOMER_STATE HAVINGHAVING COUNT(CUSTOMER_STATE) > 1; Like a WHERE clause, but it operates on groups (categories), not on individual rows. Here, only those groups with total numbers greater than 1 will be included in final result.
  • 65. OPERACIONES DE FUNCIONES • Como todos sabemos, las funciones son un conjunto de instrucciones que ejecutan una tarea en particular. • A continuación se muestra una tabla con ejemplos de funciones agregadas (que leen varios datos de una columna para poder obtener el resultado).
  • 66. UTILIZANDO FUNCIONES Aggregate functions – Calculan sumatorias, promedios, valores mínimos o máximos, etc. (también se conocen como Group of Values) Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel
  • 67. OPERACIONES DE FUNCIONES • Aquí vamos a explicar dos tipos de funciones: – Single Values – Group of Values • A continuación explicamos la Función de Single Values
  • 68. Operaciones de Funciones – Single Values • Se llaman single values porque solo devuelven un solo valor como resultado. • Algunas de las funciones que caen bajo esta categoría son: valor absoluto (ABS(valor)), la raíz cuadrada (SQRT(valor)), entre otros. • A continuación mostramos algunos ejemplos
  • 69. Operaciones de Funciones Single Values Ejemplo – 1 (ROUND) • Mostrar el nombre y lo que gana el empleado en comisión para aquellos que son vendedores. Se redondea a dos lugares la ganancia de la comisión. SELECT emp_nombre, ROUND(emp_commision * emp_salario / 100,2) FROM empleado WHERE emp_titulo = ‘Vendedores’;
  • 70. Operaciones de Funciones – Single Values Ejemplo – 2 (NVL) • Mostrar el nombre de todos los vendedores y el porciento de comisión que tienen asignado. En caso de que el vendedor no gane comisión (valor nulo) que muestre un cero. SELECT emp_nombre, NVL(emp_comision,0) FROM empleado;
  • 71. Operaciones de Funciones – Single Values Ejemplo – 3 (TRUNC) • Mostrar el nombre de los empleados y la cantidad de días que llevan en la empresa. SELECT emp_nombre, TRUNC(SYSDATE – emp_fecha_inicio) AS DIAS FROM empleado; * TRUNC - Quita las posiciones decimales y SYSDATE trae la fecha del día del sistema.
  • 72. Operaciones de Funciones – Single Values Ejemplo – 4 (MOD) • Mostrar el nombre de los empleados y la cantidad de semanas y días que llevan en la empresa. SELECT emp_nombre, TRUNC((SYSDATE – emp_fecha_inicio)/7) AS SEMANAS, MOD(TRUNC(SYSDATE – emp_fecha_inicio),7) AS DIAS FROM empleado;
  • 73. Operaciones de Funciones – Group of Values • Estas funciones ofrecen resultados que se aplican a los valores de una columna en total o en parte. • Algunos de ejemplos de estas funciones son promedio (AVG), valor máximo (MAX), valor mínimo (MIN), entre otros. • A continuación mostramos algunos ejemplos
  • 74. Operaciones de Funciones – Group of Values Ejemplo AVG • Esta función saca el promedio de una columna en particular dentro de una tabla. • Ejemplo: Calcular el promedio de sueldos de todos los empleados: SELECT AVG(emp_salario) FROM empleado;
  • 75. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel OTRO EJEMPLO DE AVERAGE (AVG)
  • 76. MAX & MIN • Calculan el valor Máximo y el Valor Mínimo de una columna. • A continuación mostraremos algunos ejemplos que utilizan estas funciones.
  • 77. Operaciones de Funciones – Group of Values Ejemplo MAX • Mostrar el salario mayor de todos los empleados (¿Cuánto gana el que más gana?) SELECT MAX(emp_salario) FROM empleado;
  • 78. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel EJEMPLO DE MAX y MIN
  • 79. Utilizando la función COUNT • Cuenta el número de filas en una tabla • Se utiliza el asterisco cuando se quiere utilizar cualquier columna
  • 80. Ejemplo-libro usando la función COUNT • Utilize la función agregada (aggregate function) COUNT para encontrar totales SELECT COUNT(*)COUNT(*) FROM ORDER_LINE_V WHERE ORDER_ID = 1004; Pag: 311
  • 81. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel OTRO EJEMPLO DEL COUNT
  • 82. Operaciones de Funciones – Group of Values Ejemplo COUNT - 1 • ¿Cuántos empleados hay en la tabla? SELECT COUNT(*) FROM empleado; *COUNT – Si en lugar del *, se pone el nombre de un atributo, si este tiene valores nulos, el COUNT no los cuenta.
  • 83. Operaciones de Funciones – Group of Values Ejemplo COUNT - 2 • Mostrar cuantos puestos diferentes hay en la tabla de empleados y el total de empleados. SELECT COUNT(DISTINCT emp_titulo), COUNT(*) FROM empleado;
  • 84. Operaciones de Funciones – Group of Values Ejemplo COUNT - 3 • Mostrar los diferentes puestos y cuantos empleados tienen ese puesto. SELECT emp_titulo AS Puestos, COUNT(title) AS “Cantidad de Empleados” FROM empleado GROUP BY emp_titulo;
  • 85. Operaciones de Funciones – Group of Values Ejemplo COUNT - 4 • Mostrar los diferentes puestos y cuantos empleados tienen ese puesto que sean dos o más. Los puestos con un solo empleado no deben mostrarse. SELECT emp_titulo AS Puestos, COUNT(title) AS “Cantidad de Empleados” FROM empleado GROUP BY emp_titulo HAVING COUNT(emp_titulo) > 2;
  • 86. Operaciones de Funciones – Group of Values Ejemplo SUM • ¿A cuanto suma los salarios de todos los empleados? SELECT SUM(emp_salario) FROM empleado;
  • 87. Operaciones de Funciones – Group of Values Ejemplo – 8 (Varias) • Mostrar la cantidad de empleados, el promedio de sueldos y el total de sueldos. SELECT COUNT(*) AS ‘Cantidad de empleados’ AVG(emp_salario) AS ‘Promedio de sueldos’ SUM(emp_salario) AS ‘Total de sueldos’ FROM empleado; * - Si se quiere poner un título separado por espacio, se puede poner entre comillas.
  • 88. Utilizando la función SUM • Se utiliza para calcular totales de columnas • Estas columnas tienen que especificarse y deben ser numéricas • Funciones como AVG, MAX y MIN son similares, pero producen resultados diferentes • Los valores nulos (Null) son ignorados y no se utilizan en estos tipos de cálculos A Guide to SQL, Seventh Edition
  • 89. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel EJEMPLO DE SUM
  • 90. Operaciones de Funciones – Group of Values Ejemplo (Varias) • Mostrar la cantidad de empleados, el promedio de sueldos y el total de sueldos. SELECT COUNT(*) AS ‘Cantidad de empleados’ AVG(emp_salario) AS ‘Promedio de sueldos’ SUM(emp_salario) AS ‘Total de sueldos’ FROM empleado; * - Si se quiere poner un título separado por espacio, se puede poner entre comillas.
  • 92. Operaciones Aritméticas en Consultas • Dentro de un SELECT podemos mostrar resultados que provienen de uno o varios campos de la base de datos utilizando operaciones matemáticas. • Las operaciones básicas son suma (+), resta (-), división (/) y multiplicación (*). • A continuación vamos a mostrar algunos ejemplos
  • 93. Operaciones Aritméticas – Mult. • Mostrar el nombre y el salario anual de los empleados. (asuma que el atributo salario sólo tiene el pago mensual) SELECT emp_nombre, emp_salario * 12 FROM empleado;
  • 94. Operaciones Aritméticas - Suma • ¿A cuanto subiría el salario de cada empleado si le incluimos 300 dólares de aumento? Mostrar el nombre y el salario incluyéndole el aumento de 300 dólares. SELECT emp_nombre, emp_salario + 300 FROM empleado;
  • 95. Operaciones Aritméticas - Varios • Mostrar el nombre y lo que gana el empleado en comisión para aquellos que son vendedores. SELECT emp_nombre, emp_commision * emp_salario / 100 FROM empleado WHERE emp_titulo = ‘Vendedores’;
  • 97. Operaciones Alfanuméricas en Consultas • En estas operaciones se juega con el manejo de caracteres y “string”. • Permiten una mejor presentación de los datos en pantalla y/o reportes. • Ayuda en la búsqueda de instancias en la tabla. • A continuación mostramos algunos ejemplos
  • 98. Operaciones Alfanuméricas en Consultas – Ejemplo 1 • Mostrar el nombre y apellido (que no queden separados por espacios en blanco) SELECT emp_nombre || emp_apellidos FROM empleado;
  • 99. Operaciones Alfanuméricas en Consultas – Ejemplo 2 • Mostrar los apellidos y luego el nombre separado por coma SELECT emp_apellidos || ’,’ || emp_nombre FROM empleado;
  • 100. Operaciones Alfanuméricas en Consultas – Ejemplo 3 • Mostrar los apellidos y luego el nombre separado por un espacio en blanco. SELECT emp_apellidos || ’ ’ || emp_nombre FROM empleado;
  • 101. Operaciones Alfanuméricas en Consultas – Ejemplo 4 • Mostrar el apellido del empleado 1234 y de cuantos caracteres se compone SELECT emp_apellido, LENGHT(emp_apellido) FROM empleado WHERE emp_numero = 1234;
  • 102. Operaciones Alfanuméricas en Consultas – Ejemplo 5 • Mostrar todos los apellidos de los empleados que tengan 5 caracteres de largo. SELECT emp_apellido, FROM empleado WHERE LENGHT(emp_apellido) = 5;
  • 103. Operaciones Alfanuméricas en Consultas – Ejemplo 6 • Mostrar todos los apellidos de los empleados en letra minúscula. SELECT LOWER(emp_apellido), FROM empleado;
  • 104. Operaciones Alfanuméricas en Consultas – Ejemplo 7 • Buscar entre los apellidos de los empleados, aquellos que sean igual a Benicio. Mostrar el nombre y los apellidos. OJO, en la base de datos pued estar escrito BENICIO, Benicio, benicio, etc. SELECT emp_nombre ||’ ‘|| emp_apellidos FROM empleado WHERE UPPER(emp_apellido) = ‘BENICIO’; * Aparte de UPPER y LOWER, existe INITCAP (la primera mayúsculas y el resto minúsculas)
  • 105. Operaciones Alfanuméricas en Consultas – Ejemplo 8 • Tomar dos caracteres del apellido del empleado 1234 comenzando en la posición tres y extrayendo dos caracteres. SELECT SUBSTR(emp_apellido,3,2) FROM empleado WHERE emp_numero = 1234; *-Si el apellido era Benicio, el resultado sería: “ni”.
  • 106. Operaciones Alfanuméricas en Consultas – Ejemplo 9 • Mostrar todos los empleados por apellidos y nombre (separado por coma) y su número de empleado. Se desea que los espacios en blanco que sobren del nombre y apellido, se rellenen de puntos (.). SELECT RPAD(emp_apellidos || ‘,’ || emp_nombre,20,’.’) AS Nombre FROM empleado; * El 20 significa que el largo total es de 20 caracteres y el punto entre comillas es el carácter que se va a utilizar para rellenar los espacios en blanco.
  • 107. Operaciones Alfanuméricas en Consultas – Ejemplo 10 • En que posición se encuentra la primera letra ‘i’ que pueda tener el empleado 1234; SELECT INSTR(emp_apellido,’i’) FROM empleado WHERE emp_numero = 1234; * - Si el apellido es Benicio, debe devolver 4.
  • 108. Operaciones Aritméticas con Fechas en Consultas • SQL permite ejecutar queries que incluyan operaciones aritméticas con fechas. • Es útil para manejar días, diferencias entre fechas y calcular estimados de tiempo. • A continuación mostramos algunos ejemplos
  • 109. Operaciones Aritméticas con Fechas en Consultas – Ejemplo 1 • Mostrar el nombre del empleado, la fecha que comenzó y la fecha en que le corresponde evaluarlo en la empresa ( La evaluación se hace después de los primeros 6 meses de comenzar a trabajar) SELECT emp_nombre, emp_fecha_inicio, ADD_MONTHS(emp_fecha_inicio,6) AS ‘Fecha Evaluación’ FROM empleado;
  • 110. Operaciones Aritméticas con Fechas en Consultas – Ejemplo 2 • Mostrar el nombre de los empleados y la cantidad de meses que han transcurrido desde su fecha de inicio en la compañía. SELECT emp_nombre, MONTHS_BETWEEN(SYSDATE, emp_fecha_inicio) AS Meses FROM empleado;
  • 111. Operaciones Aritméticas con Fechas en Consultas – Ejemplo 3 • Mostrar el nombre del empleado y la fecha menor entre fecha nacimiento y fecha de iniciar a trabajar. SELECT emp_name, LEAST(emp_fecha_nacimiento, emp_fecha_inicio) AS “Fecha menor” FROM empleado;
  • 112. Operaciones Aritméticas con Fechas en Consultas – Ejemplo 4 • Mostrar el nombre del empleado y la fecha mayor entre fecha nacimiento y fecha de iniciar a trabajar. SELECT emp_name, GREATEST(emp_fech_nacimiento, emp_fecha_inicio) AS “Fecha mayor” FROM empleado;
  • 113. Operaciones Aritméticas con Fechas en Consultas – Ejemplo 5 • Mostrar el nombre, fecha de nacimiento y el último día del mes de esa fecha de nacimiento de todos los empleados. SELECT emp_nombre, emp_fecha_nacimiento, LAST_DAY(emp_fecha_nacimiento) FROM empleado;
  • 114. Operaciones Aritméticas con Fechas en Consultas – Ejemplo 6 • ¿Cuál es el próximo viernes despues de la fecha de nacimiento de cada empleado? Mostrar su nombre y la fecha del próximo viernes. SELECT emp_nombre, NEXT_DAY(emp_fecha_nacimiento, ‘FRIDAY’) AS ‘Próximo viernes’ FROM empleado;
  • 115. Operaciones Aritméticas con Fechas en Consultas – Ejemplo 7 • Mostrar el nombre y la fecha de nacimiento del empleado en formato de palabras. SELECT emp_nombre, TO_CHAR(emp_fecha_nacimiento, ‘fmDdspth “of” Month “of” YYYY’) FROM empleado; * Si la fecha es 17-JUN-03, saldría Seventeenth of June of 2003
  • 116. Operaciones Aritméticas con Fechas en Consultas – Ejemplo 8 • Buscar al empleado que nació el 24 de junio de 1984. SELECT emp_nombre FROM empleado WHERE emp_fecha_nacimiento = TO_DATE( ‘Jun 24, 1984’, ‘Month dd, YYYY’); * - Nos permite buscar en la tabla usando otro formato de fecha. Esta función se puede utilizar también con el comando de INSERT.
  • 117. COMANDOS DE ACTUALIZACIONES A LA BASE DE DATOS Volver a los Objetivos
  • 118. UPDATE • Nos permite actualizar atributos de las tablas • Puede actualizar una o varias filas simultáneamente • Su formáto básico es: UPDATE tabla SET atributo [atributo = valor] WHERE [condición] • Ejemplo:
  • 119. INSERT • Permite insertar filas en las tablas. • Se especifica un solo valor a la vez. • Su formato básico es: INSERT INTO tabla VALUES (valores); • Ejemplo:
  • 120. DELETE • Elimina filas de la tabla. • Puede eliminar una o más filas dependiendo del formato del comando. • Su formato básico es: DELETE FROM tabla WHERE (condición); • Ejemplo:
  • 121. DROP • Elimina tablas completas. • Esto incluye los datos y el formato de la tabla. • Su formato es: DROP TABLE tabla; • Ejemplo:
  • 122. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel Variaciones de los comandos previamente explicados
  • 123. PRACTICA DE LABORATORIO Volver a los Objetivos
  • 124. Utilizando el siguiente Diagrama de Relación:
  • 125. Que debe estar creado en Oracle con el siguiente script.REM ************************************************************** REM * Author: Nelliud D. Torres Batista * REM * Comentarios: Este sript crea la tablas solicitadas en el * REM * primer laboratorio. * REM ************************************************************** REM SET ECHO ON REM *************************************************************** REM * Creacion de la tabla DEPARTAMENTO * REM *************************************************************** CREATE TABLE DEPARTAMENTO ( dep_numero NUMBER(1) NOT NULL, dep_nombre VARCHAR2(25) NOT NULL, dep_localización VARCHAR2(15), CONSTRAINT dep_numero_pk PRIMARY KEY (dep_numero) ); REM *************************************************************** REM * Creacion de la tabla ASEGURADORA * REM *************************************************************** CREATE TABLE ASEGURADORA ( ase_numeroPlan NUMBER(1) NOT NULL, ase_descripcion VARCHAR2(15) NOT NULL, CONSTRAINT ase_numeroPlan_pk PRIMARY KEY (ase_numeroPlan) ); REM *************************************************************** REM * Creacion de la tabla FACULTAD * REM *************************************************************** CREATE TABLE FACULTAD ( fac_numero NUMBER(3) NOT NULL, fac_nombre VARCHAR2(25) NOT NULL, fac_direccion VARCHAR2(20), fac_salario NUMBER(7,2), fac_salarioAcumulado NUMBER(9,2), dep_numero NUMBER(1) NOT NULL, fac_grado VARCHAR2(3), fac_especialidad VARCHAR2(12), fac_rango CHAR(4) NOT NULL, ase_numeroPlan NUMBER(1), fac_dependientes CHAR(1), CONSTRAINT fac_departamento_fk FOREIGN KEY (dep_numero) REFERENCES DEPARTAMENTO (dep_numero), CONSTRAINT fac_aseguradora_fk FOREIGN KEY (ase_numeroPlan) REFERENCES ASEGURADORA (ase_numeroPlan), CONSTRAINT fac_numero_pk PRIMARY KEY (fac_numero) ); REM *************************************************************** REM * Creacion de la tabla CONFERENCIA * REM *************************************************************** CREATE TABLE CONFERENCIA ( fac_numero NUMBER(3) NOT NULL, conf_id NUMBER(1) NOT NULL, conf_titulo VARCHAR2(25) NOT NULL, conf_cuentasVeces NUMBER(2), conf_ultimaVez DATE NOT NULL, CONSTRAINT fac_numero_fk FOREIGN KEY (fac_numero) REFERENCES FACULTAD (fac_numero), CONSTRAINT conf_pk PRIMARY KEY (fac_numero, conf_id) ); REM *************************************************************** REM * Creacion de la tabla HISTORIAL * REM *************************************************************** CREATE TABLE HISTORIAL ( fac_numero NUMBER(3) NOT NULL, hist_id NUMBER(1) NOT NULL, hist_rango VARCHAR2(4) NOT NULL, hist_fechaRango DATE NOT NULL, CONSTRAINT fac_numero2_fk FOREIGN KEY (fac_numero) REFERENCES FACULTAD (fac_numero), CONSTRAINT hist_pk PRIMARY KEY (fac_numero, hist_id) );
  • 126. Y con la siguiente data entrada REM *************************************************************** REM * Datos de la tabla DEPARTMENTO * REM *************************************************************** INSERT INTO DEPARTAMENTO VALUES (2,'Physics','Edificio 100'); INSERT INTO DEPARTAMENTO VALUES (5,'Computer Science','Edificio 100'); INSERT INTO DEPARTAMENTO VALUES (7,'Geology','Edificio 200'); COMMIT; REM *************************************************************** REM * Datos de la tabla ASEGURADORA * REM *************************************************************** INSERT INTO ASEGURADORA VALUES (1,'Triple-Azul'); INSERT INTO ASEGURADORA VALUES (2,'Cruz SSS'); INSERT INTO ASEGURADORA VALUES (4,'Extra'); COMMIT; REM *************************************************************** REM * Datos de la tabla FACULTAD * REM *************************************************************** INSERT INTO FACULTAD VALUES (119,'Nelliud Torres','Bayamón',70100.00,890900.00,5,'MS','Information','Asst ',1,1); INSERT INTO FACULTAD VALUES (120,'José Díaz','Carolina',69000.69,789000.00,5,'MS','Engineer','Asso',2,1) ; INSERT INTO FACULTAD VALUES (201,'Alz Heimer','Cayey',55500.10,324000.00,7,'PhD','Geology','Full',1,0) ; INSERT INTO FACULTAD VALUES (204,'Park REM *************************************************************** REM * Datos de la tabla CONFERENCIA * REM *************************************************************** INSERT INTO CONFERENCIA VALUES (120,1,'El Tarot ',3,'6- Jun-2004'); INSERT INTO CONFERENCIA VALUES (119,1,'Base de Datos',5,'6- May-2004'); INSERT INTO CONFERENCIA VALUES (119,2,'Usando Access',1,'7-Feb-2005'); COMMIT; REM *************************************************************** REM * Datos de la tabla HISTORIAL * REM *************************************************************** INSERT INTO HISTORIAL VALUES (119,1,'Asst','1-May-1990'); INSERT INTO HISTORIAL VALUES (120,1,'Asso','1-Jun-1991'); INSERT INTO HISTORIAL VALUES (120,2,'Full','1-Jul-2001'); INSERT INTO HISTORIAL VALUES (204,1,'Asst','15-Feb-04'); COMMIT;
  • 127. Evalúe los siguientes ejemplos de SQL: Condiciones simples – 1 – Caso - 1 1. Seleccionar el número, nombre y salario de todos los profesores de la facultad.
  • 128. Evalúe los siguientes ejemplos de SQL: Condiciones simples – 1 – Caso - 2 2. Seleccionar todos los campos de la tabla DEPARTAMENTO.
  • 129. Evalúe los siguientes ejemplos de SQL: Condiciones simples – 1 – Caso - 3 3. ¿Cuál es el nombre del profesor cuyo número es 120? 120;
  • 130. Evalúe los siguientes ejemplos de SQL: Condiciones simples – 1 – Caso - 4 4. Seleccionar todos los profesores cuyo nombre comienzen con la letra “A”. ‘A%’;
  • 131. Evalúe los siguientes ejemplos de SQL: Condiciones simples – 1 – Caso - 5 5. Seleccionar todos los profesores cuyo nombre/apellido contenga la letra r “%r%”;
  • 132. Evalúe los siguientes ejemplos de SQL: Condiciones simples – 1 – Caso - 6 6. Seleccionar todos loa profesores con un salario igual o mayor de $38,500.
  • 133. Evalúe los siguientes ejemplos de SQL: Condiciones simples – 1 – Caso - 7 7. Dar el nombre de todas las conferencias que se hayan dado más de dos veces y la fecha en que se dieron por última vez. conf_titulo, conf_ultimaVez CONFERENCIA conf_cuantasVeces
  • 134.
  • 135. Corrida SQL Compuesto - 1 Aparentemente en Oracle no trabaja el espacio en blanco
  • 139.
  • 142.
  • 147. Corrida SQL (Funciones) - 5 Seleccioné el departamento 5 ya que es el único que tiene más de un record
  • 148.
  • 152.
  • 153.
  • 154. se incluyó el # 3 y no el 4
  • 155. se incluyó el # 3 y no el 4
  • 156. Se utilizó la tabla CONFERENCIA.
  • 157. FIN