CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
GUIA DE AULA No. 3 – APLICACIÓN DE LAS DIFERENTES RESTRICCIONES EN LA CREACION DE TABLAS EN MYSQL PROGRAMA: Sistemas y computación MATERIA : Bases de Datos II SEMESTRE: Cuarto RESPONSABLES: Juan Agreda y Francisco Caicedo Narváez
I.H.S 4 T.H
64
ESTANDARES
Aplicar las diferentes palabras reservadas y adecuadas para el diseño que se haya especificado en las relaciones entre tablas. Creación de tuplas utilizando el comando INSERT.
RECUPERACION DE SABERES Y EXPERIENCIAS PREVIAS
Tener conocimientos sobre la creación bases de datos, tablas, creación de índices primarios y foráneos. Modificación y Eliminación de campos.
INCORPORACION DE NUEVA INFORMACION
Comandos Adicionales de MySQL: DROP DATABASE nom_bd; DROP TABLE nom_tabla; CREATE TABLE nom_tabla (nom_atributo tipo_dato restricciones DEFAULT valor, . . . , nom_atributo tipo_dato restricciones) ; CREATE TABLE nom_tabla (nom_atributo tipo_dato . . , nom_atributo tipo_dato restricciones, PRIMARY KEY(nom_atributo));
.
Instrucción sql para eliminar una Base de Datos Ej: DROP DATABASE hospital; Instrucción sql para eliminar una tabla. DROP TABLE pais; Instrucción sql para crear una tabla con un campo que tomara un valor por defecto. Ej: CREATE TABLE libro( Cod_libro int(5) primary key, Idioma_libro varchar(30) DEFAULT ‘ESPAÑOL’, Nro_pags_libro int(3) not null); Instrucción sql para crear una tabla, estableciendo el índice primario al finalizar la declaración de campos. Ej: CREATE TABLE libro( Cod_libro int(5), Idioma_libro varchar(30), Nro_pags_libro int(3) not null, PRIMARY KEY(cod_libro));
CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
CREATE TABLE nom_tabla (nom_atributo tipo_dato_num autoincremento . . . , nom_atributo tipo_dato restricciones, PRIMARY KEY(nom_atributo));
Instrucción sql para crear una tabla, estableciendo que el valor de un campo sea autoincrementable. Ej: CREATE TABLE libro( Cod_libro int AUTO_INCREMENT primary key, Idioma_libro varchar(30), Nro_pags_libro int(3) not null, PRIMARY KEY(cod_libro));
NOTA: Existen Algunas versiones de MySQL que no soportan la integridad referencial, por lo tanto es necesario definir un tipo de tablas InnoDB. Tabla Principal: (Donde está el campo Primario)
CREATE TABLE persona ( id_per INT AUTO_INCREMENT PRIMARY KEY, Nombre_per VARCHAR(40), Fecha_per DATE) ENGINE=InnoDB; Tabla Secundaria: (Donde está el campo Foraneo que permite la relación entre la tabla persona y la tabla telefono)
CREATE TABLE telefono ( Numero_tel CHAR(12) PRIMARY KEY, id_tel INT NOT NULL, id_per INT NOT NULL, FOREIGN KEY (id_per) REFERENCES persona (id_per) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB;
Las palabras reservadas ON DELETE CASCADE ON UPDATE CASCADE La definición incluye las tareas a realizar en el caso de que se elimine una fila en la tabla 'persona'. Esto quiere decir que si se elimina un registro de la tabla persona y este está siendo usado por la tabla teléfono, los registro relacionados de esta ultima serán eliminados o modificados según sea el caso.
Sentencias SQL para insertar registros: Se utiliza la siguiente sintaxis:
INSERT INTO nom_tabla(campo1, campo2…campoN) VALUES(valor1, valor2,….. valorN); INSERT INTO nom_tabla VALUES(valor1, valor2,….. valorN); NOTA: La Ultima instrucción siguiendo el orden de creación de los campos en la tabla.
CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
INSERT INTO nom_tabla VALUES (valor1, valor2,….. valorN), (valor1, valor2,….. valorN), (valor1, valor2,….. valorN); Ej: INSERT INTO libro VALUES( 1, ‘ESPAÑOL’, 120 );
Sentencias SQL para hacer cálculos con los registros: Se utiliza la siguiente sintaxis: SELECT campos/campo FROM tabla/tablas ORDER BY nom_campo; SELECT campos/campo FROM tabla/tablas ORDER BY nom_campo DESC; SELECT campos/campo FROM tabla/tablas LIKE ‘letra/letras a buscar’ %; SELECT campos/campo FROM tabla/tablas NOT LIKE ‘letra/letras a buscar’ %; SELECT SUM(campo) FROM tabla; SELECT MIN (campo) FROM tabla; SELECT MAX(campo) FROM tabla; SELECT COUNT(*) FROM tabla;
Instrucción sql para ordenar registros de menor a mayor. EJ: SELECT * FROM pais ORDER BY nom_pais; Instrucción sql para ordenar registros de mayor a menor. EJ: SELECT * FROM pais ORDER BY nom_pais DESC; Instrucción sql para buscar registros que lleven las letras(s) indicadas. Ej: SELECT * FROM pais LIKE ‘C’ %; (comiencen por la letra C) Instrucción sql para buscar registros que no lleven las letras(s) indicadas. EJ: SELECT * FROM pais NOT LIKE ‘C’ %; (no comiencen por la letra C) Instrucción SQL para sumar el total de registros de un campo Instrucción SQL para calcular el valor mínimo de un campo Instrucción SQL para calcular el valor máximo de un campo Instrucción SQL para contar los registros de una tabla.
Sentencias SQL para manipular Registros: Se utiliza la siguiente sintaxis: UPDATE nom_tabla SET nom_campo =nuevo_registro WHERE nom_campo=registro_del_campo; DELETE FROM nom_tabla WHERE nom_campo = reg_del_campo;
Instrucción sql para modificar uno o varios registros de una tabla. Ej UPDATE pais SET fecha='2008-10-09' WHERE cod_pais=4; Instrucción sql para borrar un registro de la tabla seleccionada DELETE FROM pais WHERE cod_pais = 4;
Sentencias SQL para realizar operaciones con los registros: Se utiliza la siguiente sintaxis: SELECT campo/campos FROM nom_tabla UNION SELECT campo/campos FROM nom_tabla;
Instrucción sql para unir la información de dos o mas tablas Ej SELECT * FROM pais UNION SELECT * FROM departamento;
CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
SELECT campo/campos FROM nom_tabla1, nom tabla 2 WHERE nom_tabla1.campo = nom_tabla2.campo ;
Instrucción sql para realizar el join entre dos tablas Ej: SELECT nom_depto, nom_pais FROM departamento, pais WHERE departamento.cod_pais = país.cod_pais;
TRABAJO PRÁCTICO 1. a. Teniendo en cuenta el siguiente diagrama, realizar las diferentes operaciones que se utilizan para manipular registros (Update y Delete). VUELO PK
HOTEL
reservar PK
cod_vuelo
cod_hotel
tomar nom_hotel dir_hotel tel_hotel ciudad_hotel costo_noche_hotel
origen_vuelo destino_vuelo fecha_vuelo valor_vuelo TURISTA PK
cod_turista
FK1 FK2
nom1_turista nom2_turista ape1_turista ape2_turista telfijo_turista celular_turista direccion_turista email_turista cod_vuelo cod_hotel
b. Utilizar la tabla vuelo para poner en práctica las sentencias que permiten hacer cálculos con los registros. (Hacer búsquedas con like, ordenar registros, calcular los máximos y mínimos valores, contar registros y hacer la suma de los mismos).
2. Se desea diseñar una base de datos para una sucursal bancaria que contenga información sobre los clientes, las cuentas, las sucursales y las transacciones producidas. Construir los scripts teniendo en cuenta las siguientes restricciones:
Una transacción viene determinada por su número de transacción, la fecha y la cantidad. Un cliente puede tener muchas cuentas. Una cuenta solo puede pertenecer a un cliente. Una cuenta sólo puede estar registrada en una sucursal.
Una vez creado el script insertar como mínimo tres registros. Después realizar las siguientes operaciones:
Sumar el total de las transacciones que lleva el cliente hasta el momento. Contar el total de sucursales existentes.