Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Oracle Database 12c: SQL Workshop I 2 - 1 Recuperar datos mediante la instrucción SELECT de SQL Oracle Database 12c: SQL Workshop I 2 - 2 Objetivos Después de completar esta lección, usted debe ser capaz de hacer lo siguiente: • Enumerar las capacidades de las sentencias SELECT de SQL • Ejecute una instrucción SELECT básica Para extraer datos de la base de datos, debe usar la instrucción SQL SELECT. Sin embargo, es posible que deba restringir las columnas que se muestran. En esta lección se describe la instrucción SELECT necesaria para realizar estas acciones. Además, es posible que desee crear instrucciones SELECT que se pueden usar más de una vez. Oracle Database 12c: SQL Workshop I 2 - 3 Agenda de Lecciones • Capacidades de sentencias SELECT de SQL • Expresiones aritméticas y valores NULL en la instrucción SELECT • Alias de columna • Uso del operador de concatenación, cadenas de caracteres literales, operador de Comillas alternativas y la palabra clave DISTINCT • Comando DESCRIBE Oracle Database 12c: SQL Workshop I 2 - 4 Instrucción SELECT Básica • SELECT identifica las columnas que se mostrarán. • FROM identifica la tabla que contiene esas columnas. En su forma más simple, una instrucción SELECT debe incluir lo siguiente: • La cláusula SELECT, que especifica las columnas que se mostrarán • La cláusula FROM que identifica la tabla que contiene las columnas que se enumeran en la cláusula SELECT En la sintaxis: SELECT Es una lista de una o más columnas * Selecciona todas las columnas DISTINCT Suprime los duplicados columnjexpression Selecciona la columna con nombre o la expresión alias Proporciona diferentes encabezados a las columnas seleccionadas FROM table Especifica la tabla que contiene las columnas Nota: a lo largo de este curso, las palabras palabra clave, cláusula y sentencia se utilizan de la siguiente manera: • Una palabra clave (keyword) hace referencia a un elemento SQL individual, por ejemplo, SELECT y FROM son palabras clave. • Una cláusula es una parte de una instrucción SQL (por ejemplo, SELECT employee_id, last_name, y así sucesivamente). • Una declaración es una combinación de dos o más cláusulas, por ejemplo, SELECT * FROM employees. Oracle Database 12c: SQL Workshop I 2 - 5 Seleccionar Todas las Columnas Puede mostrar todas las columnas de datos de una tabla siguiendo la palabra clave SELECT con un asterisco (*). En el ejemplo de la diapositiva, la tabla departamentos contiene cuatro columnas: DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID y LOCATION_ID. La tabla contiene ocho filas, una para cada departamento. También puede mostrar todas las columnas de la tabla enumerándolas después de la palabra clave SELECT. Por ejemplo, la siguiente instrucción SQL (como el ejemplo de la diapositiva) muestra todas las columnas y todas las filas de la tabla de departamentos: Nota: En SQL Developer, puede escribir la instrucción SQL en una hoja de cálculo SQL y hacer clic en el icono "ejecutar instrucción" o presionar [F9] para ejecutar la instrucción. La salida mostrada en la página con fichas de resultados aparece como se muestra en la diapositiva. Oracle Database 12c: SQL Workshop I 2 - 6 Seleccionar Columnas Específicas Puede utilizar la instrucción SELECT para mostrar columnas específicas de la tabla especificando los nombres de columna, separados por comas. En el ejemplo de la diapositiva se muestran todos los números de departamento y los números de ubicación de la tabla departamentos. En la cláusula SELECT, especifique las columnas que desee en el orden en el que desea que aparezcan en la salida. Por ejemplo, para mostrar la ubicación antes del número de departamento (de izquierda a derecha), use la siguiente instrucción: Oracle Database 12c: SQL Workshop I 2 - 7 Escribir Sentencias SQL • Las sentencias SQL no distinguen entre mayúsculas y minúsculas. • Las sentencias SQL se pueden introducir en una o más líneas. • Las palabras clave no pueden abreviarse ni dividirse entre líneas. • Las cláusulas generalmente se colocan en líneas separadas. • Las sangrías se utilizan para mejorar la legibilidad. • En SQL Developer, las sentencias SQL pueden ser terminadas opcionalmente por un punto y coma (;). Se requieren puntos y comas al ejecutar varias sentencias SQL. • En SQL * Plus, es necesario que finalice cada instrucción SQL con un punto y coma (;). Escribir sentencias SQL Mediante el uso de las siguientes reglas simples y directrices, puede construir sentencias válidas que sean fáciles de leer y editar: • Las sentencias SQL no distinguen entre mayúsculas y minúsculas (a menos que se indique). • Las sentencias SQL se pueden introducir en una o varias líneas. • Las palabras clave no se pueden dividir entre líneas o abreviadas. • Las cláusulas suelen colocarse en líneas separadas para facilitar la legibilidad y la facilidad de edición. • Se deben usar sangrías para que el código sea más legible. • Las palabras clave normalmente se introducen en mayúsculas; todas las demás palabras, como nombres de tablas y nombres de columnas, se introducen en minúsculas. Ejecutar sentencias SQL En SQL Developer, haga clic en el icono ejecutar script o presione [F5] para ejecutar el comando o comandos en la hoja de cálculo SQL. También puede hacer clic en el icono ejecutar instrucción o presionar [F9] para ejecutar una instrucción SQL en la hoja de cálculo SQL. El icono ejecutar instrucción ejecuta la instrucción en el cursor en el cuadro escribir instrucción SQL mientras el icono ejecutar script ejecuta todas las instrucciones del cuadro escribir instrucción SQL. El icono ejecutar instrucción muestra la salida de la consulta en la página con fichas de resultados, mientras que el icono ejecutar script emula la pantalla SQL * Plus y muestra el resultado en la página con pestañas salida de script. En SQL*Plus, finalice la instrucción SQL con un punto y coma y, a continuación, presione [Enter] para ejecutar el comando. Oracle Database 12c: SQL Workshop I 2 - 8 Valores Predeterminados de Encabezado de Columna • Desarrollador de SQL: − Alineación de encabezado predeterminada: alineado a la izquierda − Visualización de encabezado predeterminada: mayúsculas • SQL * Plus: − Los encabezados de columna de carácter y fecha se alinean a la izquierda. − Los encabezados de columna de números están alineados a la derecha. − Visualización de encabezado predeterminada: mayúsculas En SQL Developer, los encabezados de columna se muestran en mayúsculas y se alinean a la izquierda. SELECT last_name, hire_date, salary FROM employees; Puede anular la visualización del encabezado de columna con un alias. Los alias de columna se cubren más adelante en esta lección. Oracle Database 12c: SQL Workshop I 2 - 9 Agenda de Lecciones • Capacidades de sentencias SELECT de SQL • Expresiones aritméticas y valores NULL en la instrucción SELECT • Alias de columna • Uso del operador de concatenación, cadenas de caracteres literales, operador de Comillas alternativas y la palabra clave DISTINCT • Comando DESCRIBE Oracle Database 12c: SQL Workshop I 2 - 10 Expresiones Aritméticas Puede crear expresiones con datos de número y fecha mediante operadores aritméticos. Operador Descripción + Suma - Substracción * Multiplicación / División Es posible que tenga que modificar la forma en que se muestran los datos, o puede que desee realizar cálculos o ver escenarioshipotéticos. Todos estos son posibles utilizando expresiones aritméticas. Una expresión aritmética puede contener nombres de columna, valores numéricos constantes y operadores aritméticos. Operadores Aritméticos La diapositiva enumera los operadores aritméticos que están disponibles en SQL. Puede usar operadores aritméticos en cualquier cláusula de una instrucción SQL (excepto la cláusula FROM). Nota: con los tipos de datos DATE y TIMESTAMP, solo puede usar los operadores de suma y resta. Oracle Database 12c: SQL Workshop I 2 - 11 El Uso de Operadores Aritméticos El ejemplo de la diapositiva utiliza el operador de suma para calcular un aumento salarial de $300 para todos los empleados. La diapositiva también muestra una columna SALARY + 300 en la salida. Tenga en cuenta que la columna calculada resultante, SALARY + 300, no es una columna nueva en la tabla EMPLOYEES; es sólo para visualización. De forma predeterminada, el nombre de una nueva columna proviene del cálculo que lo generó, en este caso, salario + 300. Nota: el servidor de Oracle ignora los espacios en blanco antes y después del operador aritmético. Reglas de precedencia • La multiplicación y la división ocurren antes de la suma y la resta. • Los operadores de la misma prioridad se evalúan de izquierda a derecha. • Los paréntesis se utilizan para anular la precedencia del operador Oracle Database 12c: SQL Workshop I 2 - 12 Precedencia del Operador El primer ejemplo de la diapositiva muestra el apellido, el salario y la compensación anual de los empleados. Calcula la compensación anual multiplicando el salario mensual con 12, más un bono de una sola vez de $100. Tenga en cuenta que la multiplicación se realiza antes de la adición. Nota: Utilice paréntesis para reforzar el orden de precedencia estándar y para mejorar la claridad. Por ejemplo, la expresión en la diapositiva se puede escribir como (12 * salario) + 100 sin ningún cambio en el resultado. Uso de Paréntesis Puede invalidar las reglas de precedencia utilizando paréntesis para especificar el orden deseado en el que se ejecutarán los operadores. El segundo ejemplo de la diapositiva muestra el apellido, el salario y la compensación anual de los empleados. Calcula la compensación anual de la siguiente manera: agregando un bono mensual de $100 al salario mensual, y luego multiplicando ese subtotal con 12. Debido a los paréntesis, la suma tiene prioridad sobre la multiplicación. Oracle Database 12c: SQL Workshop I 2 - 13 Definir un Valor Nulo • NULL es un valor que no está disponible, sin asignar, desconocido o inaplicable. • NULL no es lo mismo que cero o un espacio en blanco. Si una fila carece de un valor de datos para una columna determinada, dicho valor se dice que es NULL o que contiene un null. Las columnas con valor NULL se pueden seleccionar en una consulta SELECT y pueden ser la parte de una expresión aritmética. Cualquier expresión aritmética que utilice valores NULL da como resultado NULL. Las columnas de cualquier tipo de datos pueden contener valores nulos. Sin embargo, algunas restricciones (NOT NULL y PRIMARY KEY) impiden que se utilicen valores nulos en la columna. En el ejemplo de diapositiva, observe que solo un director de ventas o un representante de ventas pueden obtener una Comisión en la columna COMMISSION_PCT de la tabla EMPLOYEES. Otros empleados no tienen derecho a ganar comisiones. Un valor nulo representa ese hecho. Nota: de forma predeterminada, SQL Developer usa el literal (NULL) para identificar valores nulos. Sin embargo, puede establecera algo más relevante para usted. Para ello, seleccione Preferencias en el menú herramientas. En el cuadro de diálogo Preferencias, expanda el nodo base de datos. Haga clic en parámetros avanzados y, en el panel derecho, para el "Mostrar valor nulo como", escriba el valor adecuado. Oracle Database 12c: SQL Workshop I 2 - 14 Valores Nulos en Expresiones Aritméticas Las expresiones aritméticas que contienen un valor nulo se evalúan como nulas. Si cualquier valor de columna en una expresión aritmética es nulo, el resultado es nulo. Por ejemplo, si intenta realizar la división por cero, obtendrá un error. Sin embargo, si divide un número por null, el resultado es un valor nulo o desconocido. En el ejemplo de la diapositiva, el empleado King no obtiene ninguna Comisión. Dado que la columna COMMISSION_PCT de la expresión aritmética es null, el resultado es NULL. Para obtener más información, consulte la sección "elementos básicos de Oracle SQL" en referencia del lenguaje SQL de base de datos de Oracle para la base de datos 12C. Oracle Database 12c: SQL Workshop I 2 - 15 Agenda de Lecciones • Capacidades de sentencias SELECT de SQL • Expresiones aritméticas y valores NULL en la instrucción SELECT • Alias de columna • Uso del operador de concatenación, cadenas de caracteres literales, operador de Comillas alternativas y la palabra clave DISTINCT • Comando DESCRIBE Oracle Database 12c: SQL Workshop I 2 -16 Definir un Alias de Columna Un alias de columna: • Cambia el nombre de un encabezado de columna • Es útil con los cálculos • Sigue inmediatamente el nombre de la columna (también puede haber la palabra clave opcional AS entre el nombre de la columna y el alias) • Requiere comillas dobles si contiene espacios o caracteres especiales, o si distingue entre mayúsculas y minúsculas Al mostrar el resultado de una consulta, SQL Developer normalmente usa el nombre de la columna seleccionada como encabezado de columna. Esta partida puede no ser descriptiva y, por lo tanto, puede ser difícil de entender. Puede cambiar un encabezado de columna mediante un alias de columna. Especifique el alias después de la columna en la lista SELECT utilizando un espacio en blanco como separador. De forma predeterminada, los encabezados de alias aparecen en mayúsculas. Si el alias contiene espacios o caracteres especiales (como -,!, _), o si distingue entre mayúsculas y minúsculas, escriba el alias entre comillas dobles (" "). Oracle Database 12c: SQL Workshop I 2 - 17 El Uso de Alias de Columna El primer ejemplo muestra los nombres y los porcentajes de Comisión de todos los empleados. Tenga en cuenta que la palabra clave AS opcional se ha utilizado antes del nombre de alias de columna. El resultado de la consulta es el mismo si se usa o no la palabra clave AS. Además, tenga en cuenta que la instrucción SQL tiene los alias de columna, el nombre y la comunicación, en minúsculas, mientras que el resultado de la consulta muestra los encabezados de columna en mayúsculas. Como se mencionó en la diapositiva anterior, los encabezados de columna aparecen en mayúsculas de forma predeterminada. El segundo ejemplo muestra los apellidos y los salarios anuales de todos los empleados. Dado que el salario anual contiene un espacio, se ha incluido entre comillas dobles. Tenga en cuenta que el encabezado de columna en la salida es exactamente el mismo que el alias de columna. Oracle Database 12c: SQL Workshop I 2 - 18 Agenda de Lecciones • Capacidades de sentencias SELECT de SQL • Expresiones aritméticas y valores NULL en la instrucción SELECT • Alias de columna • Uso del operador de concatenación, cadenas de caracteres literales, operador de Comillas alternativas y la palabra clave DISTINCT • Comando DESCRIBE Oracle Database 12c: SQL Workshop I 2 - 19 Operador de Concatenación Un operador de concatenación: • Enlaza columnas o cadenas de caracteres a otras columnas • Está representado por dos barras verticales(| |) • Crea una columna resultante que es una expresión de carácter Puede vincular columnas, expresiones aritméticas o valores constantes para crear una expresión de caracteres mediante el operador de concatenación (| |). Las columnas de cada lado del operador se combinan para crear una única columna de salida. En el ejemplo, LAST_NAME y JOB_ID se concatenan y se le da el alias Employees. Tenga en cuenta que el apellido del empleado y el código de trabajo se combinan para crear una única columna de salida. La palabra clave AS antes del nombre de alias hace que la cláusula SELECT sea más fácil de leer. Valores Nulos Con el Operador de Concatenación Si se concatenan un valor nulo con una cadena de caracteres, el resultado es una cadena de caracteres. LAST_ANAME | | NULL da como resultado el LAST_NAME Oracle Database 12c: SQL Workshop I 2 - 20 Cadenas de Caracteres Literales • Un literal es un carácter, un número o una fecha que se incluye en la instrucción SELECT. • Los valores literales de fecha y carácter deben incluirse entre comillas simples. • Cada cadena de caracteres se emite una vez por cada fila devuelta. Un literal es un carácter, un número o una fecha que se incluye en la lista SELECT. No es un nombre de columna ni un alias de columna. Se imprime para cada fila devuelta. Las cadenas literales de texto de formato libre se pueden incluir en el resultado de la consulta y se tratan igual que una columna de la lista SELECT. Los literales de fecha y carácter deben incluirse entre comillas simples (' '); no es necesario que los literales numéricos se encierran de manera similar. Oracle Database 12c: SQL Workshop I 2 - 21 Mediante Cadenas de Caracteres Literales The example in the slide displays the last names and job codes of all employees. The column has the heading Employee Details. Note the spaces between the single quotation marks in the SELECT statement. The spaces improve the readability of the output. In the following example, the last name and salary for each employee are concatenated with a literal, to give the returned rows more meaning: Oracle Database 12c: SQL Workshop I 2 - 22 Operador Alternativo de Cita (q) • Especifique su propio delimitador de Comillas. • Seleccione cualquier delimitador. • Aumente la legibilidad y la usabilidad. Muchas sentencias SQL utilizan literales de caracteres en expresiones o condiciones. Si el literal en sí contiene una comilla simple, puede utilizar el operador cita (q) y seleccionar su propio delimitador de Comillas. Puede elegir cualquier delimitador conveniente, de un solo byte o multibyte, o cualquiera de los siguientes pares de caracteres: [ ], { }, ( ) o < >. En el ejemplo que se muestra, la cadena contiene una comilla simple, que normalmente se interpreta como un delimitador de una cadena de caracteres. Utilizando el operador q, sin embargo, los corchetes [ ] se utilizan como delimitadores de Comillas. La cadena entre los delimitadores de corchetes se interpreta como una cadena de caracteres literal. Oracle Database 12c: SQL Workshop I 2 - 23 Filas Duplicadas La visualización predeterminada de las consultas es todas las filas, incluidas las filas duplicadas. A menos que indique lo contrario, SQL muestra los resultados de una consulta sin eliminar las filas duplicadas. El primer ejemplo de la diapositiva muestra todos los números de Departamento de la tabla EMPLOYEES. Tenga en cuenta que los números de departamento se repiten. Para eliminar filas duplicadas en el resultado, incluya la palabra clave DISTINCT en la cláusula SELECT inmediatamente después de la palabra clave SELECT. En el segundo ejemplo de la diapositiva, la tabla EMPLOYEES contiene realmente 20 filas, pero solo hay siete números de Departamento únicos en la tabla. Puede especificar varias columnas después del calificador DISTINCT. El calificador DISTINCT afecta a todas las columnas seleccionadas y el resultado es cada combinación distinta de las columnas. SELECT DISTINCT department_id, job_id FROM employees; Oracle Database 12c: SQL Workshop I 2 - 24 Agenda de Lecciones • Capacidades de sentencias SELECT de SQL • Expresiones aritméticas y valores NULL en la instrucción SELECT • Alias de columna • Uso del operador de concatenación, cadenas de caracteres literales, operador de Comillas alternativas y la palabra clave DISTINCT • Comando DESCRIBE Oracle Database 12c: SQL Workshop I 2 - 25 Mostrando Estructura de Tabla • Utilice el comando DESCRIBE para mostrar la estructura de una tabla. • seleccione la tabla en el árbol de conexiones y use la pestaña columnas para ver la estructura de la tabla. Puede visualizar la estructura de una tabla utilizando el comando DESCRIBE. El comando muestra los nombres de columna y los tipos de datos, y muestra si una columna debe contener datos (es decir, si la columna tiene una restricción NOT NULL). En la sintaxis, table name tabla es el nombre de cualquier tabla, vista o sinónimo existente que sea accesible para el usuario. Mediante la interfaz de la GUI de desarrollador de SQL, puede seleccionar la tabla en el árbol de conexiones y utilizar la pestaña columnas para ver la estructura de la tabla. Nota: DESCRIBE es un comando SQL * PLUS admitido por SQL Developer. Se abrevia como Desc. Oracle Database 12c: SQL Workshop I 2 - 26 Usando el Comando DESCRIBE El ejemplo de la diapositiva muestra información sobre la estructura de la tabla EMPLOYEES mediante el comando DESCRIBE. En la pantalla resultante, null indica que los valores de esta columna pueden ser desconocidos. NOT NULL indica que una columna debe contener datos. Tipo muestra el tipo de datos de una columna. Los tipos de datos se describen en la siguiente tabla: Tipo de Dato Descripción NUMBER(p, s) Valor numérico con un número máximo de dígitos p, con dígitos s a la derecha del punto decimal VARCHAR2(s) Valor de carácter de longitud variable del tamaño máximo s DATE Valor de fecha y hora entre el 1 de enero de 4712 A.C. y el 31 de diciembre de 9999 Oracle Database 12c: SQL Workshop I 2 - 27 Quiz Identify the SELECT statements that execute successfully. Respuesta: b, c Oracle Database 12c: SQL Workshop I 2 - 28 Resumen En esta lección, debería haber aprendido a escribir una instrucción SELECT que: • Devuelve todas las filas y columnas de una tabla • Devuelve las columnas especificadas de una tabla • Utiliza alias de columna para mostrar encabezados de columna más descriptivos En esta lección, debería haber aprendido a recuperar datos de una tabla de base de datos con la instrucción SELECT. SELECT *|{[DISTINCT] column [alias],...} FROM table; En la sintaxi SELECT * DISTINCT columnjexpression al ias FROM table − Es una lista de una o más columnas − Selecciona todas las columnas − Suprime los duplicados − Selecciona la columna con nombre o la expresión − Proporciona diferentes encabezados a las columnas seleccionadas − Especifica la tabla que contiene las columnas Oracle Database 12c: SQL Workshop I 2 - 29 Práctica 2: Descripción General Esta práctica abarca los siguientes temas: • Seleccionar todos los datos de diferentes tablas • Describir la estructura de las tablas • Realizar cálculos aritméticos y especificar nombres de columna En esta práctica,se escriben consultas SELECT simples. Las consultas cubren la mayoría de las cláusulas SELECT y las operaciones que aprendió en esta lección.
Compartir