Está en la página 1de 11

Nombre de la materia

Bases de datos
Nombre de la Licenciatura
Ingeniería en sistemas
computacionales.
Nombre del alumno
José Antonio Aguirre Tirado
Matrícula
010588680
Nombre de la Tarea
Tarea 5
Unidad #5
SQL
Nombre del Tutor
Dianet Campos Reyes
Fecha
05/10/2019
Unidad 5. SQL.
Bases de datos

SQL
Introducción
¿Cómo deben construirse sentencias SQL para que la interacción con una base de datos
sea correcta?

Deben construirse basándonos en nuestro modelo normalizado ya que este será nuestra
base para la creación de la base de datos y teniendo cuidado en cuanto al sintaxis y
gramática al momento de programar, ya que un pequeño error nos producirá problemas y
nuestra base de datos no funcionará de forma correcta y óptima.

3 Forma Normal
Unidad 5. SQL.
Bases de datos

Diagrama Entidad-Relación MySQL Workbench

Código MySQL Workbench


-- MySQL Script generated by MySQL Workbench

-- Sat Oct 5 17:17:11 2019

-- Model: New Model Version: 1.0

-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

SET @OLD_SQL_MODE=@@SQL_MODE,
SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_
ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------

-- Schema Tarea5

-- -----------------------------------------------------

DROP SCHEMA IF EXISTS `Tarea5` ;

-- -----------------------------------------------------

-- Schema Tarea5

-- -----------------------------------------------------
Unidad 5. SQL.
Bases de datos

CREATE SCHEMA IF NOT EXISTS `Tarea5` DEFAULT CHARACTER SET utf8 COLLATE utf8_spanish_ci ;

USE `Tarea5` ;

-- -----------------------------------------------------

-- Table `Tarea5`.`CLIENTE`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `Tarea5`.`CLIENTE` ;

CREATE TABLE IF NOT EXISTS `Tarea5`.`CLIENTE` (

`idCLIENTES` INT(10) NOT NULL AUTO_INCREMENT,

`NOMBRE` VARCHAR(45) NOT NULL,

`TELEFONO` VARCHAR(45) NOT NULL,

`EMAIL` VARCHAR(45) NOT NULL,

`CALLE` VARCHAR(45) NOT NULL,

`NUM_DEPARTAMENTO` VARCHAR(45) NOT NULL,

`CP` INT(10) NOT NULL,

`PROVINCIA` VARCHAR(45) NOT NULL,

`CIUDAD` VARCHAR(45) NOT NULL,

`ESTADO` VARCHAR(45) NOT NULL,

`PAIS` VARCHAR(45) NOT NULL,

PRIMARY KEY (`idCLIENTES`))

ENGINE = InnoDB;

-- -----------------------------------------------------

-- Table `Tarea5`.`ESTUFA`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `Tarea5`.`ESTUFA` ;

CREATE TABLE IF NOT EXISTS `Tarea5`.`ESTUFA` (

`id_NUMERO_ARTICULOS` VARCHAR(45) NOT NULL,

`TIPO_ESTUFA` VARCHAR(45) NOT NULL,

`PRECIO_ARTICULO` DECIMAL(7,2) NOT NULL,

`FECHA_FABRICACION` DATE NOT NULL,

`CLAVE_INSPECTOR` VARCHAR(45) NOT NULL,

PRIMARY KEY (`id_NUMERO_ARTICULOS`))

ENGINE = InnoDB;

-- -----------------------------------------------------

-- Table `Tarea5`.`FACTURA`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `Tarea5`.`FACTURA` ;

CREATE TABLE IF NOT EXISTS `Tarea5`.`FACTURA` (

`idFACTURAS` INT(10) NOT NULL AUTO_INCREMENT,

`FECHA_FACTURA` DATE NOT NULL,


Unidad 5. SQL.
Bases de datos

`id_NUMERO_ARTICULO` VARCHAR(45) NOT NULL,

`CANTIDAD_ARTICULO` INT(10) NOT NULL,

`PRECIO_ARTICULO` DECIMAL(7,2) NOT NULL,

`PRECIO_TOTAL` DECIMAL(7,2) NOT NULL,

`id_CLIENTE` INT(10) NOT NULL,

PRIMARY KEY (`idFACTURAS`),

INDEX `FK_CLIENTE_idx` (`id_CLIENTE` ASC) VISIBLE,

INDEX `FK_NUMERO_ARTICULO_idx` (`id_NUMERO_ARTICULO` ASC) VISIBLE,

CONSTRAINT `FK_CLIENTE_FACTURA`

FOREIGN KEY (`id_CLIENTE`)

REFERENCES `Tarea5`.`CLIENTE` (`idCLIENTES`)

ON DELETE NO ACTION

ON UPDATE NO ACTION,

CONSTRAINT `FK_NUMERO_ARTICULO_ESTUFA`

FOREIGN KEY (`id_NUMERO_ARTICULO`)

REFERENCES `Tarea5`.`ESTUFA` (`id_NUMERO_ARTICULOS`)

ON DELETE NO ACTION

ON UPDATE NO ACTION)

ENGINE = InnoDB;

-- -----------------------------------------------------

-- Table `Tarea5`.`PARTE`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `Tarea5`.`PARTE` ;

CREATE TABLE IF NOT EXISTS `Tarea5`.`PARTE` (

`idPARTES` INT(10) NOT NULL,

`DESCRIPCION` VARCHAR(45) NOT NULL,

`PRECIO_PARTE` DECIMAL(7,2) NOT NULL,

`PRECIO_REPARACION` DECIMAL(7,2) NOT NULL,

PRIMARY KEY (`idPARTES`))

ENGINE = InnoDB;

-- -----------------------------------------------------

-- Table `Tarea5`.`REPARACION`

-- -----------------------------------------------------

DROP TABLE IF EXISTS `Tarea5`.`REPARACION` ;

CREATE TABLE IF NOT EXISTS `Tarea5`.`REPARACION` (

`idREPARACION` INT(10) NOT NULL AUTO_INCREMENT,

`id_NUMERO_ARTICULO` VARCHAR(10) NOT NULL,

`DESCRIPCION` VARCHAR(45) NOT NULL,

`CANTIDAD_PARTE` INT(10) NOT NULL,


Unidad 5. SQL.
Bases de datos

`PRECIO_PARTE` DECIMAL(7,2) NOT NULL,

`TOTAL_REPARACION` DECIMAL(7,2) NOT NULL,

`id_CLIENTE` INT(10) NOT NULL,

`id_PARTE` INT(10) NOT NULL,

PRIMARY KEY (`idREPARACION`),

INDEX `FK_CLIENTE_idx` (`id_CLIENTE` ASC) VISIBLE,

INDEX `FK_PARTE_REPARACION_idx` (`id_PARTE` ASC) VISIBLE,

CONSTRAINT `FK_CLIENTE_REPARACION`

FOREIGN KEY (`id_CLIENTE`)

REFERENCES `Tarea5`.`CLIENTE` (`idCLIENTES`)

ON DELETE NO ACTION

ON UPDATE NO ACTION,

CONSTRAINT `FK_PARTE_REPARACION`

FOREIGN KEY (`id_PARTE`)

REFERENCES `Tarea5`.`PARTE` (`idPARTES`)

ON DELETE NO ACTION

ON UPDATE NO ACTION)

ENGINE = InnoDB;

SET SQL_MODE=@OLD_SQL_MODE;

SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;

SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Unidad 5. SQL.
Bases de datos

Ejemplos en SQL
 Between
Unidad 5. SQL.
Bases de datos

 Count
Unidad 5. SQL.
Bases de datos

 Sum
Unidad 5. SQL.
Bases de datos

 In y not in
Unidad 5. SQL.
Bases de datos

Conclusión.
Se debe tener cuidado al momento de programar para evitar errores y basarnos en
nuestra forma normal.

Algunos de los componentes lógicos del lenguaje SQL son los siguientes:

 Comandos: Existen tres tipos de comandos SQL.


o Los DLL(Data Definition Language) que permiten crear y definir nuevas bases
de datos, campos e índices.
o Los DML(Data Manipulation Language) que permiten generar consultas para
ordenar, filtrar y extraer datos de la base de datos.
o Los DCL(Data Control Language) que se encargan de definir las permisos
sobre los datos.
 Clausulas: Son condiciones de modificación utilizadas para definir los datos que desea
seleccionar o manipular.
 Operadores: Existen operadores lógicos los cuales evalúan situaciones y operadores
de comparación los cuales comparan una información con otra.
 Funciones de agregación: se usan dentro de una cláusula select en grupos de
registros para devolver un único valor que se aplica a un grupo de registros.

Referencias.
 Procesamiento de bases de datos. Fundamentos, diseño e implementación
Kroenke, D. (2003). Capítulo 9. Lenguaje de consulta estructurado (págs. 236-
252).
https://utel.vstbridge.com/#/book-details/9789702603252
 Crear BD, Tablas y Campos en MySQL
https://www.youtube.com/watch?v=TYdlgnUFrtE
 relacionar tablas en mysql
https://www.youtube.com/watch?v=HhOo9jaxZ18
 COUNT
http://www.mysqltutorial.org/mysql-count/
 SUM
http://www.mysqltutorial.org/mysql-sum/
 Componentes del lenguaje SQL
https://geotalleres.readthedocs.io/es/latest/conceptos-sql/conceptos_sql.html

También podría gustarte