Filtrado de SQL versus filtrado de Linux por google
Filtrado de SQL versus filtrado de Linux
Anteriormente, estudiaste los comandos de Linux que te permiten filtrar por información específica, contenida en archivos o directorios. También, analizaste cómo SQL te ayuda a filtrar con eficacia para obtener la información que necesitas. En esta lectura, conocerás las diferencias entre las dos herramientas, en lo que respecta al filtrado. Además, aprenderás cómo acceder a SQL a través de la línea de comandos de Linux.
Acceso a SQL
Existen numerosas interfaces para acceder a SQL. Una de ellas es a través de la línea de comandos de Linux.
Dado que existen muchas versiones de SQL, para acceder desde Linux, debes escribir un comando para la versión de SQL que quieres usar. Por ejemplo, si deseas acceder a SQLite, puedes ingresar el comando sqlite3 en la línea de comandos.
Luego de realizar esto, cualquier comando escrito en la línea de comandos se dirigirá a SQL en lugar de a los comandos de Linux.
Diferencias entre el filtrado de Linux y el de SQL
Aunque tanto Linux como SQL te permiten filtrar datos, existen algunas diferencias que es necesario tener en cuenta, a la hora de elegir qué opción utilizar.
Estructura
SQL ofrece mucha más estructura que Linux, que tiene un estilo más libre y menos ordenado.
Por ejemplo, si quieres acceder a un registro de intentos de inicio de sesión de los/las empleados/as, Linux imprimirá los datos como una línea de texto sin esta organización. En cambio, SQL te entregará cada registro separado en columnas, por lo cual te facilitará el análisis de una columna específica.
En términos de estructura, SQL proporciona resultados más fáciles de leer y pueden ajustarse más rápidamente que mediante Linux.
Combinación de tablas
Algunas decisiones sobre seguridad requieren información de distintas tablas, una posibilidad que solo SQL ofrece. Mientras que con SQL, las/los analistas pueden combinar varias tablas cuando devuelve datos, Linux no tiene esa misma funcionalidad, ya que no permite que los datos se asocien con otra información que tengas en tu computadora. Para un/a analista que tiene que revisar registros de seguridad, esto resulta restrictivo.
Mejores usos
Como analista de ciberseguridad, es importante que entiendas cuándo puedes usar cada herramienta. Si bien SQL posee una estructura más organizada y te permite combinar tablas, esto no significa que no haya situaciones que te exijan filtrar datos en Linux.
Una gran cantidad de datos utilizados en ciberseguridad se almacenarán en un formato de base de datos que funciona con SQL. Sin embargo, otros registros pueden estar en un formato que no es compatible con este lenguaje. Por ejemplo, si los datos se almacenan en un archivo de texto, no puedes buscarlos con SQL. En esos casos, es útil saber cómo filtrar en Linux.
Conclusiones clave
Para trabajar con SQL, puedes acceder a la herramienta desde distintas interfaces, como la línea de comandos de Linux. Tanto SQL como Linux te permiten filtrar por datos específicos, pero SQL tiene las ventajas de estructurar los datos y posibilitar la combinación de datos de diferentes tablas.
Cómo consultar una base de datos
Anteriormente, aprendiste la importancia de la herramienta SQL en el ámbito de la ciberseguridad y su relevancia para consultar bases de datos. Analizaste algunas consultas SQL básicas y palabras clave utilizadas para extraer la información que necesitas de una base de datos. En esta lectura, revisarás esas consultas y aprenderás una nueva palabra clave que te ayudará a organizar tus resultados. Además, aprenderás sobre la base de datos Chinook que usamos en este curso para consultas en lecturas y cuestionarios.
Consulta SQL básica
Existen dos palabras clave fundamentales en cualquier consulta SQL: SELECT y FROM. Las usarás cada vez que desees consultar una base de datos SQL. Si las usas en conjunto, ayudarás a SQL a identificar los datos que necesitas de una base de datos y la tabla de la que los extraes.
El video demostró esta consulta SQL:
SELECT employee_id, device_id
FROM employees;
En lecturas y cuestionarios, este curso utiliza una base de datos de ejemplo denominada base de datos Chinook, para ejecutar las consultas. La base de datos Chinook incluye datos que se podrían crear en una empresa de medios digitales. Un/a analista de seguridad contratado/a por esta empresa puede necesitar consultar estos datos. Por ejemplo, la base de datos contiene once tablas, incluida una tabla employees (empleados/as), una tabla customers (clientes) y una tabla invoices (facturas). Estas tablas incluyen datos como nombres y direcciones.
A modo de ejemplo, puedes ejecutar esta consulta para obtener datos de la tabla customers (clientes) de la base de datos Chinook:
SELECT (seleccionar)
La palabra clave SELECT indica las columnas a devolver. Por ejemplo, puedes devolver la columna customerid (ID del cliente) de la base de datos Chinook con
SELECT customerid
También puedes seleccionar varias columnas separándolas con una coma. Por ejemplo, si quieres obtener las columnas customerid (ID del cliente) y city (ciudad), debes escribir SELECT customerid, city.
Si quieres obtener todas las columnas en una tabla, después de la palabra clave SELECT, puedes escribir un asterisco (*). La primera línea de la consulta será SELECT *.
Nota: Si bien las tablas que estás consultando en este curso son relativamente pequeñas, no te recomendamos usar SELECT * cuando trabajes con bases de datos y tablas grandes; en esos casos, el resultado final puede ser difícil de entender y lento de ejecutar.
FROM (desde)
La palabra clave SELECT siempre viene con la palabra clave FROM. FROM indica qué tabla consultar. Para usar la palabra clave FROM, debes escribirla después de la palabra clave SELECT, generalmente en una línea nueva, y luego, escribir el nombre de la tabla que estás consultando. Si quieres obtener todas las columnas de la tabla customers (clientes), puedes escribir:
SELECT *
FROM customers;
Cuando quieras finalizar la consulta, escribe punto y coma (;) al final para indicar a SQL que la consulta está completa.
Nota: Los saltos de línea no son necesarios en consultas SQL, pero se suelen usar para facilitar la comprensión de la consulta. Si lo prefieres, también puedes escribir la consulta anterior en una línea como
SELECT * FROM customers;
ORDER BY (ordenar por)
Las tablas de bases de datos suelen ser muy complicadas, y por ello resultan útiles otras palabras clave de SQL. ORDER BY es una palabra clave importante para organizar los datos que extraes de una tabla.
ORDER BY ordena en secuencia los registros devueltos por una consulta con base en una o más columnas especificadas. Este orden puede ser ascendente o descendente.
Orden ascendente
Para usar la palabra clave ORDER BY, escríbela al final de la consulta y especifica una columna en la que se basará el orden. En este ejemplo, SQL devolverá las columnas customerid (ID del cliente), city (ciudad) y country (país) de la tabla customers (clientes), así como los registros se mostrarán secuencialmente en función de la columna city (ciudad):
La palabra clave ORDER BY ordena los registros en función de la columna especificada después de esta palabra clave. Por defecto, como se muestra en este ejemplo, la secuencia estará en orden ascendente. Esto significa que:
si eliges una columna que contiene datos numéricos, esta organiza los resultados de menor a mayor. Por ejemplo, si organizas en función de customerid (ID del cliente), los números de identificación se ordenan de menor a mayor.
si la columna contiene caracteres alfabéticos, como en el ejemplo con la columna city (ciudad), esta organiza los registros de la A a la Z.
Orden descendente
También puedes usar ORDER BY con la palabra clave DESC para ordenar los datos en sentido descendente. La palabra clave DESC es la abreviatura de “descendente”, e indica a SQL que ordene los números de mayor a menor o, en el caso de caracteres alfabéticos, de la Z a la A. Para hacerlo, después de ORDER BY, escribe la palabra clave DESC. A modo de ejemplo, puedes ejecutar esta consulta para observar cómo se diferencian los resultados cuando aplicas DESC:
Ahora, aparecen primero las ciudades que comienzan con las últimas letras del alfabeto.
Ordenar en función de varias columnas
Adicionalmente, puedes elegir varias columnas en las que basar el orden. Por ejemplo, primero puedes elegir la columna country (país) y luego, la columna city (ciudad). A continuación, SQL ordena los resultados en función de la columna country (país) y, en el caso de que haya filas con el mismo valor de country (país), las organiza en función de la columna city (ciudad). Puedes practicar este ejemplo para averiguar cómo SQL muestra esto:
Conclusiones clave
SELECT y FROM son palabras clave importantes en las consultas SQL. Se usa SELECT para indicar qué columnas devolver y FROM, para indicar qué tabla consultar. También puedes incluir ORDER BY en tu consulta para organizar los resultados. Estas habilidades básicas para usar SQL te servirán de apoyo a medida que comienzas a crear consultas más avanzadas.
La cláusula WHERE y los operadores básicos
Anteriormente, te centraste en cómo refinar tus consultas SQL con la cláusula WHERE para filtrar los resultados. En esta lectura, analizarás en mayor profundidad el uso de la cláusula WHERE, el operador LIKE y el comodín del signo de porcentaje (%). Además, te presentaremos el guion bajo (_), otro comodín que puede ayudarte a filtrar consultas.
Cómo ayuda el filtrado
Como analista de seguridad, a menudo deberás trabajar con registros muy voluminosos y complicados. Para encontrar la información que necesitas, con frecuencia deberás usar SQL para filtrar los registros.
En el contexto de la ciberseguridad, puedes usar filtros para identificar intentos de inicio de sesión de un usuario específico o todos los intentos de inicio de sesión realizados en el momento en que se produjo un incidente de seguridad. Como ejemplo adicional, puedes filtrar para encontrar dispositivos que están ejecutando una versión específica de una aplicación.
WHERE (dónde)
Para crear un filtro en SQL, debes usar la palabra clave WHERE. WHERE indica la condición para un filtro.
Si necesitaras enviar un correo electrónico a empleados/as con el cargo de ‘IT Staff' (personal de TI), podrías usar una consulta como la del ejemplo que se presenta a continuación. Puedes ejecutar este ejemplo para examinar cuáles son los resultados:
En lugar de devolver todos los registros en la tabla employees (empleados/as), la cláusula WHERE indica a SQL que devuelva solo aquellos que contienen 'IT Staff' (empleados/as de TI) en la columna title (cargo). Esta usa el operador de signo igual (=) para establecer esta condición.
Nota: Debes colocar el punto y coma (;) donde termina la consulta. Cuando agregas un filtro a una consulta básica, el punto y coma se coloca después del filtro.
Filtrado por patrones
También puedes filtrar en función de un patrón. Por ejemplo, puedes identificar las entradas que comienzan o terminan con uno o varios caracteres determinados. Filtrar en función de un patrón te exige incorporar dos elementos más en tu cláusula WHERE:
un comodín
el operador LIKE
Comodines
Un comodín es un carácter especial que se puede sustituir por cualquier otro carácter. Dos de los comodines más útiles son el signo de porcentaje (%) y el guion bajo (_):
El signo de porcentaje puede sustituir cualquiera de los demás caracteres.
El símbolo de guion bajo solo puede sustituir uno de los demás caracteres.
Puedes colocar estos comodines después de una cadena, antes de una cadena o en ambas ubicaciones, dependiendo del patrón según el cual estás filtrando.
La tabla siguiente incluye estos comodines aplicados a la cadena 'a' y ejemplos de los resultados que devolverá cada patrón.
Patrón | Resultados que puede devolver |
|---|---|
'a%' | apple123, art, a |
'a_' | as, an, a7 |
'a__' | ant, add, a1c |
'%a' | pizza, Z6ra, a |
'_a' | ma, 1a, Ha |
'%a%' | Again, back, a |
'_a_' | Car, ban, ea7 |
LIKE (como)
Para aplicar comodines al filtro, debes usar el operador LIKE en lugar de un signo igual (=). LIKE se usa con WHERE para buscar un patrón en una columna.
Por ejemplo, si quieres enviar un correo electrónico a empleados/as con el cargo 'IT Staff' (personal de TI) o 'IT Manager' (gerente de TI), puedes usar el operador LIKE combinado con el comodín %:
Esta consulta devuelve todos los registros con valores en la columna title (cargo) que comienzan con el patrón de 'IT'. Esto significa que se devuelve tanto 'IT Staff' (personal de TI) como 'IT Manager' (gerente de TI).
Como ejemplo adicional, si quieres buscar en la tabla de facturas a todos/as los/las clientes ubicados en estados con la abreviatura 'NY', 'NV', 'NS' o 'NT', puedes usar el patrón 'N_' en la columna state (estado):
Esto devuelve todos los registros con abreviaturas de estado que siguen este patrón.
Conclusiones clave
Los filtros son importantes para refinar los resultados de tus consultas. WHERE es una palabra clave esencial para agregar un filtro a tu consulta. También puedes filtrar por patrones al combinar el operador LIKE con los comodines de signo de porcentaje (%) y de guion bajo (_).
Comentarios
Publicar un comentario