JHON ALEJANDRO RUIZ GUERRERO CC:1028482947
En el código se presentan varias instrucciones DDL:
CREATE TABLE : Crea nuevas tablas con sus columnas.
PRIMARY KEY: Define la columna o columnas que identifican de forma
única a cada fila.
FOREIGN KEY: Crea relaciones entre tablas para mantener la integridad
de los datos.
INDEX: Crea índices para acelerar búsquedas y consultas.
CREATE TABLE categoria (
ID_CATEGORIA INT NOT NULL,
NOMBRE VARCHAR(45) NULL,
DESCRIPCION VARCHAR(45) NULL,
PRIMARY KEY (ID_CATEGORIA));
CREATE TABLE direccion (
ID_DIRECCION INT NOT NULL,
CALLE VARCHAR(45) NULL,
NUMERO INT NULL,
COMUNA VARCHAR(45) NULL,
CIUDAD VARCHAR(45) NULL,
PRIMARY KEY (ID_DIRECCION));
CREATE TABLE cliente (
NIP_CLIENTE INT UNSIGNED NOT NULL,
NOMBRE VARCHAR(45) NULL,
TELEFONO1 INT NULL,
TELEFONO2 INT NULL,
CALLE VARCHAR(45) NULL,
NUMERO VARCHAR(45) NULL,
COMUNA VARCHAR(45) NULL,
CIUDAD VARCHAR(45) NULL,
direccion_ID_DIRECCION INT NOT NULL,
PRIMARY KEY (NIP_CLIENTE, direccion_ID_DIRECCION),
INDEX fk_cliente_direccion1_idx (direccion_ID_DIRECCION ASC) VISIBLE,
CONSTRAINT fk_cliente_direccion1
FOREIGN KEY (direccion_ID_DIRECCION)
REFERENCES direccion (ID_DIRECCION)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
CREATE TABLE venta (
ID_FACTURA INT UNSIGNED NOT NULL,
FECHA DATETIME NULL,
NIP_CLIENTE INT NULL,
DESCUENTO INT NULL,
MONTO_FINAL INT NULL,
cliente_NIP_CLIENTE INT UNSIGNED NOT NULL,
PRIMARY KEY (ID_FACTURA, cliente_NIP_CLIENTE),
INDEX fk_venta_cliente1_idx (cliente_NIP_CLIENTE ASC) VISIBLE,
CONSTRAINT fk_venta_cliente1
FOREIGN KEY (cliente_NIP_CLIENTE)
REFERENCES cliente (NIP_CLIENTE)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
CREATE TABLE producto (
ID_PRODUCTO INT NOT NULL,
NOMBRE VARCHAR(45) NULL,
PRECIO INT NULL,
STOCK INT NULL,
NIT INT NULL,
categoria_ID_CATEGORIA INT NOT NULL,
venta_ID_FACTURA INT UNSIGNED NOT NULL,
PRIMARY KEY (ID_PRODUCTO, categoria_ID_CATEGORIA, venta_ID_FACTURA),
INDEX fk_producto_categoria1_idx (categoria_ID_CATEGORIA ASC) VISIBLE,
INDEX fk_producto_venta1_idx (venta_ID_FACTURA ASC) VISIBLE,
CONSTRAINT fk_producto_categoria1
FOREIGN KEY (categoria_ID_CATEGORIA)
REFERENCES categoria (ID_CATEGORIA)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_producto_venta1
FOREIGN KEY (venta_ID_FACTURA)
REFERENCES venta (ID_FACTURA)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
CREATE TABLE proveedor (
NIP_PROVEDOR INT NOT NULL,
NIT VARCHAR(45) NULL,
NOMBRE VARCHAR(45) NULL,
DIRECCION VARCHAR(45) NULL,
TELEFONO VARCHAR(45) NULL,
PAGINA_WEB VARCHAR(100) NULL,
producto_ID_PRODUCTO INT NOT NULL,
PRIMARY KEY (NIP_PROVEDOR, producto_ID_PRODUCTO),
UNIQUE INDEX NIP_UNIQUE (NIP_PROVEDOR ASC) VISIBLE,
UNIQUE INDEX NIT_UNIQUE (NIT ASC) VISIBLE,
INDEX fk_proveedor_producto_idx (producto_ID_PRODUCTO ASC) VISIBLE,
CONSTRAINT fk_proveedor_producto
FOREIGN KEY (producto_ID_PRODUCTO)
REFERENCES producto (ID_PRODUCTO)
ON DELETE NO ACTION
ON UPDATE NO ACTION);