Post on 07-Feb-2018
Copyright Oracle Corporation, 1998. All rights reserved.
11
Escritura Básica de Sentencias SQL
Escritura Básica de Sentencias SQL
1-2 Copyright Oracle Corporation, 1998. All rights reserved.
ObjetivosObjetivos
Al completar esta lección, debería ser capaz de hacer lo siguiente:
• Enumerar las posibilidades de una sentencia SELECT de SQL
• Ejecutar una sentencia básica SELECT
• Diferenciar entre sentencias SQL y comandos de SQL*PLUS
Al completar esta lecciAl completar esta leccióón, debern, deberíía ser a ser capaz de hacer lo siguiente:capaz de hacer lo siguiente:
• Enumerar las posibilidades de una sentencia SELECT de SQL
• Ejecutar una sentencia básica SELECT
• Diferenciar entre sentencias SQL y comandos de SQL*PLUS
1-3 Copyright Oracle Corporation, 1998. All rights reserved.
La Sentencia SELECT de SQLLa Sentencia SELECT de SQL
SelecciSeleccióónn ProjecciProjeccióónn
Tabla 1Tabla 1 Tabla 2Tabla 2
Tabla 1Tabla 1 Tabla 1Tabla 1JoinJoin
1-4 Copyright Oracle Corporation, 1998. All rights reserved.
Sentencia Básica SQLSentencia Básica SQL
SELECT [DISTINCT] {*, column [alias],...}
FROM table;
SELECT [DISTINCT] {*, column [alias],...}
FROM table;
•• SELECT identifica SELECT identifica ququéé columnascolumnas
•• FROM identifica FROM identifica ququéé tablastablas
1-5 Copyright Oracle Corporation, 1998. All rights reserved.
Escritura de Sentencias SQLEscritura de Sentencias SQL
•• Los Comandos pueden constar de una Los Comandos pueden constar de una o varias lo varias lííneas.neas.
•• Las tabulaciones e indentaciones Las tabulaciones e indentaciones pueden ser usadas por comodidad.pueden ser usadas por comodidad.
•• Las abreviaturas y separaciLas abreviaturas y separacióón de n de palabras no estpalabras no estáán permitidas.n permitidas.
•• Los Comandos no son case sensitive.Los Comandos no son case sensitive.
1-6 Copyright Oracle Corporation, 1998. All rights reserved.
Selección de Todas las Columnas
Selección de Todas las Columnas
DEPTNO DNAME LOC
--------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> SELECT *
2 FROM dept;
1-7 Copyright Oracle Corporation, 1998. All rights reserved.
Selección Específica de ColumnasSelección Específica de Columnas
DEPTNO LOC
--------- -------------
10 NEW YORK
20 DALLAS
30 CHICAGO
40 BOSTON
SQL> SELECT deptno, loc
2 FROM dept;
1-8 Copyright Oracle Corporation, 1998. All rights reserved.
Etiquetas de Columnas por DefectoEtiquetas de Columnas por Defecto
•• JustificaciJustificacióón de la etiqueta por defecto:n de la etiqueta por defecto:
–– Izquierda: fechas y caracteresIzquierda: fechas y caracteres
––Derecha: datos numDerecha: datos numééricosricos
•• Las etiquetas por defecto se muestran Las etiquetas por defecto se muestran en mayen mayúúsculas.sculas.
1-9 Copyright Oracle Corporation, 1998. All rights reserved.
Expresiones AritméticasExpresiones Aritméticas
Operador
+
-
*
/
Descripción
Suma
Resta
Multiplicación
División
Crear expresiones sobre tipos de datos Crear expresiones sobre tipos de datos NUMERICOS y FECHAS usando operadores.NUMERICOS y FECHAS usando operadores.
1-10 Copyright Oracle Corporation, 1998. All rights reserved.
Uso de Operadores AritméticosUso de Operadores Aritméticos
SQL> SELECT ename, sal, sal+300
2 FROM emp;
ENAME SAL SAL+300
---------- --------- ---------
KING 5000 5300
BLAKE 2850 3150
CLARK 2450 2750
JONES 2975 3275
MARTIN 1250 1550
ALLEN 1600 1900
...
14 rows selected.
1-11 Copyright Oracle Corporation, 1998. All rights reserved.
Precedencia de OperadoresPrecedencia de Operadores
*** /// +++ ___
•• La multiplicaciLa multiplicacióón y la divisin y la divisióón tienen n tienen prioridad sobre la suma y la resta.prioridad sobre la suma y la resta.
•• Los operadores de la misma prioridad Los operadores de la misma prioridad se evalse evalúúan de izquierda a derecha.an de izquierda a derecha.
•• Los parLos parééntesis pueden ser usados para ntesis pueden ser usados para cambiar la prioridad de evaluacicambiar la prioridad de evaluacióón y n y para clarificar las sentencias.para clarificar las sentencias.
1-12 Copyright Oracle Corporation, 1998. All rights reserved.
Precedencia de OperadoresPrecedencia de Operadores
SQL> SELECT ename, sal, 12*sal+100
2 FROM emp;
ENAME SAL 12*SAL+100
---------- --------- ----------
KING 5000 60100
BLAKE 2850 34300
CLARK 2450 29500
JONES 2975 35800
MARTIN 1250 15100
ALLEN 1600 19300
...
14 rows selected.
1-13 Copyright Oracle Corporation, 1998. All rights reserved.
Uso de ParéntesisUso de Paréntesis
SQL> SELECT ename, sal, 12*(sal+100)
2 FROM emp;
ENAME SAL 12*(SAL+100)
---------- --------- -----------
KING 5000 61200
BLAKE 2850 35400
CLARK 2450 30600
JONES 2975 36900
MARTIN 1250 16200
...
14 rows selected.
1-14 Copyright Oracle Corporation, 1998. All rights reserved.
Definición del Valor NULLDefinición del Valor NULL
• NULL es un valor que es inaccesible, sin valor desconocido o inaplicable.
• NULL no representa ni un cero (0) ni un espacio en blanco.
• NULL es un valor que es inaccesible, sin valor desconocido o inaplicable.
•• NULL no representa ni un cero (0) ni un NULL no representa ni un cero (0) ni un espacio en blanco.espacio en blanco.
SQL> SELECT ename, job, comm
2 FROM emp;
ENAME JOB COMM
---------- --------- ---------
KING PRESIDENT
BLAKE MANAGER
...
TURNER SALESMAN 0
...
14 rows selected.
1-15 Copyright Oracle Corporation, 1998. All rights reserved.
Valores NULL en Expresiones Aritméticas
Valores NULL en Expresiones Aritméticas
Las expresiones aritméticas que contengan un Null se evaluan a Null.Las expresiones aritmLas expresiones aritmééticas que ticas que contengan un Null se evaluan a Null.contengan un Null se evaluan a Null.
SQL> select ename NAME, 12*sal+comm
2 from emp
3 WHERE ename='KING';
NAME 12*SAL+COMM
---------- -----------
KING
1-16 Copyright Oracle Corporation, 1998. All rights reserved.
Definición de un Alias de ColumnaDefinición de un Alias de Columna
•• Un Alias de columna renombra un Un Alias de columna renombra un encabezamiento de columna.encabezamiento de columna.
•• Es Es úútil especialmente en ctil especialmente en cáálculos.lculos.
•• Sigue inmediatamente al nombre de la Sigue inmediatamente al nombre de la columna.columna.
–– Palabra clave opcional AS entre el nombre Palabra clave opcional AS entre el nombre de la columna y el alias.de la columna y el alias.
•• Se requiere encerrar un alias entre comillas Se requiere encerrar un alias entre comillas dobles si contiene espacios en blanco, dobles si contiene espacios en blanco, caracteres especiales o es case sensitive.caracteres especiales o es case sensitive.
1-17 Copyright Oracle Corporation, 1998. All rights reserved.
Uso de Alias de ColumnaUso de Alias de Columna
SQL> SELECT ename AS name, sal salary
2 FROM emp;
NAME SALARY
------------- ---------
...
SQL> SELECT ename "Name",
2 sal*12 "Annual Salary"
3 FROM emp;
Name Annual Salary
------------- -------------
...
1-18 Copyright Oracle Corporation, 1998. All rights reserved.
Operador de ConcatenaciónOperador de Concatenación
El operador de concatenaciEl operador de concatenacióón:n:
•• Esta representado por dos barras Esta representado por dos barras verticales (||).verticales (||).
•• Vincula columnas o cadenas de Vincula columnas o cadenas de caracteres con otras columnas.caracteres con otras columnas.
•• Crea una columna resultado que es una Crea una columna resultado que es una expresiexpresióón de tipo caracter.n de tipo caracter.
1-19 Copyright Oracle Corporation, 1998. All rights reserved.
Uso del Operador de Concatenación
Uso del Operador de Concatenación
SQL> SELECT ename||job AS "Employees"
2 FROM emp;
Employees
-------------------
KINGPRESIDENT
BLAKEMANAGER
CLARKMANAGER
JONESMANAGER
MARTINSALESMAN
ALLENSALESMAN
...
14 rows selected.
1-20 Copyright Oracle Corporation, 1998. All rights reserved.
Cadenas de CaracteresCadenas de Caracteres
•• Un literal es un caracter, expresiUn literal es un caracter, expresióón o n o nnúúmero incluido en la lista de la mero incluido en la lista de la clclááusula SELECT.usula SELECT.
•• Los valores literales de tipo fecha y Los valores literales de tipo fecha y caracter deben estar encerrados dentro caracter deben estar encerrados dentro de comillas simples.de comillas simples.
•• Por cada fila devuelta se genera una Por cada fila devuelta se genera una cadena de caracteres.cadena de caracteres.
1-21 Copyright Oracle Corporation, 1998. All rights reserved.
Uso de Cadenas de CaracteresUso de Cadenas de Caracteres
Employee Details
-------------------------
KING is a PRESIDENT
BLAKE is a MANAGER
CLARK is a MANAGER
JONES is a MANAGER
MARTIN is a SALESMAN
...
14 rows selected.
Employee Details
-------------------------
KING is a PRESIDENT
BLAKE is a MANAGER
CLARK is a MANAGER
JONES is a MANAGER
MARTIN is a SALESMAN
...
14 rows selected.
SQL> SELECT ename ||' '||'is a'||' '||job
2 AS "Employee Details"
3 FROM emp;
1-22 Copyright Oracle Corporation, 1998. All rights reserved.
Filas DuplicadasFilas Duplicadas
Las consultas, por defecto, muestran todas las filas incluyendo las duplicadas.Las consultas, por defecto, muestran Las consultas, por defecto, muestran todas las filas incluyendo las duplicadas.todas las filas incluyendo las duplicadas.
SQL> SELECT deptno
2 FROM emp;
SQL> SELECT deptno
2 FROM emp;
DEPTNO
---------
10
30
10
20
...
14 rows selected.
1-23 Copyright Oracle Corporation, 1998. All rights reserved.
Eliminación de Filas DuplicadasEliminación de Filas Duplicadas
Las filas duplicadas se eliminan usando Las filas duplicadas se eliminan usando DISTINCT en la clDISTINCT en la clááusula SELECT.usula SELECT.
SQL> SELECT DISTINCT deptno
2 FROM emp;
DEPTNO
---------
10
20
30
1-24 Copyright Oracle Corporation, 1998. All rights reserved.
Interacción SQL y SQL*Plus Interacción SQL y SQL*Plus
SQL*PlusSQL*Plus
BBúúferfer
ScriptsSQL
ServidorSentecias SQLSentecias SQL
Resultado de la ConsultaResultado de la Consulta
1-25 Copyright Oracle Corporation, 1998. All rights reserved.
Sentencias SQL Versus Comandos SQL*Plus
Sentencias SQL Versus Comandos SQL*Plus
SentenciasSentencias
SQLSQL
SQL SQL
•• Un lenguajeUn lenguaje
•• EstEstáándar ANSIndar ANSI
•• Las palabras clave no Las palabras clave no pueden abreviarsepueden abreviarse
•• Las sentencias manip. Las sentencias manip. datos y definiciones datos y definiciones de tablas en la B.D.de tablas en la B.D.
SQL*PlusSQL*Plus
•• Un entornoUn entorno
•• Propio de ORACLEPropio de ORACLE
• Las palabras clave sípueden abreviarse
•• Los comandos no Los comandos no pueden manipular pueden manipular valores en la B.D.valores en la B.D.
BBúúferfer
SQLSQLComandosComandos
SQL*PlusSQL*PlusSQL*PlusSQL*Plus
bufferbuffer
1-26 Copyright Oracle Corporation, 1998. All rights reserved.
Generalidades de SQL*PlusGeneralidades de SQL*Plus
•• Conectarse al SQL*Plus.Conectarse al SQL*Plus.
•• Describir la estructura de las tablas.Describir la estructura de las tablas.
•• Ejecutar SQL desde SQL*Plus.Ejecutar SQL desde SQL*Plus.
•• Editar la sentencia SQL.Editar la sentencia SQL.
•• Guardar las sentencias SQL en Guardar las sentencias SQL en archivos.archivos.
•• Ejecutar los archivos guardados.Ejecutar los archivos guardados.
•• Cargar los comandos desde el archivo Cargar los comandos desde el archivo al bal búúfer para editarlos.fer para editarlos.
1-27 Copyright Oracle Corporation, 1998. All rights reserved.
Conexión a SQL*PlusConexión a SQL*Plus
•• Desde un entorno Windows:Desde un entorno Windows:
•• Desde la lDesde la líínea de comandos:nea de comandos:
sqlplus [sqlplus [usernameusername[/[/password password
[@[@databasedatabase]]]]]]
1-28 Copyright Oracle Corporation, 1998. All rights reserved.
Visualización de la Estructura de una Tabla
Visualización de la Estructura de una Tabla
Use el comando DESCRIBE de SQL*Plus para visualizar la estructura de una tabla.Use el comando DESCRIBE de SQL*Plus Use el comando DESCRIBE de SQL*Plus para visualizar la estructura de una tabla.para visualizar la estructura de una tabla.
DESC[RIBE] tablenameDESC[RIBE] tablename
1-29 Copyright Oracle Corporation, 1998. All rights reserved.
Visualización de la Estructura de una Tabla
Visualización de la Estructura de una Tabla
SQL> DESCRIBE deptSQL> DESCRIBE dept
Name Null? Type
----------------- -------- ----
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
Name Null? Type
----------------- -------- ----
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
1-30 Copyright Oracle Corporation, 1998. All rights reserved.
Comandos de Edición SQL*PlusComandos de Edición SQL*Plus
• A[PPEND] text
• C[HANGE] / old / new
• C[HANGE] / text /
• CL[EAR] BUFF[ER]
• DEL
• DEL n
• DEL m n
• A[PPEND] text
• C[HANGE] / old / new
• C[HANGE] / text /
• CL[EAR] BUFF[ER]
• DEL
• DEL n
• DEL m n
1-31 Copyright Oracle Corporation, 1998. All rights reserved.
SQL*Plus Editing CommandsSQL*Plus Editing Commands
• I[NPUT]
• I[NPUT] text
• L[IST]
• L[IST] n
• L[IST] m n
• R[UN]
• n
• n text
• 0 text
• I[NPUT]
• I[NPUT] text
• L[IST]
• L[IST] n
• L[IST] m n
• R[UN]
• n
• n text
• 0 text
1-32 Copyright Oracle Corporation, 1998. All rights reserved.
Comandos de Ficheros SQL*Plus
Comandos de Ficheros SQL*Plus
• SAVE filename
• GET filename
• START filename
• @ filename
• EDIT filename
• SPOOL filename
• EXIT
• SAVE filename
• GET filename
• START filename
• @ filename
• EDIT filename
• SPOOL filename
• EXIT
1-33 Copyright Oracle Corporation, 1998. All rights reserved.
ResumenResumen
Use Sql*Plus como un entorno, para:
• Ejecutar sentencias SQL
• Editar sentencias SQL
Use Sql*Plus como un entorno, para:Use Sql*Plus como un entorno, para:
• Ejecutar sentencias SQL
• Editar sentencias SQL
SELECT [DISTINCT] {*,column[alias],...}
FROM table;
SELECT [DISTINCT] {*,column[alias],...}
FROM table;
1-34 Copyright Oracle Corporation, 1998. All rights reserved.
Visión General de la PrácticaVisión General de la Práctica
•• Seleccionar todos los datos desde Seleccionar todos los datos desde diferentes tablas.diferentes tablas.
•• Describir la estructura de las tablas.Describir la estructura de las tablas.
•• Ejecutar cEjecutar cáálculos aritmlculos aritmééticos y ticos y especificar nombres de columnas.especificar nombres de columnas.
•• Usar el editor SQL*Plus.Usar el editor SQL*Plus.