Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Bases de Datos

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 5

repaso parcial 2 bases de datos

CREATE DATABASE se utiliza para crear una nueva base de datos vacía.
DROP DATABASE se utiliza para eliminar completamente una base de datos existente.
CREATE TABLE se utiliza para crear una nueva tabla, donde la información se
almacena realmente.
ALTER TABLE se utiliza para modificar una tabla ya existente.
DROP TABLE se utiliza para eliminar por completo una tabla existente.
SELECT se utiliza cuando quieres leer (o seleccionar) tus datos.
INSERT se utiliza cuando quieres añadir (o insertar) nuevos datos.
UPDATE se utiliza cuando quieres cambiar (o actualizar) datos existentes.
DELETE se utiliza cuando quieres eliminar (o borrar) datos existentes.
REPLACE se utiliza cuando quieres añadir o cambiar (o reemplazar) datos nuevos o ya
existentes.
TRUNCATE se utiliza cuando quieres vaciar (o borrar) todos los datos de la
plantilla.
Distinct se utiliza para arrojar el resultado de una consulta sin repetir tuplas
Like evalúa si una cadena se ciñe a un valor
In lista explícita evalúa si el valor de un campo está en un conjunto de valores
Order by se ordena de acuerdo al primer campo ascendente se le pone desc es para
ordenarlo descendente
Having es una condición
Inner join coincidencia exacta por ambos lados

EJEMPLOS:

CREATE DATABASE mydb;


USE mydb;
CREATE TABLE mitabla ( id INT PRIMARY KEY, nombre VARCHAR(20) );
INSERT INTO mitabla VALUES ( 1, 'Will' );
INSERT INTO mitabla VALUES ( 2, 'Marry' );
INSERT INTO mitabla VALUES ( 3, 'Dean' );
SELECT id, nombre FROM mitabla WHERE id = 1;
UPDATE mitabla SET nombre = 'Willy' WHERE id = 1;
SELECT id, nombre FROM mitabla;
DELETE FROM mitabla WHERE id = 1;
SELECT id, nombre FROM mitabla;
DROP DATABASE mydb;
SELECT count(1) from mitabla; da el número de registros en la tabla

vistas

create view nombreVista as


(Select listaCampos
From tablas
Where expresionCondicional
… )

el create view se utiliza para crear una lista sobre una funcion ya existente esta
la deficion mas no la informacion
para seleccionar lo que se desea ver se coloca el select seguido de la etiqueta a
utilizas como un * seguido de el nombre
que se coloco el view

WHERE
El where especifica criterios que tienen que cumplir los valores del campo que se
consulto y que sean los resultados, funciona como una restriccion dentro de la
funcion.

ejemplo:
Obtener una lista con código y nombre de los productos
cuyo precio de venta es mayor al promedio del precio de
venta de los productos de su misma línea.

select pr1.productCode, pr1.productName, pr1.buyprice


from products pr1
where pr1.buyprice > (Select avg(pr2.buyprice)
from products pr2
where pr1.productLine = pr2.productLine)

La subconsulta es una expresión que compara la expresión con el resultado de la


subconsulta, s
igue las mismas reglas que el select, from pero las subconsultas van en
paréntesis.

CREACION DE USUARIOS:
se utiliza para crear usuarios con datos seguido de una opcion.

CREATE ROLE name [ [ WITH ] option [ ... ] ]


Donde option puede ser:
SUPERUSER | NOSUPERUSER
CREATEDB | NOCREATEDB
CREATEROLE | NOCREATEROLE
LOGIN | NOLOGIN
CONNECTION LIMIT connlimit
WITH PASSWORD
EJ:
CREATE USER maulopez WITH PASSWORD
'jw8s0F4';

ASIGNAR PRIVILEGIOS:

se utiliza la clausula GRANT para definir los privilegios de un usuario

GRANT { { SELECT | INSERT | UPDATE | DELETE


| TRUNCATE | REFERENCES | TRIGGER }
[, ...] | ALL [ PRIVILEGES ] }
ON { [ TABLE ] table_name [, ...]
| ALL TABLES IN SCHEMA schema_name [, ...] }
TO role_specification [, ...] [ WITH GRANT OPTION ]

EJEMPLO:
GRANT ALL PRIVILEGES ON kinds TO
maulopez;
GRANT admins TO joe;

REVOCAR PRIVILEGIOS:
se usa la clausula REVOKE para quitar los privilegios de un usuario o grupo de
usuarios

REVOKE [ GRANT OPTION FOR ]


{ { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
[, ...] | ALL [ PRIVILEGES ] }
ON { [ TABLE ] table_name [, ...]
| ALL TABLES IN SCHEMA schema_name [, ...] }
FROM { [ GROUP ] role_name | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]

EJEMPLO:
 REVOKE ALL PRIVILEGES ON kinds FROM
maulopez;
REVOKE admins FROM maulopez;

TRANSACCIONES:
es una astrabcion de datos en una BD donde la Bd mientras se ejecuta la trasaccion
entra
en un estado inconsistente. (si la transaccion falla la BD quedara en
inconsistencia y se debera ejecutar Roollback
Se entiende como un conjunto de acciones llevadas a cabo por un usuario o un
programa
de aplicación, que acceden o cambian el contenido de la base de datos.

existen 3 tipos de transacciones :


RECUPERACION: se accede a los datos para visualizarlos en la pantalla en modo
informe
ACTUALIZACION: se insertan, borran o actualizan datos de la BD
MIXTAS: en estas se combinan recuperacion y actualizacion

PROPIEDADES
Atomicidad(Atomicity): Es la propiedad que
asegura que la operación se ha realizado o no, y por
lo tanto ante un fallo del sistema no puede quedar a
medias.

Consistencia(Consistency): Es la propiedad que


asegura que sólo se empieza aquello que se puede
acabar. Por lo tanto, se ejecutan aquellas
operaciones que no van a romper la reglas y
directrices de integridad de la base de datos.

Aislamiento (Isolation): es la propiedad que


asegura que una operación no puede afectar a otras.
Esto asegura que la realización de dos transacciones
sobre la misma información nunca generará ningún
tipo de error.

Permanencia (Durability): es la propiedad que


asegura que una vez realizada la operación, ésta
persistirá y no se podrá deshacer aunque falle el
sistema.

CLAUSULAS:
BEGIN: Específica que va a empezar una transacción.
COMMIT: Le indica al motor que puede considerar la transacción completada con éxito
ROLLBACK : Indica que se ha alcanzado un fallo y que debe restablecer la base al
punto de
integridad.

ESTADOS:
las transacciones tienen diferentes estados.
ACTIVA: la transaccion mantiene en este estado mientras se ejecuta
PARCIALMENTE COMPROMETIDA: despues de ejecutarse la ultima transaccion
FALLIDA:tras descubrir que no se puede continuar la ejecución normal.
Abortada (Rolled Back): después de haber retrocedido la transacción y restablecido
la base de datos a su estado
anterior al comienzo de la transacción.
Comprometida (Commited): tras completarse con éxito.

EJEMPLO: Modificar el teléfono de la oficina de Paris a


+33 14 820 5050

update offices set phone ='+33 14 820 5050' where


officecode='4';

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.--.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
TRIGGERS:
es un objeto que se asocia con tablas y se almacena en la base de datos pl/sql
se ejecutan cuando sucede algun evento sobre btablas a las que se encuentra
asociado
insert,delete y update.

un triger tiene asociado:

un EVENTO: la operacion que se efectua sobre la tabla (INSERT, DELETE o UPDATE)


un MOMENTO: cuando se dispara el trigger en relacion con el evento, sus posibles
valores son BEFORE y AFTER.
un TIPO: por operacion en conjunto (trigger de operacion), o por cada fila
procesada (trigger de fila)
en este ultimo caso se debe adicionar la clausula FOR EACH ROW.

CREACION DE TRIGGER:

CREATE [OR REPLACE] TRIGGER nombre_trigger


momento evento ON tabla
[FOR EACH ROW
[WHEN condición]]
bloque de PL/SQL

Si el evento es UPDATE, se puede(n) especificar la(s) columna(s) que dispararán el


trigger con la palabra
OF (si no se especifican, el trigger se dispara con cualquier columna de la tabla
que sea actualizada)
El bloque comienza con la palabra DECLARE o BEGIN

ACCESO A VALORES EN TRIGGER DE FILA:


INSERT: valor anterior = null, valor nuevo= el valor que se va a insertar
DELETE: valor anterior = el valor antes del borraro. valor nuevo= null
UPDATE: valor anterior= el valor antes de la actualizacion, valor nuevo= el valor
despues de la actualizacion.

Valor de una
columna antes de
la actualización
con :OLD.nomcolumna
Valor después de
la actualización
con :NEW.nomcolumna

ELIMINAR Y CONSULTAR TRIGGERS:


Sintaxis para eliminar Trigger:
DROP TRIGGER [ IF EXISTS ] name
ON table_name [ CASCADE | RESTRICT]

Sintaxis para consultar Triggers


SELECT * FROM pg_trigger;

EJEMPLO:

Crear un trigger para garantizar que en la


inserción de datos en la tabla products, de la
base de datos classicModels, el atributo
productCode siempre inicie con una letra S, de
lo contrario no se debe permitir su inserción.

Crear la función:
create function fun_codProd() returns trigger
as
$$
begin
if new.productcode not like 'S%' then
RAISE NOTICE 'error de codigo';
return null;
ELSE return new;
END IF;
end;
$$
language plpgsq

LUEGO

Crear el trigger:
create trigger trig_codProd
before insert on products
for each row
execute procedure fun_codProd();

También podría gustarte