Diferencia entre revisiones de «BD UD7 Guiones»

De MediaWiki
Ir a la navegación Ir a la búsqueda
 
(No se muestra una edición intermedia del mismo usuario)
Línea 6: Línea 6:
 
Los guiones son un conjunto de instrucciones empleando el lenguaje de programación que incorpora el gestor relacional y que tiene como principal diferencia con respecto a otros lenguajes, que vamos a poder emplear órdenes SQL como parte de su código.  
 
Los guiones son un conjunto de instrucciones empleando el lenguaje de programación que incorpora el gestor relacional y que tiene como principal diferencia con respecto a otros lenguajes, que vamos a poder emplear órdenes SQL como parte de su código.  
  
Normalmente estas instrucciones estarán dentro de un archivo que tendrá una extensión . sql siendo un archivo de texto que se podría editar con cualquiera editor, y que contiene el conjunto de instrucciones que queremos ejecutar.
 
  
 
Todas las instrucciones serán ejecutadas en un gestor de bases de datos relacional y afectarán a la base de datos ‘activa’, o estará indicada de forma explícita a que base de datos afecta (por ejemplo, haciendo uso de USE o vimos que en el FROM podemos indicar el nombre de la base de datos de la forma: NOMBRE_ BD.nombre_tabla)  
 
Todas las instrucciones serán ejecutadas en un gestor de bases de datos relacional y afectarán a la base de datos ‘activa’, o estará indicada de forma explícita a que base de datos afecta (por ejemplo, haciendo uso de USE o vimos que en el FROM podemos indicar el nombre de la base de datos de la forma: NOMBRE_ BD.nombre_tabla)  
  
En un guion, entre otras instrucciones, puede llevar:
+
En un guión, entre otras instrucciones, puede llevar:
 
:* Consultas
 
:* Consultas
 
:* Procedimientos
 
:* Procedimientos
Línea 16: Línea 15:
 
:* Operaciones de manipulación de datos
 
:* Operaciones de manipulación de datos
 
:* Órdenes SQL asociadas a los permisos y seguridad.
 
:* Órdenes SQL asociadas a los permisos y seguridad.
 +
:* Conjunto de instrucciones SQL que pueden incorporar alguna de las anteriores e que normalmente estas instrucciones estarán dentro de un archivo que tendrá una extensión .sql siendo un archivo de texto que se podría editar con cualquiera editor, y que contiene el conjunto de instrucciones que queremos ejecutar. A este conjunto de instrucciones se le suele denominar archivos de procesamiento por lotes.
  
  
Línea 22: Línea 22:
 
Normalmente:
 
Normalmente:
 
:* Emplearemos los guiones para IMPORTAR y EXPORTAR bases de datos, tanto su estructura como sus datos (como ya vimos anteriormente) y demás componentes (procedimientos,….)
 
:* Emplearemos los guiones para IMPORTAR y EXPORTAR bases de datos, tanto su estructura como sus datos (como ya vimos anteriormente) y demás componentes (procedimientos,….)
:* Dentro de procedimientos, funciones o triggers haremos uso de programación procedimental (declaración de variables, if, while,control de errores....)  
+
:* Crearemos procedimientos, funciones o triggers y haremos uso de la programación procedimental (declaración de variables, if, while,control de errores....) en su implementación.
  
  
Línea 30: Línea 30:
 
:* ORACLE => PL-SQL: '''P'''rocedural '''L'''anguage – Structured Query Language
 
:* ORACLE => PL-SQL: '''P'''rocedural '''L'''anguage – Structured Query Language
 
:* SQL SERVER => T-SQL: '''T'''ransact-SQL
 
:* SQL SERVER => T-SQL: '''T'''ransact-SQL
:* MYSQL
+
:* PostgreSQL => PgSQL: '''P'''ost'''g'''ress SQL
 +
:* MYSQL => Conjunto de instrucciones propias.
  
Veamos un ejemplo de guion en el que se crea una base de datos, una tabla y se añaden datos a la misma.  
+
Veamos un ejemplo de guión en el que se crea una base de datos, una tabla y se añaden datos a la misma.  
  
::<syntaxhighlight lang="sql" line enclose="div" highlight="" >
+
::<syntaxhighlight lang="sql" enclose="div" highlight="" >
 
-- -----------------------------------------------------
 
-- -----------------------------------------------------
 
-- Schema CIRCO
 
-- Schema CIRCO

Revisión actual del 10:33 30 jun 2020

Guiones

Nota: Todos los ejemplos están basados en esta base de datos.


Los guiones son un conjunto de instrucciones empleando el lenguaje de programación que incorpora el gestor relacional y que tiene como principal diferencia con respecto a otros lenguajes, que vamos a poder emplear órdenes SQL como parte de su código.


Todas las instrucciones serán ejecutadas en un gestor de bases de datos relacional y afectarán a la base de datos ‘activa’, o estará indicada de forma explícita a que base de datos afecta (por ejemplo, haciendo uso de USE o vimos que en el FROM podemos indicar el nombre de la base de datos de la forma: NOMBRE_ BD.nombre_tabla)

En un guión, entre otras instrucciones, puede llevar:

  • Consultas
  • Procedimientos
  • Funciones
  • Operaciones de manipulación de datos
  • Órdenes SQL asociadas a los permisos y seguridad.
  • Conjunto de instrucciones SQL que pueden incorporar alguna de las anteriores e que normalmente estas instrucciones estarán dentro de un archivo que tendrá una extensión .sql siendo un archivo de texto que se podría editar con cualquiera editor, y que contiene el conjunto de instrucciones que queremos ejecutar. A este conjunto de instrucciones se le suele denominar archivos de procesamiento por lotes.


Es decir, cualquier instrucción DML, DCL o DDL junto con otras instrucciones que son extensiones y dependen del propio gestor.

Normalmente:

  • Emplearemos los guiones para IMPORTAR y EXPORTAR bases de datos, tanto su estructura como sus datos (como ya vimos anteriormente) y demás componentes (procedimientos,….)
  • Crearemos procedimientos, funciones o triggers y haremos uso de la programación procedimental (declaración de variables, if, while,control de errores....) en su implementación.


Todos los gestores suelen incorporar una extensión del lenguaje SQL para añadir la opción de realizar programación procedimental (definición de variables, bucles, control de excepciones,...)

Así:

  • ORACLE => PL-SQL: Procedural Language – Structured Query Language
  • SQL SERVER => T-SQL: Transact-SQL
  • PostgreSQL => PgSQL: Postgress SQL
  • MYSQL => Conjunto de instrucciones propias.

Veamos un ejemplo de guión en el que se crea una base de datos, una tabla y se añaden datos a la misma.

-- -----------------------------------------------------
-- Schema CIRCO
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `CIRCO` ;

-- -----------------------------------------------------
-- Schema CIRCO
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `CIRCO` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_spanish2_ci ;
USE `CIRCO` ;

-- -----------------------------------------------------
-- Table `CIRCO`.`ATRACCIONES`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `CIRCO`.`ATRACCIONES` ;

CREATE TABLE IF NOT EXISTS `CIRCO`.`ATRACCIONES` (
  `nombre` VARCHAR(50) NOT NULL,
  `fecha_inicio` DATE NULL,
  `ganancias` DECIMAL(8,2) NULL,
  PRIMARY KEY (`nombre`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Data for table `CIRCO`.`ATRACCIONES`
-- -----------------------------------------------------
START TRANSACTION;
USE `CIRCO`;
INSERT INTO `CIRCO`.`ATRACCIONES` (`nombre`, `fecha_inicio`, `ganancias`) VALUES ('El gran felino', '1999/11/01', 61121);
INSERT INTO `CIRCO`.`ATRACCIONES` (`nombre`, `fecha_inicio`, `ganancias`) VALUES ('Las jirafas', '2000/04/01', 44030);
INSERT INTO `CIRCO`.`ATRACCIONES` (`nombre`, `fecha_inicio`, `ganancias`) VALUES ('El devorador', '2001/04/01', 43012);
INSERT INTO `CIRCO`.`ATRACCIONES` (`nombre`, `fecha_inicio`, `ganancias`) VALUES ('El orangután', NULL, NULL);

COMMIT;


NOTA: Indicar que en Mysql a diferencia de otros gestores, no deja crear bloques anónimos de código, es decir, un conjunto de instrucciones que forman un ‘bloque’ (normalmente se indica con las órdenes BEGIN …… END) dentro de las cuales es posible hacer uso de instrucciones IF, WHILE, definición de variables locales,….) Por eso en los guiones anteriores no se puede emplear instrucciones para la programación procedimental, como if, while,...







Enlace a la página principal de la UD7

Enlace a la página principal del curso




-- Ángel D. Fernández González -- (2020).