Está en la página 1de 15

Desde Cero con MySQL

Unidad
3

Obteniendo información,
relacionando tablas y utilizando
funciones y operadores en SQL
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

Unidad 3 - Obteniendo información,


relacionando tablas y utilizando
funciones y operadores en SQL
3
En esta unidad desarrollaremos los siguientes contenidos básicos:
1) Obteniendo información con las sentencias.
2) Cómo insertar, actualizar y eliminar datos de la base de datos.
3) Relacionando y combinando tablas en SQL.
4) Introducción a los Alias
5) Funciones y operadores de SQL.

Obteniendo información con las sentencias


A) Utilizando la sentencia SELECT para obtener información
Cuando queremos obtener información de una tabla recurrimos a utilizar la senten-
cia SELECT, el proceso que hay que seguir es el siguiente:
1) Primero ir a FILE (archivo) selecciona NEW Query tab donde generamos la sentencia.
2) Ejecutamos:

Sentencia: SELECT * (asterisco), FROM nombre_tabla ;


Ejemplo: SELECT * FROM peliculas;
*nos traerá todos los atributos que posee la tabla peliculas.

Otra forma de traer información podrás hacerlo con anotación de punto, eliminando
el *(asterisco) y haciendo referencia a los atributos/columnas de la tabla que quere-
mos traer(año o título separado con coma).

Ejemplo: SELECT titulo, anio FROM peliculas;


*Esta forma es más simple para bases más pequeñas.
Ejemplo: SELECT películas, anio, peliculas, titulo FROM peliculas;
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

Puede ser “puntual” o similar. Con * se traen todos los atributos de la tabla, si no se
puede aclarar columna por columna, como este ejemplo.
Recordá que afecta el orden de como muestra la información dependiendo qué atri-
buto ordenamos primero. Así sabemos a qué atributo pertenece. Esto nos permite
en bases muy grandes poder diferenciar las tablas
Aqui video práctico para la sentencia select:
4
https://www.youtube.com/watch?v=kxCptjkj1Ck&feature=youtu.be

B) Sentencia condicional para traer información


WHERE: especifica la condición de filtro de las filas devueltas. Se utiliza cuando no
se desea que se devuelvan todas las filas de una tabla, sino sólo las que cumplen
ciertas condiciones. Lo habitual es utilizar esta cláusula en la mayoría de las consul-
tas.Si precisas clasificar la información con mayor definición vas a utilizar la palabra
clave WHERE.
Condiciones: Son expresiones lógicas a comprobar para la condición de filtro, que tras
su resolución devuelven para cada fila TRUE o FALSE, en función de que se cumplan o
no. Se puede utilizar cualquier expresión lógica y en ella utilizar diversos operadores.

Los operadores relacionales o delimitadores son símbolos simples o compuestos:


> (Mayor)
>= (Mayor o igual)
< (Menor)
<= (Menor o igual)
= (Igual)
<> o != (Distinto)
IS [NOT] NULL (para comprobar si contiene o no algún valor)

Los operadores lógicos AND y OR, permiten que usando la sentencia


WHERE, se haga filtro con más de una condición para agregar intervalos
entre las columnas.

• AND: El operador AND muestra un registro cuando la primera condición y la segun-


da se cumplen.Es más limitante y estricto

Sentencia: SELECT * FROM peliculas WHERE anio = 1999 AND titulo =


“The Matrix” ;
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

• OR: el operador OR, muestra los registros cuando se cumple la primera condición Ó
la segunda.Es más permisivo

Sentencia: SELECT * FROM peliculas WHERE anio = 1999 OR titulo =


“The Matrix” ;
5

Adicionalmente, disponemos de operadores de comparación adicionales, también


devolviendo valores booleanos (lógicos) True o False según si se cumplen o no las
condiciones:

BETWEEN: se utiliza en la cláusula WHERE para seleccionar valores entre un rango


de dato.Mientras que la palabra clave IN ayuda a las personas a limitar el criterio de
selección para uno o más valores discretos, la palabra clave BETWEEN permite la
selección de un rango. Esto seleccionará todas las filas cuya columna tenga un valor
entre ‘valor1’ y ‘valor2’.

Sentencia: SELECT * FROM peliculas WHERE anio BETWEEN 1999 AND


2000

LIKE: es otra palabra clave que se utiliza en la cláusula WHERE. Básicamente, LIKE
permite hacer una búsqueda basada en un patrón en vez de especificar exactamente
lo que se desea (como en IN) o determinar un rango (como en BETWEEN).
El símbolo de porcentaje (%) significa que se acepta cualquier elemento en su lugar: un
carácter, cien caracteres o ningún carácter. Los comodines que utiliza para consultar
geodatabases personales son el asterisco (*) para cualquier número de caracteres y
el signo de pregunta (?) para un carácter.

Sentencia: SELECT * FROM peliculas WHERE titulo LIKE “%The matrix”;

IN: tiene dos usos de la palabra clave IN, y esta sección introduce aquél relacionado
con la cláusula WHERE. Cuando se lo utiliza en este contexto, sabemos exactamente
el valor de los valores regresados que deseamos ver para al menos una de las colum-
nas. El número de valores en los paréntesis pueden ser uno o más, con cada valor
separado por comas. Los valores pueden ser números o caracteres.

Video del ejercicio para traer información aquí:


https://www.youtube.com/watch?v=qfz3mzK4eDk&feature=youtu.be
(Desde 2:40 en adelante)
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

C) Cómo insertar, actualizar y eliminar datos de la base de datos


Para la manipulación de filas disponemos de las sentencias SQL INSERT, UPDATE y
DELETE, su uso y sintaxis.
INSERT: Permite crear o insertar nuevos registros en una tabla, y conocemos la
sentencia INSERT INTO se utiliza para insertar nuevas filas en una tabla.Es posible
insertar una nueva fila en una tabla de dos formas distintas:
6

Sentencia: INSERT INTO nombre_tabla VALUES (valor1, valor2, valor3, .)


Sentencia: INSERT INTO nombre_tabla (columna1, columna2, columna3,.)
VALUES (valor1, valor2, valor3, .)

Todo lo que se explicó en referencia a los tipos de datos es válido para la instrucción
INSERT. Los datos de tipo numérico no se entrecomillan, a diferencia de los datos de
tipo cadena y fecha. Donde cada dato de la lista VALUES se corresponde y se asigna a
cada campo de la tabla en el mismo orden de aparición de la sentencia INSERT.
Los valores v1, v2, ..., vn se deben corresponder exactamente con las columnas que
hemos dicho que tendríamos con el CREATE TABLE y deben estar en el mismo orden,
a menos que las volvamos a poner a continuación del nombre de la tabla. En este úl-
timo caso, los valores se deben disponer de forma coherente con el nuevo orden que
hemos impuesto. Podría darse el caso de que quisiéramos que algunos valores para
insertar fuesen valores por omisión, definidos previamente con la opción DEFAULT.
Entonces pondremos la palabra reservada DEFAULT. Si se trata de introducir valores
nulos, también podemos utilizar la palabra reservada NULL.

Para verificar si se cargaron los datos ejecutados exitosamente:


Sentencia: SELECT * FROM nombre_de_tabla;

Otra manera de realizarlo es con la sentencia SET. SET significa asignar información
y nos permite igual que la anterior sentencia agregar información.

Sentencia: INSERT INTO nombre_tabla SET columna1 = Valor1,


columna2=Valor2;
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

UPDATE: permite actualizar registros de una tabla. Debemos por lo tanto indicar que
registros se quiere actualizar mediante la cláusula WHERE, y que campos mediante
la cláusula SET, además se deberá indicar que nuevo dato va a guardar cada campo.
Omitir la cláusula WHERE en una instrucción UPDATE implica aplicar la actualización
a todos los registros de la tabla.

Sentencia: UPDATE nombre_tabla SET columna2=valor nuevo WHERE 7


columna1;

Modo de actualización segura /Error 1175: IMPORTANTE MySQL por defecto genera
un MODO DE ACTUALIZACIÓN SEGURA en dichas tablas para arrojarnos este error.
Para corregir el ERROR en esta tabla vamos a generar una nueva pestaña CTRL +T
y colocamos

Sentencia: SET SQL_SAFE UPDATES=0;

DELETE: permite eliminar registros de una tabla, su sintaxis es simple, puesto que
solo debemos indicar que registros deseamos eliminar mediante la cláusula WHERE.
Al eliminar registros de una tabla estos no deben figurar como clave foránea en otra
tabla, de lo contrario el SGBD devolverá un error de violación de integridad referen-
cial, puesto que si se permitiese quedarían regsitros huerfanos.

Sentencia: DELETE FROM nombre_tabla WHERE columna1 = valor1 AND


columna2=valor2;

Video del ejercicio:


https://www.youtube.com/watch?v=zbWhplrg2CI&feature=youtu.be

Relacionando tablas con SQL - Los JOINs


Los JOINs en SQL sirven para combinar filas de dos o más tablas basándose en un
campo común entre ellas, devolviendo por tanto datos de diferentes tablas. Un JOIN
se produce cuando dos o más tablas se juntan en una sentencia SQL. Existen más
tipos de joins en SQL que los que aquí se explican, como CROSS JOIN, O SELF JOIN,
pero no todos ellos están soportados por todos los sistemas de bases de datos. Los
más importantes son los siguientes:
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

JOINs Descripción Sentencia/Sintaxis Gráfico

INNER Devuelve todas las filas cuando hay FROM Tabla1 [INNER]
JOIN al menos una coincidencia en ambas JOIN Tabla2 ON
tablas.Lo más usual, lo primero que Condiciones_Vinculos_
se suele aprender, es el uso de INNER Tablas
JOIN, o generalmente abreviado como
8
JOIN. Esta cláusula busca coincidencias
entre 2 tablas, en función a una columna
que tienen en común. De tal modo que
sólo la intersección se mostrará en los
resultados.
Devuelve todas las filas de la tabla de la SELECT OrderID,
izquierda, y las filas coincidentes de la C.CustomerID,
LEFT tabla de la derecha.A diferencia de un CompanyName,
JOIN INNER JOIN, donde se busca una inter- OrderDate FROM
sección respetada por ambas tablas, Customers C LEFT
con LEFT JOIN damos prioridad a la JOIN Orders O ON
tabla de la izquierda, y buscamos en la C.CustomerID =
tabla derecha. O.CustomerID
En el caso de RIGHT JOIN la situación SELECT OrderID,
es muy similar, pero aquí se da priori- C.CustomerID,
RIGHT dad a la tabla de la derecha.Devuelve CompanyName,
JOIN todas las filas de la tabla de la derecha, OrderDateFROM
y las filas coincidentes de la tabla de la Customers C RIGHT
izquierda. JOIN Orders O ON
C.CustomerID =
O.CustomerID
Mientras que LEFT JOIN muestra todas SELECT T1.Col1,
las filas de la tabla izquierda, y RIGHT T1.Col2, T1.Col3,
FULL JOIN muestra todas las correspondien- T2.Col7 FROM Tabla1
JOIN tes a la tabla derecha, FULL OUTER T1 FULL [OUTER] JOIN
JOIN (o simplemente FULL JOIN) se Tabla2 T2 ON T1.Col1 =
encarga de mostrar todas las filas de T2.Col1
ambas tablas, sin importar que no exis-
tan coincidencias (usará NULL como un
valor por defecto para dichos casos).
Devuelve todas las filas de las dos ta- FROM Tabla1 [LEFT/
blas, la izquierda y la derecha. También RIGHT/FULL] [OUTER]
OUTER se llama FULL OUTER JOIN.Nos devuel- JOIN Tabla2 ON
JOIN ve todos los registros cuando hay una Condiciones_Vinculos_
coincidencia en los registros de la tabla Tablas
izquierda (tabla1) o derecha (tabla2).
Puede devolver conjuntos de resultados
muy grandes.
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

Aquí link con mayor información Joins :


https://dev.mysql.com/doc/refman/8.0/en/join.html

Introducción a los alias


Un alias(AS), es otra forma de llamar a una tabla o a una columna, y se utiliza para 9
simplificar las sentencias SQL cuando los nombres de tablas o columnas son largos
o complicados.

Sintaxis: SELECT columna FROM nombretabla AS aliastabla;

Video aquí
https://www.youtube.com/watch?v=m_zF9e0gaiA&feature=youtu.be
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

Funciones y operaciones en MySQL


Una función es un conjunto de sentencias que operan como una unidad lógica. Una
función retorna un parámetro de salida y opcionalmente acepta parámetros de entra-
da. SQL Server ofrece varios tipos de funciones para realizar distintas operaciones.
Se pueden clasificar de la siguiente manera:
1) Funciones de agregado: realizan operaciones que combinan varios valores y re- 10
tornan un único valor. Son “count”, “sum”,”AVG”, “min” y “max”.
El lenguaje SQL tiene funciones incorporadas para hacer cálculos sobre los da-
tos. Funciones agregadas SQL, devuelve un sólo valor, calculado con los valores
de una columna:

FUNCIONES DE AGREGADO

Funciones Descripción Sentencia/Sintaxis


MAX (Máximo La función MAX () devuelve el valor más SELECT MAX(column_name)FROM
- El valor más grande de la columna seleccionada. table_name WHERE condition;
grande)

MIN (Mínimo La función MIN () devuelve el valor más SELECT MIN(column_name) FROM
- El valor más pequeño de la columna seleccionada. table_name WHERE condition;
pequeño)

SUM (Suma - La La función SUM () devuelve la suma SELECT SUM(column_name)FROM


suma de los total de una columna numérica. table_name WHERE condition;
valores)

AVG La función AVG () devuelve el valor pro- SELECT AVG(column_name) FROM


(Porcentajes - medio de una columna numérica. table_name WHERE condition;
La media de los
valores)

COUNT (El La función COUNT () devuelve el núme- SELECT COUNT(column_name)


número de filas) ro de filas que coincide con un criterio FROM table_name WHERE condition;
especificado.

GROUP BY Combina los registros con valores idénti- Sentencia: SELECT campos FROM
cos, en la lista de campos especificados, tabla WHERE criterio GROUP BY
en un único registro. Para cada registro campos del grupo
se crea un valor sumario si se incluye
una función SQL agregada, como por
ejemplo Sum o Count, en la instrucción
SELECT. GROUP BY es opcional.
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

Los valores de resumen se omiten si no existe una función SQL agregada en la ins-
trucción SELECT. Los valores Null en los campos GROUP BY se agrupan y no se
omiten. No obstante, los valores Null no se evalúan en ninguna de las funciones SQL
agregadas.
Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláu-
sula HAVING para filtrar los registros una vez agrupados. Una vez que GROUP BY ha
combinado los registros, HAVING muestra cualquier registro agrupado por la cláusula 11
GROUP BY que satisfaga las condiciones de la cláusula HAVING.
HAVING: es similar a WHERE, determina qué registros se seleccionan. Una vez que
los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de
ellos se van a mostrar.

Sentencia:SELECT column_name(s) FROM table_name WHERE condition


GROUP BY column_name(s) HAVING condition ORDER BY column_
name(s);

IFNULL: si queremos cambiar un valor NULL por otro valor cualquiera, utilizaremos
las siguientes funciones (ISNULL, IFNULL, NVL, COLACESCE) según el sistema de
base de datos.Para nuestros ejemplos, queremos que si el valor es NULL se cambie
por el valor 0

Ejemplo:SELECT producto,preciounidad * (unidadesstock +


ISNULL(unidadespedido, 0) FROM productos;
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

2) Funciones de escalares: toman un solo valor y retornan un único valor. Pueden


agruparse de la siguiente manera:

FUNCIONES DE ESCALARES
De configuración Retornan información referida a la configuración.Ejemplo:select @@
version; Retorna la fecha, versión y tipo de procesador de SQL Server.
De cursores Retornan información sobre el estado de un cursor. 12
De fecha y hora Operan con valores “datetime” y ``smalldatetime”. Reciben un paráme-
tro de tipo fecha y hora y retornan un valor de cadena, numérico o de
fecha y hora.Esta sección describe las funciones que se pueden utilizar
para manipular valores temporales.
Matemáticas Realizan operaciones numéricas, geométricas y trigonométricas.
De metadatos Informan sobre las bases de datos y los objetos.
De seguridad Devuelven información referente a usuarios y funciones.
Del sistema Informan sobre opciones, objetos y configuraciones del sistema. Ejem-
plo:select user_name();
Estadísticas del sistema Retornan información referente al rendimiento del sistema.
Texto e imagen Realizan operaciones con valor de entrada de tipo text o image y retor-
nan información referente al mismo.
De cadena Mediante las funciones de cadena, puede, por ejemplo, combinar datos,
extraer una subcadena, comparar cadenas o convertir una cadena a
todos los caracteres en mayúscula o minúscula. Estas funciones se
dividen en dos grupos: Funciones que devuelven caracteres y las que
devuelven valores numéricos.
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

Estas funciones en cadena que vamos a explicar a continuación pueden manipular


cadenas de letras u otros caracteres por lo que las vamos a dividir en dos grupos:

Funciones que devuelven caracteres:


Este tipo de funciones devuelven un carácter o varios caracteres.
13
FUNCIONES QUE DEVUELVEN CARACTERES

CHR(n) Nos devuelve el carácter cuyo valor en binario es n.


CONCAT(cad1, cad2) Nos devuelve cad1 concatenada con cad2.Retorna un string
que es el resultado de concatenar dos o más valores (strings).
Sentencia:CONCAT ( string_value1, string_value2 [, string_valueN ] );
UPPER(cad) Convierte cada mayúsculas.La función UPPER() convierte el valor del
campo a mayúscula.Sentencia:SELECT UPPER(column_name) FROM
table_name;
LOWER(cad) Convierte cada minúsculas.La función LOWER() retorna una
expresión de caracteres convertida de mayúsculas a minúsculas.
Sentencia:SELECT LOWER(column_name) FROM table_name;
LPAD(cad1,n[,cad2])
Con esta función añadimos caracteres a cad1 por la izquierda hasta una
longitud máxima dada por n.

INITCAP(cad) Convierte la primera letra de cad a mayúscula


LTRIM(cad [,set]) Elimina un conjunto de caracteres a la izquierda de cad, siendo set el
conjunto de caracteres a eliminar.
RPAD(cad1, n[,cad2]) Con esta función añadimos caracteres de la misma forma que con la
función LPAD pero esta vez los añadimos a la derecha.
RTRIM(cad[,set]) Hace lo mismo que LTRIM pero por la derecha.
REPLACE(cad,cadena_ Sustituye un conjunto de caracteres de 0 o más caracteres, devuelve
buscada [,cadena_sus- cad con cada ocurrencia de cadena_buscada sustituida por cadena_
titucion] ) sustitucion.
SUBSTR(cad, m[,n]) Devuelve la subcadena de cad que abarca desde m hasta el numero de
caracteres dados por n.La función SUBSTRING() retorna el substring
especificado. Sentencia:SUBSTRING (string, position, [length]).
TRANSLATE(cad1,ca- Convierte caracteres de una cadena en caracteres diferentes. Devuelve
d2,cad3) cad1 con los caracteres encontrados en cad2 y sustituidos por los
caracteres de cad3
LEFT Retorna la parte izquierda de un string a partir del número de caracteres
especificado.Sentencia:LEFT ( character_expression , integer_
expression ).
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

Funciones que devuelven valores numéricos:


Estas funciones nos devuelven números a modo de información.

FUNCIONES QUE DEVUELVEN VALORES NUMÉRICOS

ASCII(cad): Devuelve el valor ASCII de la primera letra de cad


14
INSTR(cad1, cad2[,comienzo[,m]]): Función que busca un conjunto de caracteres dentro de
una cadena. Nos devuelve la posición de cad2 en cad1
empezando a buscar en comienzo
LENGTH(cad): Devuelve en número de caracteres de cad

3) Funciones de conjuntos de filas: retornan conjuntos de registros.


Se pueden emplear las funciones del sistema en cualquier lugar en el que se permita
una expresión en una sentencia “select”.

Aquí te brindamos 3 videos prácticos para :


Funciones numéricas
https://www.youtube.com/watch?v=dx0w8-5LL-o&feature=youtu.be
Funciones en cadena
https://www.youtube.com/watch?v=oZ-ce6oz_Vs&feature=youtu.be
Agrupando, uniendo y limpiando quelys
https://www.youtube.com/watch?v=8ZCxKLR19ao&feature=youtu.be
DESDE CERO CON MySQL | Unidad 3: Obteniendo información, relacionando tablas y utilizando funciones y operadores en SQL

15

@puntodigitalAR
/puntodigitalAR
/programapuntodigital
puntodigital.gob.ar

También podría gustarte