buscador

Visita

Mostrando las entradas con la etiqueta Escritura de Sentencias SQL. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Escritura de Sentencias SQL. Mostrar todas las entradas

martes, 27 de diciembre de 2022

SQL Capitulo 1: Recuperaci贸n de Datos Mediante la Sentencia SQL SELECT

Sean bienvenidos a esta secci贸n y a esta primera publicaci贸n sobre SQL utilizando el motor de base de datos oracle 11G.


Objetivos de la publicaci贸n:
Al finalizar esta lecci贸n, deberia estar capacitado para lo siguiente:
  • Enumerar las capacidades de las sentencias SQL select.
  • Ejecutar una sentencia SELECT b谩sica.

Para extraer datos de la base de datos, debe utilizar la sentencia SQL SELECT. Sin embargo, puede que necesite restringir las columnas que se muestran, es decir si una tabla en la base de dados tiene 8 columnas y solo se desea mostrar o consultar 4, existe la FORMA de hacerlo con SQL SELECT. 
Esta publicaci贸n describe todas las sentencias SELECT necesarias para realizar estas acciones. Puede que desee crear sentecnias Select que se pueden utilizar m谩s de una vez.



Sentencia SELECT b谩sica

Capacidades de las sentencias SQL SELECT
Una sentencia SELECT recupera informaci贸n de la base de datos. Con una sentencia SELECT, se puede hacer lo siguiente:
Proyecci贸n: seleccione las columnas de una tabla devueltas por una consulta. Seleccione tantas columnas como sea necesario.
Selecci贸n: seleccione las filas de una tabla devueltas por una consulta. Se pueden utilizar diferentes criterios para restringir las filas recuperadas. 
Uniones: re煤na los datos almacenados en diferentes tablas especificando el enlace entre ellas. Las uniones SQL se tratan de forma m谩s detallada en la lecci贸n titulada “Visualizaci贸n de Datos de Varias Tablas mediante Uniones”.

Forma de un SELECT b谩sico:
SELECT * | {[DISTINCT] column| expresion [alias],...}
FROM table;

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

En su formato m谩s simple, una sentencia SELECT debe incluir lo siguiente:
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 expresi贸n especificada.
alias proporciona diferentes cabeceras de 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 como se describe 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 parte de una sentencia SQL (por ejemplo, SELECT employee_id, last_name, etc.).
Una sentencia es una combinaci贸n de dos o m谩s cl谩usulas (por ejemplo, SELECT * FROM employees).



Selecci贸n de todas las columnas:
SELECT
FROM HR.departments;

Resultado:

Puede mostrar todas las columnas de datos en una tabla insertando la siguiente palabra clave SELECT con un asterisco (*). En el ejemplo. la tabla HR.departments contiene cuatro columnas: DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID y LOCATION_ID. La tabla contiene once filas, una por cada departamento. 
Tambi茅n puede mostrar todas las columnas en la tabla mostrando 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 filas de la tabla HR.departments:
SELECT  department_id, department_name, manager_id, location_id FROM    HR.departments;

Nota: en SQL Developer, puede introducir la sentencia SQL en una hoja de trabajo de SQL y hacer clic en el icono “Execute Statement” o pulsar [F9] para ejecutar la sentencia. La salida mostrada en la p谩gina con separadores Results aparece como se muestra en la imagen.

Selecci贸n de columnas concretas
SELECT LOCATION_ID, DEPARTMENT_ID 
FROM HR.departments;

Resultado:


Tambi茅n puede utilizar la sentencia SELECT para mostrar las columnas  concretas de la tabla especificando los nombres de columna, separados por comas. El ejemplo muestra todos los n煤meros de departamento y ubicaci贸n de la tabla HR.departments. 
En la cl谩usula SELECT, especifique las columnas que desee, en el orden en el que desee que aparezcan en la salida. Por ejemplo, para mostrar la ubicaci贸n antes del n煤mero de departamento (de izquierda a derecha), utilice la siguiente sentencia:



SELECT  DEPARTMENT_ID,LOCATION_ID 
FROM HR.departments;

Escritura de Sentencias SQL
  • Las sentencias SQL no son sensibles a may煤sculas/min煤sculas (a menos que se indique).
  • Las sentencias SQL se puede introducir en una o m谩s lineas.
  • Las palabras clave no se pueden abreviar o dividor entre lineas.
  • Las clausulas se suelen colocar en lineas independientes.
  • El sangrado se debe utilizar para que sea m谩s f谩cil de leer el c贸digo.
  • En SQL developer, las sentencias SQL tambien pueden terminar con un punto y coma (;). LOs puntos y comas son 
  • necesarios si se ejecuta varias sentencias SQL.
  • En SQL*Plus, debe finalizar cada sentencia SQL con un punto y coma (;).

Ejecuci贸n de Sentencias SQL
En SQL Developer, haga clic en el icono Run Script o pulse [F5] para ejecutar el comando o los comandos en la hoja de trabajo de SQL. Tambi茅n puede hacer clic en el icono Execute Statement o pulsar [F9] para ejecutar una sentencia SQL en la hoja de trabajo de SQL. El icono Execute Statement ejecuta la sentencia que indica el puntero del mouse en el cuadro Enter SQL Statement mientras que el icono Run Script ejecuta todas las sentencias del cuadro Enter SQL Statement. El icono Execute Statement muestra la salida de la consulta en la p谩gina con separadores Results, mientras que el icono Run Script emula la visualizaci贸n SQL*Plus y muestra la salida en la p谩gina con separadores Script Output.
Mediante SQL*Plus, termine la sentencia SQL con un punto y coma y, a continuaci贸n, pulse la tecla [Intro] para ejecutar el comando.

Valores por Defecto de Cabeceras de Columna
SQL Developer:
Alineaci贸n de cabecera por defecto: alineaci贸n a la izquierda.
En SQL Developer, las cabeceras de columna se muestran en may煤sculas y alineadas a la izquierda.
SELECT last_name, hire_date, salary
FROM HR.EMPLOYEES;
Puede sustituir la visualizaci贸n de cabecera de columna por un alias. Los alias de columna se tratar谩n m谩s adelante en esta publicaci贸n.



SQL*Plus:
Las cabeceras de columna de caracter y de fecha se alinean a la izquierda.
Las acebceras de columna de n煤mero se alinean a la derecha.
Visualizaci贸n de cabecera por defecto : mayusculas.

Expresiones aritm茅ticas y valores NULL en la sentencia SELECT

Expresiones Aritm茅ticas
Craer expresiones con datos de fecha y n煤meros mediante operadores aritm茅ticos.
Puede que necesite modificar la forma en la que se muestran los datos, realizar c谩lculos o consultar casos de posibilidades. Todo esto es posible mediante las 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 imagen arriba 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 dato DATE y TIMESTAMP, s贸lo puede utilizar los operadores de suma y resta.

Uso de Operadores Aritm茅ticos
SELECT LAST_NAME, SALARY + 300
FROM HR.EMPLOYEES;

El ejemplo de la diapositiva utiliza el operador de suma para calcular un aumento de salario de 300 d贸lares 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 nueva columna en la tabla EMPLOYEES; es s贸lo para visualizaci贸n. Por defecto, el nombre de la nueva columna procede del c谩lculo que lo genera, en este caso, salary+300.
Nota: el servidor de Oracle ignora los espacios en blanco antes y despu茅s del operador aritm茅tico.

Prioridad de Operadores
Si una expresi贸n aritm茅tica contiene m谩s de un operador, la multiplicaci贸n y divisi贸n se eval煤an primero. Si los operadores en una expresi贸n tienen la misma prioridad, la evaluaci贸n se realiza de izquierda a derecha.
Puede utilizar los par茅ntesis para forzar la expresi贸n que se incluye entre par茅ntesis para que se eval煤e primero.

Reglas de Prioridad
La multiplicaci贸n y divisi贸n se producen 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 sustituir la prioridad por defecto o para aclarar la sentencia.

Prioridad de Operadores
SELECT LAST_NAME, SALARY, 12*SALARY+100
FROM HR.EMPLOYEES;

Uso de parentesis
SELECT LAST_NAME, SALARY, 12*(SALARY+100)
FROM HR.EMPLOYEES;

El primer ejemplo muestra el apellido, el salario y la compensaci贸n anual de los empleados. Calcula la compensaci贸n anual multiplicando el salario mensual por 12, m谩s un incentivo de 100 d贸lares. Tenga en cuenta que la multiplicaci贸n se realiza antes de la suma.

Nota: utilice los par茅ntesis para reforzar el orden est谩ndar de prioridad y mejorar la claridad. Por ejemplo, la expresi贸n de la diapositiva se puede escribir como (12*salary)+100 sin producir ning煤n cambio en el resultado.

Uso de Par茅ntesis
Puede sustituir las reglas de prioridad utilizando par茅ntesis para especificar el orden en el 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 de la siguiente forma: suma un incentivo mensual de 100 d贸lares al salario mensual y, a continuaci贸n, multiplica dicho subtotal por 12. Debido a los par茅ntesis, la suma tiene prioridad sobre la multiplicaci贸n.



Definici贸n de Valor Nulo
Un valor nulo es un valor que no est谩 disponible, sin asignar, 
desconocido o que 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 HR.EMPLOYEES;

Si una fila carece de un valor de datos para una columna concreta, se dice que dicho valor es nulo o que contiene un valor nulo. 
Un valor nulo es un valor que no est谩 disponible, sin asignar, desconocido o que no es aplicable. Un valor nulo no es lo mismo que un cero o un espacio en blanco. El cero es un n煤mero y el espacio en blanco es un car谩cter. 
Las columnas de cualquier tipo de dato pueden contener valores nulos. Sin embargo, algunas restricciones (NOT NULL y PRIMARY KEY) evitan que se utilicen valores nulos en la columna. 
En la columna COMMISSION_PCT de la tabla EMPLOYEES, observe que s贸lo pueden percibir una comisi贸n un director de ventas o un vendedor. El resto de los empleados no tienen derecho a percibir comisiones. Un valor nulo representa este hecho.

Nota: por defecto, SQL Developer utiliza el literal, (null), para identificar los valores nulos. Sin embargo, se puede definir en un valor m谩s relevante para el usuario. Para ello, seleccione Preferences en el men煤 Tools. En el cuadro de di谩logo Preferences, ampl铆e el nodo Database. Haga clic en Advanced Parameters y en el panel derecho, para “Display Null value As”, introduzca un valor adecuado.

Valores Nulos en expresiones Aritm茅ticas
Las expresiones aritm茅ticas que contengan un valor nulo se eval煤an como nulas.

SELECT LAST_NAME, 12*SALARY*COMMISSION_PCT
FROM HR.EMPLOYEES;


Si cualquier valor de columna en una expresi贸n aritm茅tica es nulo, el resultado es nulo. Por ejemplo, si intenta realizar una divisi贸n entre cero, recibir谩 un error. Sin embargo, si divide un n煤mero entre un valor nulo, el resultado ser谩 nulo o desconocido. 
En el ejemplo muestra, el empleado Vargas no percibe ninguna comisi贸n. Porque la columna COMMISSION_PCT en la expresi贸n aritm茅tica es nula, por lo tanto, el resultado es nulo. 
Para obtener m谩s informaci贸n, consulte la secci贸n sobre elementos b谩sicos de Oracle SQL en Oracle Database SQL Language Reference (Referencia sobre Lenguaje SQL de Oracle Database) para la base de datos 10g u 11g.



Alias de Columna
Definici贸n de Alias de Columna
Un alias de columna:
  • Cambia el nombre de una cabecera de columna
  • Es 煤til para realizar c谩lculos
  • Sigue inmediatamente al nombre de columna (tambi茅n puede ser la palabra clave opcional AS entre el nombre de columna y el alias)
  • Necesita comillas dobles si contiene espacios o caracteres especiales o si es sensible a may煤sculas/min煤sculas
Ejemplo:
SELECT LAST_NAME AS name,COMMISSION_PCT comm
FROM   HR.EMPLOYEES;
SELECT LAST_NAME "Name" , salary*12 "Annual Salary"
FROM  HR.EMPLOYEES;

Uso del operador de concatenaci贸n, cadenas de caracteres de literales, operador de comillas alternativo y palabra clave DISTINCT
Operador de Concatenaci贸n
Un operador de concatenaci贸n:
  • Enlaza columnas o cadenas de caracteres a otras columnas
  • Se representa con dos barras verticales (||)
  • Crea una columna resultante que es una expresi贸n de car谩cter
SELECT LAST_NAME ||job_id AS "Employees"
FROM HR.EMPLOYEES;


Cadenas de Caracteres Literales
Un literal es un car谩cter, un n煤mero o una fecha que se incluye en la sentencia SELECT.
Los valores literales de caracteres y fecha se deben incluir entre comillas simples.
Cada cadena de caracteres es la salida una vez para cada fila devuelta.



Uso de Cadenas de Caracteres Literales
SELECT LAST_NAME ||' is a '||job_id 
       AS "Employee Details"
FROM  HR.EMPLOYEES;


Operador de Comillas (q) Alternativo
  • Especifique su propio delimitador de entrecomillado.
  • Seleccione cualquier delimitador.
  • Aumente la legibilidad y el uso.
SELECT department_name || q'[ Department's Manager Id: ]'
       || manager_id 
       AS "Department and Manager" 
FROM HR.departments;


Filas Duplicadas
La visualizaci贸n por defecto de las consultas incluye todas las filas, tambi茅n las filas duplicadas.


Comando DESCRIBE
Visualizaci贸n de la Estructura de la Tabla.
Utilizar el comando DESCRIBE para mostrar la estructura de una tabla.
O seleccionar la tabla en el 谩rbol Connections y utilizar el separador Columns para ver la estructura de la tabla.

Uso del Comando DESCRIBE
DESCRIBE HR.departments;

Ejercicios a resolver las siguientes selentencias si estan bien o cual es el error que le impide ejecutarse.



Soluci贸n:
--FALTAN LAS COMILLAS
SELECT first_name, last_name, job_id, salary*12 AS "Yearly Sal" 
FROM   HR.EMPLOYEES;


Soluci贸n:
--faltaba la palabra reservada AS
SELECT first_name, last_name, job_id, salary*12 as "yearly sal"
FROM   HR.EMPLOYEES;

Soluci贸n:
--NO TIENE ERRORES DE SINTAXIS
SELECT first_name, last_name, job_id, salary AS "yearly sal"
FROM   HR.EMPLOYEES;

Soluci贸n:
--faltaban comillas en los alias y no se puede realizar operaciones aritmeticas a nombres si se puede unir mediante    || que contatena las columnas.
SELECT first_name || last_name AS "NAME", job_Id, salary*12 "yearly sal"
FROM   HR.EMPLOYEES;



En esta publicaci贸n, debe haber aprendido lo siguiente:

Escribir una sentencia SELECT que:
  • Devuelva todas las filas y columnas de una tabla
  • Devuelva las columnas especificadas de una tabla
  • Utilice alias de columna para mostrar cabeceras de columna m谩s descriptivas
Sentencias Select presentados en esta publicaci贸n lo puede descargar en el siguiente link de descarga:

Raul Tamani A. ©. Im谩genes del tema de fpm. Con tecnolog铆a de Blogger.

Adblock Detectado

Apoya este sitio desactivando el Adblock para seguir navegando. ¡Gracias!

¡Ya Desactive el Adblock!