BIII TEMA 4 SQL Flashcards
Estándar SQL
ISO 9075
Procedimientos almacenados
SQL/PSM: Estándar(parte de la iso) que específica como deben ser los almacenamientos almacenados
SQL
Sublenguajes
-DDL (Data definition lenguage) : creación borrado objetos (tablas, índices,…)
-DML (Data manipulation lenguage): consulta/borrado/modificación datos
-DCL (Data control lenguage) : permisos/transacciones (tx)
Lenguaje DDL
Create/drop/alter + (objetos BD)
Objetos BD
Table
Index (índices)
View
Type (tipos de datos estructurados)
Trigger (disparador en base eventos)
Domain(conj de valores d un atributo)
Schemas (agrupar tablas x temática)
Role (permisos, seguridad)
Truncate (borra objeto)
Lenguaje DML
Manipulación de los datos
Select
Update
Insert
Delete
Merge
Lenguaje DCL
control sobre permisos, transacciones
Grant (dar permisos) on + to
Revoke (quitar permisos) on + from
Commit (confirmar cambios tx)
Rollback (desacer cambios tx)
Savepoint (punto salvaguarda)
Set trasaction(configurar tx)
Star transaction(empezar tx)
Sintaxis Grant
GRANT privilegios ON objeto(tabla,vista,…) TO Usuario/role
Ej
GRANT SELECT ON clientes TO Rebeca
Damos permisos lectura al usuario rebeca a la tabla clientes
GRANT SELECT,INSERT,UPDATE,DELETE ON empleados TO rebeca
Damos permisos al usuario rebeca de lecturay escritura para los registros, insertar nuevos , modificarlos y/o eliminarlos
Niveles de aislamiento
Todo se soluciona con bloqueos . Para gobernar la lectura y Escritura de las transacciones
Cross join
Sintaxis
Todos con todos
Coma entre tablas o croos join
SELECT * FROM nombretabla1, nombretabla2
Inner join
Sintaxis
No aparecen las null
Aparecen las filas coincidentes según la condición
Ej:
SELECT * FROM nombretabla1 [INNER] JOIN nombretabla2 ON Tabla1_pk=Tabla2_pk
Sería los mismo que
SELECT * FROM nombretabla1, nombretabla2 where tabla1_pk=tabla2_pk
Left [outer] join
Resultado son todas las filas de la tabla de la izquierda
Ejemplo:
SELECT * FROM nombretabla1 LEFT [OUTER] JOIN nombretabla2 ON PKtabla1=pktabla2
Right [outer] join
Todas las filas de la tabla de la derecha
Full [outer] join
No soportada por MySQL
Primero hace las left y luego un right
Primero filas coincidentes+ no coincidentes tabla izq y derecha
Group by + having
Siempre van juntas
Group by Hacer agrupaciones,
Having es el where de los grupos
SQL queries en qué orden corren
From JOIN
+
WHERE
+
GROUP BY
+
HAVING
+
SELECT
+
ORDER BY
+
LIMIT
PL/SQL
Implementación oracle