SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
Lenguaje deConsulta
EstructuradoSQL
Parte 1
SQL –
Introducción
Structured Query Language (Lenguaje de
Consulta Estructurado)
Es el lenguaje más usado para bases de datos
relacionales.
Lenguaje declarativo de alto nivel.
Desarrollado por IBM (1974-1977).
Se convirtió en un standard definido por :
ANSI (American National Standards Institute) e
ISO (International Standards Organization)
C. Román 2
SQL -
Introducción
Las Sentencias del SQL se dividen en:
Sentencias DDL (Data Definition Language):
Permiten crear/modificar/borrar estructuras de
datos.
Sentencias DML (Data Manipulation
Languaje): para manipular datos
También provee sentencias para:
Definir permisos (control de acceso de usuarios)
Manejo de transacciones
Otros
C. Román 3
SQL -
Introducción
Términos a utilizar
tabla → relación
fila → tupla
columna → atributo
C. Román 4
Tipos de datos
SQLANSI/ISO
Integer: Números enteros.
Float: Números reales, en coma flotante.
Char: Cadenas de texto de longitud fija.
Varchar: Cadena de texto de longitud variable.
Date: fecha que contiene el año (de cuatro
cifras), el mes y el día.
Time: La hora del día en horas, minutos y
segundos (el valor predeterminado es 0).
Datetime: Combinación de Date yTime.
C. Román 5
Sentencias DML
C. Román 6
SELECT
Recupera datos (filas, columnas) de la base de
datos y los devuelve en forma de resultados de
la consulta, su sintaxis es:
SELECT [ALL/DISTINCT] lista_select
FROM tabla [alias tabla] [,...]
[WHERE condicion]
[GROUP BY lista_columna]
[HAVING condicion]
[ORDER BY nombre_columna [ASC/DESC] [,...]
C. Román 7
SELECT
FROM
La cláusula SELECT lista los datos a recuperar.
La cláusula FROM lista las tablas que contienen
los datos a recuperar.
Ejemplo:
-- Lista los códigos y nombres de la tabla
empleado
SELECT empCod, empNombre
FROM empleado
C. Román 8
Columnas
calculadas
Para calcular columnas se definen expresiones
aritméticas, que incluyan: sumas, restas,
multiplicaciones, divisiones, paréntesis.
Ejemplo:
--Calcula horas trabajadas * pago por hora
SELECT empApPat, empHorasTrabajo,
(empHorasTrabajo*empPagoHora)
FROM empleado
C. Román 9
SELECT *
•Se utiliza el * para acceder a todas
las columnas.
• Ejemplo:
-- Lista todos los datos de empleado
SELECT *
FROM empleado
C. Román 10
DISTINCT
•DISTINCT se utiliza para eliminar filas
duplicadas de los resultados de la consulta.
• Ejemplo:
-- Lista las zonas de empleados, sin incluir zonas
repetidas
SELECT DISTINCT empZona
FROM empleado
C. Román 11
WHERE
La cláusula WHERE indica que se consideren
solo las filas que cumplen con una condición de
búsqueda.
Ejemplo:
-- Lista los datos de empleados de la Sucursal 1
SELECT *
FROM empleado
WHERE empSucursal=1
C. Román 12
WHERE
Operadores de
comparación
Con la cláusula WHERE se utilizan operadores
de comparación que comparan los valores de
dos expresiones.
Los operadores son = , <, >, <= , >=, <>
(diferente)
También se usan AND (Y), OR (O), NOT (NO)
para condiciones de búsqueda compuestas.
Ejemplos:
-- Lista los datos de empleados con un
descuento mayor al 10% del sueldo
SELECT *
FROM empleado
WHERE empDescuento>(empSueldo* 0.10)
C. Román 13
WHERE
Operadores de
comparación
Ejemplos:
-- Lista los datos de empleados contratados antes
del 10/1/2017
SELECT *
FROM empleado
WHERE empContrato< ‘10/1/2017’
-- Lista los datos de empleados con el apellido Perez
y que tengan mas de 5 años de antiguedad
SELECT *
FROM empleado
WHERE empApPaterno=‘Perez’AND
empAntiguedad>5
C. Román 14
BETWEEN
Comprueba si un valor de datos se encuentra
entre dos valores especificados.
Ejemplo:
--Lista los datos de empleados con un sueldo
entre 4000 y 7000
SELECT *
FROM empleado
WHERE empSalario BETWEEN 4000 AND 7000
C. Román 15
IN
Comprueba si un valor de datos se encuentra
entre los valores de un conjunto.
Ejemplo:
--Lista los datos de empleados de las sucursales
1, 2 y 5
SELECT *
FROM empleado
WHERE empSucursal IN (1, 2, 5)
C. Román 16
LIKE
Comprueba si una columna de texto se
corresponde con un cierto texto en particular.
Se utilizan los caracteres comodines:
% para la correspondencia con cualquier secuencia
de cero o más caracteres.
_ para la correspondencia con un carácter.
Ejemplo:
--Lista los datos de empleados cuyo apellido
comience con Pe
SELECT *
FROM empleado
WHERE empApPaterno LIKE ‘Pe%’
C. Román 17
IS NULL
IS NOT NULL
La prueba de valor nulo IS NULL verifica que se
tenga el valor nulo (NULL).
La prueba IS NOT NULL verifica que no se
tenga el valor nulo.
Ejemplo:
--Lista los datos de empleados que no tienen
teléfonos registrados
SELECT *
FROM empleado
WHERE empTelefono IS NULL
C. Román 18
Condiciones de
búsqueda
compuestas
Se pueden combinar condiciones de
búsqueda simple para formar otras más
complejas, utilizando OR, AND, NOT.
OR se utiliza para combinar condiciones de
búsqueda cuando por lo menos una deba ser
verdadera.
AND se utiliza para combinar condiciones de
búsqueda cuando todas deban ser
verdaderas.
NOT se utiliza cuando la condición de
búsqueda deba ser falsa.
C. Román 19
Condiciones de
búsqueda
compuestas
Se utilizan paréntesis para agrupar los criterios
de búsqueda.
Ejemplo:
SELECT *
FROM ventas
WHERE (nroOficina IN (100,102,105))
OR (nombreDirector IS NULL AND salario<8000)
C. Román 20
CláusulaORDER
BY
Ordena los resultados de una consulta por una
o varias columnas, para varias columnas la
primera es la clave de ordenación mayor, y las
siguientes serán de ordenación menor.
Por defecto la ordenación es ascendente, para
la ordenación descendente se utiliza la cláusula
DESC.
Ejemplo
SELECT *
FROM ventas
ORDER BY departamento, ciudad DESC
C. Román 21
Consultas con
predicado
ALL Devuelve todos los campos de la tabla.
TOP Devuelve un determinado número de
registros de la tabla.
DISTINCT Omite los registros cuyos campos
seleccionados coincidan totalmente.
DISTINCTROW Omite los registros
duplicados en la totalidad del registro y no
sólo en los campos seleccionados.
Ejemplo
SELECTTOP 10 *
FROM ventas
C. Román 22
Alias
Permite asignar un nombre a alguna columna
determinada del resultado de una consulta.
Se utiliza la palabra reservada AS.
Ejemplo
SELECT nomVen AS nombreVendedor
FROM ventas
C. Román 23
Consultas
sumarias
Se pueden realizar cálculos de datos mediante
las funciones de columna:
SUM() calcula la suma
AVG() calcula el promedio
MIN() calcula el mínimo
MAX() calcula el máximo
COUNT() cuenta el número de valores
COUNT(*) cuenta las filas de resultados
C. Román 24
Función SUM
Devuelve la suma del conjunto de valores
contenido en un campo específico de una
consulta. Su sintaxis es:
SELECT SUM (EXPR) FROMTABLA
Ejemplo
SELECT SUM(importeVenta)
FROM ventas
C. Román 25
AVG
Calcula el promedio (media aritmética) de un
conjunto de valores contenido en un campo
especificado de una consulta. Su sintaxis es la
siguiente:
SELECT AVG(EXPR) FROMTABLA
Ejemplo
SELECT AVG(importeVenta)
FROM ventas
C. Román 26
MIN, MAX
Devuelven el mínimo o el máximo de un
conjunto de valores CONTENIDO en un campo
especifico de una consulta. Su sintaxis es la
siguiente:
SELECT MIN(EXPR) FROMTABLA
SELECT MAX(EXPR) FROMTABLA
Ejemplo
SELECT MAX(importeVenta),
MIN(importeVenta)
FROM ventas
C. Román 27
COUNT
Calcula el número de registros devueltos por
una consulta. Su sintaxis es la siguiente:
SELECT COUNT(EXPR) FROMTABLA
Ejemplo
SELECT COUNT(importeVenta)
FROM ventas
WHERE importeVenta>10000
C. Román 28
COUNT(*)
Cuenta las filas resultantes de una consulta.
Ejemplo
SELECT COUNT(*)
FROM ventas
WHERE importeVenta>10000
C. Román 29
CláusulaGROUP
BY
Agrupa los registros con valores
idénticos, en la lista de campos
especificados, en un único registro.
Su sintaxis es la siguiente:
SELECT campos
FROM tabla
WHERE criterio
GROUP BY campos del grupo
C. Román 30
CláusulaGROUP
BY
Ejemplo
SELECT nombreCliente, SUM(importeVenta)
FROM ventas
GROUP BY nombreCliente
C. Román 31
Cláusula
HAVING
Una vez que los registros se han
agrupado utilizando GROUP BY,
HAVING determina cuáles de ellos se
van a mostrar. Su sintaxis es la
siguiente:
SELECT campos
FROM tabla
WHERE criterio
GROUP BY campos del grupo
HAVING condición
C. Román 32
Cláusula
HAVING
Ejemplo
SELECT nombreCliente, SUM(importeVenta)
FROM ventas
GROUP BY nombreCliente
HAVING AVG(importeVenta)>10000
C. Román 33
UNION
Combina los resultados de
dos o mas consultas en una
tabla de resultados, en la
que se tendrán las tuplas
resultantes de las consultas
(una o ambas).
Para aplicar la unión ambas
tablas deben contener el
mismo número de
columnas. Los tipos de
datos en las columnas
correspondientes deben
coincidir en ambas tablas.
Las tablas no pueden estar
ordenadas con ORDER BY,
pero si el resultado.
C. Román 34
Ejemplo.
SELECT idFabricante, idProducto
FROM productos
WHERE precio>2000
UNION
SELECT fabricante, producto
FROM pedidos
WHERE importe>3000
ORDER BY 1
C. Román 35
INTERSECT
Combina los resultados de
dos o mas consultas en una
tabla de resultados, en la
que se tendrán las tuplas
que coincidan en ambas
consultas.
Para aplicar la intersección
ambas tablas deben
contener el mismo número
de columnas. Los tipos de
datos en las columnas
correspondientes deben
coincidir en ambas tablas.
Las tablas no pueden estar
ordenadas con ORDER BY,
pero si el resultado.
C. Román 36
EXCEPT
Combina los resultados de
dos o mas consultas en una
tabla de resultados, en la
que se tendrán las tuplas
resultantes de una consulta
que no aparezcan en la
otra consulta.
Para aplicar except ambas
tablas deben contener el
mismo número de
columnas. Los tipos de
datos en las columnas
correspondientes deben
coincidir en ambas tablas.
Las tablas no pueden estar
ordenadas con ORDER BY,
pero si el resultado.
C. Román 37
Consultas en varias tablas
Reunión
(combinación)
interna
INNER JOIN
La cláusula INNER combina registros
de dos tablas siempre que haya
concordancia de valores en un
campo común. Su sintaxis es la
siguiente:
SELECT campos
FROM tabla1
INNER JOIN tabla2
ON tabla1.campo1 op_comp tabla2.campo2
C. Román 39
Reunión interna
de varias tablas
Se debe especificar una condición de reunión
para cada par de tablas.
Ejemplo
SELECT ventas.monto, ventas.ciudad, cliente.
nombre, vendedor. nombre
FROM ventas INNER JOIN cliente
ON ventas.idVendedor=cliente.idVendedor
INNER JOIN vendedor
ON cliente.idVendedor=vendedor.idVendedor
WHERE ventas.ciudad=‘La Paz’
C. Román 40
Reunión externa
izquierda
LEFTJOIN
Operación de reunión que conecta todas las
relaciones de la tabla izquierda con los datos de
la tabla derecha.
Ejemplo.
SELECT codProd, codVend, nombreVend
FROM vendedor LEFT JOIN producto
ON vendedor.codVend=producto.codVend
C. Román 41
Reunión externa
derecha
RIGHT JOIN
Operación de reunión que conecta todas las
relaciones de la tabla derecha con los datos de
la tabla izquierda.
Ejemplo.
SELECT codProd, codVend, nombreVend
FROM vendedor LEFT JOIN producto
ON vendedor.codVend=producto.codVend
C. Román 42

Más contenido relacionado

Similar a SQL Parte 1.pdf (20)

Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizaje
 
Tutorial sql
Tutorial sqlTutorial sql
Tutorial sql
 
Sql
SqlSql
Sql
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
Sql b
Sql bSql b
Sql b
 
SQL-b.pdf
SQL-b.pdfSQL-b.pdf
SQL-b.pdf
 
Resumen sql-oracle
Resumen sql-oracleResumen sql-oracle
Resumen sql-oracle
 
Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizaje
 
Manual sql
Manual sqlManual sql
Manual sql
 
Funciones bd excelaadas
Funciones bd excelaadasFunciones bd excelaadas
Funciones bd excelaadas
 
Tutorial SQL
Tutorial SQLTutorial SQL
Tutorial SQL
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
 
Precentacion de sql visual
Precentacion de sql visualPrecentacion de sql visual
Precentacion de sql visual
 
Ti. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.ConsultasTi. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.Consultas
 
Anon manual sql
Anon   manual sqlAnon   manual sql
Anon manual sql
 
8 Guía_Fundamentos de Base de Datos (2).docx
8 Guía_Fundamentos de Base de Datos (2).docx8 Guía_Fundamentos de Base de Datos (2).docx
8 Guía_Fundamentos de Base de Datos (2).docx
 
Sql
SqlSql
Sql
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
 
Fundamentos sql
Fundamentos sqlFundamentos sql
Fundamentos sql
 
Informatica
InformaticaInformatica
Informatica
 

Más de davidvargas666 (9)

SQL Parte 1.pdf
SQL Parte 1.pdfSQL Parte 1.pdf
SQL Parte 1.pdf
 
FSI-BD-T7-EjerciciosSQLResueltos.pdf
FSI-BD-T7-EjerciciosSQLResueltos.pdfFSI-BD-T7-EjerciciosSQLResueltos.pdf
FSI-BD-T7-EjerciciosSQLResueltos.pdf
 
Tema 1 Parte 5.pdf
Tema 1 Parte 5.pdfTema 1 Parte 5.pdf
Tema 1 Parte 5.pdf
 
Tema 1 Parte 3.pdf
Tema 1 Parte 3.pdfTema 1 Parte 3.pdf
Tema 1 Parte 3.pdf
 
Tema 1 Parte 1.pdf
Tema 1 Parte 1.pdfTema 1 Parte 1.pdf
Tema 1 Parte 1.pdf
 
Practica grafica metodos numericos
Practica grafica metodos numericosPractica grafica metodos numericos
Practica grafica metodos numericos
 
Estadistica ii practica 1 introduccion probabilidad (parte 1)
Estadistica ii practica 1 introduccion probabilidad (parte 1)Estadistica ii practica 1 introduccion probabilidad (parte 1)
Estadistica ii practica 1 introduccion probabilidad (parte 1)
 
Practica n2
Practica n2Practica n2
Practica n2
 
Electrolisis soluciones
Electrolisis solucionesElectrolisis soluciones
Electrolisis soluciones
 

Último

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdfLas Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
Demetrio Ccesa Rayme
 

Último (20)

Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
12 - Planetas Extrasolares - Seminario de las Aulas de la Experiencia UPV/EHU
12 - Planetas Extrasolares - Seminario de las Aulas de la Experiencia UPV/EHU12 - Planetas Extrasolares - Seminario de las Aulas de la Experiencia UPV/EHU
12 - Planetas Extrasolares - Seminario de las Aulas de la Experiencia UPV/EHU
 
UNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto gradoUNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto grado
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLAACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
 
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de NavarraSanta Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
 
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdfTÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdfFICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
 
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
POEMAS ILUSTRADOS DE LUÍSA VILLALTA. Elaborados polos alumnos de 4º PDC do IE...
 
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docxMINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdfLas Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
 
sesion de aprendizaje 1 SEC. 13- 17 MAYO 2024 comunicación.pdf
sesion de aprendizaje 1 SEC. 13- 17  MAYO  2024 comunicación.pdfsesion de aprendizaje 1 SEC. 13- 17  MAYO  2024 comunicación.pdf
sesion de aprendizaje 1 SEC. 13- 17 MAYO 2024 comunicación.pdf
 

SQL Parte 1.pdf

  • 2. SQL – Introducción Structured Query Language (Lenguaje de Consulta Estructurado) Es el lenguaje más usado para bases de datos relacionales. Lenguaje declarativo de alto nivel. Desarrollado por IBM (1974-1977). Se convirtió en un standard definido por : ANSI (American National Standards Institute) e ISO (International Standards Organization) C. Román 2
  • 3. SQL - Introducción Las Sentencias del SQL se dividen en: Sentencias DDL (Data Definition Language): Permiten crear/modificar/borrar estructuras de datos. Sentencias DML (Data Manipulation Languaje): para manipular datos También provee sentencias para: Definir permisos (control de acceso de usuarios) Manejo de transacciones Otros C. Román 3
  • 4. SQL - Introducción Términos a utilizar tabla → relación fila → tupla columna → atributo C. Román 4
  • 5. Tipos de datos SQLANSI/ISO Integer: Números enteros. Float: Números reales, en coma flotante. Char: Cadenas de texto de longitud fija. Varchar: Cadena de texto de longitud variable. Date: fecha que contiene el año (de cuatro cifras), el mes y el día. Time: La hora del día en horas, minutos y segundos (el valor predeterminado es 0). Datetime: Combinación de Date yTime. C. Román 5
  • 7. SELECT Recupera datos (filas, columnas) de la base de datos y los devuelve en forma de resultados de la consulta, su sintaxis es: SELECT [ALL/DISTINCT] lista_select FROM tabla [alias tabla] [,...] [WHERE condicion] [GROUP BY lista_columna] [HAVING condicion] [ORDER BY nombre_columna [ASC/DESC] [,...] C. Román 7
  • 8. SELECT FROM La cláusula SELECT lista los datos a recuperar. La cláusula FROM lista las tablas que contienen los datos a recuperar. Ejemplo: -- Lista los códigos y nombres de la tabla empleado SELECT empCod, empNombre FROM empleado C. Román 8
  • 9. Columnas calculadas Para calcular columnas se definen expresiones aritméticas, que incluyan: sumas, restas, multiplicaciones, divisiones, paréntesis. Ejemplo: --Calcula horas trabajadas * pago por hora SELECT empApPat, empHorasTrabajo, (empHorasTrabajo*empPagoHora) FROM empleado C. Román 9
  • 10. SELECT * •Se utiliza el * para acceder a todas las columnas. • Ejemplo: -- Lista todos los datos de empleado SELECT * FROM empleado C. Román 10
  • 11. DISTINCT •DISTINCT se utiliza para eliminar filas duplicadas de los resultados de la consulta. • Ejemplo: -- Lista las zonas de empleados, sin incluir zonas repetidas SELECT DISTINCT empZona FROM empleado C. Román 11
  • 12. WHERE La cláusula WHERE indica que se consideren solo las filas que cumplen con una condición de búsqueda. Ejemplo: -- Lista los datos de empleados de la Sucursal 1 SELECT * FROM empleado WHERE empSucursal=1 C. Román 12
  • 13. WHERE Operadores de comparación Con la cláusula WHERE se utilizan operadores de comparación que comparan los valores de dos expresiones. Los operadores son = , <, >, <= , >=, <> (diferente) También se usan AND (Y), OR (O), NOT (NO) para condiciones de búsqueda compuestas. Ejemplos: -- Lista los datos de empleados con un descuento mayor al 10% del sueldo SELECT * FROM empleado WHERE empDescuento>(empSueldo* 0.10) C. Román 13
  • 14. WHERE Operadores de comparación Ejemplos: -- Lista los datos de empleados contratados antes del 10/1/2017 SELECT * FROM empleado WHERE empContrato< ‘10/1/2017’ -- Lista los datos de empleados con el apellido Perez y que tengan mas de 5 años de antiguedad SELECT * FROM empleado WHERE empApPaterno=‘Perez’AND empAntiguedad>5 C. Román 14
  • 15. BETWEEN Comprueba si un valor de datos se encuentra entre dos valores especificados. Ejemplo: --Lista los datos de empleados con un sueldo entre 4000 y 7000 SELECT * FROM empleado WHERE empSalario BETWEEN 4000 AND 7000 C. Román 15
  • 16. IN Comprueba si un valor de datos se encuentra entre los valores de un conjunto. Ejemplo: --Lista los datos de empleados de las sucursales 1, 2 y 5 SELECT * FROM empleado WHERE empSucursal IN (1, 2, 5) C. Román 16
  • 17. LIKE Comprueba si una columna de texto se corresponde con un cierto texto en particular. Se utilizan los caracteres comodines: % para la correspondencia con cualquier secuencia de cero o más caracteres. _ para la correspondencia con un carácter. Ejemplo: --Lista los datos de empleados cuyo apellido comience con Pe SELECT * FROM empleado WHERE empApPaterno LIKE ‘Pe%’ C. Román 17
  • 18. IS NULL IS NOT NULL La prueba de valor nulo IS NULL verifica que se tenga el valor nulo (NULL). La prueba IS NOT NULL verifica que no se tenga el valor nulo. Ejemplo: --Lista los datos de empleados que no tienen teléfonos registrados SELECT * FROM empleado WHERE empTelefono IS NULL C. Román 18
  • 19. Condiciones de búsqueda compuestas Se pueden combinar condiciones de búsqueda simple para formar otras más complejas, utilizando OR, AND, NOT. OR se utiliza para combinar condiciones de búsqueda cuando por lo menos una deba ser verdadera. AND se utiliza para combinar condiciones de búsqueda cuando todas deban ser verdaderas. NOT se utiliza cuando la condición de búsqueda deba ser falsa. C. Román 19
  • 20. Condiciones de búsqueda compuestas Se utilizan paréntesis para agrupar los criterios de búsqueda. Ejemplo: SELECT * FROM ventas WHERE (nroOficina IN (100,102,105)) OR (nombreDirector IS NULL AND salario<8000) C. Román 20
  • 21. CláusulaORDER BY Ordena los resultados de una consulta por una o varias columnas, para varias columnas la primera es la clave de ordenación mayor, y las siguientes serán de ordenación menor. Por defecto la ordenación es ascendente, para la ordenación descendente se utiliza la cláusula DESC. Ejemplo SELECT * FROM ventas ORDER BY departamento, ciudad DESC C. Román 21
  • 22. Consultas con predicado ALL Devuelve todos los campos de la tabla. TOP Devuelve un determinado número de registros de la tabla. DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente. DISTINCTROW Omite los registros duplicados en la totalidad del registro y no sólo en los campos seleccionados. Ejemplo SELECTTOP 10 * FROM ventas C. Román 22
  • 23. Alias Permite asignar un nombre a alguna columna determinada del resultado de una consulta. Se utiliza la palabra reservada AS. Ejemplo SELECT nomVen AS nombreVendedor FROM ventas C. Román 23
  • 24. Consultas sumarias Se pueden realizar cálculos de datos mediante las funciones de columna: SUM() calcula la suma AVG() calcula el promedio MIN() calcula el mínimo MAX() calcula el máximo COUNT() cuenta el número de valores COUNT(*) cuenta las filas de resultados C. Román 24
  • 25. Función SUM Devuelve la suma del conjunto de valores contenido en un campo específico de una consulta. Su sintaxis es: SELECT SUM (EXPR) FROMTABLA Ejemplo SELECT SUM(importeVenta) FROM ventas C. Román 25
  • 26. AVG Calcula el promedio (media aritmética) de un conjunto de valores contenido en un campo especificado de una consulta. Su sintaxis es la siguiente: SELECT AVG(EXPR) FROMTABLA Ejemplo SELECT AVG(importeVenta) FROM ventas C. Román 26
  • 27. MIN, MAX Devuelven el mínimo o el máximo de un conjunto de valores CONTENIDO en un campo especifico de una consulta. Su sintaxis es la siguiente: SELECT MIN(EXPR) FROMTABLA SELECT MAX(EXPR) FROMTABLA Ejemplo SELECT MAX(importeVenta), MIN(importeVenta) FROM ventas C. Román 27
  • 28. COUNT Calcula el número de registros devueltos por una consulta. Su sintaxis es la siguiente: SELECT COUNT(EXPR) FROMTABLA Ejemplo SELECT COUNT(importeVenta) FROM ventas WHERE importeVenta>10000 C. Román 28
  • 29. COUNT(*) Cuenta las filas resultantes de una consulta. Ejemplo SELECT COUNT(*) FROM ventas WHERE importeVenta>10000 C. Román 29
  • 30. CláusulaGROUP BY Agrupa los registros con valores idénticos, en la lista de campos especificados, en un único registro. Su sintaxis es la siguiente: SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo C. Román 30
  • 32. Cláusula HAVING Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuáles de ellos se van a mostrar. Su sintaxis es la siguiente: SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo HAVING condición C. Román 32
  • 33. Cláusula HAVING Ejemplo SELECT nombreCliente, SUM(importeVenta) FROM ventas GROUP BY nombreCliente HAVING AVG(importeVenta)>10000 C. Román 33
  • 34. UNION Combina los resultados de dos o mas consultas en una tabla de resultados, en la que se tendrán las tuplas resultantes de las consultas (una o ambas). Para aplicar la unión ambas tablas deben contener el mismo número de columnas. Los tipos de datos en las columnas correspondientes deben coincidir en ambas tablas. Las tablas no pueden estar ordenadas con ORDER BY, pero si el resultado. C. Román 34
  • 35. Ejemplo. SELECT idFabricante, idProducto FROM productos WHERE precio>2000 UNION SELECT fabricante, producto FROM pedidos WHERE importe>3000 ORDER BY 1 C. Román 35
  • 36. INTERSECT Combina los resultados de dos o mas consultas en una tabla de resultados, en la que se tendrán las tuplas que coincidan en ambas consultas. Para aplicar la intersección ambas tablas deben contener el mismo número de columnas. Los tipos de datos en las columnas correspondientes deben coincidir en ambas tablas. Las tablas no pueden estar ordenadas con ORDER BY, pero si el resultado. C. Román 36
  • 37. EXCEPT Combina los resultados de dos o mas consultas en una tabla de resultados, en la que se tendrán las tuplas resultantes de una consulta que no aparezcan en la otra consulta. Para aplicar except ambas tablas deben contener el mismo número de columnas. Los tipos de datos en las columnas correspondientes deben coincidir en ambas tablas. Las tablas no pueden estar ordenadas con ORDER BY, pero si el resultado. C. Román 37
  • 39. Reunión (combinación) interna INNER JOIN La cláusula INNER combina registros de dos tablas siempre que haya concordancia de valores en un campo común. Su sintaxis es la siguiente: SELECT campos FROM tabla1 INNER JOIN tabla2 ON tabla1.campo1 op_comp tabla2.campo2 C. Román 39
  • 40. Reunión interna de varias tablas Se debe especificar una condición de reunión para cada par de tablas. Ejemplo SELECT ventas.monto, ventas.ciudad, cliente. nombre, vendedor. nombre FROM ventas INNER JOIN cliente ON ventas.idVendedor=cliente.idVendedor INNER JOIN vendedor ON cliente.idVendedor=vendedor.idVendedor WHERE ventas.ciudad=‘La Paz’ C. Román 40
  • 41. Reunión externa izquierda LEFTJOIN Operación de reunión que conecta todas las relaciones de la tabla izquierda con los datos de la tabla derecha. Ejemplo. SELECT codProd, codVend, nombreVend FROM vendedor LEFT JOIN producto ON vendedor.codVend=producto.codVend C. Román 41
  • 42. Reunión externa derecha RIGHT JOIN Operación de reunión que conecta todas las relaciones de la tabla derecha con los datos de la tabla izquierda. Ejemplo. SELECT codProd, codVend, nombreVend FROM vendedor LEFT JOIN producto ON vendedor.codVend=producto.codVend C. Román 42