Tema 4. SQL Flashcards

(75 cards)

1
Q

¿A que recomendación se la conoce como SQL3?

A

SQL:1999

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿SQL es un lenguaje 4GL puro?

A

No, porque tenemos una “extensión” procedural

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Es TRUNCATE una sentencia del estándar de SQL

A

Sí, desde SQL:2008

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué características soporta SQLite?

A

· Compatible con SQL
· Transacciones (ACID)
· Funciona en local (sólo en local)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Nombre seis gestores de BBDD compatibles con SQL

A

· SQL Server
· DB2
· Oracle
· MySQL
· PostgreSQL
· MaxDB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué sentencia debo de usar si no quiero que al hacer un ROLLBACK se deshaga todo el trabajo de la transacción?

A

SAVEPOINT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Con qué sentencia podemos crear un objeto que nos devuelva valores de forma incremental?

A

CREATE SEQUENCE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Para qué sirve SET TRANSACTION?

A

Para configurar parámetros de una transacción

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿A que sublenguaje pertenece TRUNCATE y por qué?

A

DDL, porque no todos los gestores borran la tabla, la idea más aceptada es que borra datos eficientemente y con menos restricciones que la sentencia DELETE. No es transaccional.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Con que sentencia se modifica una columna de una tabla?

A

ALTER TABLE (nombre tabla) ALTER COLUMN (nombre columna) (valor)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Con que sentencia borramos un tabla?

A

DROP TABLE (nombre tabla)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Nombre las cuatro restricciones que podemos aplicar sobre las columnas

A

· PRIMARY KEY
· UNIQUE
· FOREIGN KEY
· CHECK

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué diferencia existe entre UNIQUE y PRIMARY KEY?

A

UNIQUE admite una valor a NULL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Con qué sentencia se puede ejecutar un procedimiento almacenado?

A

CALL procedure

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Si queremos usar una secuencia, ¿qué permiso nos deben otorgar?

A

GRANT usage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cuál es la sintaxis de la sentencia REVOKE?

A

REVOKE (privilegio) ON object-name FROM grantee

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Cuál de los niveles de aislamiento de una transacción tiene posible problema la “lectura sucia”?

A

READ_UNCOMMITED

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Qué nivel de aislamiento es el más seguro pero el que peor rendimiento presenta?

A

SERIALIZABLE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Qué significa la clausula WITH GRANT OPTION dentro una sentencia GRANT?

A

Que el usuario, a su vez, podrá otorgar esos privilegios a otros

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿En que situación se produce el problema de la lectura fantasma?

A

Cuando estamos trabajando con rangos de filas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

¿Para que sirve la función de agregado AVG?

A

Para calcular la media

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Si en una SQL vemos un HAVING, ¿qué hace falta también en esa SQL?

A

GROUP BY

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Si la tabla cliente(nombre,tipo,direccion) tiene 100 filas, ¿qué valor nos devolverá la sentencia select count(nombre) from cliente?

A

Como mucho 100, pero puede ser menor que 100 si existen filas con nombre a NULL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

¿Qué diferencia existe entre usar UNION o UNION ALL para “fusionar” dos SELECT?

A

Que UNION ALL deja filas repetidas si las hubiera

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
¿Qué hace una CROSS JOIN entre dos tablas?
El producto cartesiano de las filas de las dos tablas
26
Si queremos relacionar dos tablas para obtener únicamente aquellas filas que están en ambas, ¿qué tipo de JOIN deberemos de usar?
INNER JOIN
27
¿Para qué sirve una LEFT OUTER JOIN entre t1 y t2?
Para obtener todos los registros de t1 relacionados o no con t2
28
¿Para qué sirve un MERGE de dos tablas?
Para fusionar los registros de una (source) sobre la otra (target) realizando UPDATE si los registros existían en ambas o INSERT en caso contrario.
29
¿Qué es una pseudotabla en un TRIGGER?
Una forma de poder referenciar la información antigua de una tabla (OLD) o la nueva (NEW) una vez que se ha ejecutado la sentencia que provoca el trigger o en un momento previo a esta
30
Si se han insertado 500 filas en una tabla que tiene asociado un disparador, ¿cómo debemos de configurar el TRIGGER para que no salte para cada fila?
FOR EACH STATEMENT
31
¿Para qué sirve un TRIGGER definido como INSTEAD OF?
Estos triggers se ejecutan en lugar de la sentencia que provoco su disparo
32
¿Dónde es típico realizar un DECLARE nombre-cursor CURSOR FOR SELECT …?
Dentro de un PROCEDURE junto con otras sentencias SQL, instrucciones de CONTROL, etc.
33
¿En qué consiste el estándar SQL/PSM?
Es un lenguaje de programación. Añade funcionalidades procedurales/imperativo (alias = procedimientos almacenados)
34
¿Dónde se ejecuta un procedimiento almacenado?
En el SGBBDD
35
Funcionamiento de un INNER JOIN
Combina filas de dos o más tablas basándose en una CONDICIÓN de coincidencia entre columnas relacionadas (normalmente PK y FK) Nota: Hay que saber diferenciar JOIN de UNION y MERGE
36
Diferencia entre INNER JOIN y CROSS JOIN
En CROSS JOIN en memoria NO se combinan todas las filas entre sí, sólo las que coinciden. Utiliza INDEX para comparar
37
¿Qué tipo de producto es SQLite?
Es una librería ACID compatible (no un gestor), un fichero con formato binario para guardar información LOCAL Lo usa Android
38
¿Qué es una transacción?
Un conjunto de sentencias que se ejecutan de forma ATÓMICA (o se ejecutan todas o no se ejecuta ninguna, para no generar inconsistencias) Ejemplo: Una transacción que saque dinero de una cuenta bancaria y la meta en otra
39
¿Qué significa ACID?
Atomicidad (Todo o nada) Consistencia (resultado final tanto si fue bien como mal) Isolation (Aislamiento) (No permite que algo externo entre o salga) Durabilidad (No desaparece)
40
Sentencias DML
Select Insert Update Delete Merge
41
Sentencias DDL
Ceate Drop Alter Truncate Rename
42
Sentencias DCL
Grant Revoke TCL: Commit Rollback Savepoint Release Savepoint Set transaction Start transaction
43
¿Para qué sirve la restricción UNIQUE?
Se define sobre una columna para que NO admita valores duplicados (sí admite un único valor null)
44
Sintaxis de REVOKE
REVOKE (permiso) ON (objeto) FROM (usuario/grupo/role) GRANT TO REVOKE FROM
45
Sintaxis de GRANT
GRANT (permiso) ON (objeto) TO (usuario/grupo/role) [WITH GRANT OPTION] GRANT TO REVOKE FROM
46
¿Qué es un TRIGGER y cómo se usa?
Es una rutina de negocio que se EJECUTA cuando se DETECTA un EVENTO Este EVENTO puede ser INSERT, UPDATE o DELETE Podemos ejecutar la rutina ANTES o DESPUÉS del evento Podemos ejecutar la rutina por cada FILA afectada o a toda la SENTENCIA que ha provocado el disparo
47
¿Cuándo se usa HAVING?
Cuando hayamos usado previamente GROUP BY Sirve para hacer un filtro sobre grupos
48
Di las funciones de agregado que conozcas
SUM - Suma COUNT - Cuenta MAX - El máximo MIN - El mínimo AVG - Media aritmética
49
¿Cómo se usa AVG?
Se suele usar con GROUP BY o de esta manera: SELECT AVG(precio) FROM PRODUCTO
50
En SQL, ¿cómo se puede controlar que el precio de un producto sea > 0?
Con una constraint de tipo CHECK Ej: CREATE TABLE Persona ( ID_Persona int primary key, age int, CHECK (age =>18) );
51
Tipos de bloqueos en BBDD
Hay dos tipos de denominaciones: a) Lectura, escritura y rango b) - Exclusivo (una vez que alguien haya activado este bloqueo, a los demás no les deja hacer nada) - Compartido (bloquea escritura pero permite lectura a los demás)
52
¿Qué nivel de asilamiento en transacciones de BBDD realiza más bloqueos, READ COMMITED o REPEATABLE READ?
REPEATABLE READ
53
En Transact-SQL, utilidad de RENAME
Cambia el nombre de una tabla creada por el usuario
54
En SQL, uso de la función COUNT
Función de agregado que se puede usar con group by + having NO se puede usar en el WHERE COUNT() no cuenta los nulos
55
En SQL, ¿para qué sirve SAVEPOINT?
Para configurar dentro de una transacción un punto al partir del cual si algo fallase, solo se deshace el trabajo desde el SAVEPOINT hasta el momento del fallo (lo anterior al SAVEPOINT permanece)
56
Diferencia entre paso por valor y paso por referencia. ¿Cómo se pasan las cosas en Java?
Paso por valor: Se envía una COPIA del valor del parámetro sin alterar la variable. Paso por referencia: Se envía la DIRECCIÓN DE MEMORIA y la función puede modificar la variable. En Java se pasa todo por valor, lo que pasa es que para los objetos pasamos una "copia" de su referencia (no muy preguntable)
57
¿En qué paquete están los métodos wait() y notify()?
java.lang
58
¿Qué es jdb y dónde está?
Depurador que ejecuta línea a línea. Está en el JDK
59
¿Qué hacen jmc y console?
Monitorizan la JVM, entran en memoria a ver qué pasa en la máquina virtual
60
Sintaxis para crear evento SQL
CREATE EVENT (nombre evento) ON SCHEDULE AT '2025-12-12 00:00:00' DO DELETE FROM (nombre tabla) WHERE (nombre columna) = (condición)
61
Sintaxis para crear un trigger
CREATE TRIGGER (nombre trigger) AFTER UPDATE ON (nombre tabla) FOR EACH ROW BEGIN SET NEW.EDAD = OLD.EDAD + 1: END;
62
Sintaxis para crear una vista
CREATE VIEW mayores_edad AS SELECT * FROM personas WHERE edad > 17
63
¿Sobre qué dos elementos podemos crear un trigger?
Sobre filas: FOR EACH ROW Sobre sentencias: FOR EACH STATEMENT
64
¿Qué parámetros acepta un trigger?
Ninguno
65
¿Qué palabras reservadas podemos usar en un trigger?
1) AFTER BEFORE INSTESAD OF 2) INSERT UPDATE DELETE 3) FOR EACH ROW/STATEMENT 4) BEGIN SET... END;
66
¿Para qué sirven RMAN y Flashback?
RMAN: Herramienta en línea para backups y recuperaciones Flashback: Recupera datos eliminados o modificados accidentalmente
67
¿Qué es un procedimiento almacenado?
Como un trigger pero se ejecuta manualmente, no salta solo
68
Sintaxis de procedimiento almacenado
CALL PROCEDURE subir sueldo @Id INT, @nuevoSalario INT AS BEGIN UPDATE Empleado SET salario = @nuevoSalario Where Id_empleado = @Id END;
69
En SQL, ¿para qué sirve un índice y cómo se puede borrar?
Sirve para acelerar las búsquedas de registros Se borra con DROP INDEX
70
Operador SQL para realizar comparaciones con cadenas
Like Ej. select * from pedidos where ciudad like 'Madrid'
71
Concepto de vista en SQL. ¿Cuál es el comando para crear una vista?
a) Proporcionar el resultado de una consulta a alto nivel (sin ver los detalles, joins, etc) b) create view AS select .... NOTA: Si queremos guardar/cachear los resultados de la consulta --> VISTAS MATERIALIZADAS (+opciones de REFRESH)
72
¿Cuál es la sentencia de SQL para iniciar una transacción?
BEGIN TRANSACTION START TRANSACTION Ambas válidas
73
¿Qué característica introduce el estándar SQL:1999 (SQL 3)? a) Soporte nativo para XML b) Objeto SEQUENCE c) Compatibilidad con JSON d) Triggers
Triggers
74
En SQL, ¿dónde pueden ir las funciones de agregación?
SELECT HAVING ORDER BY
75
¿Qué son las CTE? ¿Para qué sirven?
Common Table Expression Son SQL con cláusula WITH, se usa para mejorar legibilidad o mantenimiento de consultas NOTA: Genera objetos temporales