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
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.
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).
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
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
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
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
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.
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
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
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
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.
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).
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
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.
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
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