Vous êtes sur la page 1sur 24

Parte 2

Escribiendo sentencias bsicas de SQL

Querys bsicos 2-1 2-

SQL Server Bsico

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 1 de 1

Objetivos
Al terminar esta leccin, deber ser capaz de hacer lo siguiente : Listar las capacidades de la instruccin SELECT de SQL Ejecutar una sentencia bsica de SELECT

Querys bsicos 2-2 2-

SQL Server Bsico

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 2 de 2

Capacidades de la instruccin SELECT


Seleccin Proyeccin

Tabla 1

Join

Tabla 1

Tabla 1
Querys bsicos 2-3 2-

Tabla 2
SQL Server Bsico

Capacidades de la instruccin SELECT Una instruccin SELECT recupera informacin de la base de datos Utilizando esta instruccin puede realizar: Seleccin: Puede utilizar esta capacidad de SQL para seleccionar renglones de la tabla que cumplan alguna condicin. Proyeccin: Puede utilizar esta capacidad de SQL para seleccionar columnas de la tabla, puede indicar tantas columnas como lo desee Join: Puede utilizar esta capacidad para reunir datos almacenados en diferentes tablas, creando una liga mediante un atributo que compartan en ambas tablas (PK,FK)

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 3 de 3

Una instruccin SELECT bsica


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

SELECT identifica que columnas FROM identifica cuales tablas

Querys bsicos 2-4 2-

SQL Server Bsico

Una Instruccin Select bsica En su forma mas simple, una instruccin SELECT debe incluir lo siguiente: Una clusula SELECT, la cual especifica las columnas a ser mostradas. Una clusula FROM, la cual indica las tablas de donde se tomaran los valores de las columnas especificadas en la clusula SELECT.

Sintaxis: SELECT DISTINCT * Column alias FROM

Se indica una lista de una o mas columnas Elimina renglones duplicados Muestra todas las columnas Selecciona la columna indicada Etiqueta la columna con un nombre diferente al del atributo Especifica la tabla que contiene las columnas

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 4 de 4

Seleccionando todas las Columnas

SELECT * FROM dept; deptno --------10 20 30 40 dname -------------ACCOUNTING RESEARCH SALES OPERATIONS loc ------------NEW YORK DALLAS CHICAGO BOSTON

Querys bsicos 2-5 2-

SQL Server Bsico

Seleccionando todas las columnas Para seleccionar todas las columnas de una tabla utilice (*). En el ejemplo, la tabla DEPT contiene tres columnas DEPTNO, DNAME y LOC. Tambin puede listar todas las columnas, indicando los nombres de estas en la clusula SELECT. Por ejemplo.

Select Deptno,Dname,Loc From Dep.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 5 de 5

Seleccionando Columnas Especficas


SELECT deptno, loc FROM dept; deptno --------10 20 30 40 loc ------------NEW YORK DALLAS CHICAGO BOSTON

Querys bsicos 2-6 2-

SQL Server Bsico

Seleccionando columnas especificas Puede seleccionar ciertas columnas de la tabla indicando los nombres de estas, en la clusula SELECT separadas por comas. El ejemplo muestra todos los nmeros de departamento y localidades de la tabla DEPT. Especifique las columnas en el orden en el que se desean que aparezcan en la consulta. Por ejemplo, para desplegar la localizacin antes del numero de departamento.

SELECT Loc,Dept FROM Dep; Loc -------------New Cork Dallas Chicago Boston Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 6 de 6 Dept. ------------------10 20 30 40

Expresiones Aritmticas
Cree expresiones con datos tipo NUMERIC Y DATE utilizando operadores aritmticos.
Operador + * / Descripcin Add Subtract Multiply Divide

Querys bsicos 2-7 2-

SQL Server Bsico

Expresiones Aritmticas Puede modificar la forma en que es mostrada la informacin de las columnas, ejecutando clculos. Esto es posible utilizando expresiones aritmticas. Una Expresin aritmtica debe contener nombres de columnas, valores numricos constantes y operadores aritmticos. Operadores Aritmticos Aqu se muestran los operadores aritmticos disponibles en SQL. Puede utilizarlos en cualquier clusula de SQL excepto en la clusula FROM.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 7 de 7

Utilizando Operadores Aritmticos


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)

Querys bsicos 2-8 2-

SQL Server Bsico

Utilizando Operadores Aritmticos El ejemplo muestra el uso del operador suma para ejecutar un clculo, aumentando el salario en $300 para cada uno de los empleados. Note que la columna del resultado calculado no es una nueva columna en la tabla EMP, es solo para la consulta.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 8 de 8

Precedencia de los Operadores

/ +

Multiplicacin y divisin tienen la mayor prioridad sobre los otros operadores. Los operadores con igual prioridad son evaluados de izquierda a derecha. Los parntesis son utilizados para forzar la evaluacin de prioridad y hacer ms clara la expresin.

Querys bsicos 2-9 2-

SQL Server Bsico

Precedencia de los operadores Si una expresin aritmtica contiene ms de un operador, la multiplicacin y divisin son evaluadas primero. Si los operadores de una expresin aritmtica tienen la misma prioridad la evaluacin se efecta de izquierda a derecha. Puede utilizar parntesis para forzar la evaluacin de los operadores con menor prioridad.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 9 de 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)

Querys bsicos 2-10 2-

SQL Server Bsico

Precedencia de los operadores El ejemplo muestra el nombre, salario y una compensacin anual de todos los empleados. Se calcula esta compensacin como una multiplicacin del salario mensual por 12, y agregndole un bono de $100. Note que la multiplicacin se evala primero. Nota: Puede agregar parntesis en la expresin para mejorar la claridad, (12*sal)+100, sin afectar el resultado de la consulta.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 10 de 10

Utilizando Parntesis
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)

Querys bsicos 2-11 2-

SQL Server Bsico

Utilizando parntesis Puede modificar las reglas de evaluacin utilizando parntesis para indicar el orden que se evaluaran los operadores. El ejemplo muestra el nombre, salario y una compensacin anual para los empleados. La compensacin se calcula como salario mensual mas un bono mensual, multiplicado por 12. Debido a que los parntesis tienen mayor prioridad sobre la multiplicacin.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 11 de 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 ---------KING BLAKE ... TURNER ... (14 row(s)
Querys bsicos 2-12 2-

ename, job, comm emp;

job comm --------- --------PRESIDENT MANAGER SALESMAN affected) 0

SQL Server Bsico

Definiendo el valor null El valor nulo es la ausencia de valor en un campo o interseccin de rengln columna, un valor nulo NO es lo mismo que cero o espacios en blanco. El cero es un nmero y los espacios en blanco son caracteres. Las columnas de cualquier tipo pueden contener valores nulos, a menos que dichas columnas hayan sido definidas como 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 comisin. Tuner, que es un vendedor no gana comisin alguna, pero esta columna tiene cero y no un valor nulo.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 12 de 12

Valores Null en Expresiones Aritmticas


Las Expresiones Aritmticas que contienen un valor null se evaluan como null. null.
SELECT ename, 12*sal+comm FROM emp;

ename ---------- ----------.... KING NULL

Querys bsicos 2-13 2-

SQL Server Bsico

Valores Nulos (Continuacin) Si el contenido de una columna es nulo dentro de una expresin aritmtica, el resultado es NULL. Por ejemplo, si intenta dividir entre cero, obtendr un error. Sin embargo, si divide un nmero entre un valor nulo, el resultado es nulo.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 13 de 13

Definir un ALIAS para las columnas


Renombra el encabezado de las columnas Es til cuando se utilizan clculos Va inmediatamente despus del nombre de la columna; la palabra AS es opcional y se coloca entre el nombre de la columna y el alias Se requieren apstrofes si el alias contiene espacios en blanco
Querys bsicos 2-14 2-

SQL Server Bsico

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 difcil de entender. Puede cambiar el encabezado de una columna utilizando un alias. Especifique el alias despus de la columna en la clusula SELECT utilizando un espacio como separador. Si el alias contiene espacios o caracteres especiales (tales como $ o %), o contiene combinacin de maysculas y minsculas, debe encerrarlo entre apstrofos ( ' ' ) o comillas dobles ( " " ).

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 14 de 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 ------------- ------------...
Querys bsicos 2-15 2-

SQL Server Bsico

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 apstrofos (' ') o comillas dobles ( " " ).

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 15 de 15

Operador de Concatenacin
Concatena columnas o cadenas de caracteres a otra columna Se utiliza el operador + Crea una columna resultante que es una cadena de caracteres

Querys bsicos 2-16 2-

SQL Server Bsico

Operador de concatenacin Puede encadenar columnas con otras columnas, expresiones aritmticas o valores constantes utilizando el operador de concatenacin (+). Todas las columnas utilizadas con operador ( + ) producen un solo resultado en la misma columna.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 16 de 16

Utilizando el Operador de Concatenacin


SELECT FROM ename + job AS "Employees" emp;

Employees ------------------KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER MARTINSALESMAN ALLENSALESMAN ... (14 row(s) affected)

Querys bsicos 2-17 2-

SQL Server Bsico

Operador de concatenacin (Continuacin) 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 mas fcil de leer.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 17 de 17

Usando Literales
SELECT ename + ' ' + 'is a' + ' ' + job AS "Employee Details" FROM emp; Employee Details Employee Details ------------------------------------------------KING is a PRESIDENT KING is a PRESIDENT BLAKE is a MANAGER BLAKE is a MANAGER CLARK is a MANAGER CLARK is a MANAGER JONES is a MANAGER JONES is a MANAGER MARTIN is a SALESMAN MARTIN is a SALESMAN ... ... (14 row(s) affected) (14 row(s) affected)

Querys bsicos 2-18 2-

SQL Server Bsico

Usando literales En el ejemplo muestra los nombres y puestos de los empleados en forma mas legible. En el siguiente ejemplo, el nombre y el salario de cada empleado son desplegados dando mas significado al resultado.

SELECT ename + : + 1 + Month Salary Monthly, sal FROM emp Monthly King: Blank: Clark: Jones: Martin: Allen: Sal 5000 2850 2450 2975 1250 1600

1 1 1 1 1 1

Month Salary Month Salary Month Salary Month Salary Month Salary Month Salary

(14 row(s) selected)

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 18 de 18

Renglones duplicados
El resultado por default de una consulta, son todos los renglones incluyendo aquellos que estn repetidos.
SELECT SELECT FROM FROM deptno deptno emp; emp;

deptno --------10 30 10 20 ... (14 row(s) affected)

Querys bsicos 2-19 2-

SQL Server Bsico

Renglones Duplicados A menos de que indique lo contrario, el resultado de una consulta mostrara todos los renglones aunque se repitan. El ejemplo anterior muestra el nmero de departamento de los empleados. Puede notar que existen departamentos repetidos.

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 19 de 19

Eliminando renglones duplicados


Elimine los renglones duplicados utilizando la palabra DISTINCT en la clusula SELECT.

SELECT DISTINCT deptno FROM emp;

deptno --------10 20 30

Querys bsicos 2-20 2-

SQL Server Bsico

Eliminacin de Renglones Duplicados Para eliminar renglones duplicados, incluye la palabra DISTINCT en la clusula SELECT, Inmediatamente despus 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 columnas seleccionadas , y el resultado es una combinacin diferente de las columnas.

SELECT DISTINCT Deptno,job FROM emp; deptno job *-*-*-**-*-*-*10 CLERK 10 MANAGER 10 PRESIDENT 20 ANALYST .. (9 row(s) affected Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 20 de 20

Prcticas

Seleccionar todos los renglones en diferentes tablas Ejecutar clculos aritmticos Otorgue nombres a las columnas

Querys bsicos 2-21 2-

SQL Server Bsico

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 21 de 21

PRACTICA 1 1.- Inicie una sesin utilizando el user ID y password indicados por el instructor. 2.- La siguiente instruccin SELECT se ejecutara satisfactoriamente falso/verdadero? Select ename,job,sal Salary From emp 3.- Existen errores en la siguiente instruccin? Falso/verdadero. Select empno,ename, Salary x12 Anual 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 name, Job, hiredate y el numero de empleados en la primer columna, guarde su consulta SQL con el nombre s0q2q05.SQL. 6.- Ejecute la consulta s0q2q5.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) Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 22 de 22

7.- Cree una consulta que muestre los puestos sin repetirse del tabal EMP. JOB ANALYST CLERK MANAGER PRESIDENT SALESMAN

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 23 de 23

8.- Cargue el script s0s2s5.sql cambie el nombre de las columnas como se muestra en el ejemplo, guarde el nuevo script como s0s2s8.sql. Emp # Employee 7839 KING 7698 BLAKE 7782 CLARK 7566 JONES 7654 MARTIN 7499 ALLEN 7844 TURNER 7900 JAMES 7521 WARD 7902 FORD 7369 SMITH 7788 SCOTT 7876 ADAMS 7934 MILLER (14 row(s) affected) Job PRESIDENT MANAGER MANAGER MANAGER SALESMAN SALESMAN SALESMAN CLERK SALESMAN ANALYST CLERK ANALYST CLERK CLERK Hire Date 17-NOV-81 01-MAY-81 09-JUN-81 02-APR-81 28-SEP-81 20-FEB-81 08-SEP-81 03-DEC-81 22-FEB-81 03-DEC-81 17-DEC-80 09-DEC-82 12-JAN-83 23-JAN-82

9.- Muestre el nombre concatenado al puesto (job) separado por una coma y un espacio, y nombra la columna "Employeed and title. Employee and Title --------*---------KING, PRESIDENT BLAKE, MANAGER CLARK , MANAGER JONES , MANAGER MARTIN, SALESMAN ALLEN, SALESMAN TURNER, SALESMAN JAME , CLERK WARS, SALESMAN FORD, ANALYST SMITH, CLERK SCOTT, ANALYST ADAMS, CLERK MILLER, CLERK (14 row(s) affected)

Lic. Oscar Fabela Cano Parte 2 SQL-Server Bsico Pgina 24 de 24

Vous aimerez peut-être aussi