FUNDAMENTALS 1 AL 6 ORACLE Una sentencia SELECT recupera información de una base de datos. En la sintaxis: SELECT Es una lista de una o más columnas * Selecciona todas las columnas DISTINCT Suprime resultados duplicados Column | expresión Selecciona la columna o expresión nombrada Alias Da un nombre de encabezado diferente a la columna seleccionada FROM table Especifica la tabla que contiene las columnas seleccionadas Ejemplo: - select employee_id, last_name, job_id, hire_date from employees; Este ejemplo muestra el id del empleado, apellido, fecha de contrato de los empleados. Expresiones aritméticas En algunas ocasiones se puede tener la necesidad de modificar la forma en que un dato es desplegado, ejecutar cálculos o ambos escenarios. Estos pueden ser usados en cualquier cláusula de una sentencia SQL Con excepción de la cláusula FROM. Valores Nulos Si una fila carece de valor en alguna columna en particular, este valor es llamado nulo. Un valor nulo es un valor no disponible, desconocido o Inaplicable. Un Nulo no es lo mismo que un cero o un espacio. El cero es un número y el espacio un carácter. Definiendo alias a las columnas Cuando una consulta despliega sus resultados, iSQL*Plus normalmente usa el nombre de la columna seleccionada como encabezado. Este encabezado Puede no ser descriptivo y por lo tanto puede dificultar su entendimiento. Se puede cambiar el encabezado de una columna con el uso de ALIAS. Operador de Concatenación Se pueden unir una columna a otra columna, a una expresión aritmética o a un valor constante para crear una expresión del tipo carácter con el uso del Operador de concatenación (||). Las columnas de ambos lados del operador de concatenación son combinadas para formar una columna. Literales Un literal es un carácter, número o fecha que es incluido en la lista de una cláusula SELECT y no representa el nombre de una columna o alias. Este es desplegado por cada fila. Los literales del tipo carácter y fecha deben estar entre comillas simples (‘ ’), para los literales del tipo numérico, no es necesario. Filas duplicadas A menos que indiques lo contrario, iSQL*Plus despliega los resultados de una consulta sin eliminar filas duplicadas. Para eliminar filas duplicadas en el resultado, se incluye la palabra reservada DISTINCT en la cláusula SELECT inmediatamente después de la palabra reservada SELECT. Descripción de tablas La sintaxis es: DESC[RIBE] tablename Donde: tablename es el nombre de alguna tabla, vista o sinónimo Accesible al usuario. LIMITE DE FILAS USANDO UNA SELECCIÓN Es un método de restricción que usa la clase “WHERE” y su función es regresar datos después de efectuar una búsqueda específica. Limitación de filas seleccionadas Restringe las filas que son seleccionadas usando la clase “WHERE”. Un alias no puede ser usado en una clase “WHERE” La clase WHERE contiene una condición que debe ser conocida que sigue directamente la clase FROM si la condición es verdadera “TRUE” las filas que cumplen la condición son regresadas y mostradas. La clase WHERE puede: - comparar valores en columnas - valores literales - expresiones aritméticas - funciones CADENAS DE CARACTERES Y FECHAS SUS CONDICIONES SON Las cadenas de caracteres y las fechas deben ir entre comillas simples (‘ ’). Los valores de caracteres son sensibles a mayúsculas y minúsculas, y las fechas poseen su formato. La base de datos de Oracle almacena fechas en un interno formato numérico, representando el siglo, año, mes, día, hora, minutos y segundos. Ejemplo: SELECT last_name, department_id FROM employees WHERE department_id=20 OR department_id=50 ORDER BY last_name; Este ejemplo muestra el apellido, id del departamento donde el id del departamento sea igual a 20 ó el id del departamento sea igual a 50 mostrándolo organizado por apellido. CONDICIONES DE COMPARACION Las condiciones de comparación son usadas para comparar una expresión con otro valor de otra expresión, estos son usados en clase WHERE. Los símbolos != and ^= pueden representar una no ecuación Estos son operadores de comparación utilizados OPERADOR SIGNIFICADO = Igual a > Mayor que >= Mayor o igual a < Menor que <= Menor o igual a <> No es igual a BETWEEN ...AND... Entre dos valores (inclusivo) IN(set) Coincide con algún valor de la lista LIKE Coincide con un patrón de un carácter IS NULL Es un valor null CONDICION BETWEEN (“ENTRE”) Se puede mostrar fechas basadas sobre un rango de valores usando la condición BETWEEN de rango. El rango que se especifica contendrá límites bajos y limites altos CONDICION IN (“EN”) Se usa el IN para probar valores en un específico conjunto de estos mismos valores. La condición IN es también conocida como la condición miembro CONDICION LIKE Se utiliza la condición LIKE para realizar comodines de búsqueda buscando valores validos en cadena. Las condiciones de búsqueda pueden contener caracteres literales o números. CONDICION NULL La condición null incluye la condición IS NULL o IS NOT NULL. Un valor null se toma como un valor sin asignar, un valor nulo o un valor vacio. Condiciones Lógicas Las condiciones lógicas utilizadas son el and, or, y not en donde El Operador And Exige a ambas condiciones ser verdad: El Operador de Or Requiere cualquier condición para ser verdad El Operador Not Agrupamiento Para el agrupamiento se utiliza la clausula Order By las cuales las agrupa en dos formas: Ascendente y descendente El ordenamiento ascendente es tomado por defecto Variables de substitución • Use las variables de la substitución para complementar el siguiendo: -Where condiciona -El Order by las cláusulas -Las expresiones de la columna -Los nombres de la tabla -Las declaraciones SELECT enteras Carácter y la fecha de valores con variables de sustitución Se aplica en los valores de la cláusula, el carácter y la fecha debe estar entre comillas simples. La misma regla se aplica a las variables de sustitución. Especificación de los nombres de columna, las expresiones, y el texto Este no sólo se puede utilizar las variables de sustitución en la cláusula WHERE de una instrucción SQL, pero estas variables también se pueden utilizar para sustituir los nombres de columnas, expresiones o texto Utilizando la variable de sustitución && La sustitución de dos variables Signo puede utilizar el doble Signo (& &) Variable substitución se utiliza si desea volver a utilizar el valor de la variable sin preguntar al usuario cada vez. Utilizando el comando verify Se utiliza para confirmar los cambios en la instrucción SQL, utiliza el sql para mostrar el texto de un comando antes y después de que reemplaza las variables de sustitución de los valores a Escuchar Funciones SQL Las funciones SQL son una poderosa herramienta que nos permite realizar ciertas acciones sobre la información de la base de datos Se divide en dos tipos: Funciones de una sola línea: Son las que retornan un resultado por línea Funciones de múltiples líneas: Son las que retornan múltiples resultados por línea Funciones de una sola fila: Se manejan funciones de tipo carácter, numérico, fecha, conversión y general Funciones de tipo carácter Funciones numéricas Se manejan estos tres tipos ROUND: Redondea un decimal especifico TRUNC: Corta a un decimal especifico MOD: Devuelve el residuo de una división entera Funciones de fecha Funciones de conversión Funciones Generales Función de grupo Nos permite agrupar las filas mediante el resultado de una consulta en conjuntos y de esta forma aplicar funciones sobre dichos conjuntos de filas. SELECT {* | {columna,}+} FROM {tabla,}+ WHERE condición GROUP BY {columna,}+ HAVING condición ORDER BY {expresión Columna [ASC | DESC],}+; Tipos de funciones de grupo AVG: La función AVG () calcula el promedio (la media aritmética) de los valores indicados en el argumento, también se aplica a datos numéricos, y en este caso el tipo de dato del resultado puede cambiar según las necesidades del sistema para representar el valor del resultado. COUNT: La función COUNT (nombre columna) cuenta el número de valores que hay en la columna, los datos de la columna pueden ser de cualquier tipo, y la función siempre devuelve un número entero. Si la columna contiene valores nulos esos valores no se cuentan, si en la columna aparece un valor repetido, lo cuenta varias veces. MAX: Esta función determina el valor máximo de una columna MIN: Esta función determina el valor mínimo de una columna STDEV: Determina la desviación estándar del valor de una columna SUM: Esta función devuelve el valor sumado de una expresión VARIANCE: Esta función devuelve la varianza de una selección de números Ejemplo: SELECT job_id, max (salary)"Máximo", Min (salary)"Minimo", sum (salary)"Suma", avg (salary)"promedio" FROM employees GROUP BY job_id; Este ejemplo muestra el mayor salario el menor, la suma, el promedio de los empleados agrupados por id de trabajo. Mostrar datos de múltiples tablas Clausula join natural Existen varias formas de mostrar los datos en una BASE DE DATOS en este caso explicaremos cómo obtener datos de más de una tabla usando el JOIN. La clausula NATURAL JOIN en SQL combina los registros de 2 tablas en una base de datos relacional y resulta en una nueva (temporal) tabla, también llamada “tabla joined” Clausula using Use la clausula USING únicamente para emparejar No use un nombre de tabla o alias en las columnas referenciadas Si las columnas tienen el mismo nombre, pero tienen diferente tipo de datos, un error es retornado. Forma valida: SELECT l.city, d.department_name FROM locations l JOIN departments d USING (location_id) WHERE location_id=1400; No se deben usar calificadores en las columnas referenciadas en la clausula USING ni en la clausula WHERE Clausula On y Where ON: Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los en una lista. Su sintaxis es: expresión [Not] In (valor1, valor2,. . .) ejemplo: SELECT * FROM Pedidos WHERE Provincia In (‘Bogotá', ‘Cali', ‘Medellín') WHERE: La cláusula WHERE puede usarse para determinar qué registros de las tablas enumeradas en la cláusula FROM aparecerán en los resultados de la instrucción SELECT. Después de escribir esta cláusula se deben especificar las condiciones expuestas en los apartados anteriores. Si no se emplea esta cláusula, la consulta devolverá todas las filas de la tabla. WHERE es opcional, pero cuando aparece debe ir a continuación de FROM. Ejemplo: SELECT Apellidos, Salario FROM Empleados WHERE Salario = 21000 Uniones cruzadas La clausula CROSS JOIN produce el producto cruzado de dos tablas. Es también llamado un Producto cartesiano entre dos tablas. PRODUCTOS CARTESIANOS Un producto cartesiano se forma cuando: Una condición de combinación se omite Una condición de combinación no es válida Todas las filas de la primera tabla se unen a todas las filas de la segunda tabla Para evitar un producto cartesiano, siempre incluyen una combinación válida condición SUBSENTENCIAS Una subsentencia es una sentencia select dentro de otra, estas subsentencias pueden ser utilizadas para seleccionar las filas de una tabla con una condición que depende de los datos en la misma tabla. Para utilizar los subsentencias se debe tener en cuenta: - deben encerrarse en paréntesis - las subsentencias deben colocarse en el lado derecho de la condición de comparación - usar operadores de una sola línea con subsentencias de una sola línea y usar operadores de múltiples líneas con subsentencias de múltiples líneas Ejemplo: SELECT employee_id, last_name, salary FROM employees where salary > (SELECT AVG (salary) FROM employees) order by salary; En este ejemplo se muestra el id, apellido y salario de los empleados que tengan el salario mayor que el promedio y los organizara por orden de salario