UTN-FRBA
GESTION DE DATOS
LENGUAJE SQL
DIRECTOR CATEDRA: ING. ENRIQUE REINOSA
Introducción SQL
Dentro de SQL el sublenguaje DML se compone de:
SELECT, esta sentencia se utiliza para realizar consultas sobre los datos
INSERT, con esta instrucción podemos insertar los valores en una tabla
UPDATE, sirve para modificar los valores de una o varias filas de una
tabla
DELETE, se utiliza para eliminar inas de una tabla
SQL – INSERT
INSERT: Permite agregar filas en una tabla determinada.
INSERT INTO tabla (col1, col2, …., coln)
VALUES (valor1, valor2, ….. valorn)
INSERT tabla VALUES (valor1, valor2, ….. valorn)
SQL – UPDATE
UPDATE: Permite modificar filas en una tabla determinada.
UPDATE tabla SET col1 = valor1, col2 = valor2
WHERE condicion
UPDATE tabla SET col1 = valor1, col2 = valor2
SQL – DELETE
DELETE: Permite borrar filas en una tabla determinada.
DELETE FROM tabla
WHERE condicion
DELETE tabla
WHERE condicion
SQL – SELECT
SELECT: Permite consultar filas de una o más tablas.
SELECT col1, col2, ….coln
FROM tabla
WHERE condicion
GROUP BY col1, col2, …coln
HAVING condicion
ORDER BY col1, col2, …coln
SQL – SELECT - SELECT
CLAUSULA SELECT: aquí van el o las columnas que se quieren
visualizar en la consulta en el orden en que quieran ser vistas
SELECT col1, col2, col3 FROM tabla
SELECT col2, col1, col3 FROM tabla
SELECT * FROM tabla
SQL – SELECT - FROM
CLAUSULA FROM: indica el origen de la consulta el cual puede ser una
tabla o varias, si son varias se realiza el producto cartesiano de las
mismas.
SELECT col1, col2, col3 FROM tabla1
SELECT col1, col2, col3 FROM tabla1, tabla2
SELECT * FROM tabla1, tabla2
SELECT tabla1.* FROM tabla1, tabla2
SQL – SELECT - WHERE
CLAUSULA WHERE: aquí se identifica la condición que deben
cumplir las filas para ser devueltas en la consulta
SELECT col1, col2, ….coln
FROM tabla
WHERE cond1(=,<,>,<>) AND cond2 OR cond3 NOT cond4 LIKE
‘string-*%’ BETWEEN valor 1 AND valor2
SQL – SELECT – FUNCIONES
Existen funciones propias del motor que pueden utilizarse en una
sentencia SELECT
YEAR(date)
MONTH(date)
DAY(date)
GETDATE()
ISNULL(columna, valor)
LTRIM(string)
RTRIM(string)
TRIM(string)
SPACE(entero)
LEFT(string, n)
RIGHT(string, n)
CHAR(int)
LOWER(string)
UPPER(string)
SUBSTR(string, inicio, long)
CONCAT(strin1, string2,..stringn)
STR(numero, long, decimal)
LEN(string)
REPLICATE(string, entero)
SQL – SELECT – GROUP BY
GROUP BY: Permite agrupar los resultados por las columnas
definidas en ella.
SELECT col1, col2, ….coln
FROM tabla
GROUP BY col1, col2
SQL – SELECT – GROUP BY FUNCIONES DE GRUPO
Las funciones de grupo son funciones propias del DBMS que solo
pueden utilizarse conjuntamente con la cláusula GROUP BY.
COUNT()
SUM()
MIN()
MAX()
AVG()
SELECT COUNT(*)
FROM tabla
GROUP BY col1
SQL – SELECT - HAVING
CLAUSULA HAVING: aquí se identifica la condición que deben
cumplir las filas para ser devueltas en la consulta luego que fueron
agrupadas por la cláusula GROUP BY
SELECT col1, col2, ….coln
FROM tabla
GROUP BY col1
HAVING cond1(=,<,>,<>) AND cond2 OR cond3 NOT cond4 LIKE
‘string’ BETWEEN valor 1 AND valor2
SQL – SELECT – ORDER BY
CLAUSULA ORDER BY: aquí se detalla el order en que se quieren
visualizar las filas que se obtuvieron como resultado de la consulta
SELECT col1, col2, ….coln
FROM tabla
ORDER BY col3, col1
SQL – SELECT – JOIN
JOIN: es la cláusula que permite unir dos o más tablas para acotar
el producto cartediano en el FROM
SELECT * FROM tabla1 JOIN tabla2 ON tablas1.col1 = tablas2.col1
SELECT * FROM tabla1 LEFT JOIN tabla2 ON tablas1.col1 =
tablas2.col1
SELECT * FROM tabla1 RIGHT JOIN tabla2 ON tablas1.col1 =
tablas2.col1
SQL – SELECT – CASE
CASE: permite establecer una selección múltiple dentro de un
SELECT
Con valor de columna
CASE columna WHEN valor1 THEN exp1 WHEN valor2 THEN exp2
WHEN valor3 THEN exp3 ELSE opcion END
Con condición
CASE WHEN condicion1 THEN exp1 WHEN condicion2 THEN exp2
WHEN condicion 3 THEN exp3 ELSE opcion END
SQL – SELECT – TOP
TOP: permite devolver solo una determinada cantidad de filas
desde el inicio
SELECT TOP n col1, col2, col3 FROM tabla1
ORDER BY col1
SQL – SELECT – SUBCONSULTAS
SUBCONSULTA: es la posibiidad de incorporar uno o varios selects
dentro de otro
Un comando SELECT puede colocarse dentro de otro en
cualquiera de sus cláusulas SELECT, FROM, WHERE, GROUP BY,
HAVING Y ORDER BY.
En función de donde se incorpore hay condiciones que cumplir.
SQL – SUBCONSULTA EN EL SELECT
SUBCONSULTA EN EL SELECT: siempre debe devolver un escalar o
sea un conjunto conformado por una fila y una columna
SELECT col1, (SELECT col5 FROM tabla2 WHERE col3 = tablas1.col1)
FROM tabla1
Dado que el SELECT en la lista de columnas està esperando un
valor, si el resultado del SUBSELECT devuelve màs de un valor ya
sea en fila o en columna arroja error.
SQL – SUBCONSULTA EN EL WHERE
SUBCONSULTA EN EL WHERE: puede devolver cualquier expresión
que pueda ser utilizada en una condición
SELECT col1, col2 FROM tabla1
WHERE col1 = (SELECT col3 FROM tabla2 WHERE col3 = tablas1.col1)
SELECT col1, col2 FROM tabla1
WHERE col1 IN (SELECT col3 FROM tabla2)
SQL – SUBCONSULTA EN EL GROUP
BY
SUBCONSULTA EN EL GROUP BY: siempre debe devolver un escalar
o sea un conjunto conformado por una fila y una columna
SELECT col1, col2 FROM tabla1
GROUP BY (SELECT col5 FROM tabla2 WHERE col3 = tablas1.col1)
Dado que el GROUP BY està esperando un valor, si el resultado del
SUBSELECT devuelve màs de un valor ya sea en fila o en columna
arroja error.
SQL – SUBCONSULTA EN EL HAVING
SUBCONSULTA EN EL HAVING: puede devolver cualquier expresión
que pueda ser utilizada en una condición
SELECT col1, col2 FROM tabla1
GROUP BY col1
HAVING col1 = (SELECT col3 FROM tabla2 WHERE col3 =
tablas1.col1)
SELECT col1, col2 FROM tabla1
GROYP BY col1
HAVING col1 IN (SELECT col3 FROM tabla2)
SQL – SUBCONSULTA EN EL ORDER
BY
SUBCONSULTA EN EL ORDER BY: siempre debe devolver un escalar o
sea un conjunto conformado por una fila y una columna
SELECT col1, col2 FROM tabla1
ORDER BY (SELECT col5 FROM tabla2 WHERE col3 = tablas1.col1)
Dado que el ORDER BY està esperando un valor, si el resultado del
SUBSELECT devuelve màs de un valor ya sea en fila o en columna
arroja error.
SQL – SUBCONSULTA EN EL FROM
SUBCONSULTA EN EL FROM: puede devolver cualquier conjunto
generado por un SELECT
SELECT col1, col3 FROM (SELECT col1, col3 FROM tabla1, tabla2
WHERE col3 = tablas1.col1)
SI BIEN PUEDE REALIZARSE SINTACTICAMENTE EN LA CATEDRA NO
PERMITIMOS EL USO DE UN SUBSELECT EN EL FROM DEBIDO A LA
PERDIDA DE PERMINACE DEL COMANDO
SQL – SELECT - UNION
UNION: es la cláusula asociada a un SELECT que permite unir varios
resultados de SELECTs distintos, el resultado es uno, por ello la
cláusla UNION solo puede llevar un ORDER BY al final
SELECT col1, col2 FROM tabla1
UNION
SELECT col3, col4 FROM tabla2
SELECT col1, col2 FROM tabla1
UNION ALL
SELECT col3, col4 FROM tabla2