4.- Sentencia SELECT simple

Las consultas de selección se utilizan para
indicar al motor de datos que devuelva
información de las bases de datos, esta
información es devuelta en forma de conjunto de
registros que se pueden almacenar en un objeto
recordset.
Hay tres componentes básicos :
SELECT column_list
FROM table_list
[WHERE search_criteria]

M.C. Daniel Esparza Soto                          1
4.- Sentencia SELECT

SELECT [ALL | DISTINCT] column_list
[INTO [nombre_tabla_nueva]]
[FROM{table_name | view_name}[(pista_optimización)]
    [[,{table_name2| view_name2}[(pista_optimización)]
    [...,{table_name16|view_name16}[(pista_optimización)]]]
[WHERE clause]
[GROUP BY clause]
[HAVING clause]
[ORDER BY clause]
[COMPUTE clause]
[FOR BROWSE]




M.C. Daniel Esparza Soto                                      2
4.- Sentencia SELECT

Ejemplo básico: con el comodín * muestra todas
las columnas de una tabla:
SELECT * FROM employee

Se pueden listar algunas columnas de la tabla:
SELECT employeeid , firstname FROM
employee




M.C. Daniel Esparza Soto                         3
Cambiando el encabezado de las
columnas de resultados
Se pueden utilizar alias en los nombres de
columnas para que sean los nombres mas
familiares.
SELECT column_heading = column_name
FROM table_name
o
SELECT column_name [AS] column_heading
FROM table_name
Ejemplo:
SELECT Clave = employeeid , firstname
as Nombre FROM employee
M.C. Daniel Esparza Soto                     4
Operadores aritméticos

Se pueden usar operadores aritméticos en los
siguientes tipos de datos:
int, smallint, tinyint, numeric, decimal,
float, real, money y smallmoney.
Estos operadores son :
+     Suma.
-     Resta.
/     División.
*     Multiplicación.
%     Módulo.
M.C. Daniel Esparza Soto                   5
Funciones

Existen los siguientes tipos de funciones:
1.- Funciones matemáticas.
2.- Funciones para manejo de cadena de
caracteres.
3.- Funciones manejo de fechas.

Su sintaxis es:

SELECT Nombrefuncion(parametros)

M.C. Daniel Esparza Soto                     6
1.- Funciones Matemáticas

      ABS(numeric_expr )
      CEILING(numeric_expr )     FLOOR(numeric_expr )
      EXP(float_expr )
      LOG10(float_expr )         LOG(float_expr )
      POWER(numeric_expr,y )     SQRT(float_expr )
      RAND([seed] )
      ROUND(numeric_expr,len )
      SIGN(numeric_expr )




M.C. Daniel Esparza Soto                                7
2.- Funciones de manejo de cadena de
caracteres
+(expression, expression)
SUBSTRING(expression, start, length)           RIGHT(char_expr, integer_expr)
ASCII(char_expr)                               CHAR(integer_expr)
STR(float_expr[,length[,decimal]])
SPACE(integer_expr)
DIFFERENCE(char_expr1, char_exr2)
LOWER(char_expr)                               UPPER(char_expr)
LTRIM(char_expr)                               RTRIM(char_expr)
PATINDEX(`%pattern%', expression)              CHARINDEX(pattern, expression)
REPLICATE(char_expr, integer_expr)
REVERSE(char_expr)
SOUNDEX(char_expr)
STUFF(char_expr1, start, length, char_expr2)
LEN(Char_exp)




M.C. Daniel Esparza Soto                                                        8
3.- Funciones para manejo de fechas

      DATEADD( datepart , numero , Fecha )
      DATEDIFF( datepart , Fecha1 , Fecha2 )
      DATENAME( datepart , Fecha )
      DATEPART( datepart , Fecha )
      DAY( Fecha )
      MONTH( Fecha )
      YEAR( Fecha )
      GETDATE()
      GETUTCDATE()
M.C. Daniel Esparza Soto                       9
3.- Funciones para manejo de fechas

          Datepart         Abreviación   Valor
          day              dd            ene-31
          day of year      dy            1-366
          hour             hh            0-23
          millisecond      ms            0-999
          minute           mi            0-59
          month            mm            01-dic
          quarter          qq            1-4
          second           ss            0-59
          week             wk            0-51
          weekday          dw            1-7
          year             yy            1753-9999



M.C. Daniel Esparza Soto                             10
Operadores de comparación

Se pueden implementar condiciones de
búsqueda utilizando los siguientes operadores de
comparación. Se pueden seleccionar renglones
comparando los valores de una columna contra
un valor o una expresión.
Las expresiones pueden contener constantes,
nombres de columnas, funciones o
subconsultas.
SELECT column_list
FROM table_list
WHERE nombre_columna OperadorComparacion expression

M.C. Daniel Esparza Soto                          11
Operadores de comparación

                           Operadores Description
                               =      igual
                               >      mayor que
                               <      menor que
                               >=     mayor o igual que
                               <=     menor o igual que
                               <>     no igual
                               !=     no igual
                               !>     no mas grande que
                               !<     no menor que
                               ()     orden de precedencia
M.C. Daniel Esparza Soto                                     12
Rangos

Se pueden obtener renglones en un rango de
valores usando la palabra reservada BETWEEN.
Se recomienda su uso para tipos de datos
numéricos y de fecha.

SELECT column_list FROM table_list
WHERE
nombre_columna [NOT] BETWEEN expression
AND expression



M.C. Daniel Esparza Soto                   13
Lista

Se pueden obtener registros que coincidan en una
lista de valores usando la instrucción IN. Se
recomienda para cualquier tipo de datos.

SELECT column_list
FROM table_list
WHERE [NOT] nombre_columna[NOT] IN (Lista_Valores)




 M.C. Daniel Esparza Soto                        14
Manejo de Cadena de caracteres.

Se pueden obtener registros basados en una
porción de una cadena de carateres usando la
palabra reservada LIKE. Es utilizada en los tipos
de datos char, varchar, text, datetime, and
smalldatetime. Se pueden utilizar caracteres
comodines para formar una expresión regular.

SELECT column_list
FROM table_list
WHERE nombre_columna[NOT] LIKE ‘string'


M.C. Daniel Esparza Soto                        15
Manejo de Cadena de caracteres.

Comodines para el manejo de cadena de
caracteres :
%    una cadena con cero o más caracteres.
_    Un solo caracter.
[] Un caracter en un rango en específico
[^] Un caracter que no este contenido en un
rango en específico.




M.C. Daniel Esparza Soto                  16
Usando multiples criterios de búsqueda

Hasta el momento se han hecho criterios de
selección basados en valores específicos,
rangos, listas , comparación de cadenas y
valores desconocidos, a continuación se usarán
multiples criterios de búsqueda usando los
operadores lógicos AND, OR, and NOT.
Usando los peradores AND and OR podemos
juntar dos o más expresiones.
SELECT column_list
FROM table_list
WHERE [NOT] expression {AND|OR} [NOT]
expression

M.C. Daniel Esparza Soto                     17
Valores desconocidos

Un valor desconocido es cuando el campo tiene
la propiedad NULL y al insertarse valores se
pueden omitir datos para ese campo. No es lo
mismo que espacio en blanco con longitud cero
para tipos de datos char o valores 0 para valores
numéricos.

SELECT column_list
FROM table_list
WHERE column_name IS [NOT] NULL

M.C. Daniel Esparza Soto                        18
Ordenando datos

Se pueden ordenar los datos de resultados
usando la clausula ORDER BY en la sentencia
SELECT.
SELECT column_list
FROM table_list
[ORDER BY nom_columna|num_lista [ASC|DESC]   ]




M.C. Daniel Esparza Soto                         19
Sentencia TOP

Esta sentencia regresa los primeros n elementos
de un conjunto de resultados. Su sintaxis es:

SELECT TOP n lista_Columnas FROM
Nombre_tabla




M.C. Daniel Esparza Soto                      20
Funciones de agregado

Las funciones de agregado puede retornar
valores sumatorios de un tabla completa o de un
grupo de registros de una tabla. Las funciones de
agregado son usadas generalmente con la
cláusula GROUP BY y la cláusula HAVING en el
listado de columnas de la sentencia select.




M.C. Daniel Esparza Soto                        21
Funciones de agregado

  Función                                            Resultado
  AVG([ALL | DISTINCT] column_name )                 Promedio del valor proporcionado
  COUNT(*)                                           cuenta el numero de registros
  COUNT([ALL         |     DISTINCT] column_name )   cuenta todos los registros distintos
  MAX(column_name )                                  Obtiene el valor máximo del registro.
  MIN(column_name )                                  Obtienetodos o mínimo del registro.distintos
                                                     suma el valor nada mas los
  SUM([ALL       |       DISTINCT] column_name )     valores del registro proporcionado.
                                                     Regresa los     n primeros      valores   del
  TOP n [ PORCENTAJE ]                               resultado.




M.C. Daniel Esparza Soto                                                                            22
Cláusula GROUP BY y HAVING

La cláusula GROUP BY agrupa datos que
satisfacen los criterios clásula WHERE para ser
devueltos en una sola fila en un valor de
resumen. La cláusula HAVING establece los
criterios que determinan qué filas devolverá la
cláusula GROUP BY.

SELECT column_list
FROM table_list
WHERE search_criteria
[GROUP BY [ALL] non_aggregate_expression(s)
[HAVING] search_criteria]
M.C. Daniel Esparza Soto                      23
Correlación de datos

La correlación de datos es la combinación para recuperar
datos de dos o más tablas, hasta este momento se han
hecho consultas sobre una sola tabla. Los resultados
aparecerán en una sola tabla con columnas de todas las
tablas especificadas en la lista de columnas de la
sentecia SELECT yque satisfagan el criterio de
búsqueda.

Existen los siguientes tipos de combinaciones (JOIN):
1.Cruzadas (Cross join).
2.Internas (Inner Join).
3.Externas (Outer Join).
4.Autocombinaciones (Self join).

M.C. Daniel Esparza Soto                                24
1.- Combinaciones cruzadas

Es una consulta donde intervienen 2 o mas tablas y tiene
la característica de no contar con condiciones de
combinación, produciendo un conjunto de resultados
donde el numero de columnas es igual a la suma de
columnas de las tablas que intervienen, y el numero de
renglones es igual a la multiplicación de de los renglones
de ambas columnas:

Sintaxis ANSI:
Select * from tabla1 cross join tabla2

Sintaxis Transact-SQL:
Select * from tabla1, tabla2

M.C. Daniel Esparza Soto                                 25
2.- Combinación interna

Las combinaciones conectan dos tablas con
base en una condición de combinación
que da por resultado una nueva tabla con las
filas que satisfacen dicha condición. Las
combinaciones internas ofrecen información
cuando se encuentran en ambas tablas
información equivalente.
Los tipos más comunes son:
1.- Las combinaciones equivalentes
2.- Las combinaciones naturales.

M.C. Daniel Esparza Soto                       26
2.- Combinación interna

SQL Server join sintaxis:
SELECT *
FROM table_name1 T1 , table_name2 T2
Where t1.columnaA = t2.columnaB


ANSI join sintaxis:
SELECT *
FROM table_name1 T1
INNER JOIN table_name2 T2
ON t1.columnaA = t2.columnaB

M.C. Daniel Esparza Soto               27
3.- Combinaciones externas (outer join)

Son combinaciones de dos tablas donde se
muestran todos los registros de una tabla aunque
no exista ningún registro coincidente en la otra
tabla.
La diferencia con una combinación interna es
que en la combinación interna el registro debe
existir en ambas tablas para mostrarse en el
conjunto de resultados, cosa que no sucede con
la combinación externa, ya que esa muestra los
registros aunque no exista un registro
coincidente en la otra tabla.
M.C. Daniel Esparza Soto                       28
3.- Combinación externa ( outer join)

Existen 3 tipos de combinaciones externas:
1.- Left outer join :
Muestra todos los registros de la tabla que se
encuentra a la izquierda de la consulta aunque
no tenga registros en la tabla de la derecha.
2.- Right outer join :
Muestra todos los registros de la tabla que se
encuentra a la derecha de la consulta aunque no
tenga registros en la tabla de la izquierda.
3.- Full outer join :
Muestra todos los registros de ambas tablas
aunque no haya registros que coincidan.
M.C. Daniel Esparza Soto                          29
Subconsultas




M.C. Daniel Esparza Soto   30

Más contenido relacionado

PDF
Guia de ejercicio sql
PPT
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
PPT
Unidad v integridad relacional
PPT
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
PDF
Ejemplo ddl dml
PPT
Unidad 6 Lenguaje Sql 2
PDF
Operaciones basicas de sql
PPTX
SQL: DDL, DML y SQL
Guia de ejercicio sql
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad v integridad relacional
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Ejemplo ddl dml
Unidad 6 Lenguaje Sql 2
Operaciones basicas de sql
SQL: DDL, DML y SQL

La actualidad más candente (19)

PPT
SQL-DDL
PPT
Unidad 6 Lenguaje Sql
DOCX
SENTENCIAS DE SQL SERVER
PDF
Introducción a sql server
PPT
CreacióN De Objetos En MySQL
PPTX
Sql básico - compendio
PDF
DDL oracle - base de datos
PPT
DDL - Lenguaje de definición de datos
PDF
Objeto De Aprendizaje
PDF
Comandos del-ddl-y-del-dml-liz
PPTX
Comandos utilizados en sql
PPT
Sql 2010
PPT
Objeto De Aprendizaje
PDF
Consultas básicas en sql server
DOCX
Curso oracle por temas
PPTX
Sql DML Lenguaje de manipulación de datos
PPT
Consultas en sql básico
PPTX
PDF
Práctica sql server [fbdr]
SQL-DDL
Unidad 6 Lenguaje Sql
SENTENCIAS DE SQL SERVER
Introducción a sql server
CreacióN De Objetos En MySQL
Sql básico - compendio
DDL oracle - base de datos
DDL - Lenguaje de definición de datos
Objeto De Aprendizaje
Comandos del-ddl-y-del-dml-liz
Comandos utilizados en sql
Sql 2010
Objeto De Aprendizaje
Consultas básicas en sql server
Curso oracle por temas
Sql DML Lenguaje de manipulación de datos
Consultas en sql básico
Práctica sql server [fbdr]
Publicidad

Similar a Como realizar consultas en sql (Unidad 3) (20)

PPT
PPTX
Sentencia select
PDF
Manual basico del_lenguaje_sql
PDF
SQL(DQL).pdf
PPT
Presentacio Sql 1
DOCX
Cheat_MySQL.docx
PPTX
02_Administracion_Base_Datos_SQL-ytoad.pptx
PPTX
Consultas
PPT
Fundamentos sql
PDF
Breve resumen sobre consultas básicas en MySQL
DOCX
Consultas de resumen
PPT
Comandos SQL
PPTX
PDF
Consultas-SQL.pdf
PDF
Consultas sql
PDF
Combinaciones avanzadas
DOCX
PPT
Bases de Datos Cap-V SQL: Manipulación de datos
PDF
Guía 02. Consultas MySQL sobre una tabla - José J Sánchez H
Sentencia select
Manual basico del_lenguaje_sql
SQL(DQL).pdf
Presentacio Sql 1
Cheat_MySQL.docx
02_Administracion_Base_Datos_SQL-ytoad.pptx
Consultas
Fundamentos sql
Breve resumen sobre consultas básicas en MySQL
Consultas de resumen
Comandos SQL
Consultas-SQL.pdf
Consultas sql
Combinaciones avanzadas
Bases de Datos Cap-V SQL: Manipulación de datos
Guía 02. Consultas MySQL sobre una tabla - José J Sánchez H
Publicidad

Más de Orlando Verdugo (13)

PDF
Administración de proyectos de tecnologías de información
PPTX
Auditoria Informática - Exposición de Resultados
PPT
Diseño de base de datos relacionales (Unidad 2)
PPT
Introducción a las bases de datos (unidad 1)
PPTX
Vectores, array y sus métodos
PPT
PPT
PPTX
Internet 2
PDF
Aspectos legales cloud_computing
PDF
Cloud computing
PDF
1 estudio-cloud_computing_retos_y_oportunidades_vdef
PPTX
Gestion de redes
PPTX
Combinatoria
Administración de proyectos de tecnologías de información
Auditoria Informática - Exposición de Resultados
Diseño de base de datos relacionales (Unidad 2)
Introducción a las bases de datos (unidad 1)
Vectores, array y sus métodos
Internet 2
Aspectos legales cloud_computing
Cloud computing
1 estudio-cloud_computing_retos_y_oportunidades_vdef
Gestion de redes
Combinatoria

Como realizar consultas en sql (Unidad 3)

  • 1. 4.- Sentencia SELECT simple Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto recordset. Hay tres componentes básicos : SELECT column_list FROM table_list [WHERE search_criteria] M.C. Daniel Esparza Soto 1
  • 2. 4.- Sentencia SELECT SELECT [ALL | DISTINCT] column_list [INTO [nombre_tabla_nueva]] [FROM{table_name | view_name}[(pista_optimización)] [[,{table_name2| view_name2}[(pista_optimización)] [...,{table_name16|view_name16}[(pista_optimización)]]] [WHERE clause] [GROUP BY clause] [HAVING clause] [ORDER BY clause] [COMPUTE clause] [FOR BROWSE] M.C. Daniel Esparza Soto 2
  • 3. 4.- Sentencia SELECT Ejemplo básico: con el comodín * muestra todas las columnas de una tabla: SELECT * FROM employee Se pueden listar algunas columnas de la tabla: SELECT employeeid , firstname FROM employee M.C. Daniel Esparza Soto 3
  • 4. Cambiando el encabezado de las columnas de resultados Se pueden utilizar alias en los nombres de columnas para que sean los nombres mas familiares. SELECT column_heading = column_name FROM table_name o SELECT column_name [AS] column_heading FROM table_name Ejemplo: SELECT Clave = employeeid , firstname as Nombre FROM employee M.C. Daniel Esparza Soto 4
  • 5. Operadores aritméticos Se pueden usar operadores aritméticos en los siguientes tipos de datos: int, smallint, tinyint, numeric, decimal, float, real, money y smallmoney. Estos operadores son : + Suma. - Resta. / División. * Multiplicación. % Módulo. M.C. Daniel Esparza Soto 5
  • 6. Funciones Existen los siguientes tipos de funciones: 1.- Funciones matemáticas. 2.- Funciones para manejo de cadena de caracteres. 3.- Funciones manejo de fechas. Su sintaxis es: SELECT Nombrefuncion(parametros) M.C. Daniel Esparza Soto 6
  • 7. 1.- Funciones Matemáticas ABS(numeric_expr ) CEILING(numeric_expr ) FLOOR(numeric_expr ) EXP(float_expr ) LOG10(float_expr ) LOG(float_expr ) POWER(numeric_expr,y ) SQRT(float_expr ) RAND([seed] ) ROUND(numeric_expr,len ) SIGN(numeric_expr ) M.C. Daniel Esparza Soto 7
  • 8. 2.- Funciones de manejo de cadena de caracteres +(expression, expression) SUBSTRING(expression, start, length) RIGHT(char_expr, integer_expr) ASCII(char_expr) CHAR(integer_expr) STR(float_expr[,length[,decimal]]) SPACE(integer_expr) DIFFERENCE(char_expr1, char_exr2) LOWER(char_expr) UPPER(char_expr) LTRIM(char_expr) RTRIM(char_expr) PATINDEX(`%pattern%', expression) CHARINDEX(pattern, expression) REPLICATE(char_expr, integer_expr) REVERSE(char_expr) SOUNDEX(char_expr) STUFF(char_expr1, start, length, char_expr2) LEN(Char_exp) M.C. Daniel Esparza Soto 8
  • 9. 3.- Funciones para manejo de fechas DATEADD( datepart , numero , Fecha ) DATEDIFF( datepart , Fecha1 , Fecha2 ) DATENAME( datepart , Fecha ) DATEPART( datepart , Fecha ) DAY( Fecha ) MONTH( Fecha ) YEAR( Fecha ) GETDATE() GETUTCDATE() M.C. Daniel Esparza Soto 9
  • 10. 3.- Funciones para manejo de fechas Datepart Abreviación Valor day dd ene-31 day of year dy 1-366 hour hh 0-23 millisecond ms 0-999 minute mi 0-59 month mm 01-dic quarter qq 1-4 second ss 0-59 week wk 0-51 weekday dw 1-7 year yy 1753-9999 M.C. Daniel Esparza Soto 10
  • 11. Operadores de comparación Se pueden implementar condiciones de búsqueda utilizando los siguientes operadores de comparación. Se pueden seleccionar renglones comparando los valores de una columna contra un valor o una expresión. Las expresiones pueden contener constantes, nombres de columnas, funciones o subconsultas. SELECT column_list FROM table_list WHERE nombre_columna OperadorComparacion expression M.C. Daniel Esparza Soto 11
  • 12. Operadores de comparación Operadores Description = igual > mayor que < menor que >= mayor o igual que <= menor o igual que <> no igual != no igual !> no mas grande que !< no menor que () orden de precedencia M.C. Daniel Esparza Soto 12
  • 13. Rangos Se pueden obtener renglones en un rango de valores usando la palabra reservada BETWEEN. Se recomienda su uso para tipos de datos numéricos y de fecha. SELECT column_list FROM table_list WHERE nombre_columna [NOT] BETWEEN expression AND expression M.C. Daniel Esparza Soto 13
  • 14. Lista Se pueden obtener registros que coincidan en una lista de valores usando la instrucción IN. Se recomienda para cualquier tipo de datos. SELECT column_list FROM table_list WHERE [NOT] nombre_columna[NOT] IN (Lista_Valores) M.C. Daniel Esparza Soto 14
  • 15. Manejo de Cadena de caracteres. Se pueden obtener registros basados en una porción de una cadena de carateres usando la palabra reservada LIKE. Es utilizada en los tipos de datos char, varchar, text, datetime, and smalldatetime. Se pueden utilizar caracteres comodines para formar una expresión regular. SELECT column_list FROM table_list WHERE nombre_columna[NOT] LIKE ‘string' M.C. Daniel Esparza Soto 15
  • 16. Manejo de Cadena de caracteres. Comodines para el manejo de cadena de caracteres : % una cadena con cero o más caracteres. _ Un solo caracter. [] Un caracter en un rango en específico [^] Un caracter que no este contenido en un rango en específico. M.C. Daniel Esparza Soto 16
  • 17. Usando multiples criterios de búsqueda Hasta el momento se han hecho criterios de selección basados en valores específicos, rangos, listas , comparación de cadenas y valores desconocidos, a continuación se usarán multiples criterios de búsqueda usando los operadores lógicos AND, OR, and NOT. Usando los peradores AND and OR podemos juntar dos o más expresiones. SELECT column_list FROM table_list WHERE [NOT] expression {AND|OR} [NOT] expression M.C. Daniel Esparza Soto 17
  • 18. Valores desconocidos Un valor desconocido es cuando el campo tiene la propiedad NULL y al insertarse valores se pueden omitir datos para ese campo. No es lo mismo que espacio en blanco con longitud cero para tipos de datos char o valores 0 para valores numéricos. SELECT column_list FROM table_list WHERE column_name IS [NOT] NULL M.C. Daniel Esparza Soto 18
  • 19. Ordenando datos Se pueden ordenar los datos de resultados usando la clausula ORDER BY en la sentencia SELECT. SELECT column_list FROM table_list [ORDER BY nom_columna|num_lista [ASC|DESC] ] M.C. Daniel Esparza Soto 19
  • 20. Sentencia TOP Esta sentencia regresa los primeros n elementos de un conjunto de resultados. Su sintaxis es: SELECT TOP n lista_Columnas FROM Nombre_tabla M.C. Daniel Esparza Soto 20
  • 21. Funciones de agregado Las funciones de agregado puede retornar valores sumatorios de un tabla completa o de un grupo de registros de una tabla. Las funciones de agregado son usadas generalmente con la cláusula GROUP BY y la cláusula HAVING en el listado de columnas de la sentencia select. M.C. Daniel Esparza Soto 21
  • 22. Funciones de agregado Función Resultado AVG([ALL | DISTINCT] column_name ) Promedio del valor proporcionado COUNT(*) cuenta el numero de registros COUNT([ALL | DISTINCT] column_name ) cuenta todos los registros distintos MAX(column_name ) Obtiene el valor máximo del registro. MIN(column_name ) Obtienetodos o mínimo del registro.distintos suma el valor nada mas los SUM([ALL | DISTINCT] column_name ) valores del registro proporcionado. Regresa los n primeros valores del TOP n [ PORCENTAJE ] resultado. M.C. Daniel Esparza Soto 22
  • 23. Cláusula GROUP BY y HAVING La cláusula GROUP BY agrupa datos que satisfacen los criterios clásula WHERE para ser devueltos en una sola fila en un valor de resumen. La cláusula HAVING establece los criterios que determinan qué filas devolverá la cláusula GROUP BY. SELECT column_list FROM table_list WHERE search_criteria [GROUP BY [ALL] non_aggregate_expression(s) [HAVING] search_criteria] M.C. Daniel Esparza Soto 23
  • 24. Correlación de datos La correlación de datos es la combinación para recuperar datos de dos o más tablas, hasta este momento se han hecho consultas sobre una sola tabla. Los resultados aparecerán en una sola tabla con columnas de todas las tablas especificadas en la lista de columnas de la sentecia SELECT yque satisfagan el criterio de búsqueda. Existen los siguientes tipos de combinaciones (JOIN): 1.Cruzadas (Cross join). 2.Internas (Inner Join). 3.Externas (Outer Join). 4.Autocombinaciones (Self join). M.C. Daniel Esparza Soto 24
  • 25. 1.- Combinaciones cruzadas Es una consulta donde intervienen 2 o mas tablas y tiene la característica de no contar con condiciones de combinación, produciendo un conjunto de resultados donde el numero de columnas es igual a la suma de columnas de las tablas que intervienen, y el numero de renglones es igual a la multiplicación de de los renglones de ambas columnas: Sintaxis ANSI: Select * from tabla1 cross join tabla2 Sintaxis Transact-SQL: Select * from tabla1, tabla2 M.C. Daniel Esparza Soto 25
  • 26. 2.- Combinación interna Las combinaciones conectan dos tablas con base en una condición de combinación que da por resultado una nueva tabla con las filas que satisfacen dicha condición. Las combinaciones internas ofrecen información cuando se encuentran en ambas tablas información equivalente. Los tipos más comunes son: 1.- Las combinaciones equivalentes 2.- Las combinaciones naturales. M.C. Daniel Esparza Soto 26
  • 27. 2.- Combinación interna SQL Server join sintaxis: SELECT * FROM table_name1 T1 , table_name2 T2 Where t1.columnaA = t2.columnaB ANSI join sintaxis: SELECT * FROM table_name1 T1 INNER JOIN table_name2 T2 ON t1.columnaA = t2.columnaB M.C. Daniel Esparza Soto 27
  • 28. 3.- Combinaciones externas (outer join) Son combinaciones de dos tablas donde se muestran todos los registros de una tabla aunque no exista ningún registro coincidente en la otra tabla. La diferencia con una combinación interna es que en la combinación interna el registro debe existir en ambas tablas para mostrarse en el conjunto de resultados, cosa que no sucede con la combinación externa, ya que esa muestra los registros aunque no exista un registro coincidente en la otra tabla. M.C. Daniel Esparza Soto 28
  • 29. 3.- Combinación externa ( outer join) Existen 3 tipos de combinaciones externas: 1.- Left outer join : Muestra todos los registros de la tabla que se encuentra a la izquierda de la consulta aunque no tenga registros en la tabla de la derecha. 2.- Right outer join : Muestra todos los registros de la tabla que se encuentra a la derecha de la consulta aunque no tenga registros en la tabla de la izquierda. 3.- Full outer join : Muestra todos los registros de ambas tablas aunque no haya registros que coincidan. M.C. Daniel Esparza Soto 29