SQL, linux y python Flashcards
Supón que tienes una tabla employees(emp_id, name, department, salary, hire_date).
Obtener los nombres de empleados que trabajan en el departamento “IT” y ganan más de 50000 €:
SELECT name
FROM employees
WHERE ___________;
A) department = ‘IT’ AND salary > 50000
B) department IN (‘IT’) OR salary >= 50000
C) department = IT AND salary > ‘50000’
D) department == ‘IT’ AND salary > 50000
A
department = ‘IT’ AND salary > 50000
¿Qué instrucción SQL crea un índice sobre la columna hire_date?
A) CREATE INDEX idx_hire ON employees(hire_date);
B) ADD INDEX employees.hire_date;
C) INDEX TABLE employees BY hire_date;
D) NEW INDEX hire_date_idx ON employees;
A
CREATE INDEX idx_hire ON employees(hire_date);
¿Cómo contarías cuántos empleados hay en cada departamento?
A) SELECT department, COUNT(*) AS total
FROM employees
GROUP BY department;
B) SELECT department, COUNT(emp_id)
WHERE GROUP BY department;
C) SELECT COUNT(emp_id) FROM employees GROUP department;
D) SELECT department, SUM(*) FROM employees;
A
SELECT department, COUNT(*) AS total
FROM employees
GROUP BY department;
Añadir un nuevo registro con id101, nombre “Ana Pérez”, departamento “HR”, salario 42000 € y fecha de alta ‘2025-03-15’:
a) INSERT INTO employees VALUES (101, ‘Ana Pérez’, ‘HR’, 42000, ‘2025-03-15’);
b) INSERT employees (emp_id,name,…) VALUES …;
c) CREATE employees VALUES (…);
d) ADD RECORD employees (…);
A
INSERT INTO employees VALUES (101, ‘Ana Pérez’, ‘HR’, 42000, ‘2025-03-15’);
¿Cuál es la cláusula para eliminar todos los empleados contratados antes de 2010?
A) DELETE FROM employees WHERE hire_date < ‘2010-01-01’;
B) REMOVE * FROM employees BEFORE 2010;
C) DROP employees WHERE hire_date < 2010;
D) DELETE employees ALL hire_date < ‘2010’;
A
DELETE FROM employees WHERE hire_date < ‘2010-01-01’;
¿Qué salida produce este código?
def func(x):
return [i**2 for i in range(x) if i % 2 == 0]
print(func(6))
A) [0, 4, 16, 36]
B) [0, 4, 16]
C) [1, 9, 25]
D) [2, 4, 6]
B
[0, 4, 16]
Función func(x)
Recibe un número x como entrada.
Utiliza una comprensión de lista para generar una lista con los cuadrados de ciertos números.
Comprensión de lista [i**2 for i in range(x) if i % 2 == 0]
range(x): Genera números desde 0 hasta x-1. En este caso, range(6) produce [0, 1, 2, 3, 4, 5].
if i % 2 == 0: Filtra solo los números que son pares (i divisible entre 2).
i**2: Eleva al cuadrado cada número par de la lista filtrada.
¿Cómo manejarías una excepción genérica en Python?
A) try:
…
except Exception as e:
…
B) catch Exception as e:
…
C) try:
…
except:
…
finally:
…
D) Ambas A y C son correctas
D
Ambas A y C son correctas
¿Cuál es el tipo de dato de {“a”: 1, “b”: 2}?
A) List
B) Tuple
C) Dict
D) Set
C
Dict
Selecciona la forma correcta de abrir un archivo y leer todas sus líneas:
A) f = open(‘data.txt’, ‘r’)
lines = f.readlines()
f.close()
B) with open(‘data.txt’) as f:
lines = f.read()
C) lines = open(‘data.txt’, ‘r’).read().split(‘\n’)
D) D) Todas son válidas, pero la más “pythónica” es la opción A
A
f = open(‘data.txt’, ‘r’)
lines = f.readlines()
f.close()
¿Qué comando muestra el contenido de un directorio, incluyendo archivos ocultos, en formato largo (detallado)?
A) ls -l
B) ls -a
C) ls -la
D) dir -l
C
ls -la
Para buscar la palabra “error” en todos los archivos .log de la carpeta actual, usarías:
A) grep error .log
B) find . -name “.log” | grep error
C) grep -r error ./*.log
D) Todas son correctas
D
Todas son correctas
¿Cómo cambiar los permisos de un archivo script.sh para hacerlo ejecutable?
A) chmod +x script.sh
B) chmod 777 script.sh
C) chown script.sh +x
D) setperm script.sh executable
A
chmod +x script.sh
¿Qué hace el siguiente pipe?
cat access.log | awk ‘{print $1}’ | sort | uniq -c
A) Cuenta cuántas veces aparece cada IP (suponiendo que está en la primera columna)
B) Filtra líneas con errores
C) Busca patrones en un log remoto
D) Borra líneas duplicadas
A
Cuenta cuántas veces aparece cada IP (suponiendo que está en la primera columna)
¿Qué comando sirve para moverte al directorio padre (nivel superior)?
A) cd ..
B) cd /
C) cd ~
D) mv ..
A
cd ..
¿Qué hace lambda x: x*2?
A) Crea una función anónima que duplica su argumento
B) Duplica todos los elementos de una lista
C) Aplica map a una función
D) No es válido en Python
A
Crea una función anónima que duplica su argumento
¿Cuál es el propósito de la declaración SELECT en SQL?
a) Insertar datos en una tabla
b) Actualizar datos en una tabla
c) Recuperar datos de una tabla
d) Eliminar datos de una tabla
C
Recuperar datos de una tabla
¿Qué palabra clave de SQL se utiliza para ordenar el conjunto de resultados?
a) ORDER BY
b) SORT
c) GROUP BY
d) FILTER
A
ORDER BY
¿Qué hace la siguiente consulta SQL?
SELECT * FROM employees WHERE salary > 50000;
a) Selecciona todos los empleados con salario menor que 50000
b) Selecciona todos los empleados con salario mayor que 50000
c) Selecciona todos los empleados con salario igual a 50000
d) Selecciona todos los empleados sin importar el salario
B
Selecciona todos los empleados con salario mayor que 50000
¿Qué tipo de join devuelve todos los registros cuando hay una coincidencia en cualquiera de las tablas izquierda o derecha?
a) INNER JOIN
b) LEFT JOIN
c) RIGHT JOIN
d) FULL OUTER JOIN
D
FULL OUTER JOIN
¿Cuál es la función de la cláusula GROUP BY?
a) Filtrar registros
b) Ordenar registros
c) Agrupar registros basados en una o más columnas
d) Unir tablas
C
Agrupar registros basados en una o más columnas
¿Cuál es la salida del siguiente código?
print(type([]) is list)
a) True
b) False
c) Error
d) None
A
True
¿Cuál de los siguientes no es un tipo de datos incorporado en Python?
a) List
b) Dictionary
c) Tuple
d) StringBuffer
D
StringBuffer
¿Cómo se inserta un elemento en una posición específica en una lista?
a) list.add(index, element)
b) list.insert(index, element)
c) list.append(element, index)
d) list.set(index, element)
B
list.insert(index, element)
¿Qué hace el siguiente código?
def func(x, y=5):
return x + y
print(func(3))
a) Devuelve 8
b) Devuelve 3
c) Devuelve 5
d) Genera un error
A
Devuelve 8