Tema_4_LENGUAJE_SQL Flashcards
¿Cual es la sintaxis de GRANT en DCL?
-
GRANT “privilegio” ON “objectname” TO “USUARIO O ROLE” [WITH GRANT OPTION]
También lo podemos ver como:
GRANT….TO
O
GRANT USE OF….
Ejemplo de un procedimiento almacenado:
CREATE PROCEDURE nombreProcedimiento([parametro1,parametro2,….])
[Atributos]
BEGIN Instrucciones
END
¿Que es una “TABLA MUTANTE”?
Las tablas mutantes son aquellas que están siendo modificadas por una operación DML (DIU)
(DELETE;INSERT;UPDATE)
¿Que es TCL?
- Es un subconjunto de DCL.
- Transaction Control Language.
- Trabaja conjuntamente con DML, para mantener la consistencia de la base de datos.
- COMMIT, ROLLBACK, SAVEPOINT
Principales características de SQL
- Integridad de los datos.
- Lenguaje estandarizado.
- Aporta sencillez y claridad.
- Flexibilidad.
¿Qué comandos admiten los Procedures (Procedimiento Almacenado), para su gestión?
- CREATE procedure
- DROP procedure
- ALTER procedure
- DELIMETER
¿Qué son las CONSTRAINTS?
Son restricciones que se utilizan para limitar el tipo de dato que puede recibir una columna de una tabla.
Solo se usan en ALTER TABLE Y CREATE TABLE.
Se pueden crear restricciones en un solo campo o en varios.
¿Que es DML?
Data Manipulation Languaje
Es un sublenguaje de SQL, que se
usa para trabajar con los DATOS.
¿Qué son los Predicados Condicionales?
Cuando se crea un Trigger para más de una operación DML.
- Inserting - Retorna TRUE cuando el trigger ha sido disparado por un INSERT.
- Deleting - Retorna TRUE cuando el trigger ha sido disparado por un DELETE.
- Updating - Retorna TRUE cuando el trigger ha sido disparado por un UPDATE.
- Updating (columna) - Retorna TRUE cuando el trigger ha sido disparado por un UPDATE y la columna ha sido modificada.
Dime las cuatro sentencias de DDL:
- Create Table, para crear una nueva BBDD, TABLA, ÍNDICE o PROCEDIMIENTO ALMACENADO.
- Drop Table, se dice que quita la definición de la tabla (junto con los datos). POR SI SOLO, NO QUITA NI LAS VISTAS NI LOS PROCEDURES
- Alter Table, crear o borrar COLUMNAS.
- Truncate, borra los registros de una tabla entera, pero la estructura de la tabla se mantiene.. OJO en algunos SGBD, elimina la estructura de la tabla entera y la vuelve a crear vacía. NO ES TRANSACIONAL
¿Qué restricciones podemos definir con CONSTRAINT?
- NOT NULL → Indica que una columna, NO puede almacenar un valor nulo.
- UNIQUE → Asegura que cada fila de una columna, debe tener un valor único, pero ADMITE UN SOLO NULL
- PRIMARY KEY → Es una combinación de un valor NO NULO y ÚNICO. Asegura que una columna o combinación de varias, tiene una identidad única.
- FOREIGN KEY → Asegura la integridad referencial de los datos en una tabla para que coincida con los valores de otra tabla. Se aplica a COLUMNA
- CHECK → Asegura que el valor de una columna cumple con una condición específica.
- DEFAULT → Especifica un valor por defecto para una columna.
¿Que comandos tiene TCL?
- COMMIT→ Consolidar cambios.
- ROLLBACK → Deshacer cambios en una TX
- SAVEPOINT → Establecer el Punto de salvaguarda.
- RELEASE SAVEPOINT→ Elimina el punto de salvaguarda.
- SET TRANSACTION→ Configuración de TX
- START TRANSACTION → Inicio de TX
Versiones de ANSI-SQL
- ANSI - 1986 (1ª)
- ANSI - 1992 (Revisión Mayor)
- SQL: 1999 (SQL3) Triggers
- SQL: 2003 (Obj. Sequences)
- SQL: 2006 (XML)
- SQL: 2008 (sentencia TRUNCATE, para borrar)
- SQL: 2016 (compatibilidad JSON)
¿En que ISO se integra SQL?
ISO 9075
¿A qué tareas podemos conceder o denegar “privilegios” con GRANT Y REVOKE?
SEDUUCIA
- SELECT
- EXECUTE
- DELETE
- UPDATE
- USAGE
- CONNECT
- INSERT
- ALL
¿Qué tipos de datos, podemos usar en SQL?
Numéricos:
- INT
- BIGINT
- FLOAT (Decimales)
- DOUBLE
Texto:
- CHAR(n) (255 CARACTERES, LETRAS Y NÚMEROS) Tamaño fijo.”n” es un valor en bytes que representa el tamaño en bytes, no el número de caracteres. 1 byte=256 caracteres.
- VARCHAR (255 CARACTERES, SI SE PONE MÁS, SE CONVIERTE EN TIPO TEXTO).Tamaño variable.
- TINYTEXT (255 CARACTERES)
- TEXTO (65535 CARACTERES)
Fecha y hora:
- DATE → AA-MM-DD
- TIME → HH:MM:SS
- DATATIME
- TIMESTAMP
- YEAR
¿Que es DDL?
Data Definition Language
- Sublenguaje de SQL, para manipular las TABLAS de la base de datos.
Características principales de los procedimientos almacenados MySQL:
- Pueden recibir y devolver parámetros.
- Pueden manejar tablas, ejecutando operaciones e iteraciones de lectura/escritura.
- Pueden devolver una tabla como resultado.
- Se almacenan en la base de datos en la cual se crean.
- No dependen de ninguna tabla en particular.
- Pueden aceptar recursividad.
- CROSS JOIN → Todos con Todos. Los datos de la tabla 1 con los datos de la tabla 2 y así. Ejemplo: Tabla 1 (a, b) Tabla 2 (1, 2, 3) Cross Join= a1, a2, a3, b1, b2, b3.
- INNER JOIN → Las filas de una tabla que coincidan con las filas de la otra tabla. Por ejemplo, la PK, coincide con la FK. Es la Join natural.
- LEFT OUTER JOIN → Todas las filas de la tabla izquierda, todas las coincidentes y si no se rellenan a NULL las correspondientes de la derecha. Si la tabla de la izquierda tiene 150 filas. Al hacer el Left Outer Join, voy a tener también 150 filas, solo que algunas tendrán valores NULL.
- RIGHT OUTER JOIN → Lo contrario de la anterior.
- FULL OUTER JOIN → Se hace un Inner Join, después un Left Outer Join y después un Right Outer Join.
¿Qué comando podemos usar para sacar una descripción de una tabla?
DESCRIBE nombretabla;
¿Que significa READ UNCOMMITTED?
Se pueden leer filas modificadas por un transacción, pero no confirmadas aún.
¿Hay alguna forma de que un Trigger ejecute un ROLLBACK?
Si. Hay que ejecutar “error/exception”, mediante la sentencia:
raise_application_error
Cuya sintaxis es:
RAISE_APPLICATION_ERROR(num_error,’mensaje de error’);
Restricciones que tienen los Triggers
- No admite comandos DDL
- Bloquea las tablas que han disparado el Trigger
- No se pueden actualizar las PK’s ni las FK’s. Regla de integridad.
- No admite Commit, Rollback o Savepoint
- No puede declarar variables de tipo Long
¿Como se ejecuta un procedimiento almacenado o PROCEDURE?
Mediante “exec + nombreprocedimiento” o execute, símplemente con el “nombreprocedimiento”.
También con el comando CALL PROCEDURE.
¿Como se llama a una función?
Usando por ejemplo, SELECT.
¿Cuando puede dispararse un Trigger?
Antes o después de la sentencia SQL, con AFTER y BEFORE.
Las sentencias son, INSERT, DELETE o UPDATE.
Generaciones de los lenguajes de programación:
Existen 5 generaciones de lenguajes de programación:
- 1ª→ Lenguaje máquina. BAJO NIVEL de abstracción.
- 2ª→ Ensambladores BAJO NIVEL. Se usan en Kernels y hardware. También, para edición de video, gráficos y videojuegos.
- 3ª →ALTO NIVEL. C, C++, C#, Java, BASIC, JavaScript y Visual Basic.
- 4ª → Similares al lenguaje humano. Se usan en la programación de BASES DE DATOS y SCRIPTS. UnixShell, Perl, PHP, Python, Ruby y SQL.
- 5ª → Son lenguajes con herramientas visuales, para ayudar a desarrollar un programa. Mercury, OPS5, Prolog.
En resumen, los de 1GL y 2GL, son de BAJO NIVEL y los de 3GL, 4GL y 5GL son de ALTO NIVEL.
¿Que tipo de transacciones hay?
- LOCALES, cuando usamos UN SOLO SGBD.
- DISTRIBUIDAS, cuando usamos más de un SGBD diferente. Para gobernar esto, se usa un Monitor Transacional. (two-phase commit)
En un Trigger, ¿Qué significa OR Replace?
OR REPLACE permite sobrescribir un trigger existente. Si se omite, y el trigger existe, se producirá, un error.
Orden de ejecución, en el caso de que existan varios Triggers.
- Si existe, primero se ejecuta BEFORE, con nivel de Sentencia.
- Para cada fila a la que afecte la orden:
- Si existe, se ejecuta BEFORE, con nivel de fila.
- Si existe, se ejecuta AFTER, con nivel de fila.
- Si existe, se ejcuta AFTER, con nivel de sentencia.
¿Qué es la cardinalidad en una tabla de una BBDD?
Es el número de Tuplas o filas de una tabla.
¿Qué es DCL?
DATA CONTROL LANGUAGE
Se usa para dar o quitar permisos de acceso y también para controlar las transacciones, por que TCL es un subconjunto de DCL.