SQL - Tema 1 - Recuperación de Datos mediante la Sentencia SELECT de SQL

Page 1

Recuperaci贸n de Datos mediante la Sentencia SELECT de SQL

Copyright 漏 2004, Oracle. Todos los derechos reservados.


Objetivos Al finalizar esta lección, debería estar capacitado para: Enumerar las capacidades de las sentencias SELECT de SQL Ejecutar una sentencia SELECT básica

Diferenciar entre sentencias SQL y comandos de iSQL*Plus

Copyright © 2004, Oracle. Todos los derechos reservados.

Objetivos Para extraer datos de la base de datos, debe utilizar la sentencia SELECT de SQL (Lenguaje Estructurado de Consulta). Puede que tenga que restringir las columnas que se van a mostrar. Esta lección describe todas las sentencias SQL necesarias para realizar estas acciones. Es posible que desee crear sentencias SELECT que se puedan utilizar más de una vez. Esta lección trata también el entorno iSQL*Plus, en el que se pueden ejecutar sentencias SQL.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-2


Capacidades de las Sentencias SELECT de SQL Proyección

Selección

Tabla 1

Tabla 1 Unión

Tabla 1

Tabla 2 Copyright © 2004, Oracle. Todos los derechos reservados.

Capacidades de las Sentencias SELECT de SQL Las sentencias SELECT recuperan información de la base de datos. Con las sentencias SELECT puede utilizar estas capacidades: Proyección: Seleccione las columnas de una tabla que se han devuelto mediante una consulta. Elija la cantidad de columnas que necesite. Selección: Seleccione las filas de una tabla que se han devuelto mediante una consulta. Se pueden utilizar varios criterios para restringir las filas que se recuperarán. Unión: Junte datos almacenados en diferentes tablas especificando el enlace que hay entre ellos. Las uniones SQL se describen más detalladamente en una lección posterior.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-3


Sentencia SELECT Básica

SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;

SELECT identifica las columnas que se van a mostrar FROM identifica la tabla que contiene esas columnas

Copyright © 2004, Oracle. Todos los derechos reservados.

Sentencia SELECT Básica En su forma más sencilla, una sentencia SELECT debe incluir: Una cláusula SELECT, que especifica las columnas que se van a mostrar Una cláusula FROM, que identifica la tabla que contiene las columnas que se muestran 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 column|expression selecciona la columna o la expresión especificadas alias proporciona a las columnas seleccionadas cabeceras diferentes FROM table especifica la tabla que contiene las columnas Nota: A lo largo de este curso, las expresiones palabra clave, cláusula y sentencia se utilizan como se indica a continuación: Una palabra clave hace referencia a un elemento SQL individual. Por ejemplo, SELECT y FROM son palabras clave. Una cláusula es una parte de una sentencia SQL. Por ejemplo, SELECT employee_id, last_name, ... es una cláusula. Una sentencia es una combinación de dos o más cláusulas. Por ejemplo, SELECT * FROM employees es una sentencia SQL. Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-4


Selección de Todas las Columnas

SELECT * FROM departments;

Copyright © 2004, Oracle. Todos los derechos reservados.

Selección de Todas las Columnas de Todas las Filas Puede mostrar todas las columnas de datos de una tabla si agrega un asterisco (*) después de la palabra clave SELECT. En el ejemplo de la diapositiva, la tabla DEPARTMENTS contiene cuatro columnas: DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID y LOCATION_ID. La tabla contiene siete filas, una para cada departamento. También puede mostrar todas las columnas de la tabla enumerando todas las columnas después de la palabra clave SELECT. Por ejemplo, la siguiente sentencia SQL (como el ejemplo de la diapositiva) muestra todas las columnas y todas las filas de la tabla DEPARTMENTS: SELECT FROM

department_id, department_name, manager_id, location_id departments;

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-5


Selección de Columnas Específicas

SELECT department_id, location_id FROM departments;

Copyright © 2004, Oracle. Todos los derechos reservados.

Selección de Columnas Específicas de Todas las Filas Puede utilizar la sentencia SELECT para mostrar columnas específicas de la tabla especificando los nombres de columna, separados por comas. El ejemplo de la diapositiva muestra todos los números de departamento y los números de ubicación de la tabla DEPARTMENTS. En la cláusula SELECT, especifique las columnas que desee, en el orden en que quiere que aparezcan en la salida. Por ejemplo, para que la ubicación se muestre antes del número de departamento de izquierda a derecha, utilice esta sentencia: SELECT location_id, department_id FROM departments;

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-6


Escritura de Sentencias SQL

Las sentencias SQL no son sensibles a mayúsculas/minúsculas. Las sentencias SQL pueden estar en una o más líneas. Las palabras clave no se pueden abreviar o dividir entre líneas. Las cláusulas se sitúan normalmente en líneas separadas. Se utilizan sangrados para mejorar la legibilidad. En iSQL*Plus, opcionalmente, las sentencias SQL pueden terminar en punto y coma (;). Los puntos y comas son obligatorios si ejecuta varias sentencias SQL. En SQL*plus, es obligatorio que todas las sentencias SQL terminen en punto y coma (;). Copyright © 2004, Oracle. Todos los derechos reservados.

Escritura de Sentencias SQL Mediante las sencillas reglas que se detallan a continuación, puede crear sentencias válidas que resulten fáciles de leer y de editar: Las sentencias SQL no son sensibles a mayúsculas/minúsculas. (a menos que se indique que lo sean). Las sentencias SQL se pueden introducir en una o en varias líneas. Las palabras clave no se pueden dividir en líneas ni se pueden abreviar. Las cláusulas se suelen colocar en líneas aparte para facilitar su lectura y su edición. Se deben utilizar sangrados para facilitar la lectura del código. Las palabras clave se suelen introducir en mayúsculas; el resto de palabras, como nombres y columnas, se introduce en minúsculas. Ejecución de Sentencias SQL Mediante iSQL*Plus, haga clic en el botón Execute para ejecutar el comando o los comandos de la ventana de edición. Mediante SQL*Plus, termine la sentencia SQL con un punto y coma y pulse la tecla Enter para ejecutar el comando.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-7


Valores por Defecto de Cabeceras de Columnas

iSQL*Plus: Alineación de cabecera por defecto: centrada Visualización de cabecera por defecto: mayúsculas

SQL*Plus: Las cabeceras de las columnas CHARACTER y DATE están alineadas a la izquierda Las cabeceras de columnas NUMBER están alineadas a la derecha Visualización de cabecera por defecto: mayúsculas

Copyright © 2004, Oracle. Todos los derechos reservados.

Valores por Defecto de Cabeceras de Columnas En iSQL*Plus, las cabeceras de columnas se muestran en mayúsculas y centradas. SELECT last_name, hire_date, salary FROM employees;

Puede sustituir la visualización de la cabecera de columna por un alias. Los alias de columna se describirán posteriormente en esta lección. Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-8


Expresiones Aritméticas Cree expresiones con datos numéricos y de fecha utilizando operadores aritméticos. Operador

Descripción

+

Suma

-

Resta

*

Multiplicación

/

División

Copyright © 2004, Oracle. Todos los derechos reservados.

Expresiones Aritméticas Es posible que deba modificar el modo en que se muestran los datos o que desee realizar cálculos o consultar supuestos hipotéticos. Todo esto es posible mediante expresiones aritméticas. Una expresión aritmética puede contener nombres de columna, valores numéricos constantes y los operadores aritméticos. Operadores Aritméticos La diapositiva muestra los operadores aritméticos disponibles en SQL. Puede utilizar operadores aritméticos en cualquier cláusula de una sentencia SQL (excepto en la cláusula FROM). Nota: Con los tipos de datos DATE y TIMESTAMP, puede utilizar únicamente los operadores de suma y de resta.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-9


Uso de Operadores Aritméticos

SELECT last_name, salary, salary + 300 FROM employees;

Copyright © 2004, Oracle. Todos los derechos reservados.

Uso de Operadores Aritméticos El ejemplo de la diapositiva utiliza el operador de suma para calcular una aumento en el salario de 300 dólares para cada empleado. La diapositiva muestra también una columna SALARY+300 en la salida. Observe que la columna calculada resultante SALARY+300 no es una nueva columna de la tabla EMPLOYEES; sólo tiene propósitos de visualización. Por defecto, el nombre de una nueva columna proviene del cálculo que la generó (en este caso, salary+300). Nota: Oracle Server ignora los espacios en blanco que van antes y después del operador aritmético. Prioridad de Operadores Si un operador aritmético contiene más de un operador, la multiplicación y la división se evalúan en primer lugar. Si los operadores de una expresión tienen la misma prioridad, la evaluación se realiza de izquierda a derecha. Puede utilizar paréntesis para forzar a que la expresión que vaya entre paréntesis se evalúe primero. Reglas de Prioridad: La multiplicación y la división tienen lugar antes que la suma y la resta. Los operadores con la misma prioridad se calculan de izquierda a derecha. Los paréntesis se utilizan para omitir la prioridad por defecto o para aclarar la sentencia. Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-10


Prioridad de Operadores

SELECT last_name, salary, 12*salary+100 FROM employees;

1

SELECT last_name, salary, 12*(salary+100) FROM employees;

2

Copyright © 2004, Oracle. Todos los derechos reservados.

Prioridad de Operadores (continuación) 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 por 12 y sumando una bonificación única de 100 dólares. Observe que la multiplicación se realiza antes que la suma. Nota: Utilice paréntesis para reforzar el orden estándar de prioridad y para mejorar la claridad. Por ejemplo, la expresión de la diapositiva se puede escribir como (12*salary)+100 sin que cambie el resultado. Uso de Paréntesis Puede sustituir las reglas de prioridad mediante paréntesis para especificar el orden en que desea que se ejecuten 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 como se indica a continuación: suma una bonificación mensual de 100 dólares al salario mensual y multiplica el subtotal por 12. Debido a los paréntesis, la suma tiene prioridad sobre la multiplicación.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-11


Definición de un Valor Nulo

Un valor nulo es aquel que no está disponible, no está asignado, es desconocido o no es aplicable. Un valor nulo no es lo mismo que un cero o un espacio en blanco.

SELECT last_name, job_id, salary, commission_pct FROM employees;

Copyright © 2004, Oracle. Todos los derechos reservados.

Valores Nulos Si faltan valores en una fila para una columna en particular, se dice que el valor es nulo o que contiene un valor nulo. Un valor nulo es aquel que no está disponible, no está asignado, es desconocido o no es aplicable. Un valor nulo no es lo mismo que un cero o un espacio. El cero es un número y un espacio es un carácter. 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 la columna COMMISSION_PCT de la tabla EMPLOYEES, observe que sólo pueden ganar comisiones los directores de ventas o los representantes de ventas. Los demás empleados no están autorizados a ganar comisiones. Un valor nulo representa ese hecho.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-12


Valores Nulos en Expresiones Aritméticas Las expresiones aritméticas que contienen un valor nulo se evalúan como nulas. SELECT last_name, 12*salary*commission_pct FROM employees;

Copyright © 2004, Oracle. Todos los derechos reservados.

Valores Nulos en Expresiones Aritméticas Si el valor de alguna columna de una expresión aritmética es nulo, el resultado es nulo. Por ejemplo, si intenta realizar una división por cero, recibirá un error. Sin embargo, si divide un número por un valor nulo, el resultado es un valor nulo o desconocido. En el ejemplo de la diapositiva, el empleado King no recibe comisiones. Como la columna COMMISSION_PCT de la expresión aritmética es nula, el resultado es nulo. Para obtener más información, consulte Basic Elements of SQL en SQL Reference.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-13


Definición de un Alias de Columna Un alias de columna: Cambia el nombre de una cabecera de columna Es útil para los cálculos Sigue inmediatamente al nombre de columna (puede haber también una palabra clave AS opcional entre el nombre de columna y el alias) Requiere comillas dobles si contiene espacios o caracteres especiales, o si es sensible a mayúsculas/minúsculas

Copyright © 2004, Oracle. Todos los derechos reservados.

Alias de Columna Al mostrar el resultado de una consulta, iSQL*Plus utiliza normalmente el nombre de la columna seleccionada como cabecera de columna. Esta cabecera puede no ser descriptiva y, por tanto, puede resultar difícil de entender. Puede cambiar una cabecera de columna mediante un alias. Especifique el alias después de la columna en la lista SELECT utilizando un espacio como separador. Por defecto, las cabeceras de alias aparecen en mayúsculas. Si el alias contiene espacios o caracteres especiales (como # o $) o si es sensible a mayúsculas/minúsculas, ponga el alias entre comillas dobles (" ").

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-14


Uso de Alias de Columna

SELECT last_name AS name, commission_pct comm FROM employees;

SELECT last_name "Name" , salary*12 "Annual Salary" FROM employees;

Copyright © 2004, Oracle. Todos los derechos reservados.

Alias de Columna (continuación) El primer ejemplo muestra los apellidos y los porcentajes de comisión de todos los empleados. Observe que la palabra clave opcional AS se ha utilizado antes del nombre de alias de columna. El resultado de la consulta es el mismo independientemente de que se utilice o no la palabra clave AS. Observe también que la sentencia SQL tiene los alias de columna, name y comm, en minúsculas, mientras que el resultado de la consulta muestra las cabeceras de columnas en mayúsculas. Como se mencionó en una diapositiva anterior, las cabeceras de columnas aparecen en mayúsculas por defecto. El segundo ejemplo muestra los apellidos y los salarios anuales de todos los empleados. Como Annual Salary contiene un espacio, se ha puesto entre comillas dobles. Observe que la cabecera de columna de la salida es exactamente igual que el alias de columna.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-15


Operador de Concatenación Un operador de concatenación: Enlaza columnas o cadenas de caracteres con otras columnas Se representa mediante dos barras verticales (||) Crea una columna resultante que es una expresión de carácter SELECT FROM

last_name||job_id AS "Employees" employees;

Copyright © 2004, Oracle. Todos los derechos reservados.

Operador de Concatenación Puede enlazar columnas a otras columnas, expresiones aritméticas o valores constantes para crear una expresión de carácter mediante el operador de concatenación (||). Las columnas situadas en cualquiera de los lados del operador se combinan para crear una única columna de salida. En el ejemplo, LAST_NAME y JOB_ID están concatenadas y se les ha asignado el alias Employees. Observe que el apellido y el código de puesto del empleado están combinados para crear una única columna de salida. La palabra clave AS antes del nombre de alias facilita la lectura de la cláusula SELECT. Valores Nulos con el Operador de Concatenación Si se concatena un valor nulo con una cadena de caracteres, el resultado es una cadena de caracteres. LAST_NAME || NULL da como resultado LAST_NAME.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-16


Cadenas de Literales

Un literal es un carácter, un número o una fecha que se ha incluido en la sentencia SELECT.

Los valores de literales de caracteres y fecha deben ir entre comillas simples. Las cadenas de literales se incluyen en cada fila devuelta.

Copyright © 2004, Oracle. Todos los derechos reservados.

Cadenas de Literales Un literal es un carácter, un número o una fecha que se ha incluido en la lista SELECT y que no es un nombre de columna ni un alias de columna. Se imprime con cada fila devuelta. Las cadenas de literales de texto sin formato se pueden incluir en el resultado de la consulta y se tratarán igual que una columna en la lista SELECT. Los literales de fecha y de caracteres deben ir entre comillas simples (' '); los literales de números no es necesario que vayan entre comillas.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-17


Uso de Cadenas de Literales

SELECT last_name ||' is a '||job_id AS "Employee Details" FROM employees;

Copyright © 2004, Oracle. Todos los derechos reservados.

Cadenas de Literales (continuación) El ejemplo de la diapositiva muestra los apellidos y los códigos de puesto de todos los empleados. La columna tiene la cabecera Employee Details. Observe los espacios entre las comillas simples en la sentencia SELECT. Los espacios mejoran la legibilidad de la salida. En el ejemplo siguiente, el apellido y el salario de cada empleado se concatenan con un literal para dar más significado a las filas devueltas. SELECT last_name ||': 1 Month salary = '||salary Monthly FROM employees;

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-18


Operador de Comillas (q) Alternativo

Especifique su propio delimitador de comillas Puede seleccionar cualquier delimitador Aumentará la legibilidad y la facilidad de uso

SELECT department_name || q'[, it's assigned Manager Id: ]' || manager_id AS "Department and Manager" FROM departments;

Copyright © 2004, Oracle. Todos los derechos reservados.

Operador de Comillas (q) Alternativo Muchas sentencias SQL utilizan literales de caracteres en expresiones o condiciones. Si el literal contiene una comilla simple, puede utilizar el operador de comillas (q) y seleccionar su propio delimitador de comillas. Puede seleccionar cualquier delimitador apropiado, de un solo byte o multibyte, o cualquiera de los siguientes pares de caracteres: [ ], { }, ( ) o < >. En el ejemplo que se muestra, la cadena contiene comillas simples, lo que normalmente se interpreta como delimitador de una cadena de caracteres. Pero mediante el operador q, los corchetes [] se utilizan como delimitador de comillas. La cadena situada entre los delimitadores de corchetes se interpreta como cadena de literales.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-19


Filas Duplicadas La visualización por defecto de las consultas es todas las filas, incluidas las filas duplicadas. SELECT department_id FROM employees;

1

SELECT DISTINCT department_id FROM employees;

2

Copyright © 2004, Oracle. Todos los derechos reservados.

Filas Duplicadas A menos que indique lo contrario, iSQL*Plus 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. Observe que los números de departamento están repetidos. Para eliminar filas duplicadas del resultado, incluya la palabra clave DISTINCT de la cláusula SELECT justo después de la palabra clave SELECT. En el segundo ejemplo de la diapositiva, la tabla EMPLOYEES realmente contiene 20 filas, pero sólo hay siete números de departamento únicos en la tabla. Puede especificar varias columnas después del cualificador DISTINCT. El cualificador DISTINCT afecta a todas las columnas seleccionadas y el resultado son todas las combinaciones distintas de las columnas. SELECT FROM

DISTINCT department_id, job_id employees;

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-20


Interacción de SQL e iSQL*Plus

Sentencias SQL

Oracle server

Explorador de Internet Comandos de iSQL*Plus

Resultados de la consulta Informe con formato

Cliente

Copyright © 2004, Oracle. Todos los derechos reservados.

SQL e iSQL*Plus SQL es un lenguaje de comandos para la comunicación con Oracle Server desde cualquier herramienta o aplicación. Oracle SQL contiene muchas extensiones. iSQL*Plus es una herramienta de Oracle que reconoce y envía sentencias SQL a Oracle Server para su ejecución y contiene su propio lenguaje de comandos. Funciones de SQL Lo pueden utilizar diferentes usuarios, incluidos los que tengan poca o ninguna experiencia en programación Es un lenguaje no procedural Es un lenguaje basado en el inglés Funciones de iSQL*Plus Se accede a él desde un explorador Acepta sentencias SQL Proporciona edición online para modificar sentencias SQL Controla los valores de entorno Formatea los resultados de las consultas en informes básicos Accede a bases de datos locales y remotas

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-21


Sentencias SQL frente a Comandos de iSQL*Plus SQL Un lenguaje Estándar ANSI Las palabras clave no se pueden abreviar Las sentencias manipulan datos y definiciones de tablas en la base de datos

iSQL*Plus Un entorno Propietario de Oracle Las palabras clave se pueden abreviar Los comandos no permiten la manipulación de valores en la base de datos Se ejecuta en un explorador Se carga centralmente; no es necesaria su implementación en cada máquina Comandos de SQL*Plus

Sentencias SQL

Copyright © 2004, Oracle. Todos los derechos reservados.

SQL e iSQL*Plus (continuación) La tabla siguiente compara SQL e iSQL*Plus: SQL

iSQL*Plus

Es un lenguaje de comunicación con Oracle Server para acceder a datos Se basa en SQL del estándar ANSI (Instituto Nacional Americano de Normalización) Recupera datos; manipula datos y definiciones de tablas en la base de datos No tiene carácter de continuidad

Reconoce sentencias SQL y las envía al servidor Es la interfaz propietaria de Oracle para ejecutar sentencias SQL No permite la manipulación de valores en la base de datos Utiliza un guión ( ) como carácter de continuidad si el comando ocupa más de una línea Se puede abreviar Utiliza comandos para formatear datos

No se puede abreviar Utiliza funciones para realizar formateo

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-22


Visión General de iSQL*Plus Después de conectarse a iSQL*Plus, puede: Describir estructuras de tablas Introducir, ejecutar y editar sentencias SQL Guardar o agregar sentencias SQL a archivos Ejecutar o editar sentencias almacenadas en archivos de comandos guardados

Copyright © 2004, Oracle. Todos los derechos reservados.

iSQL*Plus iSQL*Plus es un entorno en el que puede: Ejecutar sentencias SQL para recuperar, modificar, agregar y eliminar datos de la base de datos Formatear, realizar cálculos, almacenar e imprimir resultados en forma de informes Crear archivos de comandos para almacenar sentencias SQL para su uso repetido en el futuro Los comandos de iSQL*Plus se pueden dividir en estas categorías principales: Categoría Objetivo Entorno Afecta al comportamiento general de sentencias SQL para la sesión Formato Formatea los resultados de las consultas Manipulación Guarda sentencias en archivos de comandos de texto y ejecuta de archivos sentencias desde archivos de comando de texto Ejecución Envía sentencias SQL desde el explorador a Oracle Server Edición Modifica las sentencias SQL en la ventana Edit Interacción Le permite crear y transferir variables a sentencias SQL, imprimir valores de variables e imprimir mensajes en pantalla Otros Dispone de varios comandos para conectarse a la base de datos, manipular el entorno iSQL*Plus y mostrar definiciones de columna Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-23


Conexión a iSQL*Plus Desde el entorno del explorador:

Copyright © 2004, Oracle. Todos los derechos reservados.

Conexión a iSQL*Plus Para conectarse desde un entorno de explorador: 1. Inicie el explorador. 2. Introduzca la dirección URL del entorno iSQL*Plus. 3. En la página Login, introduzca valores adecuados en los campos Username, Password y Connect Identifier.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-24


Entorno iSQL*Plus 8

9

7

1

6

2

3

4

5

Copyright © 2004, Oracle. Todos los derechos reservados.

Entorno iSQL*Plus En el explorador, la página iSQL*Plus Workspace tiene varias áreas clave: 1. Cuadro de texto: Área en la que se escriben las sentencias SQL y los comandos de iSQL*Plus 2. Botón Execute: Haga clic en este botón para ejecutar las sentencias y los comandos del cuadro de texto 3. Botón Load Script: Abre un formulario en el que puede identificar una ruta de acceso y un nombre de archivo o una dirección URL que contiene comandos de SQL, PL/SQL o SQL*Plus para cargarlos en el cuadro de texto 4. Botón Save Script: Guarda el contenido del cuadro de texto en un archivo 5. Botón Cancel: Detiene la ejecución del comando del cuadro de texto 6. Botón Clear Screen: Haga clic en este botón para limpiar el texto del cuadro de texto 7. Icono Logout: Haga clic en este icono para dar por terminada la sesión de iSQL*Plus y volver a la página iSQL*Plus Login 8. Icono Preferences: Haga clic en este icono para cambiar la configuración de la interfaz, la configuración del sistema o la contraseña 9. Icono Help: Proporciona acceso a la documentación de ayuda de iSQL*Plus

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-25


Visualización de la Estructura de Tablas Utilice el comando de iSQL*Plus DESCRIBE para mostrar la estructura de una tabla: DESC[RIBE] tablename

Copyright © 2004, Oracle. Todos los derechos reservados.

Visualización de la Estructura de Tablas En iSQL*Plus, puede mostrar la estructura de una tabla mediante el comando DESCRIBE. El comando muestra los nombres de columna y los tipos de datos e indica si una columna debe contener datos (es decir, si la columna tiene una restricción NOT NULL). En la sintaxis, tablename es el nombre de cualquier tabla, vista o sinónimo existentes a los que pueda acceder el usuario.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-26


Visualización de la Estructura de Tablas

DESCRIBE employees

Copyright © 2004, Oracle. Todos los derechos reservados.

Visualización de la Estructura de Tablas (continuación) El ejemplo de la diapositiva muestra información sobre la estructura de la tabla DEPARTMENTS. En la visualización resultante, Null? indica que los valores para esta columna pueden ser desconocidos. NOT NULL indica que una columna debe contener datos. Type muestra el tipo de datos para una columna. Los tipos de datos se describen en esta tabla: Tipo de Datos NUMBER(p,s) VARCHAR2(s) DATE CHAR(s)

Descripción Valor numérico con un número máximo p de dígitos, con s números de dígitos a la derecha del separador decimal Valor de carácter de longitud variable de un tamaño máximo s Valor de fecha y hora entre el 1 de enero de 4712 a. C. y el 31 de diciembre de 9999 d. C. Valor de carácter de longitud fija de un tamaño máximo s

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-27


Interacción con Archivos de Comandos

SELECT last_name, hire_date, salary FROM employees;

1

2

Copyright © 2004, Oracle. Todos los derechos reservados.

Interacción con Archivos de Comandos Colocación de Sentencias y Comandos en un Archivo de Comandos de Texto Puede guardar comandos y sentencias desde el cuadro de texto en iSQL*Plus a un archivo de comandos de texto del modo siguiente: 1. Escriba la sentencia SQL en el cuadro de texto en iSQL*Plus. 2. Haga clic en el botón Save Script. Se abrirá el recuadro de diálogo Windows File Save. Identifique el nombre del archivo. La extensión por defecto será .uix. Puede cambiar el tipo de archivo a un archivo de texto o guardarlo como archivo .sql.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-28


Interacción con Archivos de Comandos

Copyright © 2004, Oracle. Todos los derechos reservados.

Interacción con Archivos de Comandos (continuación) En el ejemplo que se muestra, la sentencia SELECT de SQL escrita en el cuadro de texto se guarda en un archivo denominado emp_data.sql. Puede seleccionar el tipo de archivo, el nombre de archivo y la ubicación de donde desee guardar el archivo de comandos.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-29


Interacción con Archivos de Comandos

1

Copyright © 2004, Oracle. Todos los derechos reservados.

Interacción con Archivos de Comandos (continuación) Uso de Sentencias y Comandos de un Archivo de Comandos en iSQL*Plus Puede utilizar comandos y sentencias guardados anteriormente de un archivo de comandos en iSQL*Plus del modo siguiente: 1. Haga clic en el botón Load Script. Se abrirá un formulario desde el que puede escribir el nombre del archivo o una dirección URL que contenga los comandos de SQL, PL/SQL o SQL*Plus que desee introducir en el cuadro de texto.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-30


Interacción con Archivos de Comandos

D:\TEMP\emp_data.sql

2

3

Copyright © 2004, Oracle. Todos los derechos reservados.

Interacción con Archivos de Comandos (continuación) 2. Introduzca el nombre y la ruta de acceso del archivo de comandos o la dirección URL. O puede hacer clic en el botón Browse para buscar el nombre y la ubicación del archivo de comandos. 3. Haga clic en el botón Load para llevar el contenido del archivo o de la dirección URL al recuadro de texto.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-31


Página History de iSQL*Plus 3

2

1

Copyright © 2004, Oracle. Todos los derechos reservados.

Ejecución de Sentencias Anteriores La página History de iSQL*Plus le permite ejecutar sentencias previamente ejecutadas en la sesión. La página History muestra las sentencias SQL y los comandos de iSQL*Plus ejecutados más recientemente. Para volver a ejecutar las sentencias: 1. Seleccione las sentencias que desea ejecutar. 2. Haga clic en el botón Load. Nota Puede controlar el número de sentencias que se muestran en la página History con los valores de Preferences. Puede suprimir sentencias seleccionadas haciendo clic en el botón Delete.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-32


Página History de iSQL*Plus

3

4

Copyright © 2004, Oracle. Todos los derechos reservados.

Ejecución de Sentencias Anteriores (continuación) 3. Vuelva a la página Workspace. 4. Haga clic en el botón Execute para ejecutar el comando que se ha cargado en el recuadro de texto.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-33


Definición de Preferencias de iSQL*Plus

1

2 3

Copyright © 2004, Oracle. Todos los derechos reservados.

Preferencias de iSQL*Plus Puede definir preferencias para la sesión de iSQL*Plus haciendo clic en el icono Preferences. Las preferencias se dividen en categorías. Puede definir preferencias para el formato de archivos de comandos, la ejecución de archivos de comandos y la administración de bases de datos, y puede cambiar la contraseña. Al seleccionar una categoría de preferencias, se muestra un formulario que le permite definir las preferencias para dicha categoría.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-34


Definición de la Preferencia de Ubicación de Salida 2

1

Copyright © 2004, Oracle. Todos los derechos reservados.

Cambio de la Ubicación de Salida Puede enviar los resultados generados por una sentencia SQL o un comando de iSQL*Plus a la pantalla (valor por defecto), a un archivo o a otra ventana del explorador. En la página Preferences: 1. Seleccione una opción de Output Location. 2. Haga clic en el botón Apply.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-35


Resumen En esta lección ha aprendido a: Escribir una sentencia SELECT que: Devuelva todas las filas y columnas de una tabla Devuelva columnas especificadas de una tabla Utilice alias de columna para mostrar más cabeceras de columnas descriptivas

Utilice el entorno iSQL*Plus para escribir, guardar y ejecutar sentencias SQL y comandos de iSQL*Plus

SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;

Copyright © 2004, Oracle. Todos los derechos reservados.

Sentencia SELECT En esta lección, ha aprendido a recuperar datos de una tabla de base de datos con la sentencia SELECT. SELECT FROM

*|{[DISTINCT] column [alias],...} table;

En la sintaxis: SELECT * DISTINCT column|expression alias FROM table iSQL*Plus

es una lista de una o más columnas selecciona todas las columnas suprime los duplicados selecciona la columna o la expresión especificadas proporciona a las columnas seleccionadas cabeceras diferentes especifica la tabla que contiene las columnas

iSQL*Plus es un entorno de ejecución que se puede utilizar para enviar sentencias SQL al servidor de bases de datos para editar y guardar sentencias SQL. Las sentencias se pueden ejecutar desde el prompt SQL o desde un archivo de comandos.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-36


Práctica 1: Visión General Esta práctica cubre los temas siguientes: Selección de todos los datos de diferentes tablas Descripción de la estructura de tablas Realización de cálculos aritméticos y especificación de números de columna Uso de iSQL*Plus

Copyright © 2004, Oracle. Todos los derechos reservados.

Práctica 1: Visión General Ésta es la primera de varias prácticas para este curso. Las soluciones (si las necesita) se pueden encontrar en el Apéndice A. En las prácticas se pretenden cubrir todos los temas que se presenten en las lecciones correspondientes. Anote esta ubicación para los archivos de práctica: E:\labs\\SQL1\labs Si se le pide que guarde algún archivo de práctica, guárdelos en esta ubicación. Para iniciar iSQL*Plus, inicie el explorador. Debe introducir una dirección URL para acceder a iSQL*Plus. La dirección URL necesita el nombre del host, que le proporcionará el instructor. Introduzca el comando siguiente, para sustituir el nombre del host por el valor que le proporcione el instructor: http://<HOSTNAME:5561>/isqlplus En las prácticas, puede haber ejercicios precedidos de las frases Si le queda tiempo o Si desea afrontar un desafío mayor . Trabaje en estos ejercicios únicamente si ha terminado todos los demás ejercicios en el tiempo asignado y desea afrontar un desafío mayor para sus habilidades. Realice las prácticas despacio y con precisión. Puede probar a guardar y ejecutar archivos de comando. Si tiene alguna pregunta en cualquier momento, pregúntele al instructor.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-37


Práctica 1 Parte 1 Ponga a prueba sus conocimientos: 1. Inicie una sesión en iSQL*Plus mediante el identificador de usuario y la contraseña que le proporcione el instructor. 2. Los comandos de iSQL*Plus acceden a la base de datos. Verdadero/Falso 3. La siguiente sentencia SELECT se ejecuta correctamente: SELECT last_name, job_id, salary AS Sal FROM employees; Verdadero/Falso 4. La siguiente sentencia SELECT se ejecuta correctamente: SELECT * FROM job_grades; Verdadero/Falso 5. Hay cuatro errores de codificación en esta sentencia. ¿Los puede identificar? SELECT sal x 12 FROM

employee_id, last_name ANNUAL SALARY employees;

Parte 2 Anote esta ubicación para los archivos de práctica: E:\labs\\SQL1\labs Si se le pide que guarde algún archivo de práctica, guárdelos en esta ubicación. Para iniciar iSQL*Plus, inicie el explorador. Debe introducir una dirección URL para acceder a iSQL*Plus. La dirección URL necesita el nombre del host, que le proporcionará el instructor. Introduzca el comando siguiente, para sustituir el nombre del host por el valor que le proporcione el instructor: http://<HOSTNAME:5561>/isqlplus Le han contratado como programador de SQL en Acme Corporation. Su primera tarea consiste en crear unos informes basándose en datos de las tablas de recursos humanos. 6. Su primera tarea consiste en determinar la estructura de la tabla DEPARTMENTS y de su contenido.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-38


Práctica 1 (continuación)

7. Debe determinar la estructura de la tabla EMPLOYEES.

El departamento de recursos humanos desea que cree una consulta para mostrar el apellido, el código de puesto, la fecha de contratación y el número de empleado de cada empleado, con el número de empleado en primer lugar. Proporcione el alias STARTDATE para la columna HIRE_DATE. Guarde la sentencia SQL en un archivo denominado lab_01_07.sql para poder transferir este archivo al departamento de recursos humanos.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-39


Práctica 1 (continuación) 8. Pruebe la consulta del archivo lab_01_07.sql para asegurarse de que funciona correctamente.

9. El departamento de recursos humanos desea que cree una consulta para visualizar códigos de puesto únicos de la tabla EMPLOYEES.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-40


Práctica 1 (continuación) Parte 3 Si le queda tiempo, realice los siguientes ejercicios: 10. El departamento de recursos humanos desea cabeceras de columnas más descriptivas para su informe sobre los empleados. Copie la sentencia de lab_01_07.sql en el recuadro de texto de iSQL*Plus. Nombre las cabeceras de columna Emp #, Employee, Job y Hire Date, respectivamente. A continuación, vuelva a ejecutar la consulta.

11. El departamento de recursos humanos ha solicitado un informe de todos los empleados y de sus identificadores de puesto. Muestre el apellido concatenado con el identificador de puesto (separados por una coma y un espacio) y nombre la columna Employee and Title.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-41


Práctica 1 (continuación) Si desea afrontar un desafío mayor, realice este ejercicio: 12. Para familiarizarse con los datos de la tabla EMPLOYEES, cree una consulta para mostrar todos los datos de esa tabla. Separe la salida de cada columna con una coma. Ponga al título de la columna el nombre THE_OUTPUT.

Base de Datos Oracle 10g: Conceptos Fundamentales de SQL I 1-42


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.