Documento de Unendo Afa la Universidad de las Profesiones sobre Consultas DML. El Pdf, un extracto de manual didáctico, introduce las consultas DML en SQL, centrándose en la cláusula SELECT y sus funcionalidades. Este material de Informática para Universidad incluye ejemplos prácticos y objetivos de aprendizaje.
Ver más18 páginas


Visualiza gratis el PDF completo
Regístrate para acceder al documento completo y transformarlo con la IA.
[TEMA 5-PARTE 1 Consultas. DML Consulta la información almacenada en una base de datos empleando asistentes, herramientas gráficas y el lenguaje de manipulación de datos
SQL es un lenguaje estándar en la mayoría de las bases de datos relacionales con el que normalmente se crean accesos a la información que contienen, mediante la realización de diferentes tipos de operaciones, lanzando consultas y obteniendo datos de interés para el usuario, de una forma sencilla.
En esta unidad conocerás los distintos tipos de consultas que puedes realizar tanto a una tabla como a varias, aprovechando las relaciones del modelo creado.
Por tanto los objetivos son:
La primera fase del trabajo con cualquier base de datos comienza, como ya hemos visto en la unidad anterior, con sentencias DDL (Lenguaje de Definición de Datos), puesto que antes de poder almacenar y recuperar información debimos definir las estructuras donde agrupar la información: las tablas.
La siguiente fase será manipular los datos, es decir, trabajar con sentencias DML (Lenguaje de Manipulación de Datos).
El DML (Data Manipulation Language) o Lenguaje de Manipulación de Datos es la parte de SQL dedicada a la manipulación de los datos. Las sentencias DML son las siguientes:
En esta unidad nos vamos a centrar en el uso de la sentencia SELECT.
Para recuperar o seleccionar los datos, de una o varias tablas tenemos que utilizar la sentencia SELECT.
Según el nivel de complejidad indicado, se puede obtener:
Según la documentación oficial de MySQL ésta sería la sintaxis para realizar una consulta con la sentencia SELECT en MySQL
Para empezar con consultas sencillas podemos simplificar la definición anterior y quedarnos con la siguiente:
SELECT [DISTINCT] select_expr [, select_expr . . . ] [FROM table references] _ [WHERE where condition] _ [GROUP BY {col_name | expr | position} [ASC | DESC] , [WITH ROLLUP] ] [HAVING having_condition] 3
[ORDER BY {col_name | expr | position} [ASC | DESC] , . . . ] [LIMIT { [offset, ] row COUNT | row COUNT OFFSET offset} ]
Es muy importante conocer en que orden se ejecuta cada una de las cláusulas que forman la sentencia SELECT. El orden de ejecución es el siguiente:
SELECT [DISTINCT] select_expr [, select_expr ... ] 1 1 [FROM table_references] - 1 2 [WHERE where_condition] 1 3 [GROUP BY {col_name | expr | position} [ASC | DESC] , ... [WITH ROLLUP] ] 1 4 [HAVING having_condition] 1 ¥6 [ORDER BY {col_name | expr | position} [ASC |DESC] , ... ] 7 [LIMIT { [offset, ]row_count | row_count OFFSET offset} ]
Nos permite indicar cuáles serán las columnas que tendrá la tabla de resultados de la consulta que estamos realizando. Las opciones que podemos indicar son las siguientes:
Si en lugar de solicitar una columnas queremos ver todas pondremos asterisco *. Esta parte es obligatoria.
Para referenciar una columna se puede indicar de las siguientes formas:
Siempre que la sentencia afecte a más de una tabla es aconsejable especificar la tabla a la que pertenece cada columna.
Obtener todos los datos de todos los alumnos matriculados en el curso.
SELECT * FROM TAlumno;
Obtener el nombre y los apellidos de todos los alumnos.
SELECT cnombre, capellido1, capellido2 FROM TAlumno;
Obtener el nombre de todos los alumnos.
SELECT CNombre FROM TAlumno;
En algunas ocasiones es interesante realizar operaciones con algunos campos para obtener información derivada de éstos. Si tuviéramos un campo Precio, podría interesarnos calcular el precio incluyendo el IVA o si tuviéramos los campos Sueldo y Paga Extra, podríamos necesitar obtener la suma de los dos campos. Estos son dos ejemplos simples pero podemos construir expresiones mucho más complejas. Para ello haremos uso de la creación de columnas calculadas.
Los operadores aritméticos se pueden utilizar para hacer cálculos en las consultas.
Estas columnas calculadas se obtienen a través de la sentencia SELECT poniendo a continuación la expresión que queramos. Esta consulta no modificará los valores originales de las columnas ni de la tabla de la que se está obteniendo dicha consulta, únicamente mostrará una columna nueva con los valores calculados.
5
Podemos ponerle un alias a la columna creada añadiéndolo detrás de la expresión junto con la palabra AS. Si el nuevo nombre que estamos creando para el alias contiene espacios en blanco es necesario usar comillas.
Queremos calcular una nueva columna con el precio total, es decir, la cantidad comprada x precio por elemento
SELECT pkid, ncantidad_comprada, nprecio_por_elemento, ncantidad_comprada * nprecio_por_elemento FROM Tventas;
Realizar la consulta anterior utilizando un alias apropiado para cada columna.
SELECT pkid, ncantidad_comprada, nprecio_por_elemento, ncantidad_comprada * nprecio_por_elemento AS 'precio total' FROM Tventas;
¿Has pensado en todas las operaciones que puedes realizar con los datos que guardas en una base de datos? Seguro que son muchísimas. Pues bien, en casi todos los Sistemas Gestores de Base de Datos existen funciones ya creadas que facilitan la creación de consultas mas complejas. Dichas funciones varían según el SGBD, veremos aquí las que utiliza MySQL.
Las funciones son realmente operaciones que se realizan sobre los datos y que realizan un determinado cálculo. Para ello necesitan unos datos de entrada llamados parámetros o argumentos y en función de éstos, se realizará el cálculo de la función que se esté utilizando. Normalmente los parámetros se especifican entre paréntesis.
MySQL nos ofrece funciones matemáticas, funciones para trabajar con cadenas y funciones para trabajar con fechas y horas. Algunos ejemplos de las funciones de MySQL que utilizaremos a lo largo del curso son las siguientes.
Funciones con cadenas: contcat, concat_ws, lower, upper, substr Funciones matemáticas: abs, pow, sqrt, pi, round, truncate Funciones de fecha y hora: now, curtime 6
obtener el nombre y los apellidos de todos los alumnos en una única columna.
SELECT CONCAT (cnombre, capellido1, capellido2) AS "Nombre completo" FROM Talumno;
La función CONCAT de MySQL no añade ningún espacio entre las columnas, por eso los valores de las tres columnas aparecen como una sola cadena sin espacios entre ellas. Para resolver este problema podemos hacer uso de la función CONCAT WS que nos permite definir un carácter separador entre cada columna. En el siguiente ejemplo haremos uso de la función CONCAT_WS y usaremos un espacio en blanco como separador.
Obtener el nombre y los apellidos de todos los alumnos en una única columna separados por un espacio
SELECT CONCAT_WS(' ' , cnombre, capellido1, capellido2) AS Nombre FROM Talumno;
Importante: La función CONCAT devolverá NULL cuando alguna de las cadenas que está concatenando es igual NULL, mientras que la función CONCAT_WS omitirá todas las cadenas que sean igual a NULL y realizará la concatenación con el resto de cadenas
Obtener los apellidos y nombre de todo el alumnado en mayúscula.
SELECT upper (capellido1), upper(capellido2), upper(cnombre) FROM Talumno;
Los modificadores ALL y DISTINCT indican si se deben incluir o no filas repetidas en el resultado de la consulta.