0% encontró este documento útil (0 votos)
4 vistas38 páginas

111K-6 SQL

El documento proporciona una guía sobre el uso de SQL, incluyendo la estructura básica de las consultas, el manejo de valores nulos, y el uso de operadores de comparación y lógicos. También se abordan conceptos como la cláusula WHERE, la ordenación de resultados con ORDER BY, y la agrupación de datos con GROUP BY y HAVING. Finalmente, se presentan ejemplos prácticos y ejercicios para aplicar los conocimientos adquiridos.

Cargado por

Martin Cano
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas38 páginas

111K-6 SQL

El documento proporciona una guía sobre el uso de SQL, incluyendo la estructura básica de las consultas, el manejo de valores nulos, y el uso de operadores de comparación y lógicos. También se abordan conceptos como la cláusula WHERE, la ordenación de resultados con ORDER BY, y la agrupación de datos con GROUP BY y HAVING. Finalmente, se presentan ejemplos prácticos y ejercicios para aplicar los conocimientos adquiridos.

Cargado por

Martin Cano
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 PDF, TXT o lee en línea desde Scribd

Índice

*
* Recordemos
* Estructura básica SELECT FROM WHERE
* ALL/DISTINCT
**
* Expresiones Aritméticas, Precedencia
* Operadores de Comparación y Lógicos
* Valores nulos
* Alias (para campos)

Base de Datos - Lic. Jorge Tejada 2


Recordemos

*
* Crear, modificar y eliminar bases de datos, tablas, campos,
índice y restricciones.

* Cargar, modificar y eliminar registros de una tabla.

Base de Datos - Lic. Jorge Tejada 3


Base Ejemplo

Base de Datos - Lic. Jorge Tejada 4


Base Ejemplo

Base de Datos - Lic. Jorge Tejada 5


Estructura Básica

*
* Tres clausulas: SELECT, FROM y WHERE

* SELECT
* Listar los atributos deseados del resultado de una consulta
* FROM
* Lista las tablas que deben ser analizadas en la evaluación de la
expresión.
* WHERE
* Predicado de selección sobre los atributos de las tablas que
aparecen el la clausula FROM
Base de Datos - Lic. Jorge Tejada 6
Estructura Básica

*
* Ej.:
SELECT fincaid, fincaNombre
FROM finca

SELECT loteNombre
FROM lote

Base de Datos - Lic. Jorge Tejada 7


Escritura

*
* Las sentencias SQL no son sensibles a mayúsculas o
minúsculas.
* Las sentencias SQL pueden estar en una o más líneas.
* Las palabras clave no se pueden abreviar o dividir entre
líneas.
* Las cláusulas se sitúan normalmente en líneas separadas.
* Se utilizan sangrados para mejorar la legibilidad.
* Las sentencias SQL pueden terminar en punto y coma (;).
* Cuando hay mas de una sentencia el uso de (;) es
obligatorio.
* Convención: Las palabras reservadas se usan en mayúsculas.
Base de Datos - Lic. Jorge Tejada 8
ALL/DISTINCT

*
* SQL no filtra automáticamente duplicados.

* Palabras clave ALL/DISTINCT


* Ubicadas después de la clausula SELECT permiten especificar cuando se
aceptan o no duplicados.
* ALL es por default.

SELECT DINCTINCT fincaid, fincaNombre


FROM finca

SELECT ALL fincaid, fincaNombre


FROM finca

SELECT fincaid, fincaNombre


FROM finca

Base de Datos - Lic. Jorge Tejada 9


Comodín *

*
* “*” (asterisco)
* El símbolo asterisco se utiliza para denotar todos los atributos

SELECT * FROM finca

SELECT * FROM lote

Base de Datos - Lic. Jorge Tejada 10


Índice – Recordemos – SQL

*
* Puede contener también expresiones aritméticas que
contengan los operadores, +, –,* y / operando sobre
constantes o campos (atributos de tablas).
SELECT lotevariedadSuperficie*10000
FROM lotevariedad

Base de Datos - Lic. Jorge Tejada 11


Índice – Recordemos – SQL

*
SELECT lotevariedadQPCrecimiento +
lotevariedadQPProduccion
FROM lotevariedad

Base de Datos - Lic. Jorge Tejada 12


Índice – Recordemos – SQL

*
SELECT lotevariedadSuperficie*10000+1 FROM
lotevariedad
SELECT lotevariedadSuperficie*(10000+1) FROM
lotevariedad

Base de Datos - Lic. Jorge Tejada 13


Índice – Recordemos – SQL

1 ) *, / de derecha a izquierda.

2 ) +, - de derecha a izquierda.

Base de Datos - Lic. Jorge Tejada 14


Índice – Recordemos – SQL

*
* Un valor nulo es aquel que no está disponible, no está
asignado, es desconocido o no es aplicable.
* Un valor nulo no es lo mismo que un cero o un espacio en
blanco.
SELECT * FROM lotevariedad

Base de Datos - Lic. Jorge Tejada 15


Valores Nulos

*
* Las expresiones aritméticas que contienen un valor nulo se
evalúan como nulas.
SELECT lotevariedadQPCrecimiento +
lotevariedadQPProduccion
FROM lotevariedad

Base de Datos - Lic. Jorge Tejada 16


Valores Nulos

*
* Los valores nulos no se pueden comparar con los operadores
de comparación.
* lotevariedadAnio = NULL  Incorrecto
* lotevariedadAnio <> NULL  Incorrecto

* Para saber si un campo es o no nulo usamos:


* lotevariedadAnio IS NULL
* lotevariedadAnio IS NOT NULL

Base de Datos - Lic. Jorge Tejada 17


Cláusula WHERE, Operadores de Comparación y Lógicos

*
* Permite especificar el o los criterios que deben cumplir las
filas buscadas.
* Podemos utilizar los operadores lógicos y de comparación.

SELECT fincaId, fincaNombre


FROM finca
WHERE fincaId<='2'

Base de Datos - Lic. Jorge Tejada 18


Cláusula WHERE, Operadores de Comparación y Lógicos

*
SELECT * FROM lotevariedad
WHERE (loteId<='5') AND
(loteVariedadAnioPlantacion IS NOT NULL)

Base de Datos - Lic. Jorge Tejada 19


Cláusula WHERE, Operadores de Comparación y Lógicos

*
SELECT * FROM lotevariedad
WHERE (variedadId<='2') OR (loteId>='7')

Base de Datos - Lic. Jorge Tejada 20


Cláusula WHERE, Operadores de Comparación y Lógicos

*
SELECT * FROM lotevariedad
WHERE (variedadId<='2') OR (loteId>='7')

Base de Datos - Lic. Jorge Tejada 21


ORDER BY

*
* Siempre se ubica al final de la sentencia y nos permite
ordenar por uno o varios campos.
* Se puede especificar si el orden es ascendente o
descendente.
* Afecta la performance de la búsqueda de la consulta.
* Se puede utilizar el ordinal de los campo buscados.
SELECT fincaId, fincaNombre
FROM finca
ORDER BY fincaNombre

Base de Datos - Lic. Jorge Tejada 22


ORDER BY

*
SELECT fincaId, fincaNombre
FROM finca
ORDER BY fincaNombre DESC

Base de Datos - Lic. Jorge Tejada 23


ORDER BY

*
SELECT loteId, variedadId
FROM lotevariedad
ORDER BY 2,1

Base de Datos - Lic. Jorge Tejada 24


Índice – Recordemos – SQL

*
SELECT loteId, lotevariedadQPCrecimiento,
lotevariedadQPProduccion
FROM lotevariedad
ORDER BY loteId

Base de Datos - Lic. Jorge Tejada 25


Índice – Recordemos – SQL

*
SELECT loteId AS ID,
lotevariedadQPCrecimiento AS PantasCrec,
lotevariedadQPProduccion AS 'Pantas en
Producción'
FROM lotevariedad
ORDER BY loteId

Base de Datos - Lic. Jorge Tejada 26


Índice – Recordemos – SQL

*
* Es un operador de comparación que se utiliza dentro de la
cláusula WHERE para establecer rango de valores entre el
criterio de búsqueda de un campo dado.
* WHERE campo BETWEEN lim_inf AND lim_sup
* Incluye los extremos, es decir es equivalente a
* WHERE (campo>= lim_inf) AND (campo<=lim_sup)
SELECT loteId, variedadId FROM lotevariedad
WHERE variedadId BETWEEN '2' AND '4'

Base de Datos - Lic. Jorge Tejada 27


Índice – Recordemos – SQL

*
* Son funciones que toman una colección de valores como
entrada y producen un único valor como salida.
* Se ubica luego de la cláusula WHERE.
* SUM, AVG, MIN, MAX, COUNT
SELECT SUM(lotevariedadQPProduccion) AS Total
FROM lotevariedad
WHERE variedadId BETWEEN '2' AND '4'

Base de Datos - Lic. Jorge Tejada 28


Índice – Recordemos – SQL

*
* El atributo o atributos especificados en la cláusula GROUP
BY se usan para formar grupos

SELECT loteId AS ID,


SUM(lotevariedadQPProduccion) AS Total
FROM lotevariedad
GROUP BY loteId

Base de Datos - Lic. Jorge Tejada 29


Índice – Recordemos – SQL

*
SELECT loteId AS ID,
SUM(lotevariedadQPProduccion) AS Total
WHERE lotevariedadQPProduccion>=0
FROM lotevariedad
GROUP BY loteId

Base de Datos - Lic. Jorge Tejada 30


Índice – Recordemos – SQL

*
* A veces es más útil establecer una condición que se aplique
a los grupos más que una que se aplique a los registros.
* Los predicados de la cláusula HAVING se aplican después de
la formación de grupos.
SELECT loteId AS ID,
SUM(lotevariedadQPProduccion) AS Total
FROM lotevariedad GROUP BY loteId
HAVING SUM(lotevariedadQPProduccion)>=550

Base de Datos - Lic. Jorge Tejada 31


Índice – Recordemos – SQL

*
* LIMIT se utiliza para limitar el numero de registros devueltos por
la búsqueda. Nunca son devueltos mas de los registros
especificados en el LIMIT. Si pueden ser menos.
* OFFSET (desplazamiento) indica cuantos registros son salteados
antes de iniciar la primer fila a devolver.
* OFFSET por default es 0
* SQL devuelve los registros sin ningún orden en particular. Por este
motivo al usar LIMIT y OFFSET es conveniente usar ORDER BY,
pues sino el resultado puede ser aleatorio.

SELECT loteId AS LID, variedadId AS VID


FROM lotevariedad
ORDER BY 1 LIMIT 3 OFFSET 2

Base de Datos - Lic. Jorge Tejada 32


Índice – Recordemos – SQL

*
SELECT loteId AS LID,
variedadId AS VID
FROM lotevariedad
ORDER BY 1

SELECT loteId AS LID, variedadId AS VID


FROM lotevariedad
ORDER BY 1 LIMIT 3 OFFSET 2

Base de Datos - Lic. Jorge Tejada 33


Índice – Recordemos – SQL

*
SELECT [ALL | DISTINCT]
select_expr [, select_expr ...]
[
FROM tabla
[WHERE where_condicion]
[GROUP BY {col_nombre}]
[HAVING where_condicion]
[ORDER BY {col_nombre | expr | position}
[ASC | DESC], ...]
[LIMIT numero [OFFSET numero]]
]

Base de Datos - Lic. Jorge Tejada 34


Resumen Visto

*
SELECT, COUNT,
ALL, DISTINCT, * GROUP BY,
FROM, HAVING
WHERE,
<,<=,>,>=,=,
NULL (Valores Nulos),
AND, OR, NOT,
BETWEEN,
ORDER BY,
AS (Alias),
LIMIT, OFFSET,
SUM, AVG, MAX, MIN,

Base de Datos - Lic. Jorge Tejada 35


Resumen Visto

*
* CREATE * NOT * EXISTS * BEGIN
* DROP * >, < * ANY * BEGINSTRANS
* ALTER * <>, = * LIMIT/TOP * COMMINSTRANS
* SELECT * >=, <= * OFFSET * ROLLBACK
* INSERT * BETWEEN * AS * ROLLBACKTRANS
* UPDATE * LIKE * UNION/ UNON * INDEX
* DELETE * AVG ALL * UNIQUE
* FROM * COUNT * Valores Nulos * JOIN
* WHERE * SUM * IF * INNER
* GROUP BY * MAX * CASE * LEFT
* HAVING * MIN * WHEN * RIGHT
* ORDER BY * +, -, *, / y % * END * FULL OUTER
* ASC, DESC * ALL, DISTINCT, * * BEFORE * INTO
* AND * IN * AFTER * SET
* OR * NOT IN * IS, IS NOT * Valores Nulos
* NULL
Base de Datos - Lic. Jorge Tejada 36
Ejercicios

*
* Buscar todos los Lotes
* Buscar todos los lotes que tengan Id menor a 10
* Buscar todos los campos de la tabla lotevariedad
* Buscar todos los años de plantación de la tabla lotevariedad
* Buscar todos los años de plantación de la tabla lotevariedad
* Buscar todos los años de plantación distintos de la tabla
lotevariedad
* Buscar todos los años de plantación distintos de la tabla
lotevariedad que no sean nulos
* Buscar todos los años de plantación distintos de la tabla
lotevariedad que no sean nulos ordenados
decrecientemente
Base de Datos - Lic. Jorge Tejada 37
Preguntas

Base de Datos - Lic. Jorge Tejada 38

También podría gustarte