Practica 1
1.-Crearemos una base de
datos llamada db123
mysql>
create database db123;
Query OK, 1
row affected (0.00 sec)
2.-Usaremos o nos
posicionamos en la base de datos
mysql>
use db123;
Database
changed
3.-Creamos una tabla:
mysql>
create table tmujer(id int(2) not null auto_increment primary key, nombre
varchar(60) not null, tipo varchar(20) null);
Query OK, 0
rows affected (0.08 sec)
4.-Veremos como quedo la
table con el contenido
mysql>
describe tmujer;
+--------+-------------+------+-----+---------+----------------+
|
Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(2) | NO
| PRI | NULL | auto_increment |
| nombre |
varchar(60) | NO | | NULL
| |
| tipo | varchar(20) | YES | |
NULL | |
+--------+-------------+------+-----+---------+----------------+
3 rows in
set (0.00 sec)
5.-Ahora
crearemos en procedimiento para agregar datos ala table antes creada, de igual
manera que se inserte un nuevo registro y al final que muestre la tabla
resultante.
Pero
antes será necesario cambiar el delimitador mediante el comando “delimiter” que
se utiliza para poder cambiar ”;” por otro carácter temporalmente por ejemplo “//”
o “$”, esto es porque el “;” delimita el fin de la consulta, entonces el
procedimiento puede tener varia consultas y entonces el procedimiento puede
tener varias consultas y entonces nos indicaría el error al tratar de crear el
procedimiento
mysql>
delimiter //
mysql>
create procedure setmujer(in nombre varchar(60), in tipo varchar(20))
-> begin
-> insert into
tmujer(nombre,tipo) values (nombre,tipo);
-> select * from tmujer;
-> end//
Query OK, 0
rows affected (0.06 sec)
6.- El procedimiento ha sido
creado entonces será necesario regresar al delimitador anterior
mysql> delimiter ;
7.-Para poder visualizar el
procedimiento anterior es necesario cambiar de base de datos, los
procedimientos se guardan en Mysql
mysql> use Mysql ;
Database changed
8.-Ahora veremos el procedimiento
realizado con la sentencia
mysql>
select specific_name from proc where type='procedure';
+---------------+
|
specific_name |
+---------------+
|
setmuje |
+---------------+
1 row in
set (0.00 sec)
9.-Ahora para poder ver el
código se utiliza la sentencia
mysql>
select body from proc where specific_name='setmujer';
Empty set (0.00 sec)
10.-Ahora verificamos el
funcionamiento del procedimiento cambiándonos a la base de datos creada por
nosotros
mysql> use db123;
Database changed
11.-Utilizamos la siguiente
sentencia para invocar al procedimiento
mysql> call setmujer('pedro','vendedor');
+----+--------+----------+
| id | nombre | tipo
|
+----+--------+----------+
| 1 | pedro | vendedor |
+----+--------+----------+
1 row in
set (0.02 sec)
Query OK, 0
rows affected (0.03 sec)
12.-Veremos
cómo se ejecutan cada una de las líneas del procedimiento insertando el nuevo
registro y posteriormente mostrándonos la tabla resultante. Podemos agregar
otro registro de la siguiente manera
mysql> call
setmujer('maria','secretaria');
+----+--------+------------+
| id | nombre | tipo
|
+----+--------+------------+
| 1 | pedrp | vendedor
|
| 2 | maria
| secretaria |
+----+--------+------------+
2 rows in
set (0.00 sec)
Query OK, 0
rows affected (0.00 sec)
13.-
Para eliminar el procedimiento se utiliza la siguiente sentencia
mysql>
drop procedure setmujer;
Query OK, 0
rows affected (0.00 sec)
14.-Verificamos cambiándonos a la base de datos mysql
mysql> use mysql;
Database changed
15.-Luego colocamos la sentencia
mysql>
select specific_name from proc;
Empty set (0.00 sec)
Practica
1 vistas
mysql>
create table t(qyt int, price int);
Query OK, 0
rows affected (0.08 sec)
mysql>
insert into t values(3,50);
Query OK, 1
row affected (0.01 sec)
mysql>
create view v as select qyt,price, qyt*price as value from t;
Query OK, 0
rows affected (0.06 sec)
mysql>
select * from v;
+------+-------+-------+
| qyt | price | value |
+------+-------+-------+
| 3 |
50 | 150 |
+------+-------+-------+
1 row in
set (0.01 sec)
mysql>
show create view v;
+------+----------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------+
| View |
Create View
|
+------+----------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------+
| v | CREATE ALGORITHM=UNDEFINED
DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v` AS select `t`.`qty` AS
`qty`,`t`.`price` AS `price`,(`t`.
`qty` *
`t`.`price`) AS `value` from `t` |
+------+----------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------+
1 row in
set (0.06 sec)
Practica
2 vistas
Enter
password: ****
Welcome to
the MySQL monitor. Commands end with ;
or \g.
Your MySQL
connection id is 6
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 datos;
Query OK, 1
row affected (0.00 sec)
mysql>
use datos;
Database
changed
mysql>
create table alum_matri(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.03 sec)
mysql> insert into
->
alum_matri(matricula,nombre,apellidos,semestre,modulo,calif_1,calif_2, calif_3)
values
->
(123,'pamela','garcia lopez','cuarto','aswe',8,9,8),
->
(456,'ariel','delvalle perreira','cuarto','aswe',7,9,9),
->
(789,'miguel','barajas rivera','cuarto','aswe',9,9,9);
Query OK, 3
rows affected (0.00 sec)
Records:
3 Duplicates: 0 Warnings: 0
mysql>
create view vista_alum_matri as select
matricula,nombre,apellidos,(calif_1+calif_2+calif_3)/3 as promedio from
alum_matri;
Query OK, 0
rows affected (0.00 sec)
mysql>
show tables;
+------------------+
|
Tables_in_datos |
+------------------+
| alum_matri |
| vista_alum_matri |
+------------------+
2 rows in
set (0.00 sec)
mysql>
select * from vista_alum_matri;
+-----------+--------+-------------------+----------+
| matricula | nombre | apellidos | promedio |
+-----------+--------+-------------------+----------+
| 123 | pamela |
garcia lopez | 8.3333 |
| 456 | ariel | delvalle perreira | 8.3333 |
| 789 | miguel |
barajas rivera | 9.0000 |
+-----------+--------+-------------------+----------+
3 rows in
set (0.00 sec)
mysql>
insert into alum_matri values(155,'marcos','sanches ibarra','cuarto','aswe',9,10,9);
Query OK, 1
row affected (0.00 sec)
mysql>
select * from alum_matri;
+-----------+--------+-------------------+----------+--------+---------+---------+---------+
| matricula | nombre | apellidos | semestre | modulo | calif_1 |
calif_2 | calif_3 |
+-----------+--------+-------------------+----------+--------+---------+---------+---------+
| 123 | pamela |
garcia lopez | cuarto | aswe
| 8 | 9 |
8 |
| 456 |
ariel | delvalle perreira | cuarto | aswe
| 7 |
9 | 9 |
| 789 | miguel |
barajas rivera | cuarto | aswe
| 9 | 9 |
9 |
| 155 | marcos |
sanches ibarra | cuarto | aswe
| 9 | 10 |
9 |
+-----------+--------+-------------------+----------+--------+---------+---------+---------+
4 rows in
set (0.00 sec)
mysql>
select * from vista_alum_matri;
+-----------+--------+-------------------+----------+
| matricula | nombre | apellidos | promedio |
+-----------+--------+-------------------+----------+
| 123 | pamela |
garcia lopez | 8.3333 |
| 456 |
ariel | delvalle perreira | 8.3333 |
| 789 | miguel |
barajas rivera | 9.0000 |
| 155 | marcos | sanches ibarra |
9.3333 |
+-----------+--------+-------------------+----------+
4 rows in set (0.00 sec)
No hay comentarios.:
Publicar un comentario