Base de datos SQL Cap2-4
-
Upload
francisco-reyes-valente -
Category
Documents
-
view
216 -
download
0
Transcript of Base de datos SQL Cap2-4
-
8/20/2019 Base de datos SQL Cap2-4
1/24
QuerysQuerys básicos 2básicos 2--11 SQL Server Básico
Escribiendo sentenciasEscribiendo sentencias
básicas de SQLbásicas de SQL
Parte 2Parte 2
Parte 2 SQL-Server Básico
Página 1 de 24
-
8/20/2019 Base de datos SQL Cap2-4
2/24
QuerysQuerys básicos 2básicos 2--22 SQL Server Básico
Al terminar esta lección, deberá serAl terminar esta lección, deberá sercapaz de hacer lo siguiente :capaz de hacer lo siguiente :
Listar las capacidades de laListar las capacidades de lainstrucción SELECT de SQLinstrucción SELECT de SQL
Ejecutar una sentencia básica deEjecutar una sentencia básica deSELECTSELECT
ObjetivosObjetivos
Parte 2 SQL-Server Básico
Página 2 de 24
-
8/20/2019 Base de datos SQL Cap2-4
3/24
QuerysQuerys básicos 2básicos 2--33 SQL Server Básico
Capacidades de la instrucción SELECTCapacidades de la instrucción SELECT
SelecciónSelección ProyecciónProyección
Tabla 1Tabla 1 Tabla 2Tabla 2
Tabla 1Tabla 1 Tabla 1Tabla 1JoinJoin
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 seleccionarrenglones de la tabla que cumplan alguna condición.
• Proyección: Puede utilizar esta capacidad de SQL para seleccionarcolumnas de la tabla, puede indicar tantas columnas como lo desee
• Join: Puede utilizar esta capacidad para “reunir” datos almacenados endiferentes tablas, creando una liga mediante un atributo que compartan enambas tablas (PK,FK)
Parte 2 SQL-Server Básico
Página 3 de 24
-
8/20/2019 Base de datos SQL Cap2-4
4/24
QuerysQuerys básicos 2básicos 2--44 SQL Server Básico
Una instrucción SELECT básicaUna instrucción SELECT básica
SELECT [DISTINCT] {*, column [alias],...}
FROM table;
SELECT [DISTINCT] {*, column [alias],...}
FROM table;
SELECT identificaSELECT identifica queque columnascolumnas
FROM identificaFROM identifica cualescuales tablastablas
Una Instrucción Select básica
En su forma mas simple, una instrucción SELECT debe incluir lo siguiente:
• Una cláusula SELECT, la cual especifica las columnas a ser mostradas.
• Una cláusula FROM, la cual indica las tablas de donde se tomaran losvalores de las columnas especificadas en la cláusula SELECT.
Sintaxis:
SELECT Se indica una lista de una o mas columnasDISTINCT Elimina renglones duplicados
* Muestra todas las columnasColumn Selecciona la columna indicada
alias Etiqueta la columna con un nombre diferente al del atributo
FROM Especifica la tabla que contiene las columnas
Parte 2 SQL-Server Básico
Página 4 de 24
-
8/20/2019 Base de datos SQL Cap2-4
5/24
QuerysQuerys básicos 2básicos 2--55 SQL Server Básico
Seleccionando todas las ColumnasSeleccionando todas las Columnas
deptno dname loc
--------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SELECT *FROM dept;
Seleccionando todas las columnas
Para seleccionar todas las columnas de una tabla utilice (*). En el ejemplo, la tablaDEPT contiene tres columnas DEPTNO, DNAME y LOC.
También puede listar todas las columnas, indicando los nombres de estas en la
cláusula SELECT. Por ejemplo.
Select Deptno,Dname,LocFrom Dep.
Parte 2 SQL-Server Básico
Página 5 de 24
-
8/20/2019 Base de datos SQL Cap2-4
6/24
QuerysQuerys básicos 2básicos 2--66 SQL Server Básico
Seleccionando Columnas EspecíficasSeleccionando Columnas Específicas
deptno loc
--------- -------------
10 NEW YORK
20 DALLAS
30 CHICAGO
40 BOSTON
SELECT deptno, locFROM dept;
Seleccionando columnas especificas
Puede seleccionar ciertas columnas de la tabla indicando los nombres deestas, en la cláusula SELECT separadas por comas. El ejemplo muestra todos losnúmeros de departamento y localidades de la tabla DEPT.
Especifique las columnas en el orden en el que se desean que aparezcan en laconsulta. Por ejemplo, para desplegar la localización antes del numero dedepartamento.
SELECT Loc,DeptFROM Dep;
Loc Dept.
-------------- -------------------New Cork 10Dallas 20Chicago 30Boston 40
Parte 2 SQL-Server Básico
Página 6 de 24
-
8/20/2019 Base de datos SQL Cap2-4
7/24
QuerysQuerys básicos 2básicos 2--77 SQL Server Básico
Expresiones AritméticasExpresiones Aritméticas
Cree expresiones con datos tipo NUMERIC YCree expresiones con datos tipo NUMERIC Y
DATE utilizando operadores aritméticos.DATE utilizando operadores aritméticos.
Operador
+
-
*
/
Descripción
Add
Subtract
Multiply
Divide
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
Expresión aritmética debe contener nombres de columnas, valores numéricosconstantes y operadores aritméticos.
Operadores Aritméticos
Aquí se muestran los operadores aritméticos disponibles en SQL. Puede utilizarlosen cualquier cláusula de SQL excepto en la cláusula FROM.
Parte 2 SQL-Server Básico
Página 7 de 24
-
8/20/2019 Base de datos SQL Cap2-4
8/24
QuerysQuerys básicos 2básicos 2--88 SQL Server Básico
Utilizando Operadores AritméticosUtilizando 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)
Utilizando Operadores Aritméticos
El ejemplo muestra el uso del operador suma para ejecutar un cálculo,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 tablaEMP, es solo para la consulta.
Parte 2 SQL-Server Básico
Página 8 de 24
-
8/20/2019 Base de datos SQL Cap2-4
9/24
QuerysQuerys básicos 2básicos 2--99 SQL Server Básico
Precedencia de los OperadoresPrecedencia de los Operadores
Multiplicación y división tienen la mayorMultiplicación y división tienen la mayor
prioridad sobre los otros operadores.prioridad sobre los otros operadores.
Los operadores con igual prioridad sonLos operadores con igual prioridad son
evaluados de izquierda a derecha.evaluados de izquierda a derecha.
Los paréntesis son utilizados para forzarLos paréntesis son utilizados para forzar
la evaluación de prioridad y hacer másla evaluación de prioridad y hacer más
clara la expresión.clara la expresión.
*** / / / +++ _ _ _
Precedencia de los operadores
Si una expresión aritmética contiene más de un operador, la multiplicación ydivisión son evaluadas primero.Si los operadores de una expresión aritmética tienen la misma prioridad laevaluación se efectúa de izquierda a derecha.
Puede utilizar paréntesis para forzar la evaluación de los operadores con menorprioridad.
Parte 2 SQL-Server Básico
Página 9 de 24
-
8/20/2019 Base de datos SQL Cap2-4
10/24
QuerysQuerys básicos 2básicos 2--1010 SQL Server Básico
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)
Precedencia de los OperadoresPrecedencia de los Operadores
Precedencia de los operadores
El ejemplo muestra el nombre, salario y una compensación anual de todos losempleados. Se calcula esta compensación como una multiplicación del salariomensual por 12, y agregándole un bono de $100. Note que la multiplicación seevalú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.
Parte 2 SQL-Server Básico
Página 10 de 24
-
8/20/2019 Base de datos SQL Cap2-4
11/24
-
8/20/2019 Base de datos SQL Cap2-4
12/24
QuerysQuerys básicos 2básicos 2--1212 SQL Server Básico
Definiendo el ValorDefiniendo el Valor NullNull
NullNull es un valor que es inaccesible, desconocidoes un valor que es inaccesible, desconocidoo inaplicable.o inaplicable.
UnUn nullnull no es lo mismo que cero o un espacio enno es lo mismo que cero o un espacio enblanco.blanco.
SELECT ename, job, comm
FROM emp;
ename job comm
---------- --------- ---------
KING PRESIDENT
BLAKE MANAGER
...
TURNER SALESMAN 0
...
(14 row(s) affected)
Definiendo el valor null
El valor nulo es la ausencia de valor en un campo o intersección de renglóncolumna, un valor nulo NO es lo mismo que cero o espacios en blanco. El cero esun número y los espacios en blanco son caracteres.
Las columnas de cualquier tipo pueden contener valores nulos, a menos quedichas 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 sonSALESMAN (vendedores) pueden tener una comisión. Tuner , que es un vendedorno gana comisión alguna, pero esta columna tiene cero y no un valor nulo.
Parte 2 SQL-Server Básico
Página 12 de 24
-
8/20/2019 Base de datos SQL Cap2-4
13/24
QuerysQuerys básicos 2básicos 2--1313 SQL Server Básico
ValoresValores NullNull en Expresionesen Expresiones
AritméticasAritméticas
Las Expresiones Aritméticas que contienenLas Expresiones Aritméticas que contienenun valorun valor nullnull sese evaluanevaluan comocomo nullnull..
SELECT ename, 12*sal+comm
FROM emp;
ename
---------- -----------
....
KING NULL
Valores Nulos (Continuación)
Si el contenido de una columna es nulo dentro de una expresión aritmética, elresultado es NULL. Por ejemplo, si intenta dividir entre cero, obtendrá un error. Sinembargo, si divide un número entre un valor nulo, el resultado es nulo.
Parte 2 SQL-Server Básico
Página 13 de 24
-
8/20/2019 Base de datos SQL Cap2-4
14/24
QuerysQuerys básicos 2básicos 2--1414 SQL Server Básico
Definir un ALIAS para las columnasDefinir un ALIAS para las columnas
Renombra el encabezado de lasRenombra el encabezado de lascolumnascolumnas
Es útil cuando se utilizan cálculosEs útil cuando se utilizan cálculos
Va inmediatamente después del nombreVa inmediatamente después del nombre
de la columna; la palabra AS es opcionalde la columna; la palabra AS es opcional
y se coloca entre el nombre de lay se coloca entre el nombre de la
columna y el aliascolumna y el alias
Se requieren apóstrofes si el aliasSe requieren apóstrofes si el alias
contiene espacios en blancocontiene espacios en blanco
Definir un ALIAS para las columnas
Cuando muestra el resultado de una consulta. SQL normalmente utiliza el nombrede la columna desplegada como encabezado. En muchos casos, este nombre deencabezado 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 unespacio como separador. Si el alias contiene espacios o caracteres especiales(tales como $ o %), o contiene combinación de mayúsculas y minúsculas, debeencerrarlo entre apóstrofos ( ' ' ) o comillas dobles ( " " ).
Parte 2 SQL-Server Básico
Página 14 de 24
-
8/20/2019 Base de datos SQL Cap2-4
15/24
QuerysQuerys básicos 2básicos 2--1515 SQL Server Básico
Utilizando AliasUtilizando Alias
SELECT ename AS name, sal salary
FROM emp;
name salary
------------- ---------
...
SELECT ename "Name",
sal*12 "Annual Salary"
FROM emp;
Name Annual Salary
------------- -------------
...
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 lacolumna. El encabezado de la columna será el mismo que se especifique en elalias.
El segundo ejemplo muestra el nombre y el salario de todos los empleados, comoANNUAL SALARY contiene espacios debe ir encerrado entre apóstrofos (' ') ocomillas dobles ( " " ).
Parte 2 SQL-Server Básico
Página 15 de 24
-
8/20/2019 Base de datos SQL Cap2-4
16/24
QuerysQuerys básicos 2básicos 2--1616 SQL Server Básico
Operador de ConcatenaciónOperador de Concatenación
Concatena columnas o cadenas deConcatena columnas o cadenas decaracteres a otra columnacaracteres a otra columna
Se utiliza el operador +Se utiliza el operador +
Crea una columna resultante que esCrea una columna resultante que esuna cadena de caracteresuna cadena de caracteres
Operador de concatenación
Puede encadenar columnas con otras columnas, expresiones aritméticas o valoresconstantes utilizando el operador de concatenación (+). Todas las columnasutilizadas con operador ( + ) producen un solo resultado en la misma columna.
Parte 2 SQL-Server Básico
Página 16 de 24
-
8/20/2019 Base de datos SQL Cap2-4
17/24
QuerysQuerys básicos 2básicos 2--1717 SQL Server Básico
Utilizando el Operador deUtilizando el Operador de
ConcatenaciónConcatenación
SELECT ename + job AS "Employees"
FROM emp;
Employees
-------------------
KINGPRESIDENT
BLAKEMANAGER
CLARKMANAGER
JONESMANAGER
MARTINSALESMAN
ALLENSALESMAN
...
(14 row(s) affected)
Operador de concatenación (Continuación)
En el ejemplo, las columnas ENAME y JOB son concatenadas, y se le asigna elalias Employees
La palabra AS antes del alias hace que la sentencia SELECT sea mas fácil deleer.
Parte 2 SQL-Server Básico
Página 17 de 24
-
8/20/2019 Base de datos SQL Cap2-4
18/24
QuerysQuerys básicos 2básicos 2--1818 SQL Server Básico
Usando LiteralesUsando Literales
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)
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)
SELECT ename + ' ' + 'is a' + ' ' + job
AS "Employee Details"
FROM emp;
Usando literales
En el ejemplo muestra los nombres y puestos de los empleados en forma maslegible.
En el siguiente ejemplo, el nombre y el salario de cada empleado son desplegadosdando mas significado al resultado.
SELECT ename + ’: ’+ ‘ 1 ’ + ‘ Month Salary’ Monthly, salFROM emp
Monthly SalKing: 1 Month Salary 5000Blank: 1 Month Salary 2850Clark: 1 Month Salary 2450Jones: 1 Month Salary 2975Martin: 1 Month Salary 1250
Allen: 1 Month Salary 1600
(14 row(s) selected)
Parte 2 SQL-Server Básico
Página 18 de 24
-
8/20/2019 Base de datos SQL Cap2-4
19/24
QuerysQuerys básicos 2básicos 2--1919 SQL Server Básico
Renglones duplicadosRenglones duplicados
El resultado porEl resultado por defaultdefault de una consulta, sonde una consulta, son
todos los renglones incluyendo aquellos quetodos los renglones incluyendo aquellos que
estén repetidos.estén repetidos.
SELECT deptno
FROM emp;
SELECT deptno
FROM emp;
deptno
---------
10
30
10
20
...
(14 row(s) affected)
Renglones Duplicados
A menos de que indique lo contrario, el resultado de una consulta mostrara todoslos renglones aunque se repitan. El ejemplo anterior muestra el número de
departamento de los empleados. Puede notar que existen departamentosrepetidos.
Parte 2 SQL-Server Básico
Página 19 de 24
-
8/20/2019 Base de datos SQL Cap2-4
20/24
QuerysQuerys básicos 2básicos 2--2020 SQL Server Básico
Eliminando renglones duplicadosEliminando renglones duplicados
Elimine los renglones duplicados utilizando laElimine los renglones duplicados utilizando la
palabra DISTINCT en la cláusula SELECT.palabra DISTINCT en la cláusula SELECT.
SELECT DISTINCT deptno
FROM emp;
deptno
---------
10
20
30
Eliminación de Renglones Duplicados
Para eliminar renglones duplicados, incluye la palabra DISTINCT en la cláusulaSELECT, 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 DISTINCTafecta a todas columnas seleccionadas , y el resultado es una combinacióndiferente de las columnas.
SELECT DISTINCT Deptno,jobFROM emp;
deptno job*-*-*-*- *-*-*-*-10 CLERK10 MANAGER10 PRESIDENT20 ANALYST……..(9 row(s) affected
Parte 2 SQL-Server Básico
Página 20 de 24
-
8/20/2019 Base de datos SQL Cap2-4
21/24
QuerysQuerys básicos 2básicos 2--2121 SQL Server Básico
PrácticasPrácticas
– – Seleccionar todos los renglones enSeleccionar todos los renglones endiferentes tablasdiferentes tablas
– – Ejecutar cálculos aritméticosEjecutar cálculos aritméticos
– – Otorgue nombres a las columnasOtorgue nombres a las columnas
Parte 2 SQL-Server Básico
Página 21 de 24
-
8/20/2019 Base de datos SQL Cap2-4
22/24
PRACTICA 1
1.- Inicie una sesión utilizando el user ID y password indicados por el instructor.2.- ¿La siguiente instrucción SELECT se ejecutara satisfactoriamentefalso/verdadero?
Select ename,job,sal SalaryFrom emp
3.- ¿Existen errores en la siguiente instrucción?Falso/verdadero.
Select empno,ename,Salary x12 Anual Salary
From emp
4.- Muestre todos los datos de la tabla DEPTDEPTNO DNAME LOC10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON
5.- Cree una consulta para mostrar las columnas name, Job, hiredate y el numerode empleados en la primer columna, guarde su consulta SQL con el nombres0q2q05.SQL.
6.- Ejecute la consulta s0q2q5.SQL.EMPNO ENAME JOB HIREDATE7839 KING PRESIDENT 17-NOV-817698 BLAKE MANAGER 01-MAY-817782 CLARK MANAGER 09-JUN-817566 JONES MANAGER 02-APR-817654 MARTIN SALESMAN 28-SEP-817499 ALLEN SALESMAN 20-FEB-817844 TURNER SALESMAN 08-SEP-817900 JAMES CLERK 03-DEC-817521 WARD SALESMAN 22-FEB-81
7902 FORD ANALYST 03-DEC-817369 SMITH CLERK 17-DEC-807788 SCOTT ANALYST 09-DEC-827876 ADAMS CLERK 12-JAN-837934 MILLER CLERK 23-JAN-82
(14 row(s) affected)
Parte 2 SQL-Server Básico
Página 22 de 24
-
8/20/2019 Base de datos SQL Cap2-4
23/24
7.- Cree una consulta que muestre los puestos sin repetirse del tabal EMP.
JOB ANALYSTCLERKMANAGER
PRESIDENTSALESMAN
Parte 2 SQL-Server Básico
Página 23 de 24
-
8/20/2019 Base de datos SQL Cap2-4
24/24
8.- Cargue el script s0s2s5.sql cambie el nombre de las columnas como semuestra en el ejemplo, guarde el nuevo script como s0s2s8.sql.
Emp # Employee Job Hire Date7839 KING PRESIDENT 17-NOV-81
7698 BLAKE MANAGER 01-MAY-817782 CLARK MANAGER 09-JUN-817566 JONES MANAGER 02-APR-817654 MARTIN SALESMAN 28-SEP-817499 ALLEN SALESMAN 20-FEB-817844 TURNER SALESMAN 08-SEP-817900 JAMES CLERK 03-DEC-817521 WARD SALESMAN 22-FEB-817902 FORD ANALYST 03-DEC-817369 SMITH CLERK 17-DEC-807788 SCOTT ANALYST 09-DEC-82
7876 ADAMS CLERK 12-JAN-837934 MILLER CLERK 23-JAN-82(14 row(s) affected)
9.- Muestre el nombre concatenado al puesto (job) separado por una coma y unespacio, y nombra la columna "Employeed and title”.
Employee and Title--------*----------KING, PRESIDENTBLAKE, MANAGERCLARK , MANAGER
JONES , MANAGERMARTIN, SALESMAN ALLEN, SALESMANTURNER, SALESMANJAME , CLERKWARS, SALESMANFORD, ANALYSTSMITH, CLERKSCOTT, ANALYST
ADAMS, CLERKMILLER, CLERK
(14 row(s) affected)
Parte 2 SQL Server Básico