SlideShare una empresa de Scribd logo
1 de 68
Solución inteligente para Empresas de
Telecomunicaciones y Servicios Públicos
INTRODUCCION A BASE DE
DATOS(Sept/2011)
Agenda

1.Introducción
2.Basic Elements of Oracle SQL
3.SQL Queries and Subqueries

4.Operators
5.Expressions, Conditions, and Queries
6.Functions
7.SQL Statements
8.SQL Tuning Workshop
Referencia SQL

 1. Introducción
SQL (Lenguaje de consulta estructurado): es un conjunto de sentencias con
las que los programas y usuarios pueden accedera a las base de datos.
El doctor E.F codd en su paper “a relational model of data for lange shared
data banks” en junio de 1970 estableció el modelo que hoy aceptamos como
“el modelo para el manejo de systemas de base de datos relacionales”
(RDBMS). Luego se desarrollo SEQUEL (Structured English Query
Language) por IBM Corporation, Inc. Que con el tiempo se convirtio en SQL.


Convenciones Lexicas
Cuando se crea un sentencia SQL. Se puede incluir uno o mas <tabs>,
<enter>, <space>.
No es sensible a mayusculas en el caso de palabras reservadas, palabras
claves, identificadores y parametros. Sin embargo si para los literales de tipo
texto y los nombres en comillas.
Referencia SQL

2. Basic Elements of Oracle SQL


 Datatypes
 Literals
 Format Models
 Nulls
 Pseudocolumns
 Comments
 Database Objects
 Schema Object Names and Qualifiers
 Syntax for Schema Objects and Parts in SQL Statements
Referencia SQL

 Datatypes



Cada valor manipulado por oracle tiene un tipo de dato. El valor de cierto
tipo de dato tiene un conjunto de propiedades asociadas, al igual que un
dominio.


Cuando creas una tabla o cluster, se debe especificar el tipo de dato de
cada columna. Cuando creas un procedimiento o funcion, se debe
especificar el tipo de datos de cada argumento.


http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/sql_elements2a.htm
Referencia SQL

  Tipos de datos

Pertenecientes a la base de datos
 NUMBER

 CHAR

 VARCHAR2

 DATE

 LONG

 LONG RAW

 RAW

ROWID

 BLOB, CLOB, NCLOB, BFILE
Referencia SQL

  Literales


Los terminos de “literales” y “valores contantes” son sinonimos y
representan un valor de datos establecido. Los tipos de literales son:


Literales de Texto

Litereles de Enteros

Literales Numericos

Literales Intervalo



Se pueden espeficar literales como parte de una expresion o condicion.
Veamos la sintaxis de cada tipo.
Referencia SQL

    Literales de Texto


Definen un texto o carácter. Ejemplos : ‘hola mundo’, ‘d’. Y su sintaxis:




     Donde N especifica el uso de caracteres Nacionales.
     C es cualquier miembro del conjunto de caracteres.
     ‘’ son dos comillas simples que marcan el comienzo y el final de la
      cadena
Referencia SQL

 Literales Numericos


Estan el dominio de los numero fraccionarios. Ejemplos: 1.1, -12.3, .01,
    23E-10.
Referencia SQL

 Literales de Intervalos
Estos literales especifican un periodo de tiempo. Oracle soporta dos tipo de
    literales de intervalos, YEAR TO MONTH y.
YEAR TO MONTH
Referencia SQL

Literales de Intervalo
DAY TO SECOND
Referencia SQL

 Modelo de formatos



TO_DATE('27-OCT-98', 'DD-MON-RR')


TO_CHAR(salary, '$99,990.99')


to_char(0.1, '00.0999')
Referencia SQL

Modelo de formatos

     Elemento        Ejemplo                         Descripcion
, (comma)       9,999          Coma en un punto Especifico
. (period)      99.99          Decimal
$               $ 9.999        Signo Dólar
0               0999           Cero a la izquierda
                9990           Cero a la derecha
9               9999           Cantidad de Digitos
B               B9999          Retorna Blanco en esa posicion
C               C999           Retorna el simbolo de Moneda ISO (NLS_ISO_CURRENCY)
D               99D99          Retorna el carácter decimal
EEEE            9.9EEEE        Retorna un Valor usando notacion cientifica
G               9G999          Pone el separador de grupo (miles)
L               L999           Retorna carácter de moneda
MI              9999MI         Retorna negativo o positivo
PR              9999PR         Retorna valor negativio en <>
RN              RN             Retorna Romano Mayuscula
rn              rn             Retorna Romano Minuscula
S               S9999          Retorna negativo
                9999S          Retorna positivo con +
Referencia SQL

 Null

Cuando una columna no tiene un valor asociado decimos que el valor es null.
    Mas sin embargo, se puede restringir a la columna como para que no
    puedan haber valores nulos.


Null no representa el valor cero, ni tampoco la cadena vacia ‘’. Todas las
     operaciones con null retornaran null excepto la condenación.


Funcion NVL: NVL (variable,0).


Condiciones evaluadas con null retornaran UNKNOWN. Y estas condiciones
    no retornaran columnas si son puestas en el campo WHERE.
Referencia SQL

    Pseudocolumnas



Las pseudocolumnas actuan igual que una columna pero sus datos no estan
     guardados en la tabla.


     CURRVAL and NEXTVAL
     LEVEL
     ROWID
     ROWNUM
     XMLDATA
Referencia SQL

 Comentarios

En cual cualquier sentencia SQL se pueden adicionar comentarios.


SELECT last_name, salary + NVL(commission_pct, 0),
 job_id, e.department_id
 FROM employees e, departments d
    /*The DEPARTMENTS table is used to get the department name.*/
 WHERE e.department_id = d.department_id
  AND salary + NVL(commission_pct,0) > -- Subquery:
 (SELECT salary + NVL(commission_pct,0)
FROM employees
   WHERE last_name = 'Pataballa');
Referencia SQL

 Objetos




Los objetos pueden o no estar asociados a un schema. Un schema es una
     colección lógica de datos estructurados y objetos.


http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/sql_elements8a.htm
Referencia SQL

 Nombramiento de objetos de esquema

Máximo 30 caracteres. Excepto las base de datos que solo pueden tener
    máximo 8 caracteres y los links hasta 128.


No se pueden utilizar las palabras reservadas.


No pueden empezar con “SYS_“, y deben empezar con un carácter
    alfabético.


En un espacio de nombres dos objetos no pueden tener el mismo nombre.
Referencia SQL

            6. Consultas SQL

                                                                 Columna
Columna                               Campos                     Especial
Especial       Columna




                                                                                      a
                                                                                    ur
                                                                                  ct
                                                                              t ru
 RUT            Nombres   Apellidos      Fecha_Nac    Sueldo      Ciudad




                                                                            Es
  123             Jaja      Merio        01/Jan/68   1’456.323      C

  534   f        Mario     Torres                     432.122       P

  899            Perla     Torres        14/Jun/56   6’856.556      P




                                                                               os
                                                                             at
  566            Mario    Bolaños         5/Sep/89    432.121       B




                                                                            D
                           Fila, Tupla
Referencia SQL

6. Consultas SQL


  Proyección                Selección




     Tabla 1                    Tabla 1



                     Join



    Tabla 1                    Tabla 2
Referencia SQL

 6. Consultas SQL




Bloque Básico:
SELECT identifica las columnas que se quieren ver
FROM identifica de que tabla
WHERE condición para traer ciertos registros y otro no
Referencia SQL

    6. Consultas SQL




f
Referencia SQL

 3. Operadores
Un operador manipula campos de datos y retorna un resultado. Estos
    pueden ser unitarios o binarios. Y además, tienen cierta precedencia
    con la cual Oracle determina en una expresión cual operador debe
    evaluarse primero. Los usuario pueden crear sus propios operadores.
    Veamos:


Arithmetic Operators
Se pueden usar operadores aritméticos para negar, sumar, dividir, restar y
    multiplicar. +, -, *, /.
Concatenation Operator
Se usa para unir dos cadenas de texto. ||
Set Operators
Utilizados para combinar dos o mas consultas en un mismo resultado.
      UNION, MINUS, INTERCEPT.
Referencia SQL

 UNION [ALL], INTERSECT, MINUS

UNION ALL :
SELECT product_id FROM inventories
INTERSECT
SELECT product_id FROM order_items;




INTERSECT :
SELECT product_id FROM inventories
INTERSECT
SELECT product_id FROM order_items;
Referencia SQL

 UNION [ALL], INTERSECT, MINUS


Se pueden combinar múltiples consultas usando los operadores de conjunto.
    Todo tienen la misma precedencia.


UNION :
SELECT location_id, department_name "Department",
 TO_CHAR(NULL) "Warehouse" FROM departments
 UNION
 SELECT location_id, TO_CHAR(NULL) "Department", warehouse_name
 FROM warehouses;
Referencia SQL

 UNION [ALL], INTERSECT, MINUS




MINUS :
SELECT product_id FROM inventories
MINUS
SELECT product_id FROM order_items;
Referencia SQL

 4. Expresiones




Una expresión es la combinación de dos o mas valores, operadores,
    funciones, procedimientos a evaluar. Una expresión asume el tipo de
    datos de sus componentes.
Referencia SQL

 Expresiones
Simple Expressions
Compound Expressions
CASE Expressions
CURSOR Expressions
Datetime Expressions
Function Expressions
INTERVAL Expressions
Object Access Expressions
Scalar Subquery Expressions
Type Constructor Expressions
Variable Expressions
Expression Lists
Referencia SQL

Expresiones Simples
H
Referencia SQL

Expresiones compuestas
Referencia SQL

Expresiones CASE
H
Referencia SQL

 Expresiones CURSOR




SELECT department_name, CURSOR(SELECT salary, commission_pct
 FROM employees e
 WHERE e.department_id = d.department_id)
 FROM departments d;
Referencia SQL

Expresiones tipo fecha


H
Referencia SQL

 Expresiones tipo fecha




circle_area(radius)
payroll.tax_rate(empno)
hr.employees.comm_pct(dependents, empno)@remote
DBMS_LOB.getlength(column_name)
my_function(DISTINCT a_column)
Referencia SQL

    Expresiones tipo Intervalo




h
Referencia SQL

 Expresiones de subconsultas escalares




Una expresión de consulta escalar solo devolverá una columna de una fila.
    Si el valor de la subconsulta retorna 0 filas, el valor será null. Si la
    consulta retorna mas de un registro, se levantará un error.
Referencia SQL

 Lista de Expresiones




SELECT * FROM employees
WHERE (first_name, last_name, email) IN
(('Guy', 'Himuro', 'GHIMURO'),('Karen', 'Colmenares', 'KCOLMENA'))
Referencia SQL

 Condiciones

Una Condición especifica una combinación de uno o mas expresiones y
    operadores lógicos, los cuales retornan TRUE, FALSE o UNKNOWN.
Referencia SQL

Condiciones
Referencia SQL

Condiciones
Referencia SQL

 Condiciones Logicas




NOT: Niega la expresión, TRUE -> FALSE, FALSE -> TRUE.


AND: Retorna TRUE solo si todas sus expresiones es TRUE.


OR: Retorna TRUE si alguna de sus condiciones es TRUE.
Referencia SQL

Condiciones de Relaciones




N
Referencia SQL

Condiciones de Rango




N
Referencia SQL

Condiciones de nulls




N
Referencia SQL

Condiciones EXISTS
Referencia SQL

Condiciones LIKE




N
Referencia SQL

 5. Funciones


Las funciones son como operadores en cuanto ellos procesan datos y
     retornan un resultado. Difieren en la forma en el formato de sus
     argumentos. Ellos pueden tener cero o mucho argumentos.


function(argument, argument, ...)


Si los tipos de datos que son pasados como parámetros no coinciden con los
      tipos de datos de la función, Oracle intenta convertirlos.
Referencia SQL

 Ordenacion de consultas SQL




Usando la cláusula ORDER BY ordenamos los datos de la consulta lanzada.


El mecanismos por el cual Oracle ordena los valores son especificado
    explicítame por NTL_SORT o Implícitamente por NLS_LANGUAGE.
Referencia SQL

    Joins

Un join es una consulta que combina dos o mas tablas, vistas o vistas
     materializadas. Si cualquiera de estas tablas tienen nombre de
     columnas comunes, se deberán especificar en el llamamiento de que
     tablas provienen para evitar ambigüedades.


Tipos:
     Equijoins
     Selft joins
     Cartesian Products
     Inner Joins
     Outer Joins
Referencia SQL

 Equijoins




Es un join el cual une dos columnas por medio del operador ‘=‘. Combinando
    así los registros con valores equivalentes para las columnas
    especificadas.


SELECT last_name, job_id, departments.department_id, department_name
 FROM employees, departments
 WHERE employees.department_id = departments.department_id;
Referencia SQL

 Self Joins



Es un join de una tabla a si misma. Así, esta tabla aparecerá dos veces en la
    cláusula FROM, y deberán tener alias para identificarlas.


SELECT e1.last_name||' works for '||e2.last_name
 "Employees and Their Managers"
 FROM employees e1, employees e2
 WHERE e1.manager_id = e2.employee_id
   AND e1.last_name LIKE 'R%';
Referencia SQL

 Cartesian Products




Si se unen dos tablas sin condiciones, se producirá un producto cartesianas,
     cada registro de una tabla se cada registro de la otra. Es muy ineficiente
     y muy pocas veces se utilizan.
Referencia SQL

 Inner joins




Un join de dos o mas tablas las cuales satisfacen una condición que no
     necesariamente es la igualdad.
Referencia SQL

 outer joins




Un outer join no solo retorna los registros que satisfacen la condición, sino
    también, los registros de una tabla para los cuales no una que no se
    encuentren en la condición.


SELECT e1.employee_id, e1.manager_id, e2.employee_id
 FROM employees e1, employees e2
 WHERE e1.manager_id(+) = e2.employee_id;
Referencia SQL

 Subconsultas

Es cuando tenemos una consulta dentro de otra. La cual nos permite
     resolver preguntas al subdividir el problema. Dependiendo de su
     ubicación en la consulta puede tener diferentes interpretaciones y
     restricciones.


SELECT department_id, last_name, salary
 FROM employees x
 WHERE salary > (SELECT AVG(salary)
   FROM employees
   WHERE x.department_id = department_id)
 ORDER BY department_id;
Referencia SQL

 Tabla DUAL




Esta es una tabla creada automáticamente por oracle que permite acceso al
     diccionario de datos. Tiene una columna DUMMY de tipo
     VARCHAR2(1) con el valor ‘X’. Alternativamente es utilizada para
     seleccionar unas constante, pseudocolumna, o función de cualquier
     tabla.
Referencia SQL

    Operador ANY y SOME




•     Compara un valor por cada valor en una lista o una subconsulta
•     Debe esta precedido de cualquiera de los siguiente operadores
•     =, !=, >, <, <=, >=


select first_name, salary from employees where salary > any (1600, 2999);
select first_name, salary from employees where substr(first_name,1,1) = any
     ('A', 'W', 'J');
Referencia SQL

    Operador ALL




•     Compara un valor por cada valor en una lista o una subconsulta
•     Debe esta precedido de cualquiera de los siguiente operadores
•     =, !=, >, <, <=, >=


select firt_name, salary from employees where salary > all (1600, 2999);
select first_name, salary from employees where salary > 1600 and salary >
     2999;
Referencia SQL

    Agregacion




La agregación es la propiedad que permite agrupar información y sacar
     reportes de ella usando funciones como:
•     Count
•     Sum
•     Max
•     Min
•     avg
Referencia SQL

 Agrupacion
La agrupación es una propiedad que nos permite como su nombre lo indica
     agrupar información con el fin de generar datos estadísticos:


Se puede agrupar usando funciones de agregación o usando la palabra
    reservada GROUP BY.


select redshift
,    type
,    count(*) as numGal
,    avg(stellarMass) as m_avg
,    max(stellarMass) as m_max
  from DeLucia2006a
group by redshift, type
order by redshift, type
Referencia SQL

 Agrupacion




Para poder hacer comparaciones con datos que se encuentran agrupados es
     necesario utilizar la sentencia HAVING


SELECT manager_id, count(*) cantidad FROM jobs job, employees emp
    WHERE job.job_id ='SA_REP' AND job.job_id = emp.job_id GROUP
    BY manager_id HAVING count(*) >= 3
Referencia SQL

    Sentencias Herencia




•     Sentencias usadas para generar datos en forma de arbol.
•     Usado en tablas involutivas
•     Palabra reservada connect by .... Prior


•     SELECT level, rpad(' ',(level - 1)*10,' ')||first_name||' '||last_name
      nombre FROM employees connect BY prior employee_id = manager_id
      start with manager_id IS null
Referencia SQL

Sentencias Herencia



Modo de procesamiento:
•   Aplica JOIN antes CB
•   Selecciona filas Root (Start with)
•   Selecciona hijos Root
•   Ejecuta WHERE si no JOIN
Referencia SQL

 Taller


http://www.oracle.com/technology/obe/obe9ir2/obe-in/sschema/sschema.htm


1. What are the names of the employees that have salaries between 2000
and 3000?
2. What are the names of the employees that work in Administration?
3. What are the names of the employees working in Administration or
    Marketing?
4. What are the employees that earn more than their manager?
5. What are the names of the salesmen who have an income (salary plus
commission) above 15000?
Referencia SQL

 Taller

6. What are the managers that earn more than any of their employees?
7. What are the names of the employees who are managers of at least one
salesman?
8. What are the names of the employees who are managers of at least three
salesmen?
9. What are the names of the employees who are managers, but do not
    manage
any salesmen?
10. What is the average salary for each job?
11. What is the average salary of employees by job type?
12. What is the average salary of employees by location?
Referencia SQL

 Taller


13. Who is the lowest paid employee in Roma?
14. What are the names of the employees who were hired before their
     manager?
15. For how many employees is it the case that the employee and his/her
     manager
work in diferent towns?
16. How many employees have a higher salary than the average salary of all
employees working in the same DEPARTMENT?
17. What is the average salary by town?
18. Which is the town with the lowest average salary?

Más contenido relacionado

La actualidad más candente

La actualidad más candente (16)

Bdii 09 ddl_new
Bdii 09 ddl_newBdii 09 ddl_new
Bdii 09 ddl_new
 
Introduccion al sql query
Introduccion al sql queryIntroduccion al sql query
Introduccion al sql query
 
Restricciones bd
Restricciones bdRestricciones bd
Restricciones bd
 
Intro sql y plsql
Intro sql y plsqlIntro sql y plsql
Intro sql y plsql
 
Sentencias dml y ddl
Sentencias dml y ddlSentencias dml y ddl
Sentencias dml y ddl
 
Práctica SQL en MYSQL
Práctica SQL en MYSQLPráctica SQL en MYSQL
Práctica SQL en MYSQL
 
Clase 1 Modelo Físico de Base de Datos
Clase 1 Modelo Físico de Base de DatosClase 1 Modelo Físico de Base de Datos
Clase 1 Modelo Físico de Base de Datos
 
Comandos SQL
Comandos SQLComandos SQL
Comandos SQL
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
INTEGRIDAD Y SEGURIDAD
INTEGRIDAD Y SEGURIDADINTEGRIDAD Y SEGURIDAD
INTEGRIDAD Y SEGURIDAD
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 
Unidad IV SQL
Unidad IV SQLUnidad IV SQL
Unidad IV SQL
 
Manipulacion de Bases de Datos
Manipulacion de Bases de DatosManipulacion de Bases de Datos
Manipulacion de Bases de Datos
 
Sql
SqlSql
Sql
 
PL SQL Diplomado Oracle
PL SQL Diplomado OraclePL SQL Diplomado Oracle
PL SQL Diplomado Oracle
 

Destacado

10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer ExperienceYuan Wang
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanPost Planner
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionIn a Rocket
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting PersonalKirsty Hulse
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 

Destacado (7)

Sql
SqlSql
Sql
 
10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Similar a 02 sql reference

Similar a 02 sql reference (20)

05 Sql Profundizacion
05 Sql Profundizacion05 Sql Profundizacion
05 Sql Profundizacion
 
Pl Sql
Pl SqlPl Sql
Pl Sql
 
Consultasql
ConsultasqlConsultasql
Consultasql
 
Actividad2 capitulo I contenido
Actividad2 capitulo I  contenidoActividad2 capitulo I  contenido
Actividad2 capitulo I contenido
 
PL/SQL
PL/SQLPL/SQL
PL/SQL
 
Curso sql
Curso sqlCurso sql
Curso sql
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Conceptos basicos de programacion con pl sql
Conceptos basicos de programacion con pl sqlConceptos basicos de programacion con pl sql
Conceptos basicos de programacion con pl sql
 
Fundamentos microsoft sql server (T-Sql) (Parte I) – conceptos básicos sql e...
Fundamentos microsoft sql server (T-Sql)  (Parte I) – conceptos básicos sql e...Fundamentos microsoft sql server (T-Sql)  (Parte I) – conceptos básicos sql e...
Fundamentos microsoft sql server (T-Sql) (Parte I) – conceptos básicos sql e...
 
TEMA3-SQL-(PARTE 1).pdf
TEMA3-SQL-(PARTE 1).pdfTEMA3-SQL-(PARTE 1).pdf
TEMA3-SQL-(PARTE 1).pdf
 
Sentencias Sql
Sentencias SqlSentencias Sql
Sentencias Sql
 
Apunte plsql
Apunte plsqlApunte plsql
Apunte plsql
 
Sql tutor
Sql tutorSql tutor
Sql tutor
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
 
Diapositivas transact sql
Diapositivas transact sqlDiapositivas transact sql
Diapositivas transact sql
 
Profe pitta
Profe pittaProfe pitta
Profe pitta
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
44777047 oracle
44777047 oracle44777047 oracle
44777047 oracle
 

Último

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 

Último (20)

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 

02 sql reference

  • 1.
  • 2. Solución inteligente para Empresas de Telecomunicaciones y Servicios Públicos
  • 3. INTRODUCCION A BASE DE DATOS(Sept/2011)
  • 4. Agenda 1.Introducción 2.Basic Elements of Oracle SQL 3.SQL Queries and Subqueries 4.Operators 5.Expressions, Conditions, and Queries 6.Functions 7.SQL Statements 8.SQL Tuning Workshop
  • 5. Referencia SQL 1. Introducción SQL (Lenguaje de consulta estructurado): es un conjunto de sentencias con las que los programas y usuarios pueden accedera a las base de datos. El doctor E.F codd en su paper “a relational model of data for lange shared data banks” en junio de 1970 estableció el modelo que hoy aceptamos como “el modelo para el manejo de systemas de base de datos relacionales” (RDBMS). Luego se desarrollo SEQUEL (Structured English Query Language) por IBM Corporation, Inc. Que con el tiempo se convirtio en SQL. Convenciones Lexicas Cuando se crea un sentencia SQL. Se puede incluir uno o mas <tabs>, <enter>, <space>. No es sensible a mayusculas en el caso de palabras reservadas, palabras claves, identificadores y parametros. Sin embargo si para los literales de tipo texto y los nombres en comillas.
  • 6. Referencia SQL 2. Basic Elements of Oracle SQL Datatypes Literals Format Models Nulls Pseudocolumns Comments Database Objects Schema Object Names and Qualifiers Syntax for Schema Objects and Parts in SQL Statements
  • 7. Referencia SQL Datatypes Cada valor manipulado por oracle tiene un tipo de dato. El valor de cierto tipo de dato tiene un conjunto de propiedades asociadas, al igual que un dominio. Cuando creas una tabla o cluster, se debe especificar el tipo de dato de cada columna. Cuando creas un procedimiento o funcion, se debe especificar el tipo de datos de cada argumento. http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/sql_elements2a.htm
  • 8. Referencia SQL Tipos de datos Pertenecientes a la base de datos  NUMBER  CHAR  VARCHAR2  DATE  LONG  LONG RAW  RAW ROWID  BLOB, CLOB, NCLOB, BFILE
  • 9. Referencia SQL Literales Los terminos de “literales” y “valores contantes” son sinonimos y representan un valor de datos establecido. Los tipos de literales son: Literales de Texto Litereles de Enteros Literales Numericos Literales Intervalo Se pueden espeficar literales como parte de una expresion o condicion. Veamos la sintaxis de cada tipo.
  • 10. Referencia SQL Literales de Texto Definen un texto o carácter. Ejemplos : ‘hola mundo’, ‘d’. Y su sintaxis:  Donde N especifica el uso de caracteres Nacionales.  C es cualquier miembro del conjunto de caracteres.  ‘’ son dos comillas simples que marcan el comienzo y el final de la cadena
  • 11. Referencia SQL Literales Numericos Estan el dominio de los numero fraccionarios. Ejemplos: 1.1, -12.3, .01, 23E-10.
  • 12. Referencia SQL Literales de Intervalos Estos literales especifican un periodo de tiempo. Oracle soporta dos tipo de literales de intervalos, YEAR TO MONTH y. YEAR TO MONTH
  • 13. Referencia SQL Literales de Intervalo DAY TO SECOND
  • 14. Referencia SQL Modelo de formatos TO_DATE('27-OCT-98', 'DD-MON-RR') TO_CHAR(salary, '$99,990.99') to_char(0.1, '00.0999')
  • 15. Referencia SQL Modelo de formatos Elemento Ejemplo Descripcion , (comma) 9,999 Coma en un punto Especifico . (period) 99.99 Decimal $ $ 9.999 Signo Dólar 0 0999 Cero a la izquierda 9990 Cero a la derecha 9 9999 Cantidad de Digitos B B9999 Retorna Blanco en esa posicion C C999 Retorna el simbolo de Moneda ISO (NLS_ISO_CURRENCY) D 99D99 Retorna el carácter decimal EEEE 9.9EEEE Retorna un Valor usando notacion cientifica G 9G999 Pone el separador de grupo (miles) L L999 Retorna carácter de moneda MI 9999MI Retorna negativo o positivo PR 9999PR Retorna valor negativio en <> RN RN Retorna Romano Mayuscula rn rn Retorna Romano Minuscula S S9999 Retorna negativo 9999S Retorna positivo con +
  • 16. Referencia SQL Null Cuando una columna no tiene un valor asociado decimos que el valor es null. Mas sin embargo, se puede restringir a la columna como para que no puedan haber valores nulos. Null no representa el valor cero, ni tampoco la cadena vacia ‘’. Todas las operaciones con null retornaran null excepto la condenación. Funcion NVL: NVL (variable,0). Condiciones evaluadas con null retornaran UNKNOWN. Y estas condiciones no retornaran columnas si son puestas en el campo WHERE.
  • 17. Referencia SQL Pseudocolumnas Las pseudocolumnas actuan igual que una columna pero sus datos no estan guardados en la tabla.  CURRVAL and NEXTVAL  LEVEL  ROWID  ROWNUM  XMLDATA
  • 18. Referencia SQL Comentarios En cual cualquier sentencia SQL se pueden adicionar comentarios. SELECT last_name, salary + NVL(commission_pct, 0), job_id, e.department_id FROM employees e, departments d /*The DEPARTMENTS table is used to get the department name.*/ WHERE e.department_id = d.department_id AND salary + NVL(commission_pct,0) > -- Subquery: (SELECT salary + NVL(commission_pct,0) FROM employees WHERE last_name = 'Pataballa');
  • 19. Referencia SQL Objetos Los objetos pueden o no estar asociados a un schema. Un schema es una colección lógica de datos estructurados y objetos. http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/sql_elements8a.htm
  • 20. Referencia SQL Nombramiento de objetos de esquema Máximo 30 caracteres. Excepto las base de datos que solo pueden tener máximo 8 caracteres y los links hasta 128. No se pueden utilizar las palabras reservadas. No pueden empezar con “SYS_“, y deben empezar con un carácter alfabético. En un espacio de nombres dos objetos no pueden tener el mismo nombre.
  • 21. Referencia SQL 6. Consultas SQL Columna Columna Campos Especial Especial Columna a ur ct t ru RUT Nombres Apellidos Fecha_Nac Sueldo Ciudad Es 123 Jaja Merio 01/Jan/68 1’456.323 C 534 f Mario Torres 432.122 P 899 Perla Torres 14/Jun/56 6’856.556 P os at 566 Mario Bolaños 5/Sep/89 432.121 B D Fila, Tupla
  • 22. Referencia SQL 6. Consultas SQL Proyección Selección Tabla 1 Tabla 1 Join Tabla 1 Tabla 2
  • 23. Referencia SQL 6. Consultas SQL Bloque Básico: SELECT identifica las columnas que se quieren ver FROM identifica de que tabla WHERE condición para traer ciertos registros y otro no
  • 24. Referencia SQL 6. Consultas SQL f
  • 25. Referencia SQL 3. Operadores Un operador manipula campos de datos y retorna un resultado. Estos pueden ser unitarios o binarios. Y además, tienen cierta precedencia con la cual Oracle determina en una expresión cual operador debe evaluarse primero. Los usuario pueden crear sus propios operadores. Veamos: Arithmetic Operators Se pueden usar operadores aritméticos para negar, sumar, dividir, restar y multiplicar. +, -, *, /. Concatenation Operator Se usa para unir dos cadenas de texto. || Set Operators Utilizados para combinar dos o mas consultas en un mismo resultado. UNION, MINUS, INTERCEPT.
  • 26. Referencia SQL UNION [ALL], INTERSECT, MINUS UNION ALL : SELECT product_id FROM inventories INTERSECT SELECT product_id FROM order_items; INTERSECT : SELECT product_id FROM inventories INTERSECT SELECT product_id FROM order_items;
  • 27. Referencia SQL UNION [ALL], INTERSECT, MINUS Se pueden combinar múltiples consultas usando los operadores de conjunto. Todo tienen la misma precedencia. UNION : SELECT location_id, department_name "Department", TO_CHAR(NULL) "Warehouse" FROM departments UNION SELECT location_id, TO_CHAR(NULL) "Department", warehouse_name FROM warehouses;
  • 28. Referencia SQL UNION [ALL], INTERSECT, MINUS MINUS : SELECT product_id FROM inventories MINUS SELECT product_id FROM order_items;
  • 29. Referencia SQL 4. Expresiones Una expresión es la combinación de dos o mas valores, operadores, funciones, procedimientos a evaluar. Una expresión asume el tipo de datos de sus componentes.
  • 30. Referencia SQL Expresiones Simple Expressions Compound Expressions CASE Expressions CURSOR Expressions Datetime Expressions Function Expressions INTERVAL Expressions Object Access Expressions Scalar Subquery Expressions Type Constructor Expressions Variable Expressions Expression Lists
  • 34. Referencia SQL Expresiones CURSOR SELECT department_name, CURSOR(SELECT salary, commission_pct FROM employees e WHERE e.department_id = d.department_id) FROM departments d;
  • 36. Referencia SQL Expresiones tipo fecha circle_area(radius) payroll.tax_rate(empno) hr.employees.comm_pct(dependents, empno)@remote DBMS_LOB.getlength(column_name) my_function(DISTINCT a_column)
  • 37. Referencia SQL Expresiones tipo Intervalo h
  • 38. Referencia SQL Expresiones de subconsultas escalares Una expresión de consulta escalar solo devolverá una columna de una fila. Si el valor de la subconsulta retorna 0 filas, el valor será null. Si la consulta retorna mas de un registro, se levantará un error.
  • 39. Referencia SQL Lista de Expresiones SELECT * FROM employees WHERE (first_name, last_name, email) IN (('Guy', 'Himuro', 'GHIMURO'),('Karen', 'Colmenares', 'KCOLMENA'))
  • 40. Referencia SQL Condiciones Una Condición especifica una combinación de uno o mas expresiones y operadores lógicos, los cuales retornan TRUE, FALSE o UNKNOWN.
  • 43. Referencia SQL Condiciones Logicas NOT: Niega la expresión, TRUE -> FALSE, FALSE -> TRUE. AND: Retorna TRUE solo si todas sus expresiones es TRUE. OR: Retorna TRUE si alguna de sus condiciones es TRUE.
  • 49. Referencia SQL 5. Funciones Las funciones son como operadores en cuanto ellos procesan datos y retornan un resultado. Difieren en la forma en el formato de sus argumentos. Ellos pueden tener cero o mucho argumentos. function(argument, argument, ...) Si los tipos de datos que son pasados como parámetros no coinciden con los tipos de datos de la función, Oracle intenta convertirlos.
  • 50. Referencia SQL Ordenacion de consultas SQL Usando la cláusula ORDER BY ordenamos los datos de la consulta lanzada. El mecanismos por el cual Oracle ordena los valores son especificado explicítame por NTL_SORT o Implícitamente por NLS_LANGUAGE.
  • 51. Referencia SQL Joins Un join es una consulta que combina dos o mas tablas, vistas o vistas materializadas. Si cualquiera de estas tablas tienen nombre de columnas comunes, se deberán especificar en el llamamiento de que tablas provienen para evitar ambigüedades. Tipos:  Equijoins  Selft joins  Cartesian Products  Inner Joins  Outer Joins
  • 52. Referencia SQL Equijoins Es un join el cual une dos columnas por medio del operador ‘=‘. Combinando así los registros con valores equivalentes para las columnas especificadas. SELECT last_name, job_id, departments.department_id, department_name FROM employees, departments WHERE employees.department_id = departments.department_id;
  • 53. Referencia SQL Self Joins Es un join de una tabla a si misma. Así, esta tabla aparecerá dos veces en la cláusula FROM, y deberán tener alias para identificarlas. SELECT e1.last_name||' works for '||e2.last_name "Employees and Their Managers" FROM employees e1, employees e2 WHERE e1.manager_id = e2.employee_id AND e1.last_name LIKE 'R%';
  • 54. Referencia SQL Cartesian Products Si se unen dos tablas sin condiciones, se producirá un producto cartesianas, cada registro de una tabla se cada registro de la otra. Es muy ineficiente y muy pocas veces se utilizan.
  • 55. Referencia SQL Inner joins Un join de dos o mas tablas las cuales satisfacen una condición que no necesariamente es la igualdad.
  • 56. Referencia SQL outer joins Un outer join no solo retorna los registros que satisfacen la condición, sino también, los registros de una tabla para los cuales no una que no se encuentren en la condición. SELECT e1.employee_id, e1.manager_id, e2.employee_id FROM employees e1, employees e2 WHERE e1.manager_id(+) = e2.employee_id;
  • 57. Referencia SQL Subconsultas Es cuando tenemos una consulta dentro de otra. La cual nos permite resolver preguntas al subdividir el problema. Dependiendo de su ubicación en la consulta puede tener diferentes interpretaciones y restricciones. SELECT department_id, last_name, salary FROM employees x WHERE salary > (SELECT AVG(salary) FROM employees WHERE x.department_id = department_id) ORDER BY department_id;
  • 58. Referencia SQL Tabla DUAL Esta es una tabla creada automáticamente por oracle que permite acceso al diccionario de datos. Tiene una columna DUMMY de tipo VARCHAR2(1) con el valor ‘X’. Alternativamente es utilizada para seleccionar unas constante, pseudocolumna, o función de cualquier tabla.
  • 59. Referencia SQL Operador ANY y SOME • Compara un valor por cada valor en una lista o una subconsulta • Debe esta precedido de cualquiera de los siguiente operadores • =, !=, >, <, <=, >= select first_name, salary from employees where salary > any (1600, 2999); select first_name, salary from employees where substr(first_name,1,1) = any ('A', 'W', 'J');
  • 60. Referencia SQL Operador ALL • Compara un valor por cada valor en una lista o una subconsulta • Debe esta precedido de cualquiera de los siguiente operadores • =, !=, >, <, <=, >= select firt_name, salary from employees where salary > all (1600, 2999); select first_name, salary from employees where salary > 1600 and salary > 2999;
  • 61. Referencia SQL Agregacion La agregación es la propiedad que permite agrupar información y sacar reportes de ella usando funciones como: • Count • Sum • Max • Min • avg
  • 62. Referencia SQL Agrupacion La agrupación es una propiedad que nos permite como su nombre lo indica agrupar información con el fin de generar datos estadísticos: Se puede agrupar usando funciones de agregación o usando la palabra reservada GROUP BY. select redshift , type , count(*) as numGal , avg(stellarMass) as m_avg , max(stellarMass) as m_max from DeLucia2006a group by redshift, type order by redshift, type
  • 63. Referencia SQL Agrupacion Para poder hacer comparaciones con datos que se encuentran agrupados es necesario utilizar la sentencia HAVING SELECT manager_id, count(*) cantidad FROM jobs job, employees emp WHERE job.job_id ='SA_REP' AND job.job_id = emp.job_id GROUP BY manager_id HAVING count(*) >= 3
  • 64. Referencia SQL Sentencias Herencia • Sentencias usadas para generar datos en forma de arbol. • Usado en tablas involutivas • Palabra reservada connect by .... Prior • SELECT level, rpad(' ',(level - 1)*10,' ')||first_name||' '||last_name nombre FROM employees connect BY prior employee_id = manager_id start with manager_id IS null
  • 65. Referencia SQL Sentencias Herencia Modo de procesamiento: • Aplica JOIN antes CB • Selecciona filas Root (Start with) • Selecciona hijos Root • Ejecuta WHERE si no JOIN
  • 66. Referencia SQL Taller http://www.oracle.com/technology/obe/obe9ir2/obe-in/sschema/sschema.htm 1. What are the names of the employees that have salaries between 2000 and 3000? 2. What are the names of the employees that work in Administration? 3. What are the names of the employees working in Administration or Marketing? 4. What are the employees that earn more than their manager? 5. What are the names of the salesmen who have an income (salary plus commission) above 15000?
  • 67. Referencia SQL Taller 6. What are the managers that earn more than any of their employees? 7. What are the names of the employees who are managers of at least one salesman? 8. What are the names of the employees who are managers of at least three salesmen? 9. What are the names of the employees who are managers, but do not manage any salesmen? 10. What is the average salary for each job? 11. What is the average salary of employees by job type? 12. What is the average salary of employees by location?
  • 68. Referencia SQL Taller 13. Who is the lowest paid employee in Roma? 14. What are the names of the employees who were hired before their manager? 15. For how many employees is it the case that the employee and his/her manager work in diferent towns? 16. How many employees have a higher salary than the average salary of all employees working in the same DEPARTMENT? 17. What is the average salary by town? 18. Which is the town with the lowest average salary?