Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONSTRAINT,
JOIN
DROP DATABASE IF EXISTS Tienda;
CREATE DATABASE Tienda DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE Tienda;
-- -----------------------------------------------------
-- Table `Tienda`.`Fabricante`
-- -----------------------------------------------------
CREATE TABLE Fabricante(CodFabricante INT NOT NULL AUTO_INCREMENT,
nombreFabricante VARCHAR(45) NOT NULL ,
PRIMARY KEY (CodFabricante))ENGINE = InnoDB;
CONSTRAINT `CodArticulo`
FOREIGN KEY (`CodArticulo`)
REFERENCES `Tienda`.`Articulo` (`CodArticulo`)
ON DELETE CASCADE
ON UPDATE CASCADE)ENGINE = InnoDB;
INSERT INTO FabricanteArticulo VALUES (5, 3),
(4, 4),
(2, 5),
(2, 6),
(1, 7),
(4, 8),
(3, 9),
(2,10),
(1, 1),
(5, 2);
Index
Los índices en MySQL permiten localizar y devolver registros
de una forma sencilla y rápida. Son especialmente útiles cuando
queremos buscar elementos de entre los millones y hasta
billones de registros que puede contener una tabla en un
momento dado.
En un indice puedes tener valores repetidos sin problemas, lo
ideal es que los campos que son indexados sean con valores
muy variables para evitar que se pierda el objetivo de un indice
(por ejemplo si indexas un nombre seria alfabeticamente y
cuando buscas algo con G se iria a la seccion correspondiente
ignorando todos los que estan delante
Index
Un índice común se crea con "index", los valores no necesariamente son
únicos y aceptan valores "null". Puede haber varios por tabla.
CREATE TABLE libros ( codigo INT UNSIGNED AUTO_INCREMENT,
titulo VARCHAR(40) NOT NULL, autor VARCHAR(30),
editorial VARCHAR(15), PRIMARY KEY(codigo),
INDEX id_editorial (editorial));
NOTA: existe una tabla llamada editorial con los atributos id_Editorial, titulo, editorial
Index
ALTER TABLE `tienda`.`articulo`
ADD COLUMN `Cod_Fabricante` INT(11) AFTER `precio`,
ADD INDEX `codFabricante_idx` (`cod_Fabricante` ASC);
Indices asociados a las
restricciones
”CONSTRAINT”
Cuando se establece una restriccion de clave externa, debe existir un índice en la
tabla principal para el campo (o campos) referenciado. En el ejemplo, la tabla
principal es la tabla ‘clientes’, y el campo referenciado es el campo ‘id’. Como este
campo es la clave primaria de la tabla, en este caso no es necesario crear
explícitamente un índice.
Por otra parte, también debe existir un índice en la tabla dependiente para los
campos que hacen referencia a campos de la tabla principal. Si no existía
previamente, se crea. Así, si examinamos la definición de la tabla ‘pedidos’ después
de haber creado la restricción:
Índices asociados a las
restricciones
”CONSTRAINT”
CREATE TABLE `pedidos` ( `id` INT(11) NOT NULL, `idcliente` iNT(11) NOT NULL,
`idproducto` INT(11) NOT NULL, PRIMARY KEY (`id`),
KEY `idcliente` (`idcliente`),
CONSTRAINT `pedidos_ibfk_1`
FOREIGN KEY (`idcliente`)
REFERENCES `clientes` (`id`)) ENGINE=InnoDB;
La instrucción SQL JOIN (unión) se utiliza para combinar dos o más tablas, tomando un
campo común de las dos
UPDATE articulo
JOIN fabricantearticulo
ON articulo.CodArticulo = fabricanteArticulo.CodArticulo
SET articulo.Cod_Fabricante = fabricantearticulo.CodFabricante;
SELECT *
FROM Fabricante, articulo
WHERE articulo.Cod_Fabricante = Fabricante.Codfabricante;
CREATE TABLE CLIENTE (
CodigoCliente INT(11) NOT NULL AUTO_INCREMENT,
Nombre VARCHAR(25) NOT NULL,
Apellido VARCHAR(25) NOT NULL,
FechaNac DATE NOT NULL,
PRIMARY KEY (`CodigoCliente`) )ENGINE = InnoDB;