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

Clase312 2

Este documento describe una asignatura de bases de datos relacionales que incluye el uso de consultas SQL para extraer y organizar información de múltiples tablas de una base de datos, así como el uso de perfiles y roles de usuario para restringir el acceso. Explica cómo utilizar las cláusulas SELECT, FROM, WHERE, GROUP BY y HAVING en consultas SQL para recuperar y filtrar datos específicos.

Cargado por

P3RZ3UZ
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)
53 vistas20 páginas

Clase312 2

Este documento describe una asignatura de bases de datos relacionales que incluye el uso de consultas SQL para extraer y organizar información de múltiples tablas de una base de datos, así como el uso de perfiles y roles de usuario para restringir el acceso. Explica cómo utilizar las cláusulas SELECT, FROM, WHERE, GROUP BY y HAVING en consultas SQL para recuperar y filtrar datos específicos.

Cargado por

P3RZ3UZ
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

Tecnologías de

Información y
Ciberseguridad

Bases de Datos Relacionales


TI2022 – Primavera 2021
DESCRIPCIÓN DE LA ASIGNATURA - Unidad

Consultas, Subconsultas y Agrupaciones SQL

Elaborar consultas mediante lenguaje SQL para extraer y


desplegar información de múltiples tablas de una base
de datos, utilizando perfiles, roles y usuarios para
organizar y restringir el acceso a la base de datos.
Recuperación de datos mediante la sentencia SQL SELECT

Una sentencia SELECT recupera información de la base de datos.


Con una sentencia SELECT, se puede hacer lo siguiente:

Selecciona las columnas de una tabla devueltas por una


consulta. Se pueden seleccionar tantas columnas como sea
necesario.

Selecciona las filas (o tuplas) de una tabla devueltas por


una consulta. Se pueden utilizar diferentes criterios para
restringir las filas recuperadas.
Recuperación de datos mediante la sentencia SQL SELECT

Una sentencia SELECT recupera información de la base de datos.


Con una sentencia SELECT, se puede hacer lo siguiente:

Permite reunir los datos almacenados en diferentes


tablas especificando el enlace entre ellas.
Recuperación de datos mediante la sentencia SQL SELECT

SELECT
SELECT *|{[DISTINCT]
*|{[DISTINCT] columna|expresión
columna|expresión [alias],
[alias], ...}
...}
FROM
FROM tabla
tabla
[WHERE
[WHERE condición(es)]
condición(es)]
[GROUP
[GROUP BY
BY expresión_de_agrupamiento]
expresión_de_agrupamiento]
[HAVING
[HAVING condición_agrupamiento]
condición_agrupamiento]
[ORDER
[ORDER BY
BY columna|expresión|posición
columna|expresión|posición [ASC|DESC]
[ASC|DESC]

• Cláusula SELECT, que especifica las columnas que se van a mostrar.


• * Selecciona todas las columnas
• DISTINCT Suprime los duplicados
• columnaSelecciona la columna especificada
• expresión Genera una expresión a mostrar
• alias proporciona diferentes cabeceras de la columna elegida
• Cláusula FROM, que identifica la tabla que contiene las columnas que se
muestran en la cláusula SELECT.
Recuperación de datos mediante la sentencia SQL SELECT

SELECT * FROM departments;

SELECT department_id,
department_name "Nombre Depto."
FROM departments;

SELECT first_name || ' ' || last_name,


salary*12 AS "Sueldo Anual"
FROM employees;

SELECT DISTINCT department_id


FROM employees;
Recuperación de datos mediante la sentencia SQL SELECT

SELECT
SELECT *|{[DISTINCT]
*|{[DISTINCT] columna|expresión
columna|expresión [alias],
[alias], ...}
...}
FROM
FROM tabla
tabla
[WHERE
[WHERE condición(es)]
condición(es)]
[GROUP
[GROUP BY
BY expresión_de_agrupamiento]
expresión_de_agrupamiento]
[HAVING
[HAVING condición_agrupamiento]
condición_agrupamiento]
[ORDER
[ORDER BY
BY columna|expresión|posición
columna|expresión|posición [ASC|DESC]
[ASC|DESC]

Puede restringir las filas que devuelve la consulta al utilizar la cláusula WHERE.
Una cláusula WHERE contiene una condición que se debe cumplir.
Si la condición es verdadera, se devolverá la fila que cumpla con la condición.

Consta de tres elementos:


• Nombre de la columna
• Condición de comparación
• Nombre de la columna, constante o lista de valores
Recuperación de datos mediante la sentencia SQL SELECT
Recuperación de datos mediante la sentencia SQL SELECT

= Igual que
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
<>, != Distinto de
BETWEEN…AND… Entre dos valores (amos incluidos)
IN (conjunto) Coincide con cualquiera de los valores del conjunto
LIKE Coincide con un patrón
IS NULL Es un valor nulo
REGEXP_LIKE Coincide con una expresión regular
Recuperación de datos mediante la sentencia SQL SELECT
Recuperación de datos mediante la sentencia SQL SELECT

REGEXP_LIKE es similar a la condición LIKE, excepto que REGEXP_LIKE


realiza una coincidencia de expresiones regulares en lugar de la
coincidencia de patrones simple realizada por LIKE.
Esta condición evalúa cadenas utilizando caracteres definidos por el
juego de caracteres de entrada.

REGEXP_LIKE (columna, exp_regular [, parámetro] )

parámetro
parámetro un un literal
literal de
de texto
texto que
que lele permite
permite cambiar
cambiar el
el comportamiento
comportamiento de de
coincidencia
coincidencia predeterminado
predeterminado de de la
la función.
función. Puede
Puede especificar
especificar uno
uno oo más
más de
de los
los
siguientes
siguientes valores:
valores:
•• 'i'
'i' especifica
especifica la
la coincidencia
coincidencia que que no
no distingue
distingue entre
entre mayúsculas
mayúsculas yy minúsculas.
minúsculas.
•• 'c'
'c' especifica
especifica la
la coincidencia
coincidencia sensible
sensible aa mayúsculas
mayúsculas yy minúsculas.
minúsculas.
•• 'n‘
'n‘ permite
permite que
que el el punto
punto (.),
(.), que
que eses el
el carácter
carácter comodín
comodín queque coincide
coincide con
con
cualquier
cualquier carácter,
carácter, coincida
coincida con
con el
el carácter
carácter dede nueva
nueva línea.
línea. Si
Si omite
omite este
este
parámetro,
parámetro, el el punto
punto nono coincide
coincide concon elel carácter
carácter de
de nueva
nueva línea.
línea.
Recuperación de datos mediante la sentencia SQL SELECT

La siguiente consulta devuelve el nombre y apellido de aquellos empleados con


el nombre de pila Steven o Stephen
(donde first_name comienza con Ste y termina con en y en el medio es v o ph):

^Ste : inicia con ..


(v|ph) : tiene v o ph
en$ : termina con ..
Recuperación de datos mediante la sentencia SQL SELECT

La siguiente consulta devuelve el apellido para aquellos empleados con un doble


vocal de su apellido (donde last_name contiene dos apariciones adyacentes a, e, i, o,
o u, sin tener en cuenta mayúsculas o minúsculas):

[aeiou] : una vocal


([])\1 : repite vocal
‘i’ : sin considerar May/Min
Recuperación de datos mediante la sentencia SQL SELECT
- Expresiones Regulares
Operador Significado
. Comodín. Cualquier carácter. Solo uno.
1 o más ocurrencias. Se utiliza en conjunto con un carácter o palabra que
+ precede al símbolo. “a+” localizará todas las palabras que tengan una o más
aes.
Comodín. Sirve para completar cualquier palabra. Indica 0 o varias
*
ocurrencias de la cadena o carácter que le precede.

? 0 o 1 ocurrencia de la expresión que le precede al símbolo.


Ejemplo:  h? : información que contenga cero o una h
Conjunto de caracteres. Todo lo que indiquemos dentro de los corchetes hará
pattern matching una vez con las expresiones que coincidan en base de
datos.
[trn]: expresiones que contengan las letras t, r o n
[…] [034]: expresiones que contengan entre sus cadenas los  números 0, 3 o 4
[1-9]: expresiones que tengan números del 1 al 9
[a-z]: expresiones que tengan letras de la a la z
[4-8d-pA-Z]: que contengan dígitos del 4 al 8, alguna de las letras de la d
hasta la p (en minúsculas), y letras de la A a la Z en mayúsculas.
Recuperación de datos mediante la sentencia SQL SELECT
- Expresiones Regulares
Operador Significado
No contenido en lista de caracteres.
[^…]
[^12d]: expresiones que no contengan el número 1, el número 2 o la letra d

Comprueba que haya cadenas con solo num ocurrencias de la expresión


que le precede.
{num} (bnb){2}: comprueba que hay exactamente 2 ocurrencias  de la palabra BNB
en los resultados de búsqueda. Es decir, entre ellos tienen que haber filas
que tengan la secuencia “bnbbnb”.
Lo mismo que en el anterior caso, pero con la diferencia de que comprueba
que hay al menos num ocurrencias de la expresión que le precede.
{num,} Ejemplo: 1{2,} comprueba que hay al menos 2 ocurrencias  del número 1.
   · Secuencia correcta: 111
   · Secuencia incorrecta: 1
   · Secuencia correcta: 11
Al menos num ocurrencias y no más de x ocurrencias.
Ejemplo: a{2,3} . Entre 2 y 3 aes
{num, x}   · Secuencia correcta: aa
  · Secuencia correcta: aaa
  · Secuencia incorrecta: aaaa
Recuperación de datos mediante la sentencia SQL SELECT
- Expresiones Regulares

Veamos un ejemplo: vamos a utilizar el operador de punto para buscar la letra "a"
seguida de cualquier carácter seguido de la letra "c"

Como expresión regular, esto se haría como: 'a.c'

La misma expresión como búsqueda con comodines SQL estándar sería:


WHERE column LIKE 'a_c'

¿Cuáles de las siguientes cadenas coincidirá con 'a.c'?

−'ABC‘
−'abc‘ El resto de ejemplos falla debido a que tienen
−'aqx‘ el carácter en la posición incorrecta o con las
−'axc‘ mayúsculas/minúsculas incorrectos
−'aBc‘ (mayúsculas no minúsculas según lo
−'abC‘ especificado en la cadena de búsqueda)
−'Amc‘
−'amrc'
Recuperación de datos mediante la sentencia SQL SELECT

SELECT
SELECT *|{[DISTINCT]
*|{[DISTINCT] columna|expresión
columna|expresión [alias],
[alias], ...}
...}
FROM
FROM tabla
tabla
[WHERE
[WHERE condición(es)]
condición(es)]
[GROUP
[GROUP BY
BY expresión_de_agrupamiento]
expresión_de_agrupamiento]
[HAVING
[HAVING condición_agrupamiento]
condición_agrupamiento]
[ORDER
[ORDER BY
BY columna|expresión|posición
columna|expresión|posición [ASC|DESC]
[ASC|DESC]

Puede utilizar la cláusula GROUP BY para dividir las filas de la tabla en


grupos. A continuación puede utilizar las funciones de grupo para devolver
información de resumen de cada grupo.

Puede utilizar la cláusula HAVING para especificar los grupos que se van a
mostrar y, por lo tanto, restringir los grupos según la información de
agregación.
Recuperación de datos mediante la sentencia SQL SELECT
Recuperación de datos mediante la sentencia SQL SELECT

SELECT
SELECT *|{[DISTINCT]
*|{[DISTINCT] columna|expresión
columna|expresión [alias],
[alias], ...}
...}
FROM
FROM tabla
tabla
[WHERE
[WHERE condición(es)]
condición(es)]
[GROUP
[GROUP BY
BY expresión_de_agrupamiento]
expresión_de_agrupamiento]
[HAVING
[HAVING condición_agrupamiento]
condición_agrupamiento]
[ORDER
[ORDER BY
BY columna|expresión|posición
columna|expresión|posición [ASC|DESC]
[ASC|DESC]

La cláusula ORDER BY se puede utilizar para ordenar las filas.


Sin embargo, si utiliza la cláusula ORDER BY, debe ser la última cláusula de la
sentencia SQL.
Además, puede especificar una expresión, un alias o una posición de columna como la
condición de ordenación.
Recuperación de datos mediante la sentencia SQL SELECT

1. Para invertir el orden en el que se muestran las filas, especifique la palabra clave
DESC después del nombre de columna en la cláusula ORDER BY. El ejemplo de la
diapositiva ordena el resultado por el empleado contratado más recientemente.

2. También puede utilizar un alias de columna en la cláusula ORDER BY. El


ejemplo de la diapositiva ordena los datos por salario anual.

También podría gustarte