La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diapositivas Resumen SQL ORACLE – Semana 1 Especialización en Desarrollo de soluciones Informáticas Universidad del Cauca Miguel Angel Niño Zambrano.

Presentaciones similares


Presentación del tema: "Diapositivas Resumen SQL ORACLE – Semana 1 Especialización en Desarrollo de soluciones Informáticas Universidad del Cauca Miguel Angel Niño Zambrano."— Transcripción de la presentación:

1 Diapositivas Resumen SQL ORACLE – Semana 1 Especialización en Desarrollo de soluciones Informáticas Universidad del Cauca Miguel Angel Niño Zambrano

2 Recursos del Curso Profesor: – Mag. Miguel Angel Niño Zambrano – Oficina: 422 – Correos: manzamb@unicauca.edu.co, manzamb@hotmail.com.manzamb@unicauca.edu.co manzamb@hotmail.com – Celular: 3005527545 CD del Curso Sitio Web: http://pis.unicauca.edu.co/moodle- 2.1.2/course/view.php?id=397http://pis.unicauca.edu.co/moodle- 2.1.2/course/view.php?id=397

3 Instalación de ORACLE Proceso de instalación ORACLE – Servidor en UV04 – Cliente en Ternurita. Trabajando con los Clientes – sqlplus – Iqlplus – PLSQL Developer – Editor npp

4 Universidad del Cauca – FIET – Departamento de Sistemas Usuarios del curso User name – espXX donde XX es 01, 02, 03, …10, …16 Password – oracle Host string / Connection Identifier – bd9ipro

5 Universidad del Cauca – FIET – Departamento de Sistemas Sentencias SQL Recuperación de datos – SELECT Manipulación de datos (DML) – INSERT / UPDATE / DELETE / MERGE Definición de datos (DDL) – CREATE / ALTER / DROP / RENAME / TRUNCATE Control de Transacciones – COMMIT / ROLLBACK / SAVEPOINT Control de datos (DCL) – GRANT / REVOKE

6 Recuperación de Datos SELECT … FROM … WHERE … GROUP BY … HAVING

7 Ejecutar Comandos SQL (1) 1.Seleccionando Datos a.Obtener todos los datos de los Empleados. b.Obtener todos los datos de los clientes. c.Obtener el nombre, cargo, salario y numero de departamento de los empleados. d.Obtener el nombre y salario de los empleados, calculando un bono del 10%. e.Obtener todos los cargos de la empresa sin repetirlos.

8 Universidad del Cauca – FIET – Departamento de Sistemas Operadores de comparación Operador es: – =Igual a – >Mayor que – >=Mayor o igual que – <Menor que – <=Menor o igual que – <>Diferente a(!=)(^=) Otros Operadores – BETWEEN … AND … Entre dos valores (incluidos) – IN (Lista)En la lista de valores dados – LIKEConcuerda con un patrón – IS NULLEs un valor nulo

9 Ejecutar Comandos SQL (2) 2.Restringiendo Datos a.Obtener una lista de nombre y salario de empleados que ganen menos de $1.000.000. b.Obtener el nombre de los empleados cuyo cargo es VENDEDOR. c.Obtener el nombre de los empleados contratados a partir del año 2002. d.Obtener una lista de nombre y salario de empleados que ganen más de $100.000 y menos de $250.000 pesos. e.Obtener un lista de nombres de empleados que sean OFICINISTA y ANALISTA.

10 Ejecutar Comandos SQL (3) 2.Restringiendo Datos f.Obtener una lista de nombre de empleados cuyo nombre inicie por el carácter ‘M’. g.Obtener una lista de nombre de empleados cuyo nombre tenga por segundo carácter en el nombre la letra ‘O’. h.Obtener la lista de nombres de empleados que no tienen comision.

11 Universidad del Cauca – FIET – Departamento de Sistemas Condiciones lógicas AND NOT PQP AND Q TRUE FALSE TRUEFALSE TRUENULL FALSENULLFALSE NULLTRUENULL FALSE PNOT P TRUEFALSE TRUE NULL PQP OR Q TRUE FALSETRUE FALSETRUE FALSE TRUENULLTRUE FALSENULL TRUE NULLFALSENULL OR

12 Ejecutar Comandos SQL (3) 3.Restringiendo Datos con Condiciones lógicas a.Obtener una lista de nombre de empleados cuyo nombre tenga en cualquier parte el carácter ‘N’ y además, gane más de $120.000. b.Obtener una lista de nombre de empleados cuyo nombre tenga por segundo carácter en el nombre la letra ‘O’ ó la letra ‘A’. c.Obtener la lista de nombres de empleados que no sean ni GERENTE, ni VENDEDOR.

13 Universidad del Cauca – FIET – Departamento de Sistemas SELECT * | { [DISTINCT] columna | expresión [alias], … } FROMTabla [WHERECondicion(es) ] [ORDER BY{columna | expresión} [ASC | DESC], … ]; La cláusula ORDER BY ordena las filas: – ASCOrden ascendente (por defecto) – DESCOrden descendente La cláusula ORDER BY debe ser la última de la sentencia SELECT Los valores NULL: – En orden ASC van al final – En orden DESC van al principio Ordenar los resultados

14 Ejecutar Comandos SQL (4) 4.Ordenando los Datos a.Obtener una lista de nombre y el salario de los empleados ordenados de menor a mayor salario. b.Obtener una lista de nombre y comisión de los empleados ordenada de mayor a menor comisión. c.Obtener la lista de nombres y salario anual de los empleados, colocar como alias de columna ‘Salario Anual’ y ordenar por el alías de menor a mayor salario anual. d.Ordenar por nombre y luego por salario la tabla empleados. e.Mostrar la tabla empleados ordenada por la segunda columna, teniendo en cuenta, que la posición de dicha columna, deberá ser la misma que se uso, al momento de crear la tabla

15 Universidad del Cauca – FIET – Departamento de Sistemas Tipos de funciones SQL Funciones Funciones de Fila simple Funciones de Múltiples filas

16 Universidad del Cauca – FIET – Departamento de Sistemas Funciones de fila simple Caracteres Números Fecha Conversión General LOWER UPPER INITCAP CONCAT SUBSTR LENGTH INSTR LPAD RPAD TRIM REPLACE Manejo de mayúsculas y minúsculas Manejo de caracteres

17 Universidad del Cauca – FIET – Departamento de Sistemas Funciones de fechas Oracle almacena las fechas en un formato numérico interno que incluye: centuria, año, mes, día, hora, minutos y segundos – Fechas validas entre 1-JAN-4712 AC y 31-DIC-9999 – La fecha Mayo 15 de 2003 a las 10:12:15 se almacena El formato de despliegue por defecto es DD-MON-RR, aunque el administrador puede cambiarlo, y cada usuario en su sesión también El formato RR facilita almacenar fechas del siglo XXI estando en el siglo XX especificando sólo dos dígitos También permite que almacene fechas del siglo XX estando en el siglo XXI especificando sólo dos dígitos Se uso para solucionar en parte el problema del cambio de milenio CenturiaAñoMesDíaHoraMinutosSegundos 203515101215

18 Universidad del Cauca – FIET – Departamento de Sistemas Aritmética de fechas OPERACIONRESULTADODESCRIPCIÓN Fecha + NúmeroFechaAdiciona un Número de días a la Fecha Fecha – NúmeroFechaResta un Número de días a la Fecha Fecha1 – Fecha2NúmeroResta a Fecha1 el valor de la Fecha2 y obtiene el número de días entre las dos fechas Fecha + Número/24FechaAdiciona un Número de horas a la Fecha

19 Universidad del Cauca – FIET – Departamento de Sistemas Funciones de fechas FUNCIONDESCRIPCIÓN MONTHS_BETWEEN (fecha1, fecha2)Encuentra el número de meses entre dos fechas. El resultado es positivo si la fecha1 es más reciente que la fecha2 y es negativo si la fecha1 es más reciente que la fecha2. ADD_MONTHS (fechaorigen, n)Adiciona n meses calendario a la fechaorigen. El valor de n debe ser un entero positivo o negativo NEXT_DAY (fechaorigen, ‘cadena’)Encuentra el siguiente día que coincida con ‘cadena’ a partir de la fecha dada. La cadena puede ser DOMINGO, LUNES, MARTES, MIÉRCOLES, JUEVES, VIERNES, SÁBADO, o un número que representa ese día. Recuerde que el primer día de la semana es el DOMIGO LAST_DAY (fechaorigen)Devuelve la fecha del último día del mes de la fechaorigen ROUND (fechaorigen, [‘formato’])Aplica a fechaorigen un redondeo basado en el ‘formato’. Si el formato se omite se redondea al día más cercano. TRUNC (fechaorigen, [‘formato’])Trunca fechaorigen basado en el ‘formato’. Si el formato se omite se trunca al día más cercano.

20 Universidad del Cauca – FIET – Departamento de Sistemas Funciones de conversión explícitas NUMBERCHAR DATE TO_CHAR (Number, [‘formato’]) TO_CHAR (Date, [‘formato’]) TO_NUMBER (Char, [‘formato’])TO_DATE (Char, [‘formato’])

21 Ejecutar Comandos SQL (5) 5.Aplicando Funciones a los Datos a.Obtener una lista de nombre y el cargo de los empleados bajo una columna con el nombre de Cargos, de tal forma que cada línea se lea como el siguiente ejemplo: “El cargo de Lopez es presidente”. b.Obtener una lista de nombres de los empleados cuyo nombre tenga 5 caracteres de longitud. c.Obtener la lista de nombres de los empleados y el número de meses que ha sido contratado en la empresa. d.Presentar el nombre y la fecha de contratación de los empleados con un formato del ejemplo: ‘Domingo- Ago-2005 15:41:16 PM’. También el salario con un formato como el ejemplo: $1,570,325.90

22 Universidad del Cauca – FIET – Departamento de Sistemas Funciones varias (manejo de NULL) FUNCIONDESCRIPCIÓN NVL (expresión1, expresión2)Si expresión1 es NULL retorna expresión2, de lo contrario deja el valor original. El tipo de dato de las dos expresiones debe ser igual NVL2 (expresión1, expresión2, expresión3) expresión2 y expresión3 no pueden ser LONG Si expresión1 no es NULL retorna expresión2, de lo contrario retorna expresión3. El tipo de dato que se retorna siempre es el de la expresión2, para ello Oracle puede hacer una conversión de la expresión3 si se necesita NULLIF (expresión1, expresión2)Compara las dos expresiones y retorna NULL si son iguales, de lo contrario retorna expresión1. Es igual a: CASE WHEN expresión1 = expresión2 THEN NULL ELSE expresión1 END La expresión1 no puede ser el literal NULL COALESCE (expresión1, expresión2, …, expresiónN) Retorna la primer expresión de la lista que no sea NULL, teniendo en cuenta que evalúa de izquierda a derecha. Al menos una expresión no debe ser el literal NULL

23 Ejecutar Comandos SQL (6) 6.Aplicando Funciones a los Datos a.Obtener una lista de nombre y la comisión de los empleados retornando tanto los que tienen comisión como los que no tienen comisión, colocando $0 para los que no lo tienen. b.Obtener el nombre, el cargo, el salario y un aumento dependiendo del cargo: Si es presidente se incrementa en 1.3, si es Gerente en 1.2, para los demás 1.1 del salario.

24 Ejecutar Comandos SQL (7) 7.Obteniendo datos de múltiples tablas a.Obtener una lista de nombre de empleado y su respectivo nombre de Departamento. b.Obtener el nombre de empleado y el nombre de su jefe.

25 Universidad del Cauca – FIET – Departamento de Sistemas Funciones de grupo FUNCIONDESCRIPCIÓN COUNT ({* | [DISTINCT | ALL] expresión})Cuenta el número de filas donde la expresión no tiene un valor NULL. El * cuenta todas las filas incluyendo duplicados y filas con valores NULL SUM ([DISTINCT | ALL] expresiónnúmerica)Suma los valores de expresión de cada fila retornada. Ignora los valores NULL MAX ([DISTINCT | ALL] expresión)Máximo de los valores de expresión de cada fila retornada. Ignora los valores NULL MIN ([DISTINCT | ALL] expresión)Mínimo de los valores de expresión de cada fila retornada. Ignora los valores NULL AVG ([DISTINCT | ALL] expresiónnúmerica)Promedio de los valores de expresión de cada fila retornada. Ignora los valores NULL STDDEV ([DISTINCT | ALL] expresiónnúmerica)Desviación estándar de los valores de expresión de cada fila retornada. Ignora los valores NULL VARIANCE ([DISTINCT | ALL] expresiónnúmerica)Varianza de los valores de expresión de cada fila retornada. Ignora los valores NULL DISTINCT hace que la función descarte los valores duplicados ALL hace que la función tenga en cuenta todos los valores, incluidos los duplicados (repetidos)

26 Ejecutar Comandos SQL (8) 8.Obteniendo datos de múltiples tablas a.Obtener una lista con el nombre de empleado y su respectivo salario. Para los empleados que tengan salarios menores al promedio general. b.Obtener el número de empleados que tiene cada departamento. c.Obtener el promedio de salario de los empleados por tipo de cargo. d.Obtener el máximo promedio de los salarios por departamento.

27 Ejecutar Comandos SQL (9) 9.Subconsultas a.Obtener una lista con el nombre de empleado y su respectivo salario. Para los empleados que tengan salarios menores al salario ganado por TOLEDO. b.Obtener los empleados que no son jefes.

28 Universidad del Cauca – FIET – Departamento de Sistemas Variables de sustitución Use las variables de sustitución de iSQL*Plus para: – Almacenar valores temporalmente: Ampersand sencillo (&) Ampersand doble (&&) Comando DEFINE – En cada ejecución de la sentencia SQL debe digitar los valores que se sustituyen o los obtiene desde un archivo – Pasar valores desde una sentencia SQL a otra – Modifique dinámicamente los encabezados y pies de página – iSQL*Plus sólo soporta chequeo de tipo de dato

29 Universidad del Cauca – FIET – Departamento de Sistemas Definición de variables de sustitución El comando DEFINE sirve para predefinir variables Si el Valor incluye espacios debe encerrarse entre comillas sencillas Una variable definida queda disponible por toda la sesión (hasta que se salga de iSQL*Plus), o hasta que se aplique el comando UNDEFINE sobre la misma DEFINE Variable = Valorcrea una variable de usuario de tipo CHAR con el valor establecido por el usuario DEFINE Variablemuestra el valor y el tipo de una variable DEFINEmuestra los valores y los tipos de todas las variables definidas

30 Ejecutar Comandos SQL (10) 10.Variables de Sustitución a.Obtener la información de un empleado específico, preguntando al usuario el código del empleado a mostrar. b.Obtener la información de un empleado específico, preguntando al usuario el nombre del empleado a mostrar. c.Realizar el ejemplo a. con doble ampersad. d.Demostrar uso del comando VERIFY

31 Universidad del Cauca – FIET – Departamento de Sistemas Use el comando SET para fijar el valor de una variable – SET VaribleDelSistema Valor – SET ECHO ON Use SHOW para consultar el valor actual de la variable – SHOW VariableDelSistema – SHOW ECHO Personalizando el ambiente de iSQL*Plus

32 Universidad del Cauca – FIET – Departamento de Sistemas Variables del comando SET NOMBREDESCRIPCIÓN ARRAYSIZE { 20 | Número }Le fija a la base de datos, el tamaño de filas que extrae de una sola vez en una consulta FEEDBACK { 6 | Número | OFF | ON}Muestra el número de filas retornadas por una consulta, cuando se retornan más de N número de filas HEADING { OFF | ON }Determina si los encabezados de las columnas se muestra o no en el reporte LONG { 80 | Número | ON | Texto}Define el máximo ancho de despliegue de las columnas de tipo LONG EJEMPLOS SET ARRAYSIZE 30 SET FEEDBACK OFF SET HEAD OFF SET LONG 60 SHOW HEAD

33 Universidad del Cauca – FIET – Departamento de Sistemas Comandos para formatear en iSQL*Plus NOMBREDESCRIPCIÓN COLUMN [Opciones]Permite definir el formato de una columna TTITLE [ Texto | OFF | ON]Define un encabezado que aparece en la parte superior de cada página del reporte BTITLE [ Texto | OFF | ON]Define un pie de página que aparece en la parte inferior de cada página del reporte BREAK [ ON | ElementoDelReporte]Permite suprimir valores duplicados y dividir filas de datos en secciones usando saltos de línea (line breaks) EJEMPLOS COL Emp_Id FORMAT A10 TTITLE ‘Lista de Empleados’ BTI ‘Orden por Nombre’ BREAK ON Dep_Id

34 Ejecutar Comandos SQL (11) 11.Creación de Reportes a.Crear un reporte en el cual se presente el nombre del departamento, el nombre del empleado, fecha de contratación, salario y salario anual. El reporte debe solicitar la localización al usuario. Debe colocarse un título, subtítulo y formatear adecuadamente cada columna.

35 Manipulación de Datos INSERT … UPDATE … DELETE

36 Universidad del Cauca – FIET – Departamento de Sistemas Lenguaje de Manipulación de datos (DML) Una sentencia DML se ejecuta cuando: – Se adicionan nuevas filas a una tabla (INSERT) – Se modifican filas en una tabla (UPDATE) – Se eliminan filas existentes de una tabla (DELETE) Una transacción es una colección de sentencias DML que se comportan como una unidad lógica (se hacen todas en la base de datos o no se hace ninguna). Las sentencias asociadas son: COMMIT, SAVEPOINT y ROLLBACK

37 Universidad del Cauca – FIET – Departamento de Sistemas Control de transacciones Tiempo COMMIT DELETEINSERTUPDATE INSERT COMMIT SAVEPOINT P1SAVEPOINT P2SAVEPOINT P3 Transacción ROLLBACK TO SAVEPOINT P3 ROLLBACK TO SAVEPOINT P2 ROLLBACK TO SAVEPOINT P1 ROLLBACK

38 Ejecutar Comandos SQL (12) 12. Manipulación de Datos a.Insertar un nuevo departamento llamado “SISTEMAS”. b.Insertar como nuevo empleado del departamento anterior, el usuario del sistema y como fecha de contratación la fecha actual. c.Insertar otro empleado, con fecha de contratación abril 3 de 2005. d.Parametrizar la inserción de nuevos Departamentos. e.Modificar el departamento de los nuevos empleados al departamento ventas. Deshacer la acción. f.Eliminar el Departamento SISTEMAS.

39 Definición de Datos CREATE.. ALTER.. DROP

40 Universidad del Cauca – FIET – Departamento de Sistemas Objetos de la base de datos OBJETODESCRIPCIÓN TablaUnidad básica de almacenamiento, compuesta de filas y columnas. Pueden ser creadas en cualquier momento, no se necesita definir el tamaño del almacenamiento (se recomienda) y su estructura se puede redefinir en línea. VistaRepresentación lógica de un subconjunto de datos de una o más tablas SecuenciaGenerador de valores numéricos ÍndiceMejora el rendimiento de algunas consultas SinónimoNombre alternativo de los objetos de una base de datos OtrosProcedimientos, funciones, disparadores, clusters, enlaces a bases de datos y demás

41 Ejecutar Comandos SQL (13) 13. Definición de Datos a.Crear una nueva tabla en la que se almacena el calculo de la nómina temporal de cada mes. Para esto se calcula las retenciones por salud, pensión, solidaridad, las horas trabajadas, valor hora y salario devengado. b.Crear la tabla anterior con una subconsulta. c.Adicionar una nueva columna a la tabla anterior, que almacena si se hace retención o no. d.Borrar la tabla del punto a. e.Analizar las restricciones de las tablas del curso.

42 Ejecutar Comandos SQL (14) 14. Definición de Datos (Vistas) a.Crear una vista de los empleados del departamento de VENTAS. b.Insertar un nuevo empleado a la vista anterior. c.Crear una vista en la que se almacena el calculo de la nómina temporal de cada mes. Para esto se calcula las retenciones por salud, pensión, solidaridad, las horas trabajadas, valor hora y salario devengado. d.Borrar la vista del punto a. e.Realizar un análisis top-N de los 5 empleados que más ganan al año con una vista en línea.

43 Ejecutar Comandos SQL (14) 14. Definición de Datos (Secuencias, Índices, Sinónimos) a.Crear una secuencia para la creación de nuevos departamentos. b.Crear un nuevo departamento con la secuencia y utilizar las seudo columnas NEXTVAL y CURRVAL. c.Crear un indice para la columna de los nombres de los empleados. d.Crear un sinonimo del usuario manzamb de la tabla departamentos llamado deptosmanzamb. e.Eliminar los objetos creados anteriormente.

44 Control de Datos GRANT.. REVOKE

45 Universidad del Cauca – FIET – Departamento de Sistemas Creación de usuarios CREATE USER NombreUsuario IDENTIFIED {BY clave | EXTERNALLY | GLOBALLY AS ‘NombreExterno’} [… | ACCOUNT {LOCK | UNLOCK}]; Sólo el administrador del sistema y los usuarios con el privilegio de crear usuarios pueden usar esta sentencia Después de crear el usuario, éste aún no puede hacer nada en el sistema. Es como tener una tarjeta plástica para entrar a un edificio inteligente, pero en el sistema aún NO han dado permiso para entrar al edificio

46 Universidad del Cauca – FIET – Departamento de Sistemas Otorgando privilegios del sistema GRANT Privilegio [, Privilegio2, …] TO Usuario1 [, Usuario2 | Rol, PUBLIC …] [WITH ADMIN OPTION]; Esta sentencia permite otorgar privilegios a un usuario El privilegio mínimo que un usuario necesita para entrar al sistema es CREATE SESSION. En este momento se activa la tarjeta plástica en el sistema y el usuario puede usarla para entrar al edificio. La vista SESSION_PRIVS muestra los privilegios del usuario conectado La cláusula WITH ADMIN OPTION permite al usuario que recibió el privilegio, concederlo a otros usuarios

47 Universidad del Cauca – FIET – Departamento de Sistemas Otorgando privilegios del sistema Se recomienda asignar sólo los roles que un usuario necesita (como administrador ser lo más restrictivo posible) Un usuario desarrollador de una aplicación, normalmente necesita crear tablas, vistas, secuencias y procedimientos, pero no crear usuarios o hacer copias de seguridad del sistema, entre otros Para crear objetos (un usuario cree su esquema) debe tener cuotas de espacio en disco o el privilegio UNLIMITED TABLESPACE (Cuidado!!!)

48 Universidad del Cauca – FIET – Departamento de Sistemas Roles Usuario Rol Privilegios

49 Ejecutar Comandos SQL (15) 15. Control de privilegios (Usuarios, Roles) a.Crear un nuevo rol para los usuarios de la especialización. b.Crear un nuevo usuario con el nuevo rol. c.Cambiar la clave del nuevo usuario. d.Permitir al nuevo usuario consultar la tabla departamentos del usuario manzamb. e.Revocar los privilegios al usuario creado.

50 FIN REPASO


Descargar ppt "Diapositivas Resumen SQL ORACLE – Semana 1 Especialización en Desarrollo de soluciones Informáticas Universidad del Cauca Miguel Angel Niño Zambrano."

Presentaciones similares


Anuncios Google