La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Prof. Nelliud D. Torres SQL - Introductorio – DML Directiva SELECT

Presentaciones similares


Presentación del tema: "Prof. Nelliud D. Torres SQL - Introductorio – DML Directiva SELECT"— Transcripción de la presentación:

1 Prof. Nelliud D. Torres SQL - Introductorio – DML Directiva SELECT
SICI-4030 Base de Datos Prof. Nelliud D. Torres SQL - Introductorio – DML Directiva SELECT 1

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):
Solamente el SELECT y el FROM son obligatorios SELECT atributos FROM entidad WHERE condición GROUP BY atributos HAVING condición ORDER BY atributos; 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;

6 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: SELECT List a las columnas y expresiones que deben ser devueltos por el query FROM Indica la(s) tabla(s) o view(s) de donde se va a btener los datos WHERE Indica las condiciones en las que una fila debe ser incluida en el resultado GROUP BY Indica la categoría de los resultados HAVING Indica las condiciones bajo las cuales una categoría (grupo) será incluida ORDER BY Organiz (Sort) el resultado de aucerdo a un criterio especificado. Pag: 309

8 ALGEBRA RELACIONAL Volver a los Objetivos

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: 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 SQL statement processing order (adapted from van der Lans, p.100)
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 SELECT PRODUCT_NAME, STANDARD_PRICE FROM PRODUCT_V WHERE 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 Ejemplo de SELECT utilizando un Alias
El Alias se utiliza como alternativa para nombre de columna o tabla SELECT CUST.CUSTOMER AS NAME, CUST.CUSTOMER_ADDRESS FROM CUSTOMER_V CUST WHERE NAME = ‘Home Furnishings’; OJO El ALIAS se puede utilizar para reemplazar el nombre de una entidad o de un atributo Pag: 310

27 OPERADORES DE COMPARACIÓN

28 Los operadores de comparación

29 OPERADORES LÓGICOS

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
AND, OR, and NOT Operators for customizing conditions in WHERE clause SELECT PRODUCT_DESCRIPTION, PRODUCT_FINISH, STANDARD_PRICE FROM PRODUCT_V WHERE (PRODUCT_DESCRIPTION LIKE ‘%Desk’ OR PRODUCT_DESCRIPTION LIKE ‘%Table’) AND 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

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

37 OPERADOR BETWEEN

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

41 COLUMNAS CALCULADAS

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

44 OPERADOR LIKE

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

46 OPERADOR IN

47 Utilizando el Operador IN
El operador IN permite examinar diferentes valores simultáneamente. Por ejemplo:

48 OPERADOR DISTINCT

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 IN (‘FL’, ‘TX’, ‘CA’, ‘HI’) ORDER 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

57 GROUP BY

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 BY CUSTOMER_STATE; Note: you can use single-value fields with aggregate functions if they are included in the GROUP BY clause

59 EJEMPLO DE GROUP BY Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

60 EJEMPLO DE GROUP BY (Cont.)
Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

61 EJEMPLO DE GROUP BY (Cont-2)
Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

62 HAVING

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

64 FUNCIONES Volver a los Objetivos

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 OTRO EJEMPLO DE AVERAGE (AVG)
Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

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 EJEMPLO DE MAX y MIN Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

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(*) FROM ORDER_LINE_V WHERE ORDER_ID = 1004; Pag: 311

81 OTRO EJEMPLO DEL COUNT Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

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 EJEMPLO DE SUM Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

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.

91 OPERACIONES ARITMÉTICAS EN CONSULTAS
Volver a los Objetivos

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’;

96 OPERACIONES ALFANUMÉRICAS EN CONSULTAS
Volver a los Objetivos

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 Variaciones de los comandos previamente explicados
Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

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 SET ECHO ON REM *************************************************************** REM * Creacion de la tabla DEPARTAMENTO * 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 * Creacion de la tabla ASEGURADORA * CREATE TABLE ASEGURADORA ( ase_numeroPlan NUMBER(1) NOT NULL, ase_descripcion VARCHAR2(15) NOT NULL, CONSTRAINT ase_numeroPlan_pk PRIMARY KEY (ase_numeroPlan) ); REM * Creacion de la tabla FACULTAD * 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), 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 * 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 * Creacion de la tabla HISTORIAL * CREATE TABLE HISTORIAL ( 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 * 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 * Datos de la tabla ASEGURADORA * INSERT INTO ASEGURADORA VALUES (1,'Triple-Azul'); INSERT INTO ASEGURADORA VALUES (2,'Cruz SSS'); INSERT INTO ASEGURADORA VALUES (4,'Extra'); REM * Datos de la tabla FACULTAD * INSERT INTO FACULTAD VALUES (119,'Nelliud Torres','Bayamón', , ,5,'MS','Information','Asst',1,1); INSERT INTO FACULTAD VALUES (120,'José Díaz','Carolina', , ,5,'MS','Engineer','Asso',2,1); INSERT INTO FACULTAD VALUES (201,'Alz Heimer','Cayey', , ,7,'PhD','Geology','Full',1,0); INSERT INTO FACULTAD VALUES (204,'Park Inson','Caguas', , ,2,'PhD','Physics','Asst',1,1); REM *************************************************************** REM * Datos de la tabla CONFERENCIA * 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 * Datos de la tabla HISTORIAL * 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');

127 Evalúe los siguientes ejemplos de SQL: Condiciones simples – 1 – Caso - 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

136 Corrida SQL Compuesto - 2

137 Corrida SQL Compuesto - 3

138 Corrida SQL Compuesto - 4

139

140 Corrida SQL (SORT) - 1

141 Corrida SQL (SORT) - 2

142

143 Corrida SQL (Funciones) - 1

144 Corrida SQL (Funciones) - 2

145 Corrida SQL (Funciones) - 3

146 Corrida SQL (Funciones) - 4

147 Corrida SQL (Funciones) - 5
Seleccioné el departamento 5 ya que es el único que tiene más de un record

148

149 Corrida SQL (Agrupamiento) - 1

150 Corrida SQL (Agrupamiento) - 2

151 Corrida SQL (Agrupamiento) - 3

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


Descargar ppt "Prof. Nelliud D. Torres SQL - Introductorio – DML Directiva SELECT"

Presentaciones similares


Anuncios Google