| Inicio | Tu Cuenta | Manuales | Foros | Tutoriales | Los TOP | Empleos| Artículos | Comentarios |   

Manual Oracle
 1: Monitoreo de Bloqueos 
 2: Manejo de Clusters en Oracle 
 3: Analiszando las Consultas tipo Hash 
 4: Introducción a ORACLE Developer - Castellano 
 5: Creación de un Formulario en Developer Forms - Castellano 
 6: Administracion de Base de Datos Oracle 
 7: Tutorial de Oracle9i Reports 
 8: Manual de Developer Forms 
 9: Manual de Oracle9i Reports 
 10: External tables en Oracle 9i 


Mas de Oracle


Noticias Oracle


Error Ora-


Script Oracle Español
· Scripts para DBA
· SQL ANSI en Oracle 10g
· Pivoting INsert en Oracle 10g
· Sentencias de inserción en varias tablas - Oracle 10g
· Sentencia Insert condicionada - Oracle 10 g

[ Más en la Sección de Noticias ]



Mandatos de Sql Plus
Enviado el Viernes, 06 agosto a las 13:34:05 por csr

Concepto y Practica

Mandatos de SQL*Plus



Mandatos de SQL*Plus

Veamos una serie de comandos propios del programa SQL*Plus y que no forman parte propiamente dicha del lenguaje relacional SQL pero que pueden resultar muy útiles durante el trabajo con este programa. Estas órdenes o comandos propios de SQL*Plus no necesitan terminarse con un punto y coma.

Comando DESCRIBE

DESCRIBE permite obtener las definiciones de las columnas para una tabla, vista o sinónimo. Su sintaxis de aplicación es:

DESCRIBE objeto

Para obtener información concerniente a la tabla con los datos de población:

DESCRIBE poblacion

Comando SPOOL

Con este comando puede enviarse la salida por pantalla hacia un fichero de texto lo que puede resultar muy útil para luego estudiar detenidamente la salida, imprimirla, etc. Con el argumento OFF se detiene el envío de la salida al fichero.

SPOOL nombre_fichero
SPOOL OFF

Comando HOST

Este comando permite la ejecución de órdenes del sistema operativo sin abandonar SQL*PLUS.

HOST comando

Por ejemplo para obtener el listado del directorio actual en la cuenta de usuario UNIX se ha de ejecutar:

HOST ls

Para visualizar el contenido de todos los ficheros involucrados en el proceso de carga de datos:

HOST more sevilla.dat
HOST more carga.ctl
HOST more carga.log

Si tan solo se ejecuta el comando HOST sin argumentos entonces se obtiene un shell del sistema operativo (lo cual puede verse fácilmente a partir del prompt) y pueden ejecutarse cuantas órdenes del sistema operativo se desee hasta que se ejecute el comando exit, regresando así al SQL*Plus en su modo normal de funcionamiento.

Comando START

Mediante este comando pueden ejecutarse secuencialmente las sentencias SQL contenidas en un fichero. Este fichero de comandos contiene simplemente el texto de una serie de sentencias en lenguaje SQL para ser ejecutadas. Es usual que los ficheros de comandos finalicen en .SQL.

START nombre_fichero_comandos

Es muy interesante la posibilidad de pasar argumentos variables necesarios para la ejecución de las sentencias SQL contenidas en el fichero de comandos de modo que cada vez que se invoque un fichero de comandos con esta orden pueden pasarse diferentes argumentos.

Consultas

Número de municipios

SELECT COUNT(*) FROM poblacion;

SELECT COUNT(*) FROM poblacion WHERE hombres > mujeres;

SELECT COUNT(*) FROM poblacion WHERE mujeres > hombres;

SELECT nombre FROM poblacion WHERE hombres = mujeres;

El número de filas de la tabla es su cardinalidad.

Población total

SELECT SUM(hombres) "Poblacion masculina" FROM poblacion;

SELECT SUM(mujeres) "Poblacion femenina" FROM poblacion;

SELECT SUM(hombres) + SUM(mujeres) "Poblacion total" FROM poblacion;

Un texto entrecomillado a continuación de una columna de salida permite asignar un nombre alternativo a esa columna en el listado de resultados.

Población de los municipios

SELECT nombre "Municipio", hombres + mujeres "Poblacion" FROM poblacion;

Listado ordenado de municipios según población

SELECT nombre FROM poblacion ORDER BY hombres DESC;

SELECT nombre FROM poblacion ORDER BY mujeres DESC;

SELECT nombre FROM poblacion ORDER BY hombres + mujeres DESC;

Lógicamente cada una de estas ordenaciones puede producir resultados distintos de manera que un mismo municipio puede ocupar posiciones diferentes en cada uno de los listados de salida.

Consultas de máximos

SELECT MAX(hombres), MAX(mujeres) FROM poblacion;

SELECT MAX(hombres + mujeres) FROM POBLACION;

SELECT nombre FROM poblacion WHERE hombres =
(SELECT MAX(hombres) FROM poblacion);

Consultas condicionales ordenadas

Se desea obtener un listado de los municipios con mayor población masculina que femenina.

SELECT nombre AS municipio FROM poblacion WHERE hombres > mujeres;

Se desea ordenar el listado según la magnitud de la diferencia entre la población de ambos sexos.

SELECT nombre AS municipio,
hombres - mujeres AS diferencia FROM poblacion
WHERE hombres > mujeres ORDER BY 2 DESC;

Se desea ordenar el listado según la magnitud relativa, expresada en porcentaje, de la diferencia entre la población de ambos sexos en relación a la población total de cada municipio.

SELECT nombre AS municipio,
(hombres-mujeres)/(hombres+mujeres)*100 AS porcentaje
FROM poblacion WHERE hombres > mujeres ORDER BY 2;

Cálculos de medias

SELECT AVG(hombres) FROM poblacion;

SELECT AVG(mujeres) FROM poblacion;

SELECT AVG(hombres+mujeres) FROM poblacion;

SELECT AVG(hombres+mujeres) FROM poblacion WHERE hombres > mujeres;

SELECT AVG(hombres+mujeres) FROM poblacion WHERE mujeres > hombres;

SELECT AVG(hombres+mujeres) FROM poblacion WHERE mujeres > hombres
AND UPPER(nombre) != 'SEVILLA';

La función UPPER devuelve la cadena que recibe como argumento en la que todos los caracteres se han convertido a mayúsculas. Aquí se utiliza para que sea indiferente la manera en que se hayan almacenado los nombres de los municipios en la base de datos.

Consultas condicionales con argumentos

Supóngase que se desea calcular el número de municipios cuya población total está entre 10.000 y 25.000 habitantes.

SELECT COUNT(*) FROM poblacion WHERE hombres + mujeres
BETWEEN 10000 AND 25000;

Si se desea calcular la misma cantidad pero con número de habitantes diferente (por ejemplo, 5.000 y 20.000) hay que volver a escribir una sentencia SELECT idéntica en todo a la anterior excepto en los valores concretos a utilizar en la cláusula WHERE de la consulta. El paso de argumentos variables que posibilita el comando START ya comentado proporciona una manera cómoda y potente de realizar varias veces la misma consulta cambiando en cada caso los parámetros variables (en este caso, mínimo y máximo de la población de un municipio). Hay que crear un fichero de comandos denominado por ejemplo pregunta.sql con el siguiente contenido:

REM Esto es una prueba
SELECT COUNT(*) FROM poblacion WHERE hombres + mujeres
BETWEEN &1 AND &2;

El fichero puede crearse invocando externamente un editor de texto:

HOST emacs pregunta.sql

La sentencia REM permite introducir líneas de comentario en los archivos de órdenes SQL. Este fichero de comandos puede invocarse de la siguiente forma:

START pregunta.sql 5000 20000

con lo que se ejecuta realmente la sentencia:

SELECT COUNT(*) FROM poblacion WHERE hombres + mujeres
BETWEEN 5000 AND 20000;

Nótese que en el fichero de comandos los argumentos se han indicado mediante el símbolo & seguido del número de argumento (entre comillas si el argumento sería realmente sustituido por una expresión de tipo cadena en la ejecución).


 
Enlaces Relacionados
· Más Acerca de Concepto y Practica
· Noticias de csr


Noticia más leída sobre Concepto y Practica:
Mandatos de Sql Plus



Votos del Artículo
Puntuación Promedio: 3.04
votos: 24


Por favor tómate un segundo y vota por este artículo:

Malo
Regular
Bueno
Muy Bueno
Excelente




Opciones

Versión Imprimible  Versión Imprimible

Enviar a un Amigo  Enviar a un Amigo


Manual Oracle
Oracle Manual y tutorial, Pl/Sql, Discoverer, Forms, Sql y Plsql - Orape



Adaptado para nuke 6.0 por DragónNB