SlideShare una empresa de Scribd logo
1 de 32
Base de Datos
MySQL
ING. MARÍA LAGUNA
LENGUAJE DE CONSULTA DE DATOS
(DQL)
SELECT
DQL: Lenguaje de Consulta de Datos
Simple SELECT
- Recupera datos de las tablas
- Puede ser un simple SELECT o uno condicional
- Selecciona datos de todas las columnas de la tabla y todos los registros
de la tabla
SELECT * FROM nombre_tabla;
- Selecciona datos de columnas específicas de la tabla
SELECT nombrecol1, nombrecol2, …, nombrecoln FROM
nombre_tabla;
Selección Condicional
Se especifica la sentencia SELECT condicional usando la cláusula
WHERE:
SELECT *
FROM NOMBRE_TABLA
WHERE NOMBRE_COL = VALOR;
Ejemplos de Selección Condicional
SELECT idnoempleado FROM EstadisticasDeEmpleados
WHERE salario >= 50000;
SELECT idnoempleado FROM EstadisticasDeEmpleados
WHERE posicion = 'Gerente';
Condiciones Compuestas y Operadores Lógicos
•El Operador AND
SELECT idnoempleado
FROM estadisticasdeempleados
WHERE salario > 40000 AND posicion = 'Personal';
•El Operador OR
SELECT idnoempleado
FROM estadisticasdeempleados
WHERE salario < 40000 OR beneficios < 10000;
Combinar los Operadores AND y OR
SELECT idnoempleado
FROM estadisticasdeempleados
WHERE posicion = 'Gerente' AND
salario > 60000 OR beneficios > 12000;
• La precedencia es importante
• El operador AND precede al operador OR
• Limita las filas a las personas que son gerentes y ganan un salario
mayor que $60,000
• Limita las filas a las personas del paso anterior o las personas que
ganan beneficios mayores que $12,000
Clausula WHERE
Operador Descripción
= Igual
<> Ó != Diferente
> Mayor que.
< Menor que.
>= Mayor o igual
<= Menor o igual
Clausula WHERE (LIKE)
El Operador Like Busca Patrones
 _ -> Un Caracter
 % ->Muchos Caracteres
Ejemplo
SELECT * FROM Empleados WHERE nombre LIKE  % S;
-- Muestra los empleados cuyo nombre termine en s –
SELECT * FROM Empleados WHERE nombre LIKE  _ S;
-- Muestra los empleados cuyo nombre tenga como segunda letra s –
Clausula WHERE (IN)
Se usa para hacer comparaciones con una lista
de opciones.
Ejemplo
SELECT * FROM Empleados WHERE nombre IN (Maria, Gustavo);
El Operador IN
SELECT idnoempleado
FROM estadisticasdeempleados
WHERE posicion ='Gerente'
OR posicion= 'Personal';
• Lista todos los empleados que son gerentes o pertenecen a la posición
Personal
• Puede ser escrito usando el operador IN
SELECT idnoempleado
FROM estadisticasdeempleados
WHERE posicion
IN ('Gerente', 'Personal');
El Operador BETWEEN
• Comprueba si los valores están dentro de un rango dado
• Encuentra a los empleados que caen bajo un rango particular de salario
($30,000 a $50,000)
SELECT idnoempleado
FROM estadisticasdeempleados
WHERE salario >= 30000
AND salario <= 50000;
• Usando operador BETWEEN
SELECT idnoempleado
FROM estadisticasdeempleados
WHERE salario
BETWEEN 30000 AND 50000;
El Operador NOT
- Encuentra los empleados que no caen en el rango de salario de $30,000 a
$50,000
SELECT idnoempleado
FROM estadisticasdeempleados
WHERE salario
NOT BETWEEN 30000 AND 50000;
- Usando el operador NOT con el operador IN
SELECT idnoempleado
FROM estadisticasdeempleados
WHERE posicion NOT IN ('Gerente');
Cláusula DISTINCT
Se usa para listar valores únicos (Filas únicas)
SELECT DISTINCT posicion
FROM estadisticasdeempleados;
Funciones Agregadas
• Son también llamadas funciones de grupo
• Trabajan sobre conjuntos de filas y devuelven resultados
• Las funciones más importantes son: SUM, AVG, MAX, MIN y COUNT
SELECT SUM(salario) FROM estadisticasdeempleados;
SELECT AVG(salario) FROM estadisticasdeempleados;
SELECT MIN(beneficios) FROM estadisticasdeempleados
WHERE posicion = 'Gerente';
Funciones Agregadas… 2
Ejemplo1
SELECT COUNT(*)
FROM estadisticasdeempleados
WHERE posicion = 'Personal';
- La función COUNT cuenta el número de empleados que pertenecen a una
posición llamada 'Personal'
- El * se puede usar sólo con la función COUNT y no con otras funciones
agregadas
Ejemplo2:
SELECT MAX(SALARY)
FROM estadisticasdeempleados;
- La función MAX() retorna el valor máximo para una columna dada entre el
conjunto de filas seleccionadas
La Cláusula ORDER BY
• Da formato a la salida basándose en un campo y en un cierto orden,
descendente o ascendente
• Por defecto lista los datos en orden ascendente
SELECT * FROM estadisticasdeempleados ORDER BY
salario ASC;
SELECT * FROM estadisticasdeempleados ORDER BY
salario DESC;
SELECT * FROM estadisticasdeempleados ORDER BY
salario;
SELECT * FROM estadisticasdeempleados ORDER BY
posicion ASC, salario DESC;
Limite
El valor limit define desde que registro
comenzaremos a mostrar, y cuantos registros
serán mostrados.
select * from `ciudades` limit 2,3;
Consultas Multitablas (Sintaxis)
select [x.campo,y.campo] from `tabla1` x,
`tabla2` y where y.`id`=x.`indice` [condiciones
extras] [order by x.campo,y.campo] [limit
inicio,limite];
Subconsultas
• Una subconsulta (subquery) es una consulta dentro de una
consulta
• Una sentencia SELECT anidada dentro de otra sentencia
SELECT
SELECT producto
FROM juguetes
WHERE idcomprador=(
SELECT idpropietario
FROM propietariodejuguetes
WHERE nombre=’Bob’);
Vistas
Una Vista es una Tabla Virtual
CREATE VIEW nombre_vista AS
SELECT nombre_columna(s)
FROM nombre_tabla
WHERE condicion
Vistas
Luego de Crear la vista:
SELECT * FROM nombre_vista;
Vistas (Modificacion)
CREATE OR REPLACE VIEW nombre_vista AS
SELECT nombre_columna(s)
FROM nombre_tabla
WHERE condicion
Vistas (Eliminar)
DROP VIEW nombre_vista;
Peticiones Preparadas
La razón de las peticiones preparadas es debido a la
seguridad que ofrecen cuando se utiliza PHP para
realizar las peticiones a la base de datos en un sitio
web.
Sin embargo, el uso de peticiones preparadas desde la
linea de comandos nos ofrece la habilidad de definir
una petición una vez y entonces llamarla cuantas
veces queramos, cambiando solamente el parámetro
que usamos.
Peticiones Preparadas
Por ejemplo, para mostrar un registro de la tabla de
ciudades, mostrando el nombre del estado en vez de
estado_id, siempre tendría el mismo formato:
select c.ciudad_nombre, s.estado_nombre from
estados s, ciudades c where c.estado_id= s.estado_id
and c.ciudad_id = ?;
Peticiones Preparadas
Las peticiones preparadas solo funcionan
con SELECT, INSERT, UPDATE,
REPLACE, DELETE y CREATE TABLE
Peticiones Preparadas (Como
Utilizarlas)
prepare mostrar_ciudad from "select
c.`ciudad_nombre`,s.`estado_nombre` from `estados` s,
`ciudades` c where c.`estado_id`=s.`estado_id` and
c.`ciudad_id` = ?";
Peticiones Preparadas (Como
Utilizarlas)
Después preparamos el parámetro,
llamado una_ciudad, en este caso:
set @una_ciudad = "2";
Peticiones Preparadas (Como
Utilizarlas)
Y ejecutamos la petición
preparada mostrar_ciudad usando el
parámetro una_ciudad:
execute mostrar_ciudad using @una_ciudad;
Peticiones Preparadas
Esto es útil también cuando estamos utilizando una
petición como esta desde PHP y necesitamos usar un
valor que recibimos de alguien más.
Antes de la existencia de peticiones preparadas,
necesitábamos filtrar muy cuidadosamente la entrada de
un usuario para poder prevenir un ataque de inyección
de sql que tiene el potencial de borrar nuestra base de
datos o darle acceso a una persona no autorizada.
Peticiones Preparadas
Al separar la lógica de MySQL de los datos
evitamos este problema, ya que MySQL no
interpreta el parámetro, simplemente lo maneja
como datos. Otra ventaja es que es más rápido
utilizar peticiones preparadas de MySQL.

Más contenido relacionado

La actualidad más candente (19)

Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
 
Clase 07
Clase 07Clase 07
Clase 07
 
sub Consultas Oracle SQL
sub Consultas Oracle SQLsub Consultas Oracle SQL
sub Consultas Oracle SQL
 
2 3 arrays_php
2 3 arrays_php2 3 arrays_php
2 3 arrays_php
 
2 6 validar_formularios
2 6 validar_formularios2 6 validar_formularios
2 6 validar_formularios
 
Fundamentos sql
Fundamentos sqlFundamentos sql
Fundamentos sql
 
CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
 
Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11Utilizando DDL SQL oracle Z051 Cap 11
Utilizando DDL SQL oracle Z051 Cap 11
 
Subconsultas
SubconsultasSubconsultas
Subconsultas
 
Vistas (1)
Vistas (1)Vistas (1)
Vistas (1)
 
Bdii 06 func_grupo_y_subconsultas
Bdii 06 func_grupo_y_subconsultasBdii 06 func_grupo_y_subconsultas
Bdii 06 func_grupo_y_subconsultas
 
Introducción al SQL
Introducción al SQLIntroducción al SQL
Introducción al SQL
 
Sql básico - compendio
Sql básico  - compendioSql básico  - compendio
Sql básico - compendio
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
 
Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
 
Sqlconsultasmscomplejas 1212077755475220-8
Sqlconsultasmscomplejas 1212077755475220-8Sqlconsultasmscomplejas 1212077755475220-8
Sqlconsultasmscomplejas 1212077755475220-8
 
Consultas Sql
Consultas SqlConsultas Sql
Consultas Sql
 

Similar a Unidad iii dql

Similar a Unidad iii dql (20)

Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sql
 
Sql2
Sql2Sql2
Sql2
 
Sql2
Sql2Sql2
Sql2
 
Introducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selecciónIntroducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selección
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Tarea 8 consultas
Tarea 8 consultasTarea 8 consultas
Tarea 8 consultas
 
Attachment
AttachmentAttachment
Attachment
 
Consultas Basicas En Sql Server 2005
Consultas Basicas En Sql Server 2005Consultas Basicas En Sql Server 2005
Consultas Basicas En Sql Server 2005
 
Trabajando con sql (parte 2)
Trabajando con sql (parte 2)Trabajando con sql (parte 2)
Trabajando con sql (parte 2)
 
Sentencias sql
Sentencias sql Sentencias sql
Sentencias sql
 
Sentencias Sql
Sentencias SqlSentencias Sql
Sentencias Sql
 
Presentacio Sql 1
Presentacio Sql 1Presentacio Sql 1
Presentacio Sql 1
 
Cuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemploCuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemplo
 
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
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
Guia de ejercicios para resolver sql
Guia de ejercicios para resolver sqlGuia de ejercicios para resolver sql
Guia de ejercicios para resolver sql
 
Complemento del manual de programacion iii sql
Complemento del manual de programacion iii sqlComplemento del manual de programacion iii sql
Complemento del manual de programacion iii sql
 
Consultas en SQL
Consultas en SQLConsultas en SQL
Consultas en SQL
 
Oracle sep 01
Oracle sep 01Oracle sep 01
Oracle sep 01
 

Último

Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 

Último (20)

Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 

Unidad iii dql

  • 1. Base de Datos MySQL ING. MARÍA LAGUNA
  • 2. LENGUAJE DE CONSULTA DE DATOS (DQL) SELECT
  • 3. DQL: Lenguaje de Consulta de Datos Simple SELECT - Recupera datos de las tablas - Puede ser un simple SELECT o uno condicional - Selecciona datos de todas las columnas de la tabla y todos los registros de la tabla SELECT * FROM nombre_tabla; - Selecciona datos de columnas específicas de la tabla SELECT nombrecol1, nombrecol2, …, nombrecoln FROM nombre_tabla;
  • 4. Selección Condicional Se especifica la sentencia SELECT condicional usando la cláusula WHERE: SELECT * FROM NOMBRE_TABLA WHERE NOMBRE_COL = VALOR;
  • 5. Ejemplos de Selección Condicional SELECT idnoempleado FROM EstadisticasDeEmpleados WHERE salario >= 50000; SELECT idnoempleado FROM EstadisticasDeEmpleados WHERE posicion = 'Gerente';
  • 6. Condiciones Compuestas y Operadores Lógicos •El Operador AND SELECT idnoempleado FROM estadisticasdeempleados WHERE salario > 40000 AND posicion = 'Personal'; •El Operador OR SELECT idnoempleado FROM estadisticasdeempleados WHERE salario < 40000 OR beneficios < 10000;
  • 7. Combinar los Operadores AND y OR SELECT idnoempleado FROM estadisticasdeempleados WHERE posicion = 'Gerente' AND salario > 60000 OR beneficios > 12000; • La precedencia es importante • El operador AND precede al operador OR • Limita las filas a las personas que son gerentes y ganan un salario mayor que $60,000 • Limita las filas a las personas del paso anterior o las personas que ganan beneficios mayores que $12,000
  • 8. Clausula WHERE Operador Descripción = Igual <> Ó != Diferente > Mayor que. < Menor que. >= Mayor o igual <= Menor o igual
  • 9. Clausula WHERE (LIKE) El Operador Like Busca Patrones  _ -> Un Caracter  % ->Muchos Caracteres Ejemplo SELECT * FROM Empleados WHERE nombre LIKE  % S; -- Muestra los empleados cuyo nombre termine en s – SELECT * FROM Empleados WHERE nombre LIKE  _ S; -- Muestra los empleados cuyo nombre tenga como segunda letra s –
  • 10. Clausula WHERE (IN) Se usa para hacer comparaciones con una lista de opciones. Ejemplo SELECT * FROM Empleados WHERE nombre IN (Maria, Gustavo);
  • 11. El Operador IN SELECT idnoempleado FROM estadisticasdeempleados WHERE posicion ='Gerente' OR posicion= 'Personal'; • Lista todos los empleados que son gerentes o pertenecen a la posición Personal • Puede ser escrito usando el operador IN SELECT idnoempleado FROM estadisticasdeempleados WHERE posicion IN ('Gerente', 'Personal');
  • 12. El Operador BETWEEN • Comprueba si los valores están dentro de un rango dado • Encuentra a los empleados que caen bajo un rango particular de salario ($30,000 a $50,000) SELECT idnoempleado FROM estadisticasdeempleados WHERE salario >= 30000 AND salario <= 50000; • Usando operador BETWEEN SELECT idnoempleado FROM estadisticasdeempleados WHERE salario BETWEEN 30000 AND 50000;
  • 13. El Operador NOT - Encuentra los empleados que no caen en el rango de salario de $30,000 a $50,000 SELECT idnoempleado FROM estadisticasdeempleados WHERE salario NOT BETWEEN 30000 AND 50000; - Usando el operador NOT con el operador IN SELECT idnoempleado FROM estadisticasdeempleados WHERE posicion NOT IN ('Gerente');
  • 14. Cláusula DISTINCT Se usa para listar valores únicos (Filas únicas) SELECT DISTINCT posicion FROM estadisticasdeempleados;
  • 15. Funciones Agregadas • Son también llamadas funciones de grupo • Trabajan sobre conjuntos de filas y devuelven resultados • Las funciones más importantes son: SUM, AVG, MAX, MIN y COUNT SELECT SUM(salario) FROM estadisticasdeempleados; SELECT AVG(salario) FROM estadisticasdeempleados; SELECT MIN(beneficios) FROM estadisticasdeempleados WHERE posicion = 'Gerente';
  • 16. Funciones Agregadas… 2 Ejemplo1 SELECT COUNT(*) FROM estadisticasdeempleados WHERE posicion = 'Personal'; - La función COUNT cuenta el número de empleados que pertenecen a una posición llamada 'Personal' - El * se puede usar sólo con la función COUNT y no con otras funciones agregadas Ejemplo2: SELECT MAX(SALARY) FROM estadisticasdeempleados; - La función MAX() retorna el valor máximo para una columna dada entre el conjunto de filas seleccionadas
  • 17. La Cláusula ORDER BY • Da formato a la salida basándose en un campo y en un cierto orden, descendente o ascendente • Por defecto lista los datos en orden ascendente SELECT * FROM estadisticasdeempleados ORDER BY salario ASC; SELECT * FROM estadisticasdeempleados ORDER BY salario DESC; SELECT * FROM estadisticasdeempleados ORDER BY salario; SELECT * FROM estadisticasdeempleados ORDER BY posicion ASC, salario DESC;
  • 18. Limite El valor limit define desde que registro comenzaremos a mostrar, y cuantos registros serán mostrados. select * from `ciudades` limit 2,3;
  • 19. Consultas Multitablas (Sintaxis) select [x.campo,y.campo] from `tabla1` x, `tabla2` y where y.`id`=x.`indice` [condiciones extras] [order by x.campo,y.campo] [limit inicio,limite];
  • 20. Subconsultas • Una subconsulta (subquery) es una consulta dentro de una consulta • Una sentencia SELECT anidada dentro de otra sentencia SELECT SELECT producto FROM juguetes WHERE idcomprador=( SELECT idpropietario FROM propietariodejuguetes WHERE nombre=’Bob’);
  • 21. Vistas Una Vista es una Tabla Virtual CREATE VIEW nombre_vista AS SELECT nombre_columna(s) FROM nombre_tabla WHERE condicion
  • 22. Vistas Luego de Crear la vista: SELECT * FROM nombre_vista;
  • 23. Vistas (Modificacion) CREATE OR REPLACE VIEW nombre_vista AS SELECT nombre_columna(s) FROM nombre_tabla WHERE condicion
  • 25. Peticiones Preparadas La razón de las peticiones preparadas es debido a la seguridad que ofrecen cuando se utiliza PHP para realizar las peticiones a la base de datos en un sitio web. Sin embargo, el uso de peticiones preparadas desde la linea de comandos nos ofrece la habilidad de definir una petición una vez y entonces llamarla cuantas veces queramos, cambiando solamente el parámetro que usamos.
  • 26. Peticiones Preparadas Por ejemplo, para mostrar un registro de la tabla de ciudades, mostrando el nombre del estado en vez de estado_id, siempre tendría el mismo formato: select c.ciudad_nombre, s.estado_nombre from estados s, ciudades c where c.estado_id= s.estado_id and c.ciudad_id = ?;
  • 27. Peticiones Preparadas Las peticiones preparadas solo funcionan con SELECT, INSERT, UPDATE, REPLACE, DELETE y CREATE TABLE
  • 28. Peticiones Preparadas (Como Utilizarlas) prepare mostrar_ciudad from "select c.`ciudad_nombre`,s.`estado_nombre` from `estados` s, `ciudades` c where c.`estado_id`=s.`estado_id` and c.`ciudad_id` = ?";
  • 29. Peticiones Preparadas (Como Utilizarlas) Después preparamos el parámetro, llamado una_ciudad, en este caso: set @una_ciudad = "2";
  • 30. Peticiones Preparadas (Como Utilizarlas) Y ejecutamos la petición preparada mostrar_ciudad usando el parámetro una_ciudad: execute mostrar_ciudad using @una_ciudad;
  • 31. Peticiones Preparadas Esto es útil también cuando estamos utilizando una petición como esta desde PHP y necesitamos usar un valor que recibimos de alguien más. Antes de la existencia de peticiones preparadas, necesitábamos filtrar muy cuidadosamente la entrada de un usuario para poder prevenir un ataque de inyección de sql que tiene el potencial de borrar nuestra base de datos o darle acceso a una persona no autorizada.
  • 32. Peticiones Preparadas Al separar la lógica de MySQL de los datos evitamos este problema, ya que MySQL no interpreta el parámetro, simplemente lo maneja como datos. Otra ventaja es que es más rápido utilizar peticiones preparadas de MySQL.