MARACAIBO, 15 DE NOVIEMBRE DEL 2010 UNEFA...
Transcript of MARACAIBO, 15 DE NOVIEMBRE DEL 2010 UNEFA...
MARACAIBO, 15 DE NOVIEMBRE DEL 2010
UNEFA – ZULIA SIM 6 B
LUIS MANUEL SOTO GARCIA
BASES DE DATOS
TERMINAL
lab1@canaima:~$ xampp start
Starting XAMPP for Linux 1.7.3a...
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for Linux started.
lab1@canaima:~$ mysql -h localhost -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.41 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database tienda;
ERROR 1007 (HY000): Can't create database 'tienda'; database exists
mysql> create database bicentenario;
Query OK, 1 row affected (0,01 sec)
mysql> use bicentenario;
Database changed
mysql> create table proveedor (ID_pro bigint not null primary key auto_increment,RIF varchar(15),Nombre
varchar(15),Direccion varchar(15), Telefono varchar(15));
Query OK, 0 rows affected (0,00 sec)
mysql> drop table proveedor;
Query OK, 0 rows affected (0,00 sec)
mysql> create table proveedor(ID_pro bigint auto_increment primary key,Rif varchar(15),Nombre
varchar(15),Direccion varchar(15),Telefono varchar(15))type=innodb;
Query OK, 0 rows affected, 1 warning (0,00 sec)
mysql> create table producto(ID_produ bigint auto_increment primary key, cod_producto varchar(12),
Nombre varchar(20), Precio double, ID_pro bigint, index (ID_pro), foreign key (ID_pro) references proveedor
(ID_pro) on update cascade on delete cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0,00 sec)
mysql> create table cliente(ID_cli bigint auto_increment primary key, Nombre varchar(20),Cedula
varchar(15),Direccion varchar(15), telefono varchar(15),ID_produ bigint, index(ID_produ), foreign
key(ID_produ) references producto (ID_produ) on update cascade on delete cascade) type=innodb;
Query OK, 0 rows affected, 1 warning (0,01 sec)
mysql> insert into proveedor values(null,"J-12345678-9","Empresas Polar","Km4","0261-7894561");
Query OK, 1 row affected (0,01 sec)
mysql> insert into proveedor values(null,"J-78945612-3","Coca Cola","Av - Goajira","0261-14253");
Query OK, 1 row affected (0,01 sec)
mysql> insert into proveedor values(null,"J-74859612-3","Camprolac","Haticos","0261-1245781");
Query OK, 1 row affected (0,00 sec)
mysql> select*from proveedor;
+--------+--------------+----------------+--------------+--------------+
| ID_pro | Rif | Nombre | Direccion | Telefono |
+--------+--------------+----------------+--------------+--------------+
| 1 | J-12345678-9 | Empresas Polar | Km4 | 0261-7894561 |
| 2 | J-78945612-3 | Coca Cola | Av - Goajira | 0261-14253 |
| 3 | J-74859612-3 | Camprolac | Haticos | 0261-1245781 |
+--------+--------------+----------------+--------------+--------------+
3 rows in set (0,00 sec)
mysql> insert into producto values(null,"789456-1","Cerveza","Bs.F 3,00","1");
Query OK, 1 row affected, 1 warning (0,00 sec)
mysql> insert into producto values(null,"745812-9","Malta","Bs.F 3,50","1");
Query OK, 1 row affected, 1 warning (0,01 sec)
mysql> insert into producto values(null,"752631-4","Arroz mary","Bs.F 3,66","1");
Query OK, 1 row affected, 1 warning (0,00 sec)
mysql> insert into producto values(null,"7142536-8","Leche","Bs.F 15,66","3");
Query OK, 1 row affected, 1 warning (0,01 sec)
mysql>
PRODUCTO CARTESIANO
Consulta con 2 tablas (Relacion binaria)
select, from, where
select campo1,campo2 from tabla1,tabla2
where tabla2.fk=tabla1.fk;
Ej:
select producto.nombre,proveedor.nombre
from producto,proveedor where
producto.id_prov=proveedor.id_prov;
SENTENCIAS JOIN Y INNER JOIN
mysql> use clinicas;
Database changed
mysql> create table clinica(ID_Clinica bigint auto_increment primary key, Nombre_Clinica varchar(40),
Direccion varchar(40), ID_Paciente bigint, index (ID_Paciente), foreign key (ID_Paciente) references PACIENTE
(ID_Paciente) on update cascade on delete cascade,ID_Doctor bigint, index (ID_Doctor), foreign key
(ID_Doctor) references DOCTOR (ID_Doctor) on update cascade on delete restrict)Type=innodb;
Query OK, 0 rows affected, 1 warning (0.15 sec)
mysql> insert into clinica values(null,"Clinica Zulia","Sabaneta","2","3");
Query OK, 1 row affected (0.04 sec)
mysql> insert into clinica values(null,"Clinica Sagrada Familia","Amparo","1","2");
Query OK, 1 row affected (0.02 sec)
mysql> insert into clinica values(null,"Clinica Paraiso","Av. Universidad","3","3");
Query OK, 1 row affected (0.02 sec)
mysql> select*from paciente;
+-------------+-----------------+-------------------+----------+--------------+
| ID_PACIENTE | Nombre_Paciente | Apellido_Paciente | Cedula | Telefono |
+-------------+-----------------+-------------------+----------+--------------+
| 1 | Ruben Antonio | Alvarez Moreno | 20429581 | 0424-7645209 |
| 2 | Eduardo Jose | Briceno Gutierrez | 18218749 | 0424-6142319 |
| 3 | Cesar Andres | Estrada Carmona | 19681259 | 0416-4644478 |
+-------------+-----------------+-------------------+----------+--------------+
3 rows in set (0.00 sec)
mysql> select*from doctor;
+-----------+------------+---------------------+-----------------+--------------+-------------+
| ID_DOCTOR | Cod_Doctor | Nombre_Doctor | Apellido_Doctor | Especialidad| ID_PACIENTE |
+-----------+------------+---------------------+-----------------+--------------+-------------+
| 2 | 4885 | Mariara del Mar | Viloria Nava | Pediatra| 3 |
| 3 | 5896 | Leandro Joaquin | Bracho Garcia | Traumatologo| 1 |
| 4 | 7825 | Norlangri del Valle | Toloza Morales | Oftamologia| 2 |
+-----------+------------+---------------------+-----------------+--------------+-------------+
3 rows in set (0.00 sec)
mysql> insert into clinica values(null,"Clinica Los Olivos","Av. La Limpia","3","1");
Query OK, 1 row affected (0.04 sec)
mysql> select*from clinica;
+------------+-------------------------+-----------------+-------------+-----------+
| ID_Clinica | Nombre_Clinica | Direccion | ID_Paciente | ID_Doctor |
+------------+-------------------------+-----------------+-------------+-----------+
| 1 | Clinica Zulia | Sabaneta | 2 | 3 |
| 3 | Clinica Sagrada Familia | Amparo | 1 | 2 |
| 5 | Clinica Paraiso | Av. Universidad | 3 | 3 |
| 6 | Clinica Los Olivos | Av. La Limpia | 3 | 1 |
+------------+-------------------------+-----------------+-------------+-----------+
4 rows in set (0.00 sec)
mysql> select*from clinica where Direccion like"A%";"
+------------+-------------------------+-----------------+-------------+-----------+
| ID_Clinica | Nombre_Clinica | Direccion | ID_Paciente | ID_Doctor |
+------------+-------------------------+-----------------+-------------+-----------+
| 3 | Clinica Sagrada Familia | Amparo | 1 | 2 |
| 5 | Clinica Paraiso | Av. Universidad | 3 | 3 |
| 6 | Clinica Los Olivos | Av. La Limpia | 3 | 1 |
+------------+-------------------------+-----------------+-------------+-----------+
3 rows in set (0.00 sec)
mysql> select*from paciente where cedula like "1%";
+-------------+-----------------+-------------------+----------+--------------+
| ID_PACIENTE | Nombre_Paciente | Apellido_Paciente | Cedula | Telefono |
+-------------+-----------------+-------------------+----------+--------------+
| 2 | Eduardo Jose | Briceno Gutierrez | 18218749 | 0424-6142319 |
| 3 | Cesar Andres | Estrada Carmona | 19681259 | 0416-4644478 |
+-------------+-----------------+-------------------+----------+--------------+
2 rows in set (0.00 sec)
mysql> select*from doctor where nombre_doctor like "m%";
+-----------+------------+-----------------+-----------------+--------------+-------------+
| ID_DOCTOR | Cod_Doctor | Nombre_Doctor | Apellido_Doctor | Especialidad | ID_PACIENTE |
+-----------+------------+-----------------+-----------------+--------------+-------------+
| 2 | 4885 | Mariara del Mar | Viloria Nava | Pediatra | 3 |
+-----------+------------+-----------------+-----------------+--------------+-------------+
1 row in set (0.00 sec)
mysql> select*from doctor where nombre_doctor like "n%";
+-----------+------------+---------------------+-----------------+--------------+-------------+
| ID_DOCTOR | Cod_Doctor | Nombre_Doctor | Apellido_Doctor | Especialidad| ID_PACIENTE |
+-----------+------------+---------------------+-----------------+--------------+-------------+
| 1 | 7825 | Norlangri del Valle | Toloza Morales | Oftamologia| 2 |
+-----------+------------+---------------------+-----------------+--------------+-------------+
1 row in set (0.00 sec)
mysql> select*from paciente;
+-------------+-----------------+-------------------+----------+--------------+
| ID_PACIENTE | Nombre_Paciente | Apellido_Paciente | Cedula | Telefono |
+-------------+-----------------+-------------------+----------+--------------+
| 1 | Ruben Antonio | Alvarez Moreno | 20429581 | 0424-7645209 |
| 2 | Eduardo Jose | Briceno Gutierrez | 18218749 | 0424-6142319 |
| 3 | Cesar Andres | Estrada Carmona | 19681259 | 0416-4644478 |
+-------------+-----------------+-------------------+----------+--------------+
3 rows in set (0.00 sec)
mysql> select*from doctor;
+-----------+------------+---------------------+-----------------+--------------+-------------+
| ID_DOCTOR | Cod_Doctor | Nombre_Doctor | Apellido_Doctor | Especialidad| ID_PACIENTE |
+-----------+------------+---------------------+-----------------+--------------+-------------+
| 1 | 7825 | Norlangri del Valle | Toloza Morales | Oftamologia| 2 |
| 2 | 4885 | Mariara del Mar | Viloria Nava | Pediatra| 3 |
| 3 | 5896 | Leandro Joaquin | Bracho Garcia | Traumatologo| 1 |
+-----------+------------+---------------------+-----------------+--------------+-------------+
3 rows in set (0.00 sec)
mysql> select Nombre_Paciente as Paciente,Nombre_Doctor,Especialidad as Titulo from paciente join doctor
on paciente.ID_Paciente=doctor.ID_Doctor;
+---------------+---------------------+--------------+
| Paciente | Nombre_Doctor | Titulo |
+---------------+---------------------+--------------+
| Ruben Antonio | Norlangri del Valle | Oftamologia |
| Eduardo Jose | Mariara del Mar | Pediatra |
| Cesar Andres | Leandro Joaquin | Traumatologo |
+---------------+---------------------+--------------+
3 rows in set (0.01 sec)
mysql> select Nombre_Paciente as Paciente,Nombre_Doctor as Doctor,Especialidad as Area,Nombre_Clinica as
Clinica from(paciente inner join doctor on paciente.ID_Paciente=doctor.ID_Paciente) inner join clinica on
doctor.ID_Doctor=clinica.ID_Doctor;
+---------------+---------------------+--------------+-------------------------+
| Paciente | Doctor | Area | Clinica |
+---------------+---------------------+--------------+-------------------------+
| Eduardo Jose | Norlangri del Valle | Oftamologia | Clinica Los Olivos |
| Cesar Andres | Mariara del Mar | Pediatra | Clinica Sagrada Familia |
| Ruben Antonio | Leandro Joaquin | Traumatologo | Clinica Zulia |
| Ruben Antonio | Leandro Joaquin | Traumatologo | Clinica Paraiso |
+---------------+---------------------+--------------+-------------------------+
4 rows in set (0.02 sec)
mysql>
NORMALIZACION
A través del siguiente ejercicio se intenta afirmar los conocimientos de normalización con un ejemplo
simplificado de una base de datos para una pequeña biblioteca.
CodLibro Titulo Autor Editorial NombreLector FechaDev
1001 Variable
compleja
Murray
Spiegel
McGraw
Hill
Pérez Gómez,
Juan 15/04/2005
1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán, Ana 17/04/2005
1005 Estadística Murray
Spiegel
McGraw
Hill Roca, René 16/04/2005
1006 Oracle
University
Nancy
Greenberg y
Priya Nathan
Oracle
Corp.
García Roque,
Luis 20/04/2005
1007 Clipper 5.01 Ramalho McGraw
Hill
Pérez Gómez,
Juan 18/04/2005
Esta tabla no cumple el requisito de la Primera Forma Normal (1NF) de sólo tener campos atómicos, pues el
nombre del lector es un campo que puede (y conviene) descomponerse en apellido paterno, apellido materno
y nombres. Tal como se muestra en la siguiente tabla.
1NF
CodLibro Titulo Autor Editorial Paterno Materno Nombres FechaDev
1001 Variable
compleja
Murray
Spiegel
McGraw
Hill Pérez Gómez Juan 15/04/2005
1004 Visual Basic
5
E.
Petroustsos Anaya Ríos Terán Ana 17/04/2005
1005 Estadística Murray
Spiegel
McGraw
Hill Roca René 16/04/2005
1006 Oracle
University
Nancy
Greenberg
Oracle
Corp. García Roque Luis 20/04/2005
1006 Oracle
University
Priya
Nathan
Oracle
Corp. García Roque Luis 20/04/2005
1007 Clipper
5.01 Ramalho
McGraw
Hill Pérez Gómez Juan 18/04/2005
Como se puede ver, hay cierta redundancia característica de 1NF.
La Segunda Forma Normal (2NF) pide que no existan dependencias parciales o dicho de otra manera, todos los
atributos no clave deben depender por completo de la clave primaria. Actualmente en nuestra tabla tenemos
varias dependencias parciales si consideramos como atributo clave el código del libro.
Por ejemplo, el título es completamente identificado por el código del libro, pero el nombre del lector en
realidad no tiene dependencia de este código, por tanto estos datos deben ser trasladados a otra tabla.
2NF
CodLibro Titulo Autor Editorial
1001 Variable compleja Murray
Spiegel
McGraw
Hill
1004 Visual Basic 5 E.
Petroustsos Anaya
1005 Estadística Murray
Spiegel
McGraw
Hill
1006 Oracle University Nancy
Greenberg
Oracle
Corp.
1006 Oracle University Priya Nathan Oracle
Corp.
1007 Clipper 5.01 Ramalho McGraw
Hill
La nueva tabla sólo contendrá datos del lector.
CodLector Paterno Materno Nombres
501 Pérez Gómez Juan
502 Ríos Terán Ana
503 Roca René
504 García Roque Luis
Hemos creado una tabla para contener los datos del lector y también tuvimos que crear la columna CodLector
para identificar unívocamente a cada uno. Sin embargo, esta nueva disposición de la base de datos necesita
que exista otra tabla para mantener la información de qué libros están prestados a qué lectores. Esta tabla se
muestra a continuación:
CodLibro CodLector FechaDev
1001 501 15/04/2005
1004 502 17/04/2005
1005 503 16/04/2005
1006 504 20/04/2005
1007 501 18/04/2005
Para la Tercera Forma Normal (3NF) la relación debe estar en 2NF y además los atributos no clave deben ser
mutuamente independientes y dependientes por completo de la clave primaria. También recordemos que
dijimos que esto significa que las columnas en la tabla deben contener solamente información sobre la
entidad definida por la clave primaria y, por tanto, las columnas en la tabla deben contener datos acerca de
una sola cosa. En nuestro ejemplo en 2NF, la primera tabla conserva información acerca del libro, los autores y
editoriales, por lo que debemos crear nuevas tablas para satisfacer los requisitos de 3NF.
3NF
CodEditorial Editorial
901
McGraw
Hill
902 Anaya
903
Oracle
Corp.
CodLibro Titulo
1001
Variable
compleja
1004 Visual Basic 5
1005 Estadística
1006
Oracle
University
1007 Clipper 5.01
CodAutor Autor
801
Murray
Spiegel
802
E.
Petroustsos
803
Nancy
Greenberg
804 Priya Nathan
806 Ramalho
Aunque hemos creado nuevas tablas para que cada una tenga sólo información acerca de una entidad,
también hemos perdido la información acerca de qué autor ha escrito qué libro y las editoriales
correspondientes, por lo que debemos crear otras tablas que relacionen cada libro con sus autores y
editoriales.
CodLibro codAutor
1001 801
1004 802
1005 801
1006 803
1006 804
1007 806
Y el resto de las tablas no necesitan modificación.
CodLibro codEditorial
1001 901
1004 902
1005 901
1006 903
1007 901
CodLector Paterno Materno Nombres CodLibro CodLector FechaDev
MARACAIBO, 17 DE ENERO DEL 2011
BASES DE DATOS.
SENTENCIAS JOIN
mysql> create database prueba;
Query OK, 1 row affected (0,01 sec)
mysql> use prueba
Database changed
mysql> create table turno(id_t bigint auto_increment primary key, turno varchar(20))type=innodb;
Query OK, 0 rows affected, 1 warning (0,03 sec)
mysql> create table curso(id_c bigint auto_increment primary key,Nombre varchar(20),id_t bigint,index
(id_t),foreign key (id_t) references turno (id_t) on update cascade on delete cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0,02 sec)
mysql> create table estudiante(id_e bigint auto_increment primary key,Nombre varchar(20),apellido
varchar(20),Direccion varchar(20),Telefono varchar(20),id_c bigint,index (id_c),foreign key (id_c) references
curso (id_c) on update cascade on delete cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0,01 sec)
mysql> insert into turno values(null,"Matutino");
Query OK, 1 row affected (0,00 sec)
mysql> insert into turno values(null,"Vespertino");
Query OK, 1 row affected (0,01 sec)
mysql> insert into turno values(null,"Nocturno");
Query OK, 1 row affected (0,01 sec)
mysql> insert into curso values(null,"Datos","1");
Query OK, 1 row affected (0,01 sec)
mysql> insert into curso values(null,"Datos","2");
Query OK, 1 row affected (0,00 sec)
mysql> insert into curso values(null,"null","1");
Query OK, 1 row affected (0,00 sec)
mysql> insert into curso values(null,"null","2");
Query OK, 1 row affected (0,01 sec)
mysql> insert into estudiante values(null,"mariara","viloria","mara norte","0424-6694512","1");
Query OK, 1 row affected (0,01 sec)
mysql> insert into estudiante values(null,"norlangri","toloza","sierra maestra","0424-6678411","2");
Query OK, 1 row affected (0,00 sec)
mysql> insert into estudiante values(null,"ronald","contreras","la limpia","0424-78451411","1");
Query OK, 1 row affected (0,01 sec)
mysql> insert into estudiante values(null,"null","null","null","null","1");
Query OK, 1 row affected (0,00 sec)
mysql> insert into estudiante values(null,"null","null","null","null","2");
Query OK, 1 row affected (0,00 sec)
mysql> select*from estudiante;
+------+-----------+-----------+----------------+---------------+------+
| id_e | Nombre | apellido | Direccion | Telefono | id_c |
+------+-----------+-----------+----------------+---------------+------+
| 1 | mariara | viloria | mara norte | 0424-6694512 | 1 |
| 2 | norlangri | toloza | sierra maestra | 0424-6678411 | 2 |
| 4 | ronald | contreras | la limpia | 0424-78451411 | 1 |
| 5 | null | null | null | null | 1 |
| 6 | null | null | null | null | 2 |
+------+-----------+-----------+----------------+---------------+------+
5 rows in set (0,00 sec)
mysql> select*from curso;
+------+--------+------+
| id_c | Nombre | id_t |
+------+--------+------+
| 1 | Datos | 1 |
| 2 | Datos | 2 |
| 4 | null | 1 |
| 5 | null | 2 |
+------+--------+------+
4 rows in set (0,00 sec)
mysql> select*from turno;
+------+------------+
| id_t | turno |
+------+------------+
| 1 | Matutino |
| 2 | Vespertino |
| 3 | Nocturno |
+------+------------+
3 rows in set (0,00 sec)
mysql> select estudiante.nombre,curso.nombre from estudiante right outer join curso on
estudiante.id_c=curso.id_c;
+-----------+--------+
| nombre | nombre |
+-----------+--------+
| mariara | Datos |
| ronald | Datos |
| null | Datos |
| norlangri | Datos |
| null | Datos |
| NULL | null |
| NULL | null |
+-----------+--------+
7 rows in set (0,00 sec)
mysql> select estudiante.nombre as estudiante,curso.nombre as curso from estudiante left outer join curso on
estudiante.id_c=curso.id_c;
+------------+-------+
| estudiante | curso |
+------------+-------+
| mariara | Datos |
| norlangri | Datos |
| ronald | Datos |
| null | Datos |
| null | Datos |
+------------+-------+
5 rows in set (0,00 sec)
mysql> select curso.nombre, turno,estudiante.nombre,apellido from (curso left outer join turno on curso
.id_t=turno.id_t) left outer join estudiante on estudiante.id_c=curso.id_c;
+--------+------------+-----------+-----------+
| nombre | turno | nombre | apellido |
+--------+------------+-----------+-----------+
| Datos | Matutino | mariara | viloria |
| Datos | Matutino | ronald | contreras |
| Datos | Matutino | null | null |
| Datos | Vespertino | norlangri | toloza |
| Datos | Vespertino | null | null |
| null | Matutino | NULL
mysql> create database prueba;
Query OK, 1 row affected (0,01 sec)
mysql> use prueba
Database changed
mysql> create table turno(id_t bigint auto_increment primary key, turno varchar(20))type=innodb;
Query OK, 0 rows affected, 1 warning (0,03 sec)
mysql> create table curso(id_c bigint auto_increment primary key,Nombre varchar(20),id_t bigint,index
(id_t),foreign key (id_t) references turno (id_t) on update cascade on delete cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0,02 sec)
mysql> create table estudiante(id_e bigint auto_increment primary key,Nombre varchar(20),apellido
varchar(20),Direccion varchar(20),Telefono varchar(20),id_c bigint,index (id_c),foreign key (id_c) references
curso (id_c) on update cascade on delete cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0,01 sec)
mysql> insert into turno values(null,"Matutino");
Query OK, 1 row affected (0,00 sec)
mysql> insert into turno values(null,"Vespertino");
Query OK, 1 row affected (0,01 sec)
mysql> insert into turno values(null,"Nocturno");
Query OK, 1 row affected (0,01 sec)
mysql> insert into curso values(null,"Datos","1");
Query OK, 1 row affected (0,01 sec)
mysql> insert into curso values(null,"Datos","2");
Query OK, 1 row affected (0,00 sec)
mysql> insert into curso values(null,"null","1");
Query OK, 1 row affected (0,00 sec)
mysql> insert into curso values(null,"null","2");
Query OK, 1 row affected (0,01 sec)
mysql> insert into estudiante values(null,"mariara","viloria","mara norte","0424-6694512","1");
Query OK, 1 row affected (0,01 sec)
mysql> insert into estudiante values(null,"norlangri","toloza","sierra maestra","0424-6678411","2");
Query OK, 1 row affected (0,00 sec)
mysql> insert into estudiante values(null,"ronald","contreras","la limpia","0424-78451411","1");
Query OK, 1 row affected (0,01 sec)
mysql> insert into estudiante values(null,"null","null","null","null","1");
Query OK, 1 row affected (0,00 sec)
mysql> insert into estudiante values(null,"null","null","null","null","2");
Query OK, 1 row affected (0,00 sec)
mysql> select*from estudiante;
+------+-----------+-----------+----------------+---------------+------+
| id_e | Nombre | apellido | Direccion | Telefono | id_c |
+------+-----------+-----------+----------------+---------------+------+
| 1 | mariara | viloria | mara norte | 0424-6694512 | 1 |
| 2 | norlangri | toloza | sierra maestra | 0424-6678411 | 2 |
| 4 | ronald | contreras | la limpia | 0424-78451411 | 1 |
| 5 | null | null | null | null | 1 |
| 6 | null | null | null | null | 2 |
+------+-----------+-----------+----------------+---------------+------+
5 rows in set (0,00 sec)
mysql> select*from curso;
+------+--------+------+
| id_c | Nombre | id_t |
+------+--------+------+
| 1 | Datos | 1 |
| 2 | Datos | 2 |
| 4 | null | 1 |
| 5 | null | 2 |
+------+--------+------+
4 rows in set (0,00 sec)
mysql> select*from turno;
+------+------------+
| id_t | turno |
+------+------------+
| 1 | Matutino |
| 2 | Vespertino |
| 3 | Nocturno |
+------+------------+
3 rows in set (0,00 sec)
mysql> select estudiante.nombre,curso.nombre from estudiante right outer join curso on
estudiante.id_c=curso.id_c;
+-----------+--------+
| nombre | nombre |
+-----------+--------+
| mariara | Datos |
| ronald | Datos |
| null | Datos |
| norlangri | Datos |
| null | Datos |
| NULL | null |
| NULL | null |
+-----------+--------+
7 rows in set (0,00 sec)
mysql> select estudiante.nombre as estudiante,curso.nombre as curso from estudiante left outer join curso on
estudiante.id_c=curso.id_c;
+------------+-------+
| estudiante | curso |
+------------+-------+
| mariara | Datos |
| norlangri | Datos |
| ronald | Datos |
| null | Datos |
| null | Datos |
+------------+-------+
5 rows in set (0,00 sec)
mysql> select curso.nombre, turno,estudiante.nombre,apellido from (curso left outer join turno on curso
.id_t=turno.id_t) left outer join estudiante on estudiante.id_c=curso.id_c;
+--------+------------+-----------+-----------+
| nombre | turno | nombre | apellido |
+--------+------------+-----------+-----------+
| Datos | Matutino | mariara | viloria |
| Datos | Matutino | ronald | contreras |
| Datos | Matutino | null | null |
| Datos | Vespertino | norlangri | toloza |
| Datos | Vespertino | null | null |
| null | Matutino | NULL | NULL |
| null | Vespertino | NULL | NULL |
+--------+------------+-----------+-----------+
7 rows in set (0,00 sec)
mysql> select curso.nombre as curso, turno,estudiante.nombre as estudiante,apellido from (curso left outer
join turno on curso .id_t=turno.id_t) left outer join estudiante on estudiante.id_c=curso.id_c;
+-------+------------+------------+-----------+
| curso | turno | estudiante | apellido |
+-------+------------+------------+-----------+
| Datos | Matutino | mariara | viloria |
| Datos | Matutino | ronald | contreras |
| Datos | Matutino | null | null |
| Datos | Vespertino | norlangri | toloza |
| Datos | Vespertino | null | null |
| null | Matutino | NULL | NULL |
| null | Vespertino | NULL | NULL |
+-------+------------+------------+-----------+
7 rows in set (0,00 sec)
mysql> select curso.nombre as curso, turno,estudiante.nombre as estudiante,apellido from (curso left outer
join turno on curso .id_t=turno.id_t) left outer join estudiante on estudiante.id_c=curso.id_c;
+-------+------------+------------+-----------+
| curso | turno | estudiante | apellido |
+-------+------------+------------+-----------+
| Datos | Matutino | mariara | viloria |
| Datos | Matutino | ronald | contreras |
| Datos | Matutino | null | null |
| Datos | Vespertino | norlangri | toloza |
| Datos | Vespertino | null | null |
| null | Matutino | NULL | NULL |
| null | Vespertino | NULL | NULL |
+-------+------------+------------+-----------+
7 rows in set (0,00 sec)
mysql>
COMANDOS
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database clinica_caracas;
Query OK, 1 row affected (0.00 sec)
mysql> use clinica_caracas;
Database changed
mysql> create table sala(id_sala bigint auto_increment primary key,codigo varchar(10),nombre_sala
varchar(15), cantida_cama varchar(15))type=innodb;
Query OK, 0 rows affected, 1 warning (0.15 sec)
mysql> create table hospital(id_cod_hosp bigint auto_increment primary key,cod_hosp
varchar(12),nombre_hosp varchar(12),direccion_hosp varchar(12),telefono_hosp varchar(12))type=innodb;
Query OK, 0 rows affected, 1 warning (0.07 sec)
mysql> create table laboratorio(id_lab bigint auto_increment primary key,cod_lab varchar(12),nombre_lab
varchar(12),direccion_lab varchar(12),telefono_lab varchar(12),id_cod_hosp bigint,index
(id_cod_hosp),foreign key (id_cod_hosp) references hospital (id_cod_hosp) on update cascade on delete
cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0.09 sec)
mysql> create table doctor(id_doc bigint auto_increment primary key,cod_doc varchar(12),nombre_doctor
varchar(12),apellido varchar(12), direccion varchar(12),telefono varchar(12),especialidad varchar(12),
id_cod_hosp bigint,index (id_cod_hosp),foreign key (id_cod_hosp) references hospital (id_cod_hosp) on
update cascade on delete cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0.13 sec)
mysql> create table pacientes(id_p bigint auto_increment primary key, cedula varchar(12),nombre_p
varchar(12), apellido_p varchar(12), direccion_p varchar(12),fecha_na varchar(12),telefono_p varchar(12),
sexo_p varchar(12),id_doc bigint,index(id_doc),foreign key(id_doc) references doctor(id_doc) on update
cascade on delete cascade,id_sala bigint, index (id_sala),foreign key (id_sala) references sala (id_sala) on
update cascade on delete cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0.13 sec)
mysql> select*from sala;
Empty set (0.06 sec)
mysql> describe sala;
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| id_sala | bigint(20) | NO | PRI | NULL | auto_increment |
| codigo | varchar(10) | YES | | NULL | |
| nombre_sala | varchar(15) | YES | | NULL | |
| cantida_cama | varchar(15) | YES | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
4 rows in set (0.05 sec)
mysql> insert into sala values(null,"45","Maternida","20");
Query OK, 1 row affected (0.08 sec)
mysql> select*from sala;
+---------+--------+-------------+--------------+
| id_sala | codigo | nombre_sala | cantida_cama |
+---------+--------+-------------+--------------+
| 1 | 45 | Maternida | 20 |
+---------+--------+-------------+--------------+
1 row in set (0.00 sec)
mysql> insert into sala values(null,"49","pedriatria","15");
Query OK, 1 row affected (0.03 sec)
mysql> select*from sala;
+---------+--------+-------------+--------------+
| id_sala | codigo | nombre_sala | cantida_cama |
+---------+--------+-------------+--------------+
| 1 | 45 | Maternida | 20 |
| 2 | 49 | pedriatria | 15 |
+---------+--------+-------------+--------------+
2 rows in set (0.00 sec)
mysql> insert into sala values(null,"null","null","null");
Query OK, 1 row affected (0.03 sec)
mysql> select*from sala;
+---------+--------+-------------+--------------+
| id_sala | codigo | nombre_sala | cantida_cama |
+---------+--------+-------------+--------------+
| 1 | 45 | Maternida | 20 |
| 2 | 49 | pedriatria | 15 |
| 3 | null | null | null |
+---------+--------+-------------+--------------+
3 rows in set (0.00 sec)
mysql> select*from hospital;
Empty set (0.00 sec)
mysql> describe hospital;
+----------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+----------------+
| id_cod_hosp | bigint(20) | NO | PRI | NULL | auto_increment |
| cod_hosp | varchar(12) | YES | | NULL | |
| nombre_hosp | varchar(12) | YES | | NULL | |
| direccion_hosp | varchar(12) | YES | | NULL | |
| telefono_hosp | varchar(12) | YES | | NULL | |
+----------------+-------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
mysql> insert into hospital values(null,"83","chiquinquira","centro","1234562");
Query OK, 1 row affected (0.02 sec)
mysql> insert into hospital values(null,"41","pons","zona norte","12554562");
Query OK, 1 row affected (0.02 sec)
mysql> select*from hospital;
+-------------+----------+--------------+----------------+---------------+
| id_cod_hosp | cod_hosp | nombre_hosp | direccion_hosp | telefono_hosp |
+-------------+----------+--------------+----------------+---------------+
| 1 | 83 | chiquinquira | centro | 1234562 |
| 2 | 41 | pons | zona norte | 12554562 |
+-------------+----------+--------------+----------------+---------------+
2 rows in set (0.00 sec)
mysql> describe laboratorio;
+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| id_lab | bigint(20) | NO | PRI | NULL | auto_increment |
| cod_lab | varchar(12) | YES | | NULL | |
| nombre_lab | varchar(12) | YES | | NULL | |
| direccion_lab | varchar(12) | YES | | NULL | |
| telefono_lab | varchar(12) | YES | | NULL | |
| id_cod_hosp | bigint(20) | YES | MUL | NULL | |
+---------------+-------------+------+-----+---------+----------------+
6 rows in set (0.02 sec)
mysql> insert into laboratorio values(null,"486","banco de sangre","zona sur","124562","2");
Query OK, 1 row affected, 1 warning (0.05 sec)
mysql> insert into laboratorio values(null,"486","banco de sangre","zona sur","124562","1");
Query OK, 1 row affected, 1 warning (0.02 sec)
mysql> select*from laboratorio;
+--------+---------+--------------+---------------+--------------+-------------+
| id_lab | cod_lab | nombre_lab | direccion_lab | telefono_lab | id_cod_hosp |
+--------+---------+--------------+---------------+--------------+-------------+
| 1 | 486 | banco de san | zona sur | 124562 | 2 |
| 2 | 486 | banco de san | zona sur | 124562 | 1 |
+--------+---------+--------------+---------------+--------------+-------------+
2 rows in set (0.00 sec)
mysql> describe doctor;
+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| id_doc | bigint(20) | NO | PRI | NULL | auto_increment |
| cod_doc | varchar(12) | YES | | NULL | |
| nombre_doctor | varchar(12) | YES | | NULL | |
| apellido | varchar(12) | YES | | NULL | |
| direccion | varchar(12) | YES | | NULL | |
| telefono | varchar(12) | YES | | NULL | |
| especialidad | varchar(12) | YES | | NULL | |
| id_cod_hosp | bigint(20) | YES | MUL | NULL | |
+---------------+-------------+------+-----+---------+----------------+
8 rows in set (0.04 sec)
mysql> insert into doctor values(null,"481","Luis","soto","los olivos","485555","ginecologo","2");
Query OK, 1 row affected (0.03 sec)
mysql> insert into doctor values(null,"478411","yingfa","sang","la curva","4851616165","cardiologo","1");
Query OK, 1 row affected (0.03 sec)
mysql> select*from doctor;
+--------+---------+---------------+----------+------------+------------+--------------+-------------+
| id_doc | cod_doc | nombre_doctor | apellido | direccion | telefono | especialidad | id_cod_hosp |
+--------+---------+---------------+----------+------------+------------+--------------+-------------+
| 1 | 481 | Luis | soto | los olivos | 485555 | ginecologo | 2 |
| 2 | 478411 | yingfa | sang | la curva | 4851616165 | cardiologo | 1 |
+--------+---------+---------------+----------+------------+------------+--------------+-------------+
2 rows in set (0.00 sec)
mysql> describe pacientes;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id_p | bigint(20) | NO | PRI | NULL | auto_increment |
| cedula | varchar(12) | YES | | NULL | |
| nombre_p | varchar(12) | YES | | NULL | |
| apellido_p | varchar(12) | YES | | NULL | |
| direccion_p | varchar(12) | YES | | NULL | |
| fecha_na | varchar(12) | YES | | NULL | |
| telefono_p | varchar(12) | YES | | NULL | |
| sexo_p | varchar(12) | YES | | NULL | |
| id_doc | bigint(20) | YES | MUL | NULL | |
| id_sala | bigint(20) | YES | MUL | NULL | |
+-------------+-------------+------+-----+---------+----------------+
10 rows in set (0.01 sec)
mysql> show tables;
+---------------------------+
| Tables_in_clinica_caracas |
+---------------------------+
| doctor |
| hospital |
| laboratorio |
| pacientes |
| sala |
+---------------------------+
5 rows in set (0.02 sec)
mysql> insert into pacientes values(null,"12345645","yin","garcias","la
muerte","4_enero","125874","F","1","1");
Query OK, 1 row affected (0.03 sec)
mysql> insert into pacientes values(null,"12346125","yink","perez","la
nueva","9_enero","12552474","M","2","2");
Query OK, 1 row affected (0.03 sec)
mysql> select*from pacientes;
+------+----------+----------+------------+-------------+----------+------------+--------+--------+---------+
| id_p | cedula | nombre_p | apellido_p | direccion_p | fecha_na | telefono_p | sexo_p | id_doc | id_sala |
+------+----------+----------+------------+-------------+----------+------------+--------+--------+---------+
| 1 | 12345645 | yin | garcias | la muerte | 4_enero | 125874 | F | 1 | 1 |
| 2 | 12346125 | yink | perez | la nueva | 9_enero | 12552474 | M | 2 | 2 |
+------+----------+----------+------------+-------------+----------+------------+--------+--------+---------+
2 rows in set (0.00 sec)
mysql> select nombre_hosp as hospital,direccion_hosp,nombre_lab as laboratorio from hospital join
laboratorio on hospital.id_cod_hosp=hospital.id_cod_hosp;
+--------------+----------------+--------------+
| hospital | direccion_hosp | laboratorio |
+--------------+----------------+--------------+
| chiquinquira | centro | banco de san |
| pons | zona norte | banco de san |
| chiquinquira | centro | banco de san |
| pons | zona norte | banco de san |
+--------------+----------------+--------------+
4 rows in set (0.02 sec)
mysql> select nombre_hosp as hospital,direccion_hosp,nombre_lab as laboratorio from hospital right outer
join laboratorio on hospital.id_cod_hosp=hospital.id_cod_hosp;
+--------------+----------------+--------------+
| hospital | direccion_hosp | laboratorio |
+--------------+----------------+--------------+
| chiquinquira | centro | banco de san |
| pons | zona norte | banco de san |
| chiquinquira | centro | banco de san |
| pons | zona norte | banco de san |
+--------------+----------------+--------------+
4 rows in set (0.04 sec)
mysql> select nombre_hosp as hospital,direccion_hosp,nombre_lab as laboratorio from hospital left outer join
laboratorio on hospital.id_cod_hosp=hospital.id_cod_hosp;
+--------------+----------------+--------------+
| hospital | direccion_hosp | laboratorio |
+--------------+----------------+--------------+
| chiquinquira | centro | banco de san |
| chiquinquira | centro | banco de san |
| pons | zona norte | banco de san |
| pons | zona norte | banco de san |
+--------------+----------------+--------------+
4 rows in set (0.00 sec)
mysql>
MARACAIBO, 22 DE NOVIEMBRE DEL 2010
UNEFA NUCLEO ZULIA
LUIS MANUEL SOTO
SIM – 6B
BASES DE DATOS
lab1@canaima:~$ xampp start
Starting XAMPP for Linux 1.7.3a...
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for Linux started.
lab1@canaima:~$ mysql -h localhost -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.41 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database unefa;
Query OK, 1 row affected (0,00 sec)
mysql> use unefa;
Database changed
mysql> create table Trabajo_Grado(ID_tra bigint auto_increment primary key, Nombre varchar(20),
Fecha_Inicio varchar(20), Presupuesto varchar (20));
Query OK, 0 rows affected (0,02 sec)
mysql> drop table Trabajo_Grado;
Query OK, 0 rows affected (0,00 sec)
mysql> create table Trabajo_Grado(ID_tra bigint auto_increment primary key, Nombre varchar(20),
Fecha_Inicio varchar(20), Presupuesto varchar(20))type=innodb;
Query OK, 0 rows affected, 1 warning (0,00 sec)
mysql> alter table Trabajo_Grado modify Presupuesto double;
Query OK, 0 rows affected (0,01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> create table Estudiante(ID_Est bigint auto_increment primary key, Nombres varchar(15),Apellido
varchar(15),Cedula varchar(15), Direccion varchar(20),Telefono varchar(15),ID_tra bigint,index (ID_tra),
foreign key (ID_tra) references Trabajo_Grado (ID_tra) on update cascade on delete cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0,02 sec)
mysql> create table Asesor(ID_As bigint auto_increment primary key, Nombre varchar(15),Apellido
varchar(15), Cedula varchar(15),Profesion varchar(20),Direccion varchar(20),ID_Est bigint, index(ID_Est),
foreign key (ID_Est) references Estudiante(ID_Est) on update cascade on delete cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0,00 sec)
mysql> create table Conferencia(ID_Conf bigint auto_increment primary key, Nombre_Conf varchar(20), Fecha
date, Hora datetime, Lugar Varchar(20),ID_Est bigint, index(ID_Est), foreign key(ID_Est) references Estudiante
(ID_Est) on update cascade on delete cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0,01 sec)
mysql> create table Carrera(ID_Car bigint auto_increment primary key, Nombre_Car varchar(20),ID_Est bigint,
index(ID_Est), foreign key(ID_Est) references Estudiante (ID_Est) on update cascade on delete cascade,ID_As
bigint,index(ID_As),foreign key(ID_As) references Asesor (ID_As) on update cascade on delete
cascade)type=innodb;
Query OK, 0 rows affected, 1 warning (0,01 sec)
mysql>