Tema4_Seccion1_SQL Flashcards

(107 cards)

1
Q

¿Qué es el estándar ANSI-86?

A

El estándar ANSI-86 es la primera versión oficial del lenguaje SQL, estableciendo bases para su uso en bases de datos.

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

¿Qué cambios introdujo ANSI-92 en SQL?

A

ANSI-92 fue una revisión importante de SQL, introduciendo mejoras en la sintaxis y ampliando su funcionalidad.

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

¿Qué es ISO 9075 SQL:1999 (SQL 3)?

A

SQL:1999, también conocido como SQL 3, introdujo los triggers (disparadores) en SQL, permitiendo la automatización de acciones en la base de datos.

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

¿Qué introdujo ISO 9075 SQL:2003?

A

SQL:2003 incorporó el objeto SEQUENCE, que permite generar valores secuenciales de manera eficiente.

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

¿Qué novedad presentó ISO 9075 SQL:2006?

A

SQL:2006 introdujo soporte nativo para XML, permitiendo el almacenamiento y manipulación de datos XML en bases de datos.

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

¿Qué cambio trajo ISO 9075 SQL:2008?

A

SQL:2008 incorporó la sentencia TRUNCATE, que permite eliminar todos los registros de una tabla de manera rápida y eficiente.

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

¿Qué compatibilidad introdujo ISO 9075 SQL:2016?

A

SQL:2016 añadió compatibilidad con JSON, facilitando el manejo de datos en formato JSON dentro de las bases de datos SQL.

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

¿Qué es SQLite?

A

Es un sistema de gestión de bases de datos relacional (RDBMS) basado en una librería ligera y embebida.

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

¿SQLite sigue el modelo cliente-servidor (C/S)?

A

No, SQLite es una base de datos embebida, lo que significa que se ejecuta dentro de la misma aplicación sin necesidad de un servidor.

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

¿Qué significa que SQLite es ACID compatible?

A

Significa que cumple con las propiedades de Atomicidad, Consistencia, Aislamiento y Durabilidad, garantizando transacciones seguras y confiables.

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

¿Qué es un sublenguaje en SQL?

A

Son categorías dentro de SQL que agrupan comandos según su función, como DDL, DML y DCL.

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

¿Qué es DDL y para qué se usa?

A

Data Definition Language (DDL) se usa para crear, modificar y eliminar objetos como tablas en una base de datos.

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

¿Qué es DML y qué operaciones incluye?

A

Data Manipulation Language (DML) permite consultar, insertar, modificar y borrar datos dentro de las tablas.

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

¿Qué es DCL y cuál es su función?

A

Data Control Language (DCL) gestiona permisos y control de acceso a los datos, incluyendo transacciones.

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

¿Para qué sirve el comando GRANT en SQL?

A

Se usa para otorgar permisos a usuarios o roles sobre objetos de la base de datos.

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

¿Qué hace el comando REVOKE en SQL?

A

Elimina permisos previamente otorgados a un usuario o rol.

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

¿Qué es COMMIT en SQL?

A

Guarda de forma permanente los cambios realizados en una transacción.

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

¿Qué es ROLLBACK en SQL?

A

Revierte los cambios realizados en una transacción no confirmada.

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

¿Para qué sirve SAVEPOINT en SQL?

A

Crea un punto de control dentro de una transacción para deshacer solo una parte de ella.

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

¿Qué hace RELEASE SAVEPOINT en SQL?

A

Elimina un punto de control creado con SAVEPOINT dentro de una transacción.

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

¿Para qué se usa SET TRANSACTION en SQL?

A

Configura propiedades de una transacción, como su nivel de aislamiento.

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

¿Qué hace START TRANSACTION en SQL?

A

Inicia una nueva transacción para agrupar múltiples operaciones en una sola unidad lógica.

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

¿Qué es TCL en SQL?

A

Transaction Control Language (TCL) gestiona la confirmación o reversión de transacciones.

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

¿Cómo se relaciona CREATE con TABLE, INDEX y VIEW?

A

CREATE permite crear tablas, índices y vistas para almacenar y organizar datos en la base de datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
¿Cómo se usa DROP con TABLE, INDEX y VIEW?
DROP elimina tablas, índices y vistas de la base de datos de forma permanente.
26
¿Cómo se aplica ALTER a TABLE, INDEX y VIEW?
ALTER modifica la estructura de una tabla, índice o vista, como agregar o eliminar columnas.
27
¿Cómo se relaciona CREATE con PROCEDURE y FUNCTION?
CREATE permite definir procedimientos almacenados y funciones que ejecutan lógica dentro de la base de datos.
28
¿Qué hace DROP en PROCEDURE y FUNCTION?
DROP elimina procedimientos y funciones de la base de datos, evitando su ejecución futura.
29
¿Cómo se usa ALTER en PROCEDURE y FUNCTION?
ALTER permite modificar la definición de un procedimiento o función sin eliminarlos.
30
¿Qué relación tiene CREATE con SEQUENCE y TYPE?
CREATE define secuencias numéricas automáticas y tipos de datos personalizados.
31
¿Cómo se aplica DROP a SEQUENCE y TYPE?
DROP elimina una secuencia o un tipo de dato personalizado de la base de datos.
32
¿Para qué sirve ALTER en SEQUENCE y TYPE?
ALTER modifica las propiedades de una secuencia o un tipo de dato sin eliminarlo.
33
¿Cómo se usa CREATE con TRIGGER?
CREATE define un disparador que ejecuta acciones automáticas ante eventos en la base de datos.
34
¿Qué hace DROP en TRIGGER?
DROP elimina un disparador, impidiendo que se ejecute en la base de datos.
35
¿Cómo se relaciona CREATE con DOMAIN y SCHEMA?
CREATE define dominios (restricciones de datos) y esquemas (contenedores de objetos de BD).
36
¿Qué hace DROP en DOMAIN y SCHEMA?
DROP elimina un dominio o un esquema de la base de datos junto con sus objetos.
37
¿Cómo se usa CREATE con ROLE?
CREATE define un rol que agrupa permisos y facilita la gestión de usuarios.
38
¿Qué hace DROP en ROLE?
DROP elimina un rol, revocando sus permisos en la base de datos.
39
¿Cómo se relaciona TRUNCATE con TABLE?
TRUNCATE elimina todos los registros de una tabla sin generar transacción, a diferencia de DELETE.
40
¿Qué es una constraint en SQL?
Es una restricción que impone reglas a los datos en una tabla para garantizar su integridad.
41
¿Para qué se usa CHECK en SQL?
CHECK define una condición que los valores de una columna deben cumplir para ser aceptados.
42
¿Qué es PRIMARY KEY en SQL?
Es una constraint que identifica de forma única cada fila en una tabla y no permite valores NULL.
43
¿Para qué sirve UNIQUE en SQL?
UNIQUE garantiza que los valores de una columna sean únicos, pero permite un solo valor NULL.
44
¿Qué es FOREIGN KEY en SQL?
FOREIGN KEY establece una relación entre tablas, asegurando que los valores coincidan con otra tabla.
45
¿Para qué se usa SELECT en SQL?
SELECT recupera datos de una o varias tablas y permite aplicar joins, agrupaciones y subconsultas.
46
¿Qué es un JOIN en SQL?
Un JOIN combina filas de dos o más tablas basándose en una condición común.
47
¿Para qué se usan las agrupaciones en SQL?
Se usan con GROUP BY para organizar datos y aplicar funciones de agregación como SUM o COUNT.
48
¿Qué es una subconsulta en SQL?
Es una consulta dentro de otra consulta que devuelve un valor o conjunto de valores.
49
¿Qué hace el comando UPDATE en SQL?
Modifica valores en una o varias filas de una tabla basándose en una condición.
50
¿Para qué sirve INSERT en SQL?
INSERT agrega nuevas filas a una tabla con valores específicos.
51
¿Qué hace DELETE en SQL?
Elimina filas de una tabla según una condición, pero mantiene la estructura de la tabla.
52
¿Qué es MERGE en SQL?
MERGE combina operaciones de INSERT, UPDATE y DELETE en una sola instrucción según una condición.
53
Un ejemplo de CREATE TABLE....
CREATE TABLE distribuidores (dist_id CHAR(4) NOT NULL, dist_nombre VARCHAR(40), sales_rep INT, zip char(5), … CONSTRAINT pk_dist_id PRIMARY KEY (dist_id), CONSTRAINT fk_emp_id FOREIGN KEY (sales_rep) -- campos REFERENCES empleados (empid) -- tabla y campos CONSTRAINT uniq_zip UNIQUE (zip) -- clave candidata CONSTRAINT chk-zip CHECK (zip LIKE '[0-9][0-9][0-9][0-9][0-9]') );
54
Un ejemplo de ALTER TABLE....
ALTER TABLE nom_tabla ADD COLUMN nom_col ALTER COLUMN nom_col SET DEFAULT valor SET NOT NULL SET DATA TYPE DROP COLUMN nom_col ADD
55
Un ejemplo de GRANT...
GRANT ON objeto TO usuarios/roles [WITH GRANT OPTION] : SELECT, UPDATE, INSERT, DELETE, ALL, USAGE (Ej: secuencia)
56
Un ejemplo de REVOKE...
REVOKE ON objeto FROM grantee
57
¿Qué es READ UNCOMMITTED en SET TRANSACTION?
Es el nivel de aislamiento más bajo, permitiendo lecturas sucias, no repetibles y fantasmas.
58
¿Qué es una lectura sucia en SQL?
Ocurre cuando una transacción lee datos no confirmados de otra transacción.
59
¿Qué es READ COMMITTED en SET TRANSACTION?
Evita lecturas sucias, pero aún permite lecturas no repetibles y fantasmas.
60
¿Qué es una lectura no repetible en SQL?
Ocurre cuando una transacción lee un valor que cambia si se consulta nuevamente.
61
¿Qué es REPEATABLE READ en SET TRANSACTION?
Evita lecturas sucias y no repetibles, pero permite lecturas fantasma.
62
¿Qué es una lectura fantasma en SQL?
Ocurre cuando nuevas filas aparecen en el resultado de una consulta dentro de una misma transacción.
63
¿Qué es SERIALIZABLE en SET TRANSACTION?
Es el nivel de aislamiento más alto, evitando lecturas sucias, no repetibles y fantasmas.
64
Un ejemplo de INSERT...
INSERT INTO (col1, col2, …) VALUES (’…’,’…’,…) INSERT INTO (col1, col2, …) SELECT …
65
Un ejemplo de UPDATE...
UPDATE SET col1 = val1, col2 = val2 WHERE val puede ser: DEFAULT / NULL / Query
66
Un ejemplo de DELETE...
DELETE FROM WHERE
67
Un ejemplo de SELECT...
SELECT [ALL | DISTINCT ] item1 AS alias FROM tabla | vista AS alias, … [[tipo join] JOIN ] WHERE [AND | OR | NOT + ]… GROUP BY HAVING ORDER BY campo1 [ASC | DESC], …
68
Ejemplo de una subconsulta....
SELECT … FROM tabla1 WHERE EXISTS (subquery) à Correlacionada. Referencias a columnas de la query externa/principal. WHERE col1 [NOT] IN (SELECT col2 FROM …) WHERE col1 ANY ALL / SOME (SELECT col2 FROM …) operador: = >= < … funciones de agregado
69
¿Qué es un CROSS JOIN en SQL?
Es el producto cartesiano entre dos tablas, combinando todas sus filas sin condición de unión.
70
¿Qué es un INNER JOIN en SQL?
Une dos tablas y devuelve solo las filas que cumplen la condición especificada.
71
¿Qué hace un LEFT JOIN en SQL?
Devuelve todas las filas de la tabla izquierda y las coincidentes de la derecha; si no hay coincidencia, usa NULL.
72
¿Qué es un RIGHT JOIN en SQL?
Funciona como LEFT JOIN, pero devuelve todas las filas de la tabla derecha y las coincidentes de la izquierda.
73
¿Qué hace un FULL JOIN en SQL?
Devuelve todas las filas de ambas tablas, rellenando con NULL donde no haya coincidencias.
74
¿Qué es un NATURAL JOIN en SQL?
Une tablas automáticamente según columnas con el mismo nombre en ambas tablas.
75
¿Cuál es la diferencia entre UNION y UNION ALL?
UNION elimina los duplicados entre los conjuntos, mientras que UNION ALL conserva todos los registros, incluidos los duplicados.
76
¿Cuál es la función de UNION en SQL?
UNION combina los resultados de dos o más consultas, eliminando duplicados de forma predeterminada.
77
¿Qué hace el operador EXCEPT en SQL?
El operador EXCEPT devuelve los registros de la primera consulta que no están presentes en la segunda.
78
¿Qué hace el operador INTERSECT en SQL?
INTERSECT devuelve solo los registros comunes entre dos consultas.
79
¿Qué significa MERGE "mezclar" tablas en SQL?
Se refiere a combinar datos de una tabla (source) sobre otra (target) para actualizarlos o insertarlos según ciertas condiciones.
80
¿Qué ocurre si un registro existe en ambas tablas durante una "mezcla" MERGE?
Si el registro existe en ambas tablas, se actualiza en la tabla target.
81
¿Qué pasa si un registro solo existe en la tabla source en una "mezcla" MERGE?
Si el registro solo está en la tabla source, se inserta en la tabla target.
82
Un ejemplo de MERGE...
MERGE INTO USING ON WHEN MATCHED THEN UPDATE SET col1 = … WHEN NOT MATCHED THEN INSERT (col1, …) VALUES (…, ...)
83
¿Qué son los triggers en una base de datos?
Los triggers son procedimientos que se ejecutan automáticamente en respuesta a ciertos eventos, como la inserción o eliminación de filas.
84
¿Cuándo se ejecuta un trigger?
Un trigger se ejecuta cuando se detecta un evento específico, como filas añadidas, modificadas o borradas en objetos específicos de la base de datos.
85
¿Qué tipos de eventos pueden activar un trigger?
Los eventos comunes que activan un trigger incluyen inserciones, actualizaciones y eliminaciones de datos en una tabla o vista.
86
¿Qué son las pseudotablas en SQL?
Son tablas temporales que contienen los datos antes o después de una operación (como INSERT o DELETE) para facilitar la referencia a esos valores dentro de un trigger.
87
¿Cómo se llaman las pseudotablas en Oracle?
En Oracle, se utilizan las pseudotablas old y new para representar los valores antiguos y nuevos de una fila afectada por un trigger.
88
¿Cómo se llaman las pseudotablas en Microsoft SQL Server?
En Microsoft SQL Server, las pseudotablas se llaman deleted y inserted para representar los registros antes y después de la operación que activó el trigger.
89
¿Cuál es la función de la pseudotabla "before" o "old"?
Representa los valores de los registros antes de que se realice una operación como UPDATE o DELETE.
90
¿Cuál es la función de la pseudotabla "after" o "new"?
Contiene los valores de los registros después de que se ha realizado una operación como INSERT o UPDATE.
91
¿Los triggers aceptan parámetros?
No, los triggers no aceptan parámetros como las funciones o procedimientos almacenados.
92
¿Pueden los triggers usar comandos como START TRANSACTION?
No, los triggers no pueden utilizar comandos como START TRANSACTION, COMMIT o ROLLBACK.
93
¿Por qué los triggers no pueden usar START TRANSACTION o COMMIT?
Los triggers están diseñados para ejecutar lógica automáticamente durante una operación, no para manejar transacciones, que deben ser controladas explícitamente por el usuario o la aplicación.
94
¿Qué es un trigger de fila?
Un trigger de fila se ejecuta una vez por cada fila afectada por la operación (INSERT, UPDATE, DELETE).
95
¿Qué es un trigger de sentencia?
Un trigger de sentencia se ejecuta una sola vez, independientemente del número de filas afectadas por la operación.
96
¿Cuál es la diferencia entre un trigger de fila y uno de sentencia?
Los triggers de fila se ejecutan por cada fila afectada, mientras que los de sentencia se ejecutan solo una vez para toda la operación, sin importar cuántas filas se vean afectadas.
97
¿Qué significa un trigger "AFTER"?
Un trigger AFTER se ejecuta después de que la operación (INSERT, UPDATE, DELETE) se haya completado con éxito.
98
¿Qué significa un trigger "BEFORE"?
Un trigger BEFORE se ejecuta antes de que la operación (INSERT, UPDATE, DELETE) se realice en la base de datos.
99
¿Qué hace un trigger "INSTEAD OF"?
Un trigger INSTEAD OF reemplaza la operación (INSERT, UPDATE, DELETE) con la lógica definida en el trigger.
100
¿Cuándo se puede utilizar un trigger "AFTER"?
Se usa cuando se desea realizar acciones después de que la operación de modificación de datos haya sido completada, como auditoría o validación.
101
¿Cuándo se puede utilizar un trigger "BEFORE"?
Se usa cuando se necesita modificar o validar los datos antes de que se apliquen cambios en la base de datos.
102
Un ejemplo de TRIGGER....
CREATE TRIGGER auditar_phone_book AFTER UPDATE ON phone_book FOR EACH ROW BEGIN INSERT INTO phone_book_auditoria (col1, …) VALUES (auditoria_seq.nextval, 'UPDATE’, OLD.col1, OLD.col2, NEW.col1, NEW.col2, SYSDATE); END;
103
¿Qué es un procedimiento en una base de datos?
Un procedimiento es una unidad de lógica de negocio que se ejecuta dentro del sistema de gestión de base de datos (SGBD) mediante el comando CALL.
104
¿Qué tipos de parámetros puede aceptar un procedimiento?
Un procedimiento puede aceptar parámetros de entrada, salida y entrada/salida.
105
¿Por qué los procedimientos no retornan valor?
A diferencia de las funciones, los procedimientos no devuelven un valor directamente, aunque pueden modificar datos a través de parámetros de salida.
106
¿Cómo se ejecuta un procedimiento en SQL?
Un procedimiento se ejecuta utilizando el comando CALL seguido del nombre del procedimiento y los parámetros correspondientes.
107
Un ejemplo de PROCEDURE...
CREATE PROCEDURE (IN | OUT | INOUT , …) LANGUAGE _________ AS $$ BEGIN SELECT/CURSOR UPDATE + FOR / IF / CASE … COMMIT; END; $$