Escribiendo sentencias básicas de SQL



Documentos relacionados
Escritura Básica de Sentencias SQL. Copyright Oracle Corporation, All rights reserved.

Bases de Datos Ejercicios de SQL

Informática Básica Práctica Tema 3 Ejercicios de SQL

Restricción y Clasificación de los Datos. Copyright Oracle Corporation, All rights reserved.

Bases de Datos Relacionales III

Creación de Vistas. Copyright Oracle Corporation, All rights reserved.

Bases de Datos I Práctica 1 Ejercicios de SQL

2. Distinguir entre los comandos SQL*Plus y las sentencias SQL. 3. Consultar la estructura de una tabla, por ejemplo emp.

Ejercicios SQL - Select TutorialesNET Versión Revisión 1 25 de julio de 2015

Visualización de Datos a partir de Varias Tablas. Copyright Oracle Corporation, All rights reserved.

Ampliación de Bases de Datos Práctica 1: El lenguaje PL/SQL de Oracle Sesión 1: Introducción al PL/SQL

6.1. Introducción. Guía 5. SQL.

Unidad. Lenguaje SQL. (Structured Query Language)

MATERIAL INTRODUCTORIO ORACLE 11G

Características del lenguaje SQL

Subconsultas Multi-Columna. Copyright Oracle Corporation, All rights reserved.

Manipulación de Datos. Copyright Oracle Corporation, All rights reserved.

Constraints (Restricciones) Copyright Oracle Corporation, All rights reserved.

Introducción a Oracle SQL-Plus. Introducción a Oracle SQL-Plus

Funciones a Nivel de Fila. Copyright Oracle Corporation, All rights reserved.

Tutorial de SQL - El comando SELECT

MANUAL BÁSICO DEL LENGUAJE SQL

Definición y Manipulación de Bases de Datos con SQL. 1. Muestra la estructura de la tabla dept. Muestra todos los datos de la tabla dept.

Creación y Gestión de Tablas. Copyright Oracle Corporation, All rights reserved.

Introducción a SQL. Bloque III (Prácticas) Informática Básica - Curso 2010/2011

LENGUAJE DE MANIPULACIÓN DE DATOS (DML) CONSULTA DE DATOS

ORACLE 10g. Descripción A QUIEN VA DIRIGIDO?

Introducción al lenguaje SQL

Usando los operadores SET (Conjunto)

Tema 2. Bases de Datos Relacionales

Subconsultas. Copyright Oracle Corporation, All rights reserved.

Expresión, Operador, Operando, Asignación, Prioridad

Columnas calculadas (operadores aritméticos y de concatenación)

UNIDAD I. ALGORITMOS

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Diseño de bases de datos Práctica-1 Definición de datos

Manual de Sentencias Básicas en SQL

Está basado en el álgebra y en el cálculo relacional.

APÉNDICE D. INTRODUCCIÓN A SQL

Operando1 operador de relación Operando2

Ejercicio 1 Funciones de SQL

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

Objetos de Bases de Datos

Análisis de problemas

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

Manual del Usuario de Microsoft Access Consultas - Página 1. Tema IV: Consultas. IV.1. Creación de Consultas

1. Introducción Tablas de referencia Expresiones 6

Procesando y Analizando Datos Dinámicos

Práctica 2 Estadística Descriptiva

Practicas de BB. DD. ORACLE

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers

Instalación de oracle en GNU/Linux Debian o Ubuntu.

Qué Tipos de Datos se Almacenan en OpenOffice.org Calc?

1. DML. Las consultas de resumen

REGLAS DE LOS SIGNOS

Transact-SQL. Declaraciones del Data Control Language (DCL) que se utilizan para determinar quién ve o modifica los datos.

Introducción a Transact-SQL

Creación de una Base de datos

Lección 8: Potencias con exponentes enteros

Ing. Ramón Morales Higuera

SELECT listadecampos FROM nombredetablas WHERE condicionesdebúsqueda;

Tema 5. Lenguaje de Definición de Datos

Manejo de Tablas y Llaves Foráneas

Cursores Explícitos. Copyright Oracle Corporation, All rights reserved.

TIPOS DE BUCLES O CICLOS DE REPETICIÓN EN PHP: WHILE, DO WHILE Y FOR. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00822B)

Insertar Datos en Tablas

GONZALEZ VARGAS ANA KAREN GUTIERREZ MUNGUIA LUIS DANIEL TELLEZ ARCOS DIANA FATIMA PROBLEMA A RESOLVER

UNIDAD DE TRABAJO 2: BASES DE DATOS RELACIONALES

ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS Tipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria

Índice. Introducción... 4

SQL Server Definición de los índices

Uso de sentencias para el envió y extracción de datos

Datos Agregados por medio de Funciones de Grupo. Copyright Oracle Corporation, All rights reserved.

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

CAPITULO II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

INTRODUCCIÓN A LAS BASES DE DATOS. L.I Gerardo Benavides Pérez

Práctica 1 de Microsoft Access

SESIÓN 1 PRE-ALGEBRA, CONCEPTOS Y OPERACIONES ARITMÉTICAS BÁSICAS

Tema: Respaldo y recuperación

Excel Básico para Educación Financiera

Modelamiento y Gestión de Base de Datos

2.4. Unidades de aprendizaje. Modelo Académico de Calidad para la Competitividad PSGB-02 15/22

Oracle Database 10g: Conceptos Básicos de SQL y PL/SQL

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS

Tema 4. Manipulación de datos con SQL

3. El catálogo 26. Laboratorio de Bases de Datos

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

Terminología Equivalente

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN

Transcripción:

Escribiendo sentencias básicas de SQL Escribiendo Querys básicos 2-12 M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-1

Objetivos Al terminar esta lección, deberá ser capaz de hacer lo siguiente : Listar las capacidades de la instrucción SELECT de SQL Ejecutar una sentencia básica de SELECT Escribiendo Querys básicos 2-22 M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-2

Capacidades de la instrucción SELECT Selección Proyección Tabla 1 Tabla 1 Join Tabla 1 Tabla 2 Escribiendo Querys básicos 2-32 Capacidades de la instrucción SELECT Una instrucción SELECT recupera información de la base de datos. Utilizando esta instrucción puede realizar : Selección : Puede utilizar esta capacidad de SQL para seleccionar renglones de la tabla que cumplan alguna condición. Proyección : Puede utilizar esta capacidad de SQL para seleccionar columnas de la tabla, puede indicar tantas columnas tenga la tabla que desee. Join: Puede utilizar esta capacidad para reunir datos almacenados en diferentes tablas, creando una liga mediante un atributo que comparten en ambas tablas (PK, FK). M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-3

Una instrucción SELECT básica SELECT FROM [DISTINCT] {*, column [alias],...} table; SELECT identifica que columnas FROM identifica cuales tablas Escribiendo Querys básicos 2-42 Una instrucción SELECT básica En su forma más simple, una instrucción SELECT debe incluir lo suguiente: Una cláusula SELECT, la cual especifica las columnas a ser mostradas Una cláusula FROM, la cual indica las tablas donde se tomarán los valores de las columnas especificadas en la cláusula SELECT. Sintaxis: SELECT se indica una lista de una o más columnas. DISTINCT elimina renglones duplicados. * muestra todas las columnas. column selecciona la columna indicada. alias etiqueta la columna con un nombre diferente del atributo. FROM especifica la tabla que contiene las columnas. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-4

Seleccionando todas las Columnas SELECT * FROM dept; deptno dname loc --------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON Escribiendo Querys básicos 2-52 Seleccionando todas las Columnas Para seleccionar todas las columnas de una tabla utilice un asterisco (*). En el ejemplo, la tabla DEPT contiene tres columnas: DEPTNO, DNAME y LOC. También puede listar todas las columnas de la tabla indicando los nombres de estas en la cláusula SELECT. Por ejemplo : SELECT deptno, dname, loc FROM dept; M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-5

Seleccionando Columnas Específicas SELECT deptno, loc FROM dept; deptno loc --------- ------------- 10 NEW YORK 20 DALLAS 30 CHICAGO 40 BOSTON Escribiendo Querys básicos 2-62 Seleccionando Columnas Específicas Puede seleccionar ciertas columnas de la tabla indicando los nombres de estas en la cláusula SELECT separadas por comas. El ejemplo muestra todos los números de departamento y localidades de la tabla DEPT. Especifique las columnas en el orden en el que desea aparezcan en la consulta. Por ejemplo, para desplegar la localización antes del número de departamento : SELECT loc, deptno FROM dept; loc deptno ------------- --------- NEW YORK 10 DALLAS 20 CHICAGO 30 BOSTON 40 M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-6

Expresiones Aritméticas Cree expresiones con datos tipo NUMERIC Y DATE utilizando operadores aritméticos. Operador + - * / Descripción Add Subtract Multiply Divide Escribiendo Querys básicos 2-72 Expresiones Aritméticas Puede modificar la forma en que es mostrada la información de las columnas, ejecutando cálculos. Esto es posible utilizando expresiones aritméticas. Una Expresiones Aritméticas debe contener nombres de columnas, valores numéricos constantes y operadores aritméticos. Operadores Aritméticos Aquí se muestran los operadores aritméticos disponibles en SQL. Puede utilizarlos en cualquier cláusula de SQL excepto en la cláusula FROM. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-7

Utilizando Operadores Aritméticos SELECT ename, sal, sal+300 FROM emp; ename sal ---------- --------- --------- KING 5000 5300 BLAKE 2850 3150 CLARK 2450 2750 JONES 2975 3275 MARTIN 1250 1550 ALLEN 1600 1900... (14 row(s) affected) Escribiendo Querys básicos 2-82 Utilizando Operadores Aritméticos El ejemplo muestra el uso del operador suma para ejecutar un cálculo, aumentando el salario en $300 para todos los empleados. Note que la columna del resultado calculado no es una nueva columna en la tabla EMP, es solo para la consulta. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-8

Precedencia de los Operadores * / + _ Multiplicación y división tienen la mayor prioridad sobre los otros operadores. Los operadores con igual prioridad son evaluados de izquierda a derecha. Los paréntesis son utilizados para forzar la evaluación de prioridad y hacer más clara la expresión. Escribiendo Querys básicos 2-92 Precedencia de los Operadores Si una expresión aritmética contiene más de un operador, la multiplicación y división son evaluadas primero. Si los operadores de una expresión aritmética tienen la misma prioridad la evaluación se efectúa de izquierda a derecha. Puede utilizar paréntesis para forzar la evaluación de los operadores con menor prioridad. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-9

Precedencia de los Operadores SELECT ename, sal, 12*sal+100 FROM emp; ename sal ---------- --------- ---------- KING 5000 60100 BLAKE 2850 34300 CLARK 2450 29500 JONES 2975 35800 MARTIN 1250 15100 ALLEN 1600 19300... (14 row(s) affected) Escribiendo Querys básicos 2-102 10 Precedencia de los Operadores El ejemplo muestra el nombre, salario y una compensación anual de todos los empleados. Se calcula esta compensación como una multiplicación de del salario mensual por 12, y agregándole un bono de $100. Note que la multiplicación se evalúa primero. Nota : Puede agregar paréntesis en la expresión para mejorar la claridad, (12*sal) + 100, sin afectar el resultado de la consulta. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-10

Utilizando Paréntesis SELECT ename, sal, 12*(sal+100) FROM emp; ename sal ---------- --------- ----------- KING 5000 61200 BLAKE 2850 35400 CLARK 2450 30600 JONES 2975 36900 MARTIN 1250 16200... (14 row(s) affected) Escribiendo Querys básicos 2-112 11 Utilizando Paréntesis Puede modificar las reglas de evaluación utilizando paréntesis para indicar el orden en que se evaluarán los operadores. El ejemplo muestra el nombre, salario y una compensación anual para los empleados. La compensación se calcula como el salario mensual mas un bono mensual, multiplicado por 12. Debido a que los paréntesis tienen mayor prioridad sobre la multiplicación. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-11

Definiendo el Valor Null Null es un valor que es inaccesible, desconocido o inaplicable. Un null no es lo mismo que cero o un espacio en blanco. SELECT FROM ename, job, comm emp; ename job comm ---------- --------- --------- KING PRESIDENT BLAKE MANAGER... TURNER SALESMAN 0... (14 row(s) affected) Escribiendo Querys básicos 2-122 12 Definiendo el Valor Null El valor nulo es la ausencia de valor en un campo o intersección de renglón columna, un valor nulo no es lo mismo que cero o espacios en blanco. El cero es un número y los espacios en blanco son caracteres. Las columnas de cualquier tipo pueden contener valores nulos, a menos que dichas columnas hayan sido definidas cono NOT NULL o llaves primarias (PRIMARY KEY) cuando se crea la columna. La columna COMM de la tabla EMP, puede notar que solo aquellos que son SALESMAN (vendedores) pueden tener una comisión. Turner, que es un vendedor no gana comisión alguna, pero esta columna tiene cero y no un valor nulo. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-12

Valores Null en Expresiones Aritméticas Las Expresiones Aritméticas que contienen un valor null se evaluan como null. SELECT ename, 12*sal+comm FROM emp; ename ---------- -----------... KING NULL Escribiendo Querys básicos 2-132 13 Valores Nulos (continuación) Si el contenido de una columna es nulo dentro de una expresión aritmética, el resultado es NULL. Por ejemplo, si intenta dividir entre cero, obtendrá un error. Sin embargo, si divide un número entre un valor nulo, el resultado es un nulo. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-13

Definir un ALIAS para las columnas Renombra el encabezado de las columnas Es útil cuando se utilizan cálculos Va inmediatamente después del nombre de la columna; la palabra AS es opcional y se coloca entre el nombre de la columna y el alias Se requieren apóstrofos si el alias contiene espacios en blanco Escribiendo Querys básicos 2-142 14 Definir un ALIAS para las columnas Cuando muestra el resultado de una consulta, SQL normalmente utiliza el nombre de la columna desplegada como encabezado. En muchos casos, este nombre de encabezado pudiera no ser descriptivo o ser difícil de entender. Puede cambiar el encabezado de una columna utilizando un alias. Especifique el alias después de la columna en la cláusula SELECT utilizando un espacio como separador. Si el alias contiene espacios o caracteres especiales (tales como $ o %), debe encerrarlo entre apóstrofos ( ) o comillas dobles ( ). M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-14

Utilizando Alias SELECT ename AS name, sal salary FROM emp; name salary ------------- ---------... SELECT ename "Name", sal*12 "Annual Salary" FROM emp; Name Annual Salary ------------- -------------... Escribiendo Querys básicos 2-152 15 Utilizando Alias El primer ejemplo muestra el nombre y el salario de todos los empleados. Note que la palabra AS es opcional y debe ser usada antes del alias de la columna. El encabezado de la columna será el mismo que se especifique en el alias. El segundo ejemplo muestra el nombre y el salario de todos los empleados, como Annual Salary contiene espacios debe ir encerrado entre apóstrofos ( ) o comillas dobles ( ). Nota: utilice AS para darle más claridad a la consulta. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-15

Operador de Concatenación Concatena columnas o cadenas de caracteres a otra columna Se utiliza el operador + Crea una columna resultante que es una cadena de caracteres Escribiendo Querys básicos 2-162 16 Operador de Concatenación Puede encadenar columnas con otras columnas, expresiones aritméticas o valores constantes utilizando el operador de concatenación (+). Todas las columnas utilizadas con el operador (+) producen un solo resultado en la misma columna. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-16

Utilizando el Operador de Concatenación SELECT FROM ename + job AS "Employees" emp; Employees ------------------- KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER MARTINSALESMAN ALLENSALESMAN... (14 row(s) affected) Escribiendo Querys básicos 2-172 17 Operador de Concatenación (continuación) En el ejemplo, las columnas ENAME y JOB son concatenadas, y se le asigna el alias Employees. La palabra AS antes del alias hace que la sentencia SELECT sea más fácil de leer. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-17

Usando Literales SELECT ename + ' ' + 'is a' + ' ' + job AS "Employee Details" FROM emp; Employee Details ------------------------- KING is a PRESIDENT BLAKE is a MANAGER CLARK is a MANAGER JONES is a MANAGER MARTIN is a SALESMAN... (14 row(s) affected) Escribiendo Querys básicos 2-182 18 Usando Literales El ejemplo muestra los nombres y puestos de los empleados en forma más legible. En el siguiente ejemplo, el nombre y el salario de cada empleado son desplegados dando más significado al resultado. SELECT ename + ': '+'1'+' Month salary' Monthly, sal FROM emp; Monthly sal ---------------------- -------------- KING: 1 Month salary 5000 BLAKE: 1 Month salary 2850 CLARK: 1 Month salary 2450 JONES: 1 Month salary 2975 MARTIN: 1 Month salary 1250 ALLEN: 1 Month salary 1600 TURNER: 1 Month salary 1500... (14 row(s) selected) M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-18

Renglones duplicados El resultado por default de una consulta, son todos los renglones incluyendo aquellos que estén repetidos. SELECT deptno FROM emp; deptno --------- 10 30 10 20... (14 row(s) affected) Escribiendo Querys básicos 2-192 19 Renglones duplicados A menos de que indique lo contrario, el resultado de una consulta mostrará todos los renglones aunque se repitan. El ejemplo anterior muestra el número de departamento de los empleados. Puede notar que existen departamentos repetidos. M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-19

Eliminando renglones duplicados Elimine los renglones duplicados utilizando la palabra DISTINCT en la cláusula SELECT. SELECT DISTINCT deptno FROM emp; deptno --------- 10 20 30 Escribiendo Querys básicos 2-202 20 Eliminando renglones duplicados Para eliminar renglones duplicados, incluye la palabra DISTINCT en la cláusula SELECT inmediatamente después de la palabra SELECT. En el ejemplo anterior, la tabla EMP tiene catorce registros pero solo existen tres departamentos diferentes. Puede utilizar DISTINCT antes de varias columnas. El calificador DISTINCT afecta a todas las columnas seleccionadas, y el resultado es una combinación diferente de las columnas. SELECT FROM DISTINCT deptno, job emp; deptno job ------ --------- 10 CLERK 10 MANAGER 10 PRESIDENT 20 ANALYST... (9 row(s) affected) M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-20

Prácticas Seleccionar todos los renglones en diferentes tablas Ejecutar cálculos aritméticos Otorgue nombres a las columnas Escribiendo Querys básicos 2-212 21 M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-21

Práctica 2 1. Inicie una sesión utilizando el user ID y password indicados por el instructor. 2. La siguiente instrucción SELECT se ejecutará satisfactoriamente? Falso/Verdadero SELECT ename, job, sal Salary FROM emp; 3. Existen errores en la siguiente instrucción? Falso/Verdadero SELECT empno, ename salary x 12 ANNUAL SALARY FROM emp; 4. Muestre todos los datos de la tabla DEPT. DEPTNO DNAME LOC ------ ---------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 5. Cree una consulta para mostrar las columnas ename, job, hiredate y el número de empleado, con el número de empleado en la primer columna, guarde su consulta SQL con el nombre s02q05.sql. EMPNO ENAME JOB HIREDATE ----- ------- ----------- --------- 7839 KING PRESIDENT 17-NOV-81 7698 BLAKE MANAGER 01-MAY-81 7782 CLARK MANAGER 09-JUN-81 7566 JONES MANAGER 02-APR-81 7654 MARTIN SALESMAN 28-SEP-81 7499 ALLEN SALESMAN 20-FEB-81 7844 TURNER SALESMAN 08-SEP-81 7900 JAMES CLERK 03-DEC-81 7521 WARD SALESMAN 22-FEB-81 7902 FORD ANALYST 03-DEC-81 7369 SMITH CLERK 17-DEC-80 7788 SCOTT ANALYST 09-DEC-82 7876 ADAMS CLERK 12-JAN-83 7934 MILLER CLERK 23-JAN-82 (14 row(s) affected) M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-22

Práctica 2 (continua) 6. Cree una consulta que muestre los puestos sin repetirse de la tabla EMP. JOB ----------- ANALYST CLERK MANAGER PRESIDENT SALESMAN 7. Cargue el script s02q05.sql Cambie el nombre de las columnas como se muestra en el ejemplo, guarde el nuevo script como s02q07.sql : Emp # Employee Job Hire Date ----- --------- ---------- --------------- 7839 KING PRESIDENT 17-NOV-81 7698 BLAKE MANAGER 01-MAY-81 7782 CLARK MANAGER 09-JUN-81 7566 JONES MANAGER 02-APR-81 7654 MARTIN SALESMAN 28-SEP-81 7499 ALLEN SALESMAN 20-FEB-81 7844 TURNER SALESMAN 08-SEP-81 7900 JAMES CLERK 03-DEC-81 7521 WARD SALESMAN 22-FEB-81 7902 FORD ANALYST 03-DEC-81 7369 SMITH CLERK 17-DEC-80 7788 SCOTT ANALYST 09-DEC-82 7876 ADAMS CLERK 12-JAN-83 7934 MILLER CLERK 23-JAN-82 (14 row(s) affected) M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-23

Práctica 2 (continúa) 8. Muestre el nombre concatenado al puesto (job) separado por una coma y un espacio, y nombre la columna Employee and Title. Employee and Title ------------------- KING, PRESIDENT BLAKE, MANAGER CLARK, MANAGER JONES, MANAGER MARTIN, SALESMAN ALLEN, SALESMAN TURNER, SALESMAN JAMES, CLERK WARD, SALESMAN FORD, ANALYST SMITH, CLERK SCOTT, ANALYST ADAMS, CLERK MILLER, CLERK (14 row(s) affected) M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 2-24