UNIVERSIDAD TECNOLÓGICA DE TECAMACHALCO
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
BASE DE DATOS
INTEGRANTES DE EQUIPO: Gustavo Ramírez de los santos Cesar flores Monterrosas Liliana Martínez Cienfuegos 2”b”
En este trabajo presentamos todos los conocimientos adquiridos a lo largo del cuatrimestre poniendo en prĂĄctica todo la aprendido. Trabajaremos en mysql una base de datos que en donde se llevara a cabo crea una base de datos, crear cierto nĂşmero de tablas y llenar registros hacer consultas y agregar llaves forĂĄneas como utilizar otras clausula y comando.
1 parte Crear la base de datos # # Target: MySQL # Syntax: mysql -u user password < filename.sql # # Date : Feb 24 2011 19:25 # Script Generated by Database Design Studio 2.21.1 # # # Select Database: 'db_name' # USE db_name; # # Create Table : 'ganaderia' # codigo_de_ganaderia : # nombre : # localidad : # antiguedad : # CREATE TABLE ganaderia ( codigo_de_ganaderia TEXT(5) NOT NULL, nombre TEXT(20) NOT NULL, localidad TEXT(20) NOT NULL, antiguedad TEXT(20) NOT NULL, PRIMARY KEY (codigo_de_ganaderia)) TYPE=INNODB; # # Create Table : 'plaza' # nombreunico : # localidad : # direccion : # aforo : # CREATE TABLE plaza ( nombreunico TEXT(20) NOT NULL, localidad TEXT(20) NOT NULL, direccion DATE NOT NULL, aforo TEXT(20) NOT NULL,
PRIMARY KEY (nombreunico)) TYPE=INNODB; # # Create Table : 'apoderado' # DNI_apoderado : # Nombre : # direccion : # telefono : # CREATE TABLE apoderado ( DNI_apoderado TEXT(5) NOT NULL, Nombre TEXT(30) NOT NULL, direccion TEXT(20) NOT NULL, telefono TEXT(10) NOT NULL, PRIMARY KEY (DNI_apoderado)) TYPE=INNODB; # # Create Table : 'corrida' # clavedecorrida : # orden : # feria : # ano : # nombreunico : (references plazadetoros.nombreunico) # CREATE TABLE corrida ( clavedecorrida TEXT(5) NOT NULL, orden TEXT(20) NOT NULL, feria TEXT(20) NOT NULL, ano TEXT(10) NOT NULL, nombreunico TEXT(20) NOT NULL, PRIMARY KEY (clavedecorrida), INDEX idx_fk_corrida (nombreunico), CONSTRAINT fk_corrida FOREIGN KEY (nombreunico) REFERENCES plazadetoros (nombreunico) ON DELETE CASCADE ON UPDATE CASCADE) TYPE=INNODB; # # Create Table : 'toreros' # DNI_torero : # Nombre : # apodo : # fecha_alternativa : # DNI_apoderado : (references apoderado.DNI_apoderado)
# rDNI_torero : (references toreros.DNI_torero) # CREATE TABLE toreros ( DNI_torero TEXT(5) NOT NULL, Nombre TEXT(20) NOT NULL, apodo TEXT(8) NOT NULL, fecha_alternativa DATE NOT NULL, DNI_apoderado TEXT(5) NOT NULL, rDNI_torero TEXT(5) NULL, PRIMARY KEY (DNI_torero), INDEX idx_fk_toreros (DNI_apoderado), CONSTRAINT fk_toreros FOREIGN KEY (DNI_apoderado) REFERENCES apoderado (DNI_apoderado) ON DELETE CASCADE ON UPDATE CASCADE, INDEX idx_fk_toreros2 (rDNI_torero), CONSTRAINT fk_toreros2 FOREIGN KEY (rDNI_torero) REFERENCES toreros (DNI_torero) ON DELETE SET NULL ON UPDATE CASCADE) TYPE=INNODB; # # Create Table : 'premio' # premio_gandor : # orejas : # rabos : # puerta_grande : # DNI_torero : (references toreros.DNI_torero) # CREATE TABLE premio ( premio_gandor TEXT(10) NOT NULL, orejas TEXT(10) NOT NULL, rabos TEXT(10) NOT NULL, puerta_grande TEXT(10) NOT NULL, DNI_torero TEXT(5) NULL, PRIMARY KEY (premio_gandor), INDEX idx_fk_premio (DNI_torero), CONSTRAINT fk_premio FOREIGN KEY (DNI_torero) REFERENCES toreros (DNI_torero) ON DELETE SET NULL ON UPDATE CASCADE) TYPE=INNODB; # # Create Table : ' acturar '
# clavedecorrida : (references corrida.clavedecorrida) # DNI_torero : (references toreros.DNI_torero) # CREATE TABLE acturar ( clavedecorrida TEXT(5) NOT NULL, DNI_torero TEXT(5) NOT NULL, PRIMARY KEY (clavedecorrida,DNI_torero), INDEX idx_fk_ acturar (clavedecorrida), CONSTRAINT fk_ acturar FOREIGN KEY (clavedecorrida) REFERENCES corrida (clavedecorrida) ON DELETE CASCADE ON UPDATE CASCADE, INDEX idx_fk_actuan2 (DNI_torero), CONSTRAINT fk_actuan2 FOREIGN KEY (DNI_torero) REFERENCES toreros (DNI_torero) ON DELETE NO ACTION ON UPDATE CASCADE) TYPE=INNODB; # # Create Table : 'toro' # clavetoro : # codigodeganaderia : # anodenaciemto : # Ndeorden : # nombre : # color : # Ordendetoreado : # codigo_de_ganaderia : (references ganaderia.codigo_de_ganaderia) # clavedecorrida : (references corrida.clavedecorrida) # CREATE TABLE toro ( clavetoro TEXT(5) NOT NULL, codigodeganaderia TEXT(5) NOT NULL, anodenaciemto TEXT(5) NOT NULL, Ndeorden TEXT(10) NOT NULL, nombre TEXT(20) NOT NULL, color TEXT(10) NOT NULL, Ordendetoreado TEXT(10) NOT NULL, codigo_de_ganaderia TEXT(5) NULL, clavedecorrida TEXT(5) NULL, PRIMARY KEY (clavetoro), INDEX idx_fk_toro (codigo_de_ganaderia), CONSTRAINT fk_toro FOREIGN KEY (codigo_de_ganaderia) REFERENCES ganaderia (codigo_de_ganaderia)
ON DELETE SET NULL ON UPDATE CASCADE, INDEX idx_fk_toro2 (clavedecorrida), CONSTRAINT fk_toro2 FOREIGN KEY (clavedecorrida) REFERENCES corrida (clavedecorrida) ON DELETE SET NULL ON UPDATE CASCADE) TYPE=INNODB;
mysql> SHOW TABLES; +--------------------+ | acturar
|
| apoderado
|
| corrida
|
| ganaderia | plaza
| |
| premio | torero | toro
| | |
+--------------------+ 8 rows in set (0.00 sec)
mysql> INSERT INTO corrida(numero_de_orden,feria,anio_de_celebracion) VALUES ('001','TLAXCALA','2010'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO corrida(numero_de_orden,feria,anio_de_celebra) VALUES ('002','SAN NICOLAS','2009'); Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> INSERT INTO corrida(numero_de_orden,feria,anio_de_celebra) VALUES ('003','MAYO ','2010'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO corrida(numero_de_orden,feria,anio_de_celebra) VALUES ('004','MAYO','2011'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO corrida(numero_de_orden,feria,anio_de_celebra) VALUES ('005','MEXICO VIVE','2010'); Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> DESCRIBE TORO; +------------------+----------+------+-----+---------+-------+ | Field
| Type
| Null | Key | Default | Extra |
+------------------+----------+------+-----+---------+-------+ | NUMERO | COLOR
| int(11) | NO | PRI | 0 | char(10) | YES |
|
|
| NULL |
|
| aniodenacimiento | char(8) | NO | | ORDEN | NOMBRE
| NULL |
| int(11) | YES | MUL | NULL | | char(10) | YES |
| NULL |
| | |
+------------------+----------+------+-----+---------+-------+ 5 rows in set (0.01 sec)
Llenar registr贸 en la tabla de toros
mysql> INSERT INTO toro (NUMERO,COLOR,ANIODENACIMIENTO,ORDEN,NOMBRE) VALUES ('1' ,'NEGRO','1999' ,'005' ,'EL PAJARITO'); Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> INSERT INTO toro (NUMERO,COLOR,ANIODENACIMIENTO,ORDEN,NOMBRE) VALUES ('2' ,'PINTO','1998' ,'005' ,'ATREVIDO'); Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO toro (NUMERO,COLOR,ANIODENACIMIENTO,ORDEN,NOMBRE) VALUES ('3' ,'NEGRO','1999' ,'005' ,'VALEDOR');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO toro (NUMERO,COLOR,ANIODENACIMIENTO,ORDEN,NOMBRE) VALUES ('4' ,'PINTO','1998' ,'005' ,'NAVEGANTE'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO toro (NUMERO,COLOR,ANIODENACIMIENTO,ORDEN,NOMBRE) VALUES ('5' ,'NEGRO','1999' ,'005' ,'ISLERO'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO toro (NUMERO,COLOR,ANIODENACIMIENTO,ORDEN,NOMBRE) VALUES ('6' ,'PINTO','1999' ,'005' ,'CABATISTO'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO toro (NUMERO,COLOR,ANIODENACIMIENTO,ORDEN,NOMBRE) VALUES ('7' ,'PINTO','1998' ,'005' ,' JABONERO'); Query OK, 1 row affected (0.01 sec)
mysql> DESCRIBE ACTURAR;
+---------------+----------+------+-----+---------+-------+ | Field
| Type
| Null | Key | Default | Extra |
+---------------+----------+------+-----+---------+-------+ | dni
| char(10) | NO | PRI | NULL |
|
| numerodeorden | int(11) | NO | PRI | NULL |
|
+---------------+----------+------+-----+---------+-------+ 2 rows in set (0.02 sec)
Llenar registr贸 en la tabla de premios
mysql> INSERT INTO ACTURAR (DNI,NUMERODEORDEN) VALUES ('1002',' 004'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO ACTURAR(DNI,NUMERODEORDEN) VALUES ('1002',' 004'); ERROR 1062 (23000): Duplicate entry '1002-4' for key 'PRIMARY' mysql> INSERT INTO ACTURAR (DNI,NUMERODEORDEN) VALUES ('1003',' 001'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO ACTURAR (DNI,NUMERODEORDEN) VALUES ('1001',' 001'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO ACTURAR (DNI,NUMERODEORDEN) VALUES ('1001',' 005'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO ACTURAR (DNI,NUMERODEORDEN) VALUES ('1001',' 005'); ERROR 1062 (23000): Duplicate entry '1001-5' for key 'PRIMARY' mysql> INSERT INTO ACTURAR (DNI,NUMERODEORDEN) VALUES ('1004',' 003'); Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO ACTURAR (DNI,NUMERODEORDEN) VALUES ('1004',' 002'); Query OK, 1 row affected (0.00 sec)
Llenar registr贸 en la tabla de premios mysql> INSERT INTO premio (NUMERO,OREJAS,RABO,PUERTAGRANDE,DNI) VALUES ('3178',' 1','0','NO' ,'1001'); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO premio (NUMERO,OREJAS,RABO,PUERTAGRANDE,DNI) VALUES ('3145',' 4','2','SI' ,'1002'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO premio (NUMERO,OREJAS,RABO,PUERTAGRANDE,DNI) VALUES ('3122',' 2','1','SI' ,'0,'1003'); Query OK, 1 row affected (0.00 sec) '> INSERT INTO premio (NUMERO,OREJAS,RABO,PUERTAGRANDE,DNI) VALUES ('3122',' 2','1','SI' ,'0','1003');
Query OK, 1 row affected (0.00 sec) '> INSERT INTO premio (NUMERO,OREJAS,RABO,PUERTAGRANDE,DNI) VALUES ('3122',' 2','1','SI' ,'1003'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO premio (NUMERO,OREJAS,RABO,PUERTAGRANDE,DNI) VALUES ('3122',' 2','1','SI' ,'1003'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO premio (NUMERO,OREJAS,RABO,PUERTAGRANDE,DNI) VALUES ('3131',' 1','0','NO' ,'1004'); Query OK, 1 row affected (0.00 sec)
1.- A continuaci贸n se describen los datos a insertar en la Base de Datos Toreros, una vez ingresados los datos mostrar todos los registros de cada una de las tablas.
mysql> SELECT * FROM ACTURAR; +------+---------------+ | dni | numerodeorden | +------+---------------+ | 1001 |
1|
| 1001 |
5|
| 1002 |
4|
| 1003 |
1|
| 1004 |
2|
| 1004 |
3|
+------+---------------+ 6 rows in set (0.00 sec)
mysql> SELECT * FROM CORRIDA; +---------------+------------+---------------+ | numerodeorden | feria
| aniodecelebra |
+---------------+------------+---------------+ |
1 | TLAXCALA | 2010
|
2 | SAN NICOLA | 2009
|
3 | MAYO
|
4 | en MAYO | 2011
|
|
5 | VIVE MEXIC | 2010
|
| 2010
| | |
+---------------+------------+---------------+ 5 rows in set (0.01 sec)
mysql> SELECT * FROM GANADERIA; +--------+--------------+-----------+----------------+ | CODIGO | NOMBRE
| LOCALIDAD | FECHA_CREACIOM |
+--------+--------------+-----------+----------------+ | G1
| LA LAGUNA | TLAXCALA | 1907
| G2
| SAN MATEO | ZACATECA | 1906
|
| 03
| REYES HUERTA | TLAXCALA | 1904
|
+--------+--------------+-----------+----------------+ 3 rows in set (0.00 sec)
|
mysql> SELECT * FROM PLAZA; +-------+------------+------------+------------+ | aforo | nombre
| localidad | direccion |
+-------+------------+------------+------------+ | 5000 | EL RELICAR | PUEBLA
| RECINTO FE |
| 41000 | PLAZA DE T | DISTRITO F | MEXICO DF | | 7000 | PLAZA MONU | APIZACO | TLAXCALA | +-------+------------+------------+------------+ 3 rows in set (0.01 sec)
mysql> SELECT * FROM TORERO; +------+------------+---------------------------+------------+ | dni | nombre
| fechaenquetomoalternativa | APODO
|
+------+------------+---------------------------+------------+ | 1001 | jose
| 20/12/1978
| 1002 | JOS RUBIO
| 12/01/1985
| 1003 | CARLOS AUR | 02/07/1990 | 1004 | ALFREDO
| 01/03/1992
| EL JOSELIT | | EL SOTOLUC | | EL YEYITO | | EL CUÑADO |
+------+------------+---------------------------+------------+
4 rows in set (0.00 sec)
mysql> SELECT * FROM PREMIO; +--------+--------+------+--------------+------+ | NUMERO | orejas | rabo | PUERTAGRANDE | dni | +--------+--------+------+--------------+------+ | 3178 | 1
| 0 | NO
| 1001 |
| 3145 | 4
| 2 | SI
| 1002 |
| 3122 | 2
| 1 | SI
| 1003 |
| 3131 | 1
| 0 | NO
| 1004 |
+--------+--------+------+--------------+------+
4 rows in set (0.00 sec)
mysql> SELECT * FROM TORO; +--------+-------+------------------+-------+------------+ | NUMERO | COLOR | aniodenacimiento | ORDEN | NOMBRE +--------+-------+------------------+-------+------------+ |
1 | NEGRO | 1999
|
2 | PINTO | 1998
|
3 | NEGRO | 1999
|
4 | PINTO | 1998
|
5 | NEGRO | 1999
| | | | |
5 | EL PAJARIT | 5 | ATREVIDO | 5 | VALEDOR | 5 | NAVEGANTE | 5 | ISLERO
|
|
|
6 | PINTO | 1999
|
5 | CABATISTO |
|
7 | PINTO | 1998
|
5 | JABONERO |
+--------+-------+------------------+-------+------------+ 7 rows in set (0.00 sec)
5.-Mostrar los datos de los Toreros ordenados de la A a la Z.
mysql> SELECT * FROM TORERO ORDER BY NOMBRE; +------+------------+---------------------------+------------+------+ | dni | nombre
| fechaenquetomoalternativa | APODO
| DNT1 |
+------+------------+---------------------------+------------+------+ | 1004 | ALFREDO
| 01/03/1992
| EL CUÑADO | NULL |
| 1003 | CARLOS AUR | 02/07/1990
| EL YEYITO | NULL |
| 1002 | DANIEL SAN | 12/01/1985
| ZOTOLUCO | NULL |
| 1001 | JOS RUBIO
| 20/12/1978
| EL JOSELIT | NULL |
+------+------------+---------------------------+------------+------+ 4 rows in set (0.01 sec) mysql> DESCRIBE CORRIDA; +---------------+----------+------+-----+---------+-------+ | Field
| Type
| Null | Key | Default | Extra |
+---------------+----------+------+-----+---------+-------+ | numerodeorden | int(11) | NO | PRI | NULL | | feria
| char(10) | NO |
| NULL |
| aniodecelebra | char(10) | NO |
|
|
| NULL |
|
+---------------+----------+------+-----+---------+-------+ 3 rows in set (0.01 sec)
mysql> mysql> DESCRIBE CORRIDA; +---------------+----------+------+-----+---------+-------+ | Field
| Type
| Null | Key | Default | Extra |
+---------------+----------+------+-----+---------+-------+ | numerodeorden | int(11) | NO | PRI | NULL |
|
| feria
| char(10) | NO |
| NULL |
| ANIODECELEBRA | int(11) | YES |
|
| NULL |
|
+---------------+----------+------+-----+---------+-------+ 3 rows in set (0.01 sec)
6.- Mostrar las corridas ordenadas por Año. (Ordenadas descendentemente). mysql> SELECT * FROM CORRIDA ORDER BY ANIODECELEBRA DESC; +---------------+------------+---------------+ | numerodeorden | feria
| ANIODECELEBRA |
+---------------+------------+---------------+ |
4 | en MAYO |
2011 |
|
1 | TLAXCALA |
2010 |
|
3 | MAYO
|
5 | VIVE MEXIC |
2010 |
|
2 | SAN NICOLA |
2009 |
|
2010 |
+---------------+------------+---------------+ 5 rows in set (0.01 sec)
7.- Cambiar el Nombre de la Tabla Actúan por el Nombre Participan. mysql> ALTER TABLE ACTURAR RENAME PARTICIPAN; Query OK, 0 rows affected (0.02 sec)
8.- Mostrar todos los datos de las tablas Toreros y Premios considerando la siguiente condición: Toreros.DNIT=Premios.DNTI
mysql> SELECT * FROM WHERE Toreros.DNIT=Premios.DNTI; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE Toreros.DNIT=Premios.DNTI' at line 1 mysql> ALTER TABLE TORO -> ; Query OK, 0 rows affected (0.01 sec)
9.- Modificar el registro 7 de la tabla Toros en el campo Color cambiar Pinto por Negro mysql> UPDATE TORO SET COLOR='PINTO' WHERE COLOR='NEGRO'; Query OK, 3 rows affected (0.01 sec) Rows matched: 3 Changed: 3 Warnings: 0
10.- A単adir una columna con el nombre Peso con tipo de dato Entero en la tabla de Toros e ingresar los datos de peso. mysql> ALTER TABLE TORO -> ADD PESO INTEGER; Query OK, 7 rows affected (0.11 sec) Records: 7 Duplicates: 0 Warnings: 0
mysql> ALTER TABLE TORO -> MODIFY PESO CHAR (10); Query OK, 7 rows affected (0.45 sec)
Records: 7 Duplicates: 0 Warnings: 0
mysql> DESCRIBE TORO; +-------------------+----------+------+-----+---------+-------+ | Field
| Type
| Null | Key | Default | Extra |
+-------------------+----------+------+-----+---------+-------+ | NUMERO | COLOR
| int(11) | NO | PRI | 0 | char(10) | YES |
|
|
| NULL |
|
| FECHADENACIMIENTO | char(20) | YES | | ORDEN | NOMBRE | PESO
| NULL |
| int(11) | YES | MUL | NULL | | char(10) | YES | | char(10) | YES |
|
| NULL |
| NULL |
|
| |
+-------------------+----------+------+-----+---------+-------+ 6 rows in set (0.02 sec)
11.- Mostrar los registros de la tabla Toros ordenados por el Peso. mysql> UPDATE TORO SET PESO='500' WHERE NUMERO='1'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE TORO SET PESO='450' WHERE NUMERO='2'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE TORO SET PESO='487' WHERE NUMERO='3';
Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE TORO SET PESO='460' WHERE NUMERO='4'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE TORO SET PESO='510' WHERE NUMERO='5'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE TORO SET PESO='490' WHERE NUMERO='6'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE TORO SET PESO='505' WHERE NUMERO='7'; Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0
mysql> SELECT * FROM TORO; +--------+-------+-------------------+-------+------------+------+ | NUMERO | COLOR | FECHADENACIMIENTO | ORDEN | NOMBRE +--------+-------+-------------------+-------+------------+------+ |
1 | PINTO | 1999
|
5 | EL PAJARIT | 500 |
|
2 | PINTO | 1998
|
5 | ATREVIDO | 450 |
|
3 | PINTO | 1999
|
5 | VALEDOR | 487 |
| PESO |
|
4 | PINTO | 1998
|
5 | NAVEGANTE | 460 |
|
5 | PINTO | 1999
|
5 | ISLERO
|
6 | PINTO | 1999
|
5 | CABATISTO | 490 |
|
7 | PINTO | 1998
|
5 | JABONERO | 505 |
|
0 | NULL | NULL
| NULL | NULL
| 510 |
| 505 |
+--------+-------+-------------------+-------+------------+------+ 8 rows in set (0.00 sec)
mysq
Este ejercicio nos sirvió para ver y verificar los conocimientos que aprendimos y nos dimos cuentas que aprendimos muchas cosas pero hay muchas cosas que se nos dificultaron mucho pero la mayoría de la puntos los cubrimos y con ayuda de nuestro compañeros resolvimos nuestras dudas.