b3t4 - SQL Flashcards
Que tipo de lenguaje es el Sql? Generacion y delcararivo/imperativo
Es un lenguaje de 4gl (4º generación) declarativo + una extensión procedural
Cuál es el standar ISO de SQL?
ISO 9075
Antes era ANSI-86 y luego ANSI-92
Cuál fué la versión del standar SQL que ya incluyó SQL3 con triggers?
SQL3
ISO9075 - SQL:1999
Cuál es la última versión del stadar de SQL?
ISO9075 - SQL:2016 (compatibilidad con json)
Qué es SQL/PSM?
Persistent Stored modules: Es la extensión del standar ISO9075 de SQL que es el lenguaje procedural en lugar de declarativo, que se usa en los procedimientos almacenados
Por ejemplo el Oracle PL/SQL o Sybase Transact-SQL está derivado de este standar
Qué es SQLite?
Es un formato de ficheros y una librería que usa ese fichero y que entiende el estandar SQL y transacciones sobre ese fichero. Es para uso local, no es cliente-servidor. Se usa en Android
Qué son cada uno de estos sublenguajes de SQL?
DDL
DML
DCL
DDL -> Data Definition Languaje -> Creación, borrado, eliminarción de objetos
DML -> Data Manipulation Languaje -> consulta/borrado/modificación/inserción de datos
DCL -> Data Control Languaje -> Control sobre permisos, transacciones, etc … -> Dentro está el TCL (Transaction Control Languaje)
Sentencias de DML
SELECT
UPDATE
INSERT
DELETE
MERGE
TRUNCATE *
SELECT (joins, agrupaciones, consultas)
UPDATE
INSERT
DELETE
MERGE -> mezcla de registros de una tabla sobre otra
TRUNCATE -> (es DML o DDL) -> borra los datos de una tabla. Sin tener en cuenta las transacciones
Sentencias de DDL
CREATE
DROP
ALTER
TRUNCATE*
CREATE -> crear
DROP -> borrar
ALTER -> modificar
TRUNCATE -> (es DML o DDL) -> borra los datos de una tabla. Sin tener en cuenta las transacciones
+
TABLE
INDEX
VIEW
PROCEDURE
SEQUENCE
FUNCTION
TYPE -> tipos compuestos de datos
TRIGGER
DOMAIN -> dominio de valores
SCHEMA -> una forma de agrupar tablas para subsistemas funcionales
ROLE -> para asignar permisos y funcionalidades a ese rol. El rol se asigna a usuarios
Sentencias de DCL
CALL procedure
GRANT
REVOKE
COMMIT/ROLLBACK
SAVEPOINT
SET TRANSACTION / START TRANSACTION
CALL procedure -> para llamar a procedimientos almacenados
GRANT -> dar permisos
REVOKE -> quitar permisos
TCL —————
COMMIT/ROLLBACK -> confirmar o deshacer los cambios en una transacción
SAVEPOINT -> poner un savepoint, para que si se hace rollback sólo se deshace a partir del savepoint /RELEASE SAVEPOINT (para quitar el savepoint)
SET TRANSACTION / START TRANSACTION -> Configurar e iniciar una transacción
Mirar cómo se hacen en los distintos gestores de bbdd (oracle, mysql, postgres, sqlserver)
create index
create view
call
funciones de fechas y cadenas
Constraints
CHECK
PRIMARY KEY
UNIQUE
FOREIGN KEY
CHECK -> establecer condiciones que ha de cumplir el valor del campo
PRIMARY KEY
UNIQUE -> admite 1 solo null en toda la columna
FOREIGN KEY
Sintaxis de CREATE y las distintas CONSTRAINT
CREATE TABLE nombre-tabla (campo1 CHAR(4) not null, campo 2 INT, …),
CONSTRAINT nombre-constraint PRIMARY KEY (campo key),
CONSTRAINT nombre-constraint FOREIGN KEKY (campo fk) REFERENCES tabla_referenciada (campo_referenciado),
CONSTRAINT nombre-constraint UNIQUE (campo),
CONSTRAINT nombre-constraint CHECK (condición o exp regular)
Sintaxis ALTER TABLE, y sus distintas opciones para
añadir columna
modificar columna
eliminar columna
añadir restriccion
ALTER TABLE nombre_tabla ADD COLUMN nombre_col tipo_dato atributos
ALTER TABLE nombre_tabla ALTER COLUMN nombre_col SET DEFAULT/SET NOT NULL/SET DATA TYPE tipo dato
ALTER TABLE nombre_tabla DROP COLUMN nombre_col
ALTER TABLE nombre_tabla ADD CONSTRAINT…
Sintáxis de GRANT
GRANT tipo-privilegio ON objeto TO destinatario-privilegio [WITH GRANT OPTIONS]
- tipo privilegio: (SELECT, UPDATE, INSERT, DELETE, REFERENCES (para poder hacer fks)) + columnas, ALL, USAGE (ej. secuencia), EXECUTE
- objeto: tabla, vista, …
- destinatario-privilegio: usuario, rol
- WITH GRANT OPTIONS: para que el destinatario del permiso también pueda darlo a otros. Delegación de permisos
Sintáxis REVOKE
REVOKE privilegio ON objeto FROM destinatario-privilegio