0% encontró este documento útil (0 votos)
16 vistas

SQL - DML Select

Las consultas son operaciones que permiten acceder y analizar los datos almacenados en las tablas de una base de datos relacionadas entre sí mediante claves. La sentencia SELECT junto con FROM, WHERE y JOIN son fundamentales para realizar consultas y mostrar los registros deseados.

Cargado por

mirolopez2004
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas

SQL - DML Select

Las consultas son operaciones que permiten acceder y analizar los datos almacenados en las tablas de una base de datos relacionadas entre sí mediante claves. La sentencia SELECT junto con FROM, WHERE y JOIN son fundamentales para realizar consultas y mostrar los registros deseados.

Cargado por

mirolopez2004
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 1

Las bases de datos no tendrian utlidad si no se pudiera

acceder a sus datos, hacer operaciones y analizarlos.


1. Introduccion Las consultas son las operaciones que permiten
mostrar los registros, también son las que mas se usan
en una BBDD.

Se usa para consultar los datos en la mayoría de bases


de datos.
Su sintaxis podría ser como la que vemos arriba.

Las clausulas SELECT y FROM siempre son


obligatorias, con SELECT indicar la columna y con
Asociación de Tablas de una BBDD FROM la tabla.
La caracteristica mas importantes de una base de datos
es que sus datos estan almacenados en diferentes WHERE también es bastante común, permite
tablas que se relacionan con otras a traves de claves seleccionar los registros que quieras mostrar.
primarias y claves foraneas, para relacionar tablas
tenemos la sentencia JOIN. ORDER BY permitirá ordenar los datos mostrados de
forma ascendente o descendente.
Operador JOIN
Se usa dentro de la clausula FROM, su sintaxis es esta y SELECT
<lista_campo> o expresiones separadas por comas y
hay dos formas: en orden, con * mostraremos todos los campos.
1. FROM tabla1 JOIN tabla2 ON tabla1.hola = tabla2.hola
2. FROM tabla1 JOIN tabla2 USING (hola) Consultas de registro sobre una tabla DISTINCT elimina valores repetidos
Las dos funcionan de la misma forma.
<condición> simple o compuesta a través de
Incluye en el resultado los registros de la tabla de la operadores lógicos.
izquierda que se relacionen con la de la derecha.
Dos sintaxis:
ORDER BY <lista_campos>, especifica los campos por
1.
los que se va a ordenar la información que presenta.
SELECT NIF, Nombre, Apellido1, Apellido2, Telefono Ordenacion de los registros Por defecto es ascendente así que si queremos que sea
FROM Profesor JOIN TlfContactoProf
descendente usaremos DESC.
USING(idProfesor)
WHERE Nombre LIKE 'JU%'; [INNER] JOIN
2. Los operadores aritméticos son +, - , *, % y /.
Operadores Aritméticos % se usa para obtener el resto de una división.
SELECT NIF, Nombre, Apellido1, Apellido2, Telefono
FROM Profesor JOIN TlfContactoProf
ON Profesor.idProfesor = IN: comprueba si una columna tiene un valor igual que
TlfContactoProf.idProfesor cualquiera que este en el paréntesis.
WHERE Nombre LIKE 'JU%'; Sintaxis:
Operadores WHERE marca IN ('seat', 'audi');
Incluye en el resultado únicamente los registros de la
tabla de la izquierda. IS NULL: Comprueba si un valor es nulo.
Dos sintaxis: Sintaxis:
1. WHERE marca IS NULL;
SELECT Alumno.Nombre, Alumno.Apellido1,
COUNT(idAsignatura) as NumeroAs Otros Operadores LIMIT: limita el numero de registros mostrados.
FROM Alumno LEFT JOIN Matricula USING Sintaxis:
(idAlumno) LIMIT 3;
GROUP BY Alumno.Nombre, Alumno.Apellido1 LEFT JOIN
ORDER BY NumeroAs DESC;
2.
SQL -DML : SELECT CONCAT: concatena campos o cadena de campos, lo
que permite mostrar información de varias fuentes en
SELECT Alumno.Nombre, Alumno.Apellido1, una única expresión.
COUNT(idAsignatura) as NumeroAs Sintaxis:
FROM Alumno LEFT JOIN Matricula SELECT CONCAT(marca, modelo)
ON Alumno.idAlumno = Matricula.idAlumno
3. Consultas de Composición FROM coches;
GROUP BY Alumno.Nombre, Alumno.Apellido1
ORDER BY NumeroAs DESC; Son nombres alternativos que le podemos asignar a los
campos.
Alias
Incluye en el resultado unicamente los registros de la Sintaxis:
tabla de la derecha. SELECT CONCAT(marca, modelo) AS coche
Dos sintaxis:
1. Cadenas de caracteres CONCAT(), LEFT(), LENGTH(), LOCATE(), TRIM(), UPPER()
SELECT Titulo, Publicacion, Autor.Nombre
FROM Autor RIGHT JOIN Libro USING (idAutor) RIGHT JOIN
2. DAY(), DAYNAME(), DAYOFWEEK(), HOUR(), NOW(),
Funciones integradas Fecha y hora
SELECT Titulo, Publicacion, Autor.Nombre YEAR()
FROM Autor RIGHT JOIN Libro
ON Autor.idAutor = Libro.idAutor Numéricas ABS(), ROUND(), TRUNCATE ()

Devuelve todos los datos que devuelve una consulta - COUNT(*, nombre_campo, expresion): muestra el
mas todos los que devuelve la otra, se excluyen los numero de registros que tiene dicha consulta.
repetidos a no ser que se utilice la clausula ALL. Sintaxis:
Sintaxis: SELECT COUNT(cDireccion)
SELECT <listacampos>
UNION [DISTINCT | ALL] - AVG(nombre_campo): muestra la media aritmética
UNION [ALL]
del campo.
- El número de columnas en las dos consultas debe ser Sintaxis:
igual SELECT AVG(nSalario)
- El orden también ha de ser el mismo
- Los tipos de datos deben ser compatibles - SUM(nombreCampo): muestra una suma aritmética
de un campo.
Sintaxis:
SELECT SUM(nSalario)

- MAX(nombreCampo): muestra el maximo valor de


un campo.
MIN(nombreCampo): muestra el minimo valor de un
campo.
Sintaxis de ambos:
SELECT MAX(dAlta), MIN(dNacimiento)

- GROUP BY <lista_campos>: sirve por si queremos


Funciones de agregación mostrar valores de otros campos con el resultado de
alguna función de agregación.
Sintaxis:
SELECT dMatricula, CONCAT(marca, modelo)
FROM coches
GROUP BY dMatricula, marca, modelo;

-HAVING <lista_campos>: especifica una condicion


sobre el resultado de una agrupacion.
Sintaxis:
SELECT dMatricula, CONCAT(*)
FROM coches
2. Sentencia SELECT GROUP BY dMatricula;
HAVING COUNT(*) = 2;

-GROUP BY y HAVING: se pueden combinar con la


setencia WHERE, que filtra la informacion previa a su
agregacion.
Sintaxis:
SELECT dMatricula, CONCAT(*)
FROM coches
WHERE dMatricula = marca
GROUP BY dMatricula;
HAVING COUNT(*) = 2;

Son un tipo de consultas en las que las lista de valores


que devuelven se convierte en la lista de valores de
entrada.
Sintaxis:
SELECT <listaCampos> FROM tabla1
WHERE <condicion> 'OPERADOR'
(SELECT <listaCampos> FROM tabla2
WHERE <condicion>)
Donde pone OPERADOR, se pondría alguno de estos
operadores:
- De comparación: =, <, <=, >, >=
- IN / NOT IN, EXITS / NOT EXITS, ANY, ALL

Operadores relacionales. Ejemplo “=”


El operador “=” busca si una expresión es igual al valor
devuelto por la subconsulta. Ejemplo:
SELECT Nombre, Apellido1, Apellido2
FROM Alumno
WHERE idMatricula =
(SELECT idMatricula FROM Matricula
WHERE DNI = ‘80145634T’)

Operador [NOT] IN: busca si una expresion se


encuentra en una lista de valores que devuelve la
subconsulta. Ejemplo:
SELECT Nombre, Apellido1, Apellido2
FROM Alumno
WHERE idMatricula IN
(SELECT idMatricula FROM Matricula
WHERE Nota >= 9)
Subconsultas
Operador [NOT] EXITS: devuelve un valor TRUE si la
subconsulta devuelve algún valor y como FALSE en
caso contrario. Ejemplo:
SELECT AVG(Edad)
FROM Alumno
WHERE EXITS
(SELECT Nota FROM Matricula
WHERE Nota >= 5)

Operadores ANY y ALL: se usa en subconsultas que


devuelven un conjunto de valores y se quiere comparar
con una expresion mediante operadores. Se usa asi:
SELECT ..... ALL/ANY <subconsulta>

Se usa ANY para comparar la expresion de la izquierda


con la de la derecha preguntado si es mayor, menor etc.
Y ALL para comparar todo.

Ejemplo ANY:
SELECT first_name, last_name
FROM Actor
WHERE last_name = ANY
(SELECT last_name FROM Actor
WHERE first_name = 'ED');

Ejemplo ALL:
SELECT film_id, title
FROM Film
WHERE rental_rate >= ALL
(SELECT rental_rate FROM Film
WHERE rating=‘PG’);

Las operaciones de inserción, actualizaciones y


eliminación pueden combinarse con sentencias SELECT.

Inserción:
INSERT INTO tabla1 (SELECT <listacampos> FROM
tabla2 WHERE .... );

Actualizaciones:
UPDATE tabla1 SET campo1 = (SELECT
Modificación de registros mediante
[operacion[campo2] FROM tabla2 WHERE);
consultas
Eliminación:
DELETE FROM tabla1 WHERE campo1 IN (SELECT
campo2 FROM tabla2);

Tambien podemos crear una nueva tabla como


resultado de cualquier de sentencia SELECT:
CREATE TABLE tabla1 (SELECT <listacampos>
FROM tabla2 WHERE .... );

También podría gustarte