Tema_4_LENGUAJE_SQL Flashcards

1
Q

¿Cual es la sintaxis de GRANT en DCL?

A
  • GRANT “privilegio” ON “objectname” TO “USUARIO O ROLE” [WITH GRANT OPTION]
    También lo podemos ver como:
    GRANT….TO
    O
    GRANT USE OF….
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Ejemplo de un procedimiento almacenado:

A

CREATE PROCEDURE nombreProcedimiento([parametro1,parametro2,….])
[Atributos]
BEGIN Instrucciones
END

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

¿Que es una “TABLA MUTANTE”?

A

Las tablas mutantes son aquellas que están siendo modificadas por una operación DML (DIU)

(DELETE;INSERT;UPDATE)

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

¿Que es TCL?

A
  • Es un subconjunto de DCL.
  • Transaction Control Language.
  • Trabaja conjuntamente con DML, para mantener la consistencia de la base de datos.
  • COMMIT, ROLLBACK, SAVEPOINT
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Principales características de SQL

A
  • Integridad de los datos.
  • Lenguaje estandarizado.
  • Aporta sencillez y claridad.
  • Flexibilidad.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué comandos admiten los Procedures (Procedimiento Almacenado), para su gestión?

A
  • CREATE procedure
  • DROP procedure
  • ALTER procedure
  • DELIMETER
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué son las CONSTRAINTS?

A

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.

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

¿Que es DML?

A

Data Manipulation Languaje

Es un sublenguaje de SQL, que se
usa para trabajar con los DATOS.

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

¿Qué son los Predicados Condicionales?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Dime las cuatro sentencias de DDL:

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué restricciones podemos definir con CONSTRAINT?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Que comandos tiene TCL?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Versiones de ANSI-SQL

A
  1. ANSI - 1986 (1ª)
  2. ANSI - 1992 (Revisión Mayor)
  3. SQL: 1999 (SQL3) Triggers
  4. SQL: 2003 (Obj. Sequences)
  5. SQL: 2006 (XML)
  6. SQL: 2008 (sentencia TRUNCATE, para borrar)
  7. SQL: 2016 (compatibilidad JSON)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿En que ISO se integra SQL?

A

ISO 9075

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

¿A qué tareas podemos conceder o denegar “privilegios” con GRANT Y REVOKE?

A

SEDUUCIA

  • SELECT
  • EXECUTE
  • DELETE
  • UPDATE
  • USAGE
  • CONNECT
  • INSERT
  • ALL
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué tipos de datos, podemos usar en SQL?

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Que es DDL?

A

Data Definition Language

  • Sublenguaje de SQL, para manipular las TABLAS de la base de datos.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Características principales de los procedimientos almacenados MySQL:

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿Qué comando podemos usar para sacar una descripción de una tabla?

A

DESCRIBE nombretabla;

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

¿Que significa READ UNCOMMITTED?

A

Se pueden leer filas modificadas por un transacción, pero no confirmadas aún.

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

¿Hay alguna forma de que un Trigger ejecute un ROLLBACK?

A

Si. Hay que ejecutar “error/exception”, mediante la sentencia:

raise_application_error

Cuya sintaxis es:

RAISE_APPLICATION_ERROR(num_error,’mensaje de error’);

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

Restricciones que tienen los Triggers

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

¿Como se ejecuta un procedimiento almacenado o PROCEDURE?

A

Mediante “exec + nombreprocedimiento” o execute, símplemente con el “nombreprocedimiento”.

También con el comando CALL PROCEDURE.

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

¿Como se llama a una función?

A

Usando por ejemplo, SELECT.

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

¿Cuando puede dispararse un Trigger?

A

Antes o después de la sentencia SQL, con AFTER y BEFORE.
Las sentencias son, INSERT, DELETE o UPDATE.

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

Generaciones de los lenguajes de programación:

A

Existen 5 generaciones de lenguajes de programación:

  • Lenguaje máquina. BAJO NIVEL de abstracción.
  • Ensambladores BAJO NIVEL. Se usan en Kernels y hardware. También, para edición de video, gráficos y videojuegos.
  • ALTO NIVEL. C, C++, C#, Java, BASIC, JavaScript y Visual Basic.
  • → Similares al lenguaje humano. Se usan en la programación de BASES DE DATOS y SCRIPTS. UnixShell, Perl, PHP, Python, Ruby y SQL.
  • → 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.

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

¿Que tipo de transacciones hay?

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

En un Trigger, ¿Qué significa OR Replace?

A

OR REPLACE permite sobrescribir un trigger existente. Si se omite, y el trigger existe, se producirá, un error.

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

Orden de ejecución, en el caso de que existan varios Triggers.

A
  1. Si existe, primero se ejecuta BEFORE, con nivel de Sentencia.
  2. Para cada fila a la que afecte la orden:
  3. Si existe, se ejecuta BEFORE, con nivel de fila.
  4. Si existe, se ejecuta AFTER, con nivel de fila.
  5. Si existe, se ejcuta AFTER, con nivel de sentencia.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

¿Qué es la cardinalidad en una tabla de una BBDD?

A

Es el número de Tuplas o filas de una tabla.

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

¿Qué es DCL?

A

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.

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

Nombra productos SQL

A
  • ORACLE DATABASE
  • Microsoft SQL Server
  • MYSQL/Mariadb
  • Informix
  • IBM DB2
  • PostgreSQL
  • MAXDB
  • FileMaker
  • SQLite
34
Q

¿Sentencias de DML?

A

SUIDM

  • SELECT (joins, agrupaciones, subconsultas, etc)
  • UPDATE
  • INSERT INTO
  • DELETE FROM (Delete siempre se usa para borrar datos, información)
  • MERGE
35
Q

¿Tipos de cardinalidades?

A

1: 1 = Una entidad se puede relacionar solo con una entidad.
1: N = Una entidad se puede relacionar con varias entidades.

N:1 = Varias entidades solo se pueden relacionar con una entidad.

N:M = Varias entidades se pueden relacionar con varias entidades.

36
Q

¿Qué eventos disparan un trigger?

A

DIU

  • Delete- Borrar datos.
  • Insert- Meter datos.
  • Update- Actualizar datos.
37
Q

¿Qué es el grado de una tabla?

A

El número de columnas que tiene, que a su vez son el número de atributos.

4 columnas = grado 4

38
Q

Sentencias de DCL en cuanto a permisos.

A

GRANT

REVOKE

39
Q

¿Cuando no podemos usar Where, que usamos en su lugar y por qué?

A

Where no se puede usar con funciones SQL del tipo SUM, MAX, etc.

Para ello usamos HAVING

http://m.sql.11sql.com/sql-funcion-having.htm

40
Q

¿A qué objeto está asociado un Trigger?

A

A una tabla y solo a una tabla.

41
Q

¿Qué es un Trigger?

A

Es un tipo de EXTENSIÓN PROCEDURAL, que se ejecuta automáticamente, ante cierto evento en una tabla.

42
Q

¿Qué hace una Cross Join entre dos tablas?

A

El producto cartesiano de las filas de las dos tablas.

En el ejemplo, el producto de AxB=(3,5)(3,6)(3,7)(4,5)(4,6)(4,7)

43
Q

¿Qué es SQL?

A
  • Lenguaje de 4ª generación.
  • En parte, Declarativo + una Extensión Procedural.
  • Para Bases de datos RELACIONALES.
44
Q

Niveles de aislamiento

A
  • READ UNCOMMITTED
  • READ COMMITTED
  • REPEATABLE READ
  • SERIALIZABLE
45
Q

Tipos de Triggers

A
  • FILA, que se identifican por la orden FOR EACH ROW y se ejecuta una vez por cada fila.
  • SENTENCIA, que se ejecutan solo una vez, antes o después de la sentencia SQL.
46
Q

Ejemplo de una función:

A

CREATE FUNCTION dbo.helloworldfunction()

RETURNS varchar(20)

AS

BEGIN

RETURN ‘Hello world’

END

47
Q

¿Cual es la sintaxis de REVOKE en DCL?

A
  • REVOKE privilegio ON objectname FROM USUARIO/ROLE
    Para quitar permisos concretos sobre una tabla concreta a un usuario o Role concreto.
    También lo podemos ver como:
  • REVOKE….FROM….
    Que sería para quitar permisos concretos a un usuario concreto
48
Q

¿Qué son EXTENSIONES PROCEDURALES (Procedimientos almacenados) en SQL?

A
  • Es un programa almacenado físicamente en la BBDD, para ejecutar muy cerquita de los datos..
  • Los Triggers son Procedimientos Almacenados
  • Son conjuntos de instrucciones escritas en lenguaje SQL.
  • Su objetivo es realizar una tarea determinada.
  • Es reutilizable y se crea para acciones repetitivas.
49
Q

¿Qué significa SQL?

A

Structured Query Language

50
Q

¿Qué bases de datos maneja SQL?

A

Bases de datos Relacionales.

51
Q

Las CONSTRAINTS solo se pueden usar en…

A
  • ALTER TABLE
  • CREATE TABLE
52
Q

¿Qué dos tipos de CONSTRAINTS hay, según al número de objetos que se aplique?

A
  • Campo único
  • Varios campos
53
Q

¿Qué es una TRANSACCIÓN?

A

Es una INTERACCIÓN con una base de datos, compuesta por varios procesos que se han de aplicar uno detrás del otro. Una transacción, se tiene que hacer de una vez y sin que la estructura de datos a medio manipular, pueda ser alcanzada por el sistema, hasta que acabe.

54
Q

¿Qué 4 propiedades tiene que cumplir una transacción?

A

Se denominan ACID:

  • ATOMICIDAD(Atomicity)-Asegura que la operación se ha realizado o no.O TODO O NADA
  • CONSISTENCIA(Consistency Integridad)-Asegura que solo se empieza aquello que se puede acabar.
  • AISLAMIENTO(Isolation)-Asegura que una transacción, no puede afectar a otra.
  • DURABILIDAD (Durability Persistencia)-Asegura que una vez realizada la operación, esta persistirá, aunque falle el sistema.
55
Q

Curso SQL con Pildoras Informáticas

56
Q

Si queremos modificar la restricción de una columna de una tabla, la sintaxis que usamos sería..

A

ALTER TABLE nombredelatabla ALTER COLUMN nombredelacolumna tipodevalor restricción.
Ejemplo:
ALTER TABLE ConstraintDemo1 ALTER COLUMN [Name] VARCHAR(50) NOT NULL

57
Q

¿Como se llaman las funciones de SQL, que devuelven siempre el mismo resultado? ¿ Y si devuelven distintos resultados, con el mismo conjunto de valores de entrada?

A

DETERMINISTAS y NO DETERMINISTAS.

58
Q

¿Qué es una función en SQL?

A
  • Una función es un conjunto de sentencias que operan como una unidad lógica.
  • Una función, tiene un nombre.
  • Retorna un parámetro de salida.
  • Opcionalmente acepta parámetros de entrada.
59
Q

¿Cuales son las funciones de Agregado?

A

Las que combinan varios valores y retornan un resultado:
- COUNT
- SUM
- MIN
- MAX

60
Q

SUPERCLAVE

A
  • CONJUNTO DE CLAVES CANDIDATAS
  • ES REDUCIBLE
61
Q

SUBLENGUAJES DE SQL

A
  • DDL=> Creación, borrado, eliminación de objetos (TABLAS)
  • DML=> Consulta, borrado, modificación, inserción de DATOS
  • DCL=> Control de permisos con GRANT y REVOKE.
  • TCL =>, que está dentro de DCL y es para el control de transacciones..
62
Q

¿Qué es lo que no se quita con DROP?

A
  • LAS VISTAS
  • LOS PROCEDURES
63
Q

SENTENCIAS PARA QUITAR LAS VISTAS Y LOS PROCEDURES:

A
  • DROP VIEW
  • DROP PROCEDURE
64
Q

¿Para qué sirve un índice?

A
  • Para agilizar búsquedas
  • Se hace con “CREATE INDEX nombreindice ON nombretabla(columna/columnas)”
65
Q

¿Como se crea una vista?

A

CREATE VIEW view_name AS
SELECT column1, column2, …
FROM table_name
WHERE condition;

66
Q

¿Como se declaran las constraints en SQL?

A

Se pueden establecer al usar CREATE TABLE o con ALTER TABLE.
* Con create table sería:
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,

  • Con alter table sería:
    ALTER TABLE nombre-tabla ALTER COLUMN nombre-columna tipo-dato constraint
67
Q

Los operadores Wildcard, son como comodines, para buscar en las tablas.
Dos operadores Wildcard de SQL para estudiar:

A
  • % , sustituye a VARIOS caracteres.
  • _ sustituye a UN solo caracter.
68
Q

Extensiones Procedurales según el fabricante:

A
  • PL/SQL, para ORACLE
  • SQL/PSM, para el Estandar SQL
  • Transact-SQL, para Microsoft
  • PL/pgSQL, para PostgreSQL
69
Q

Peculiaridades de SQLite

A
  • No es un SGBD.
  • Es un formato de fichero.
  • Usa una librería, con capacidad de ejecutar sentencias SQL.
  • Se usa mucho en Android.
70
Q

¿Qué son PROCEDURE y FUNCTION?

A

Son objetos, procedurales, que se ejecutan dentro del SGBD.

71
Q

¿Que estructura usan los índices, dentro de un SQL?

A

Pueden usar Árboles B, Tablas Hash, etc.

72
Q

¿Qué son las vistas?

A

Es la forma de mostrar al usuario, solo, los datos que le interesan, abstrayéndole de los SELECT u otros comandos que se usen por debajo.

73
Q

¿Qué son los SCHEMAS?

A

Es una forma de agrupas los subsistemas, según su función. Para no mostrar todas las tablas a cholón.

74
Q

¿Qué es un ROLE?

A

Es como un perfil, que se genera, con unos permisos determinados y que luego se puede asignar a cada usuario, el cual tendrá los permisos de ese ROLE.

75
Q

¿Qué usamos si queremos borrar datos?

A
  • Podemos usar DELETE, que es transacional.
  • Podemos usar TRUNCATE, que no es transacional y va más rápido, pero sin seguridad.
76
Q

Sintaxis de Alter en DDL:

A

ALTER TABLE nombretabla ADD COLUMN o ALTER COLUMN o DROP COLUMN
Tambien se puede añadir una constraint con:
ALTER TABLE nombretabla ADD CONSTRAINT

77
Q

¿Qué es Explain Plan?

A

Es una sentencia que te sirve para ver qué pasos se van a seguir internamente, para ejecutar tu query.
Para ver el Execution Plan del SGBD que usas en ese momento.

78
Q

Unión de tuplas

A

Es para juntar tuplas, que no tienen coincidencias, pero que nos interesa juntar.
Si ponemos UNION ALL, NO ELIMINA FILAS DUPLICADAS

79
Q

MERGE

A

Se usa para mezclar filas de una tabla, sobre otra.
La sintaxis sería:
Merge into “nombre_tabla_destino”
Using “nombre_tabla_origen”
ON search-condición
When Matched then update…
When not matched then Insert….

80
Q

TRUNCATE con MySql

A

Necesita permisos de DROP, por que hace DROP TABLEy un CREATE TABLE.

81
Q

¿Para qué se usa Instead of?

A

Dispara un trigger, pero anula la sentencia disparadora (Insert, Delete, Update), y solo tiene efecto lo que pongas en el cuerpo del trigger.

82
Q

¿Qué es Result Set?

A

Es la tabla, resultado de hacer una consulta, con los datos que hemos pedido.