miércoles, 29 de mayo de 2013

PRACTICA VISTAS

En esta segunda practica se encuentra el video con la explicación de la dase de datos notas.

Aquí se encuentra el link del video y en la parte de abajo la sintaxis por si encuentra una duda. 

https://www.youtube.com/watch?v=Evw_98o_80k&feature=youtu.be

Enter password: ***
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.51b-community-nt-log MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database notas;
Query OK, 1 row affected (0.07 sec)

mysql> use notas;
Database changed
mysql> create table alumnos(matricula int not null primary key,nombre varchar(30),apellidos varchar(50),semestre varchar(20),modulo varchar(50),calif_1 int,calif_2
int,calif_3 int);
Query OK, 0 rows affected (0.15 sec)

mysql> insert into alumnos(matricula,nombre,apellidos,semestre,modulo,calif_1,calif_2,calif_3) values(123,'edith','martinez hernandez','cuarto','COBD',8,9,10),(456
'manuel','zavalla contreras','cuarta','COBD',9,8,7),(678,'irving','gonzalez mena','cuarto','COBD',7,6,5);
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> create view vista_alumnos as select matricula,nombre,apellidos,(calif_1+calif_2+calif_3)/3 as promedio from alumnos;
Query OK, 0 rows affected (0.07 sec)

mysql> show tables;
+-----------------+
| Tables_in_notas |
+-----------------+
| alumnos         |
| vista_alumnos   |
+-----------------+
2 rows in set (0.00 sec)


mysql> select * from vista_alumnos;
+-----------+--------+--------------------+----------+
| matricula | nombre | apellidos          | promedio |
+-----------+--------+--------------------+----------+
|       123 | edith  | martinez hernandez |   9.0000 |
|       456 | manuel | zavalla contreras  |   8.0000 |
|       678 | irving | gonzalez mena      |   6.0000 |
+-----------+--------+--------------------+----------+
3 rows in set (0.00 sec)


mysql> insert into alumnos values(912,'fabian','mora zanchez','cuarto','COBD',10,9,8);
Query OK, 1 row affected (0.00 sec)

mysql> select * from alumnos;
+-----------+--------+--------------------+----------+--------+---------+---------+---------+
| matricula | nombre | apellidos          | semestre | modulo | calif_1 | calif_2 | calif_3 |
+-----------+--------+--------------------+----------+--------+---------+---------+---------+
|       123 | edith  | martinez hernandez | cuarto   | COBD   |       8 |       9 |      10 |
|       456 | manuel | zavalla contreras  | cuarta   | COBD   |       9 |       8 |       7 |
|       678 | irving | gonzalez mena      | cuarto   | COBD   |       7 |       6 |       5 |
|       912 | fabian | mora zanchez       | cuarto   | COBD   |      10 |       9 |       8 |
+-----------+--------+--------------------+----------+--------+---------+---------+---------+
4 rows in set (0.00 sec)


mysql> select * from vista_alumnos;
+-----------+--------+--------------------+----------+
| matricula | nombre | apellidos          | promedio |
+-----------+--------+--------------------+----------+
|       123 | edith  | martinez hernandez |   9.0000 |
|       456 | manuel | zavalla contreras  |   8.0000 |
|       678 | irving | gonzalez mena      |   6.0000 |
|       912 | fabian | mora zanchez       |   9.0000 |
+-----------+--------+--------------------+----------+

4 rows in set (0.00 sec)

Practica 13-14

Practica 13-14: Uso de formularios con el lenguaje de programación

1.    Abrimos Access para crear nuestra base de datos de un registro que proporcione la información necesaria.
1.    Entramos a visual basic en modo grafico  agregando un nuevo formulario agregaremos nuestra base de datos de access.
1.    Agregaremos un nuevo origen de datos, para ello iremos a la pestaña de datos y damos clic en agregar nuevo origen de datos.
1.    Elegimos una nueva conexión de nuestra base de datos y su ubicación
1.    Seleccionamos nuestra base de datos
1.    Seleccionamos lo que agregaremos a nuestra base de datos
1.    Agregaremos nuestros campos que se agregaron en nuestro nuevo origen de datos.
se muestra de esta manera nuestra base de datos












Practica 12

Manejo de vistas mediante instrucciones del lenguaje SQL
1.    Verifica que el equipo de cómputo se encuentra conectado
2.    Enciende el equipo de computo
3.    Abre sesión en ambiente grafico
4.    Ingresa al sistema gestor de bases de datos

5.    Selecciona la base de datos biblioteca
1.    Crea una vista en la que obtenga los campos de título isbn, editorial, páginas y año de edición, que correspondan a una editorial en específico y la guarda con el nombre de librosdeunaeditorial.


1.    Elimina la vista dominada librosdeunaeditorial mediante instrucciones del lenguaje SQL
1.    Guarda el archivo que contiene las sentencias SQL elaboradas
2.    Ejecuta el archivo que contienen las sentencias SQL elaboradas






Practica 11

Practica 11: Manejo de disparadores mediante criterios de selección
1.    Verifica que el equipo de cómputo se encuentra conectado
2.    Enciende el equipo de computo
3.    Abre sesión en ambiente grafico
4.    Ingresa al sistema gestor de bases de datos
5.    Selecciona la base de datos biblioteca
6.    Crea un disparador en la base de datos biblioteca el cual se ejecute cuando el usuario intente eliminar un usuario que tenga préstamos de ejemplares pendientes de devolver.
7.    Elimina el disparador de la base de datos creada.
8.    Guarda el archivo que contiene las sentencias SQL elaboradas
9.    Ejecuta el archivo que contienen las sentencias SQL elaboradas
10. Imprime instrucciones SQL elaboradas


mysql> create database biblioteca;
Query OK, 1 row affected (0.00 sec)

mysql> use biblioteca;
mysql> create table autor(codigo int not null auto_increment primary key,nombre varchar(30));
mysql> describe autor;
mysql> create table libros(codigo int not null auto_increment primary key,titulo varchar(30),ISBN varchar(30),editorial varchar(30),num_paginas int);
mysql> describe libros;
mysql> create table usuarios(codigo_ejemplar int not null auto_increment primary key,localizacion varchar(30));
mysql> create table ejemplares(codigo_ejemplar int not null auto_increment primary key,localizacion varchar(30));
mysql> describe ejemplares;
mysql> create table usuarios(codigo_usuario int not null auto_increment primary key,nombre varchar(30),direccion varchar(50),telefono varchar(30),codigo_ejemplar int);
mysql> insert into usuarios(nombre,direccion,telefono,codigo_ejemplar) values('nancy','ave signos 23','53221
234',3),('pedro','calle tulipanes','54321234',4),('amanda','ave. constelacion','56432345',5);
mysql> select * from usuarios;
mysql> create table copia_usuario(codigo int not null auto_increment primary key,nombre_ant varchar(30),direccion_anterior varchar(50),telefono_anterior varchar(50),codigo_ejemplar_anterior int,nombre_nuevo varchar(30),direccion_nueva varchar(50),telefono_nuevo varchar(30),codigo_ejemplar_nuevo int,usuario varchar(40),modificado datetime,codigo_usuario int(4));
mysql> describe copia_usuario;
mysql> create trigger elimina_usuarios_ejemplares after delete on usuarios for each row
-> begin
-> insert into copia_usuario(nombre_ant,direccion_anterior,telefono_anterior,codigo_ejemplar_anterior,usuario,modificado,codigo_usuario)values(OLD.nombre,OLD.direccion,OLD.telefono,OLD.codigo_ejemplar,CURRENT_USER
(),NOW(),OLD.codigo_usuario);
-> End;
-> //
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter ;
mysql> select * from usuarios;
mysql> delete from usuarios where codigo_ejemplar=4;
mysql> select * from usuarios;
mysql> select * from copia_usuario;











Base de datos dbclientes

Para la siguiente entrada explicaremos la base de datos con un vídeo  aquí abajo dejaremos la sintaxis por si queda alguna duda. 


Enter password: ***
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.51b-community-nt-log MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database dbclientes;
Query OK, 1 row affected (0.07 sec)

mysql> use dbclientes;
Database changed
mysql> create table tbclientes(codigo_cli int primary key,nombre_cli varchar(250),trabajo_cli varchar(250));
Query OK, 0 rows affected (0.16 sec)


mysql> describe tbclientes;

mysql> insert into tbclientes(codigo_cli,nombre_cli,trabajo_cli) values (1,'Edith Martinez Hernandez','inform
atica '),(2,'Juan Carmona Hernandez','Control de la contaminacion'),(3,'Fernanda Lopez Perez','Productividad'
);
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from tbclientes;

mysql> create table tbcopiaclientes(codigo_cop int primary key,nombre_cop varchar(50),trabajo_cop varchar(50)
,usuario_cop varchar(50),modificado_cop datetime);
Query OK, 0 rows affected (0.18 sec)

mysql> describe tbclientes;
mysql> delimiter //
mysql> create trigger nuevocliente after insert on tbclientes for each row
    -> begin
    -> insert into tbcopiaclientes(codigo_cop,nombre_cop,trabajo_cop,usuario_cop,modificado_cop) values(new.c
odigo_cli,new.nombre_cli,new.trabajo_cli,current_user(),now());
    -> end //
Query OK, 0 rows affected (0.27 sec)

mysql> show triggers;
    -> delimiter;
    -> end//
+--------------+--------+------------+-----------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------+--
------+---------+--------------------------------------------+----------------+
| Trigger      | Event  | Table      | Statement
                                                                                                          | T
iming | Created | sql_mode                                   | Definer        |
+--------------+--------+------------+-----------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------+--
------+---------+--------------------------------------------+----------------+
| nuevocliente | INSERT | tbclientes | begin
insert into tbcopiaclientes(codigo_cop,nombre_cop,trabajo_cop,usuario_cop,modificado_cop) values(new.codigo_c
li,new.nombre_cli,new.trabajo_cli,current_user(),now());
end | AFTER  | NULL    | NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | root@localhost |
+--------------+--------+------------+-----------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------+--
------+---------+--------------------------------------------+----------------+
1 row in set (0.12 sec)

mysql> insert into tbclientes() values(4,'Carlos Manuel Zavala','Informatica');
    -> end //
Query OK, 1 row affected (0.07 sec)

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL ser
ver version for the right syntax to use near 'end' at line 1
mysql> select * from tbclientes//
+------------+--------------------------+-----------------------------+
| codigo_cli | nombre_cli               | trabajo_cli                 |
+------------+--------------------------+-----------------------------+
|          1 | Edith Martinez Hernandez | informatica                 |
|          2 | Juan Carmona Hernandez   | Control de la contaminacion |
|          3 | Fernanda Lopez Perez     | Productividad               |
|          4 | Carlos Manuel Zavala     | Informatica                 |
+------------+--------------------------+-----------------------------+
4 rows in set (0.00 sec)

mysql> select * from tbcopiaclientes//
+------------+----------------------+-------------+----------------+---------------------+
| codigo_cop | nombre_cop           | trabajo_cop | usuario_cop    | modificado_cop      |
+------------+----------------------+-------------+----------------+---------------------+
|          4 | Carlos Manuel Zavala | Informatica | root@localhost | 2013-05-21 16:59:40 |
+------------+----------------------+-------------+----------------+---------------------+
1 row in set (0.00 sec)




Disparadores, Insert, delete y update

CREATE DATABASE pruebas_dispara;
Use pruebas_dispara;
CREATE TABLE clientes(id_cliente int not null auto_increment,
nombre varchar(100),seccion varchar(20),
Accion varchar(10) default 'Insertado',
PRIMARY KEY(id_cliente),
KEY(NOMBRE));
DESCRIBE clientes;


INSERT INTO clientes(nombre,seccion) VALUES
('Miguel','Informatica'),
('Rosa','Comida'),
('Maria','Ropa'),
('Albert','Informatica'),
('Jordi','Comida');
select * from clientes;



CREATE TABLE auditoria_clientes(id int not null auto_increment,
nombre_anterior varchar(100),
seccion_anterior varchar(20),
nombre_nuevo varchar(100),
seccion_nueva varchar(20),
usuario varchar(40),
modificado datetime,
proceso varchar(10),
Id_cliente int(4),
primary key(id));
DESCRIBE auditoria_clientes;
DELIMITER //
CREATE TRIGGER Inserta_auditoria_clientes
AFTER INSERT ON clientes
FOR EACH ROW
BEGIN
INSERT INTO auditoria_clientes(nombre_nuevo,seccion_nueva,usuario,modificado,proceso,Id_Cliente)
VALUES (NEW.nombre,NEW.seccion,CURRENT_USER(),NOW(),NEW.Accion,NEW.id_cliente);
END;
//
CREATE TRIGGER Modifica_auditoria_clientes


BEFORE UPDATE ON clientes
FOR EACH ROW
BEGIN
INSERT INTO auditoria_clientes(nombre_anterior,seccion_anterior,nombre_nuevo,seccion_nueva,usuario,modificado,Id_Cliente)
VALUES(OLD.nombre,OLD.seccion,NEW.nombre,NEW.seccion,CURRENT_USER(),NOW(),NEW.id_cliente);
END;
//
CREATE TRIGGER Elimina_auditoria_clientes
AFTER DELETE ON clientes
FOR EACH ROW
BEGIN
INSERT INTO auditoria_clientes(nombre_anterior,seccion_anterior,usuario,modificado,Id_Cliente)
VALUES(OLD.nombre,OLD.seccion,CURRENT_USER(),NOW(),OLD.id_cliente);
END;
//
DELIMITER ;
SHOW TRIGGERS:


INSERT INTO CLIENTES(nombre,seccion) VALUES('Edith Martinez','Informatica');
select * from clientes;

select * from auditoria_clientes;

UPDATE CLIENTES SET NOMBRE='JORDI APOLINAR',SECCION='PRODUCTIVIDAD'WHERE ID_CLIENTE=5;
select * from clientes;
select * from auditoria_clientes;

DELETE FROM CLIENTES WHERE NOMBRE='Edith Martinez';
select * from clientes;
select * from auditoria_clientes;

Manejo de disparadores con criterios de selección



Enter password: ***
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.51b-community-nt-log MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database biblioteca;
Query OK, 1 row affected (0.07 sec)

mysql> use biblioteca;
Database changed
mysql> create table autor(codigo int not null auto_increment primary key,nombre varchar(30));
Query OK, 0 rows affected (0.16 sec)

mysql> describe autor;
 









mysql> create table libros(codigo int not null auto_increment primary key,titulo varchar(30),ISBN varchar(30),editorial varchar(30),num_paginas int);
Query OK, 0 rows affected (0.90 sec)

mysql> describe libros;


mysql> create table usuarios(codigo_usuario int not null auto_increment primary key,nombre varchar(30),direccion varchar(50),telefono varchar(30),codigo_ejemplar in
Query OK, 0 rows affected (0.19 sec)

mysql> describe usuarios;


mysql> create table ejemplares(codigo_ejemplar int not null auto_increment primary key,localizacion varchar(30));
Query OK, 0 rows affected (0.19 sec)

mysql> describe ejemplares;


mysql> insert into usuarios(nombre,direccion,telefono,codigo_ejemplar) values('migel','ave signos 23','53221234',3),('pedro','calle tulipanes','54321234',4),('amandve. constelacion','56432345',5);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from usuarios;


mysql> create table copia_usuario(codigo int not null auto_increment primary key,nombre_ant varchar(30),direccion_anterior varchar(50),telefono_anterior varchar(50)
go_ejemplar_anterior int,nombre_nuevo varchar(30),direccion_nueva varchar(50),telefono_nuevo varchar(30),codigo_ejemplar_nuevo int,usuario varchar(40),modificado da
e,codigo_usuario int(4));
Query OK, 0 rows affected (0.18 sec)

mysql> describe copia_usuario;



mysql> delimiter //
mysql> create trigger Elimina_usuarios_ejemplares after delete on usuarios for each row
    -> begin
    -> insert into copia_usuario(nombre_ant,direccion_anterior,telefono_anterior,codigo_ejemplar_anterior,usuario,modificado,codigo_usuario) values(OLD.nombre,OLD.d
ireccion,OLD.telefono,OLD.codigo_ejemplar,current_user(),now(),OLD.codigo_usuario);
    -> end //
Query OK, 0 rows affected (1.25 sec)

mysql> select * from usuarios//


mysql> delete from usuarios where codigo_ejemplar=4//
Query OK, 1 row affected (0.05 sec)

mysql> select * from usuarios//


mysql> select * from copia_usuario//