0% encontró este documento útil (0 votos)
21 vistas20 páginas

DML2

Cargado por

gonzalezmauroj
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas20 páginas

DML2

Cargado por

gonzalezmauroj
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

SQL -DML

• El Lenguaje de Consulta Estructurado (SQL) es un lenguaje de


programación especializado diseñado para gestionar datos
almacenados en un Sistema de Gestión de Bases de Datos
Relacionales (RDBMS, por sus siglas en inglés).
SQL
SQL consta de 3 sublenguajes principales:
Lenguaje de Definición de Datos (DDL, por sus siglas en inglés): para crear y
modificar la estructura de la base de datos;
Lenguaje de Manipulación de Datos (DML, por sus siglas en inglés): para
realizar operaciones de Lectura, Inserción, Actualización y Eliminación en los
datos de la base de datos;
Lenguaje de Control de Datos (DCL, por sus siglas en inglés): para controlar el
acceso a los datos almacenados en la base de datos.
Consulta INSERT en MySQL

Propósito: • Agregar una fila a una tabla en la base de datos.

Sintaxis: • INSERT INTO nombre_de_tabla (columna1, columna2, ...) VALUES (valor1, valor2, ...);

Reglas:
• Los valores deben estar en el mismo orden que las columnas.
• Puedes omitir columnas, MySQL utilizará valores predeterminados o nulos.
• No es necesario enumerar todas las columnas.
• La longitud de las columnas y los valores debe coincidir.

Ejemplo:
• INSERT INTO Member (nombredeinicio, fechacreación, contraseña, apellido, calle, ciudad, estado, código postal, correo electrónico, teléfono,
fax) VALUES ("bigguy", "2-Dic-2001", "secreto", "Smith", "1234 Calle Feliz", "Las Vegas", "NV", "88888", "[email protected]", "(555)
555-5555", "");
Recuperando información
• El único propósito de almacenar información es tenerla disponible
cuando la necesites. Una base de datos existe para responder
preguntas. ¿Qué mascotas están en venta? ¿Quiénes son los
miembros? ¿Cuántos miembros viven en Arkansas? ¿Tienes un
caimán en venta? ¿Cuánto cuesta un dragón? ¿Cuál es el número de
teléfono de Goliath Smith? Y así sucesivamente. Utilizas la consulta
SELECT para hacer preguntas a la base de datos.
SELECT
• La consulta SELECT más simple y básica es:
• SELECT * FROM nombretabla
• Esta consulta recupera toda la información de la tabla.
• El asterisco (*) es un comodín que significa todas las columnas.
Select
• La consulta SELECT puede ser mucho más selectiva.
• Las palabras y frases de SQL en la consulta SELECT pueden señalar exactamente la
información necesaria para responder tu pregunta. Puedes especificar qué información
deseas, cómo deseas que esté organizada y cuál es la fuente de la información:
• Puedes solicitar solo la información (las columnas) que necesitas para responder tu
pregunta. Por ejemplo, puedes solicitar solo los nombres y apellidos para crear una
lista de miembros.
• Puedes solicitar información en un orden particular. Por ejemplo, puedes solicitar
que la información se ordene alfabéticamente.
• Puedes solicitar información de objetos seleccionados (las filas) en tu tabla.
(Consulta el Capítulo 3 para una explicación de los objetos de la base de datos). Por
ejemplo, puedes solicitar los nombres y apellidos solo de aquellos miembros cuyas
direcciones están en Florida.
Filtrar registros según un determinado criterio
• Obtener todos los pacientes cuya fecha de nacimiento sea anterior al
15 de septiembre de 1985:
• SELECT * FROM pacientes WHERE fechaNacimiento < '1985-09-15';
• Esta consulta seleccionará todos los pacientes cuya fecha de
nacimiento sea anterior al 15 de septiembre de 1985.
Filtrar registros según un determinado criterio
• Obtener todos los pacientes afiliados a la obra social con ID 1:
• SELECT * FROM pacientes WHERE obraSocialId = 1;
• Esta consulta seleccionará todos los pacientes que estén afiliados a la
obra social con ID igual a 1.
Funciones agregadas
• En algunos casos, no quieres ver los valores en una columna, sino que
quieres saber algo sobre la columna. Por ejemplo, podrías querer
saber el valor más bajo en la columna o el valor más alto en la
columna. La tabla 4-2 enumera alguna de la información que está
disponible sobre una columna.
Tabla 4-2 Información que Puede Ser Seleccionada

Formato SQL Descripción de la Información


Devuelve el promedio de todos los valores en
AVG(columnname)
columnname
Devuelve el número de filas en las que column name
COUNT(columnname)
no está en blanco
MAX(columnname) Devuelve el valor más grande en columnname
MIN(columnname) Devuelve el valor más pequeño en columnname
SUM(columnname) Devuelve la suma de todos los valores en columnname
COUNT
• Obtener la cantidad de pacientes por obra social:
• SELECT o.nombreOSocial, COUNT(p.id) AS cantidadPacientesFROM
pacientes pINNER JOIN obrasSociales o ON p.obraSocialId =
o.idGROUP BY o.nombreOSocial;
• Esta consulta mostrará la cantidad de pacientes por cada obra social.
Seleccionar las columnas y el ordenamiento
deseado
• Obtener la información de los pacientes, incluyendo su DNI, apellido,
nombre y nombre de la obra social a la que están afiliados, ordenados
por nombre de la obra social:
• SELECT p.dni, p.apellido, p.nombre, o.nombreOSocialFROM pacientes
pINNER JOIN obrasSociales o ON p.obraSocialId = o.idORDER BY
o.nombreOSocial;
• Esta consulta mostrará la información de los pacientes junto con el
nombre de la obra social a la que están afiliados, ordenados
alfabéticamente por nombre de la obra social.
BETWEEN
• Consulta utilizando BETWEEN para obtener pacientes con fechas de
nacimiento entre dos rangos:
• SELECT *FROM pacientesWHERE fechaNacimiento BETWEEN '1980-
01-01' AND '1990-12-31';
• Esta consulta seleccionará todos los pacientes cuyas fechas de
nacimiento se encuentren entre el 1 de enero de 1980 y el 31 de
diciembre de 1990.
LIKE
• Consulta utilizando LIKE para buscar pacientes cuyo nombre o
apellido contenga cierto patrón:
• SELECT *FROM pacientesWHERE nombre LIKE '%ana%' OR apellido
LIKE '%ana%';
• Esta consulta seleccionará todos los pacientes cuyo nombre o apellido
contengan la cadena "ana", sin importar su posición en el nombre o
apellido.
GROUP BY Y HAVING
• Consulta utilizando GROUP BY y HAVING para obtener pacientes con
más de una visita registrada:
• SELECT pacienteId, COUNT(*) AS totalVisitasFROM
historiasClinicasGROUP BY pacienteIdHAVING COUNT(*) > 1;
• Esta consulta agrupará las historias clínicas por paciente y mostrará la
cantidad total de visitas para cada paciente. Luego, la cláusula
HAVING filtrará los resultados para mostrar solo los pacientes con más
de una visita registrada.
Usar las relaciones entre tablas
• Obtener los pacientes que han tenido una visita con un diagnóstico y
tratamiento relacionados con diabetes:
• SELECT p.*FROM pacientes pINNER JOIN historiasClinicas hc ON p.id =
hc.pacienteIdINNER JOIN medicaciones m ON hc.id =
m.historiaClinicaIdWHERE hc.diagnostico LIKE '%diabetes%' OR
m.indicaciones LIKE '%diabetes%';
• Esta consulta mostrará todos los pacientes que han tenido una visita
con un diagnóstico relacionado con diabetes o que han recibido una
medicación con indicaciones relacionadas con diabetes.
Usar subconsultas
¿Cuántos pacientes tienen una edad mayor que
el promedio de edades de todos los pacientes?
• SELECT COUNT(*)FROM pacientesWHERE YEAR(CURDATE()) -
YEAR(fechaNacimiento) > (SELECT AVG(YEAR(CURDATE()) -
YEAR(fechaNacimiento)) FROM pacientes);
• Aquí, la subconsulta calcula el promedio de las edades de todos los
pacientes y luego se utiliza para comparar con la edad de cada
paciente en la consulta principal.
¿Cuál es el paciente mayor registrado en la
base de datos?
• SELECT *FROM pacientesWHERE fechaNacimiento = (SELECT
MIN(fechaNacimiento) FROM pacientes);
• Esta consulta utiliza una subconsulta para encontrar la fecha de
nacimiento más temprana entre todos los pacientes y luego
selecciona al paciente que tenga esa fecha de nacimiento.
¿Cuántos pacientes tienen al menos una
historia clínica registrada?
• SELECT COUNT(*)FROM pacientesWHERE id IN (SELECT DISTINCT
pacienteId FROM historiasClinicas);
• Esta consulta utiliza una subconsulta para obtener los IDs de los
pacientes que tienen al menos una historia clínica registrada, y luego
cuenta el número de pacientes encontrados.

También podría gustarte