SQL en la práctica 2017

Page 1

SQL

En la prรกctica 2017


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

SQL En la práctica Práctica 1 - Junio de 2017

La programación en SQL me parece hoy en día vital. El lenguaje SQL es un lenguaje de consulta estructurado. Este lenguaje sirve para consultar base de datos relacionales. Hoy en día las bases de datos relacionales están implementadas en todos las empresas. Desde mi punto de vista, la programación SQL tiene varias ventajas: facilidad de uso (no hacen falta grandes conocimientos para poder realizar pequeñas consultas); lo extendido que está este lenguaje de programación y las posibilidades que nos abre para tener la información de una empresa almacenada de una forma ordenada y ocupando poco espacio.

En horabuena y feliz codificación.

1

Práctica 1

La intención de esta serie de tutos es proveer una bibliografía un poco diferente a los libros de SQL, integrando la teoría de SQL, practicándola en la consola y llevándola a la práctica de programación tanto en web como en escritorio, por medio de HTML + CSS + JS, en el caso Web y Lazarus / Delphi en el caso de escritorio.


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

CONTENIDO

1 - Introducción................................................................................................................................... 3 La base de datos........................................................................................................................3 Tablas de datos.......................................................................................................................... 4 2 - Una aplicación práctica...............................................................................................................5 Creación de una base de datos............................................................................................. 5 El comando “create”.................................................................................................................. 7 3 - Ejemplos reales en Web y Escritorio...................................................................................... 9 Conectando una App de escritorio........................................................................................ 9 Conectando una App Web.................................................................................................... 17

SQL En la práctica

2


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

1 - INTRODUCCIÓN. SQL, Structure Query Language (Lenguaje de Consulta Estructurado) es un lenguaje de programación para trabajar con base de datos relacionales como Firebird, Postgre, MariaDB, MySQL, Oracle, entre otros. Cualquiera de estos programas, es conocido como un interpretador de SQL (También llamado Sistema Gestor de Bases de Datos -SGBD-), es un servidor de base de datos. Permiten crear bases de datos y tablas, insertar datos, modificarlos, eliminarlos, ordenarlos, hacer consultas y realizar muchas operaciones más, resumiendo: administrar bases de datos. Ingresando instrucciones en la línea de comandos o embebidas en un lenguaje de programación, ya sea visual, Web o Móvil, nos comunicamos con el servidor. Cada sentencia debe acabar con punto y coma (;), en los gestores de bases de datos más estrictos. La sensibilidad a mayúsculas y minúsculas, es decir, si hace diferencia entre ellas, depende del sistema operativo, Windows no es sensible, pero en el caso de Linux sí. Por ejemplo Windows interpreta igualmente las siguientes sentencias: create database administracion; Create DataBase administracion; Pero Linux interpretará como un error la segunda. Se recomienda usar siempre minúsculas. Este manual hace referencia a sentencias SQL, empero fueron probadas para MariaDB, aunque eso no es detrimento para usarse en cualquier gestor de base de datos.

LA BASE DE DATOS Entendamos en primera instancia que una base de datos es un archivo físico, que se genera por medio de algún programa informático, con la finalidad de almacenar estructuras lógicas especializadas en la administración de información a granel, las cuales se encuentran en formatos específicos para un trabajo o tarea particular. Una base de datos tiene un nombre con el cual accederemos a ella.

3

Práctica 1

Imaginemos que una base de datos es una caja vacía en la que podemos almacenar cosas.


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Pero si almacenamos cosas sin ningún orden nuestra caja se vería más o menos así

Para poder almacenar de manera controlada los objetos, por ejemplo; canicas de diferentes tipos. Sería muy conveniente para nosotros tener cajas más pequeñas dentro de esa caja mas grande, en las cuales colocaríamos los diferentes tipos de canicas, de una forma ordenada. Estas cajas pequeñas, dentro de la caja grande, serían una de estas estructuras lógicas de la bases de datos, las llamamos Tablas. Ahora bien, para tratar de entender mejor lo del archivo de base de datos, conozcamos un poco estas estructuras lógicas.

TABLAS DE DATOS Una tabla, consiste en una estructura lógica, compuesta de columnas y renglones, si justo como una tabla de Hoja de Cálculo.

Donde las columnas son conocidas como CAMPO y los renglones o filas como REGISTROS, los primeros son los nombres de cada una de las columnas y los segundos son los datos que van en cada una de las columnas. ID 0001 0002 0003 0004 0005

Nombre Emily Gesell Alberto Mario Serena

Edad 21 18 22 21 20

Sexo F F M M F

SQL En la práctica

Como podemos ver en la tabla anterior, existen cuatro CAMPOS: ID, Nombre, Edad y Sexo, y contamos con 5 registros, es decir, 5 renglones con información o siendo mas específicos; 4 datos por registro. ID 0001

Nombre Emily

4

Edad 21

Sexo F


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

0002 0003 0004 0005

Gesell Alberto Mario Serena

18 22 21 20

F M M F

REGISTRO

Todo un renglón, es reconocido como registro, cada registro esta compuesto por datos independientes, pero relacionados entre si. Es decir, el dato del Sexo esta asignado a una persona en particular, que en este caso tiene un Nombre, y una Edad, en particular. Y para poder reconocer a esa persona con mayor facilidad, tiene asignado un número, en este caso reconocido como ID. En otras palabras, el ID 0003, identifica a Alberto, de 22 años de edad y de sexo Masculino Esta tabla, así como todas las demás que puedan o deban ser generadas en la base de datos, cuentan con un nombre, único e irrepetible. ID

Jugadores Nombre Edad

Sexo

En el caso mostrado sería la tabla Jugadores, con los campos ID, Nombre, Edad y Sexo. Este es uno de los objetos de bases de datos o estructuras lógicas de bases de datos, los demás los veremos en capítulos posteriores, empecemos por lo primero.

2 - UNA APLICACIÓN PRÁCTICA CREACIÓN DE UNA BASE DE DATOS Podemos crear una base de datos desde un gestor de bases de datos así que, entramos a la interfaz de nuestro gestor preferido. Yo en mi caso usaré un gestor web, en esta ocasión, el gestor de MariaDB. Para ello usare un Navegador web y digitaré en el cuadro de direcciones (URL): 127.0.0.1/phpmyadmin, para poder entrar a la interfaz gráfica que me permita conectar con el gestor MariaDB.

5

Práctica 1

Como mencioné en el párrafo anterior, usare la interfaz gráfica de phpMyAdmin, no es la única, pero es la más habitual, en el uso estudiantil.


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

127.0.0.1, nos permite acceder al servidor local de nuestra maquina, que es donde se emula el servidor web, aquí, es donde yo doy por hecho que ya tienes instalado el gestor de base de datos (escritorio y/o Web).

Una vez digitada la url al servidor web emulado, se mostrara la interfaz de acceso principal, si así esta especificado, si entra de forma directa, seguirás este tutorial en hojas siguientes.

Una vez entrando debemos digitar el usuario y contraseña, para entrar en la interfaz gráfica de phpmyadmin.

SQL En la práctica

La interfaz gráfica de phpmyadmin, no es complicada de usarse, por tal motivo no ahondare en su explicación, empero si guiaré al lector en la realización de las tareas propias de estas prácticas. Ubiquemos en la la pagina de inicio de phpmyadmin, cada elemento, en el extremo izquierdo de tu pantalla encontraras el “Panel Principal”, donde se

6


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

mostraran todos los objetos de base de datos que se encuentren creados en este servidor web (ver imagen en pagina siguiente). En la parte central encontramos el “Área General de Trabajo”, donde se mostraran todas las herramientas de esta interfaz gráfica, para MariaDB/MYSQL. En la parte superior de esta parte, encontraras una barra de menús donde encontraremos los accesos a las herramientas comunes que proporciona phpmyadmin.

Barra Menú

Panel Principal

Área General

Entraremos a la consola de SQL, dando click en la pestaña SQL de la Barra de Menú. Con lo cual podremos observar una interfaz como esta.

Es el depurador de consultas SQL de phpmyadmin,en el cual podremos escribir los códigos SQL en la caja de texto correspondiente y para aceptar y depurar la consulta SQL el botón Continuar.

7

Práctica 1

EL COMANDO “CREATE”


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

El comando CREATE, permite crear diferentes objetos de bases de datos, incluyendo la propia base de datos. La sintaxis para usar este comando, para crear la base de datos es: CREATE database Nombre_BD Primero el comando CREATE, seguido del tipo de objeto de base de dato, en este caso database, y al final el nombre de la base de datos que vamos a asignar, sin espacios, ni símbolos raros. Empecemos con el ejemplo: Crearemos la base de datos CoffeeDrops, para ello, teclearemos el siguiente código y posteriormente presionamos el botón continuar. Create database CoffeDrops

Este mensaje indica en otras palabras que; el comando ha sido procesado de satisfactoriamente y por ende la base de datos se ha creado. En caso de tratar de ejecutar nuevamente el mismo comando, obtendremos un error como el siguiente.

Es muy importante que leas e interpretes los mensajes de error de principio a fin para que los entiendas, en este caso, nos indica: Can't create database 'CoffeeDrops'; database exists, traducido al español, “No se puede crear la base de datos ‘CoffeeDrops’, la base de datos ya existe”. Como podemos comprobar que realmente nuestra base de datos CoffeeDrops, fue creada. Observemos el Panel Principal (a tu izquierda) y en el listado de objetos encontraras la base de datos CoffeeDrops.

SQL En la práctica

8


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Ya dije 2 párrafos arriba, que al volver ejecutar la instrucción tendremos un error, por duplicidad de objeto. Eso lo podemos solucionar de una manera muy fácil. Create database if not exists CoffeeDrops

Esta instrucción permite crear la base de datos SINO EXISTE, y si existe no genera un error, sino un warning, sin sobre-escribir la Base de Datos existente. Si queremos ver por medio de la consola, las bases de datos creadas en el servidor local, podemos utilizar el siguiente código. Show databases

Y mostrando como resultado un tabular como el siguiente.

Para hacerlo en SQLServer de Microsoft, tendriamos que colocar el siguiente código. SELECT name, database_id, create_date FROM sys.databases;

3 - EJEMPLOS REALES EN WEB Y ESCRITORIO.

Ahora vamos a conectarnos con el server de MariaDB / MySQL, desde una aplicación en Lazarus (la versión Open Source de Delphi). Usaré un formulario

9

Práctica 1

CONECTANDO UNA APP DE ESCRITORIO


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

estilizado para contener los siguientes datos; Usuario, Contraseña, Servidor, Puerto y Catalogo, los cuales cargare en las cajas de texto al iniciar la App.

En este punto es bueno aclarar que, el sistema nativo de base de datos de Lazarus / Delphi, es FireBird / Interbase, entonces es necesario instalar el driver ad-hoc para MySQL / MariaDB, lo cual no es complicado, una googleada nos proporciona la solución. Manos a la obra; en esta ocasión manejaremos los datos de conexión escritos directamente en las cajas de texto, aunque esto no es necesario, pero es para fines prácticos. Generemos el evento OnCreate del Formulario. procedure TForm1.FormCreate(Sender: TObject); begin end;

Digitaremos dentro de este evento las siguientes lineas. Toma en cuenta que los datos que coloqué son mi usuario y mi contraseña procedure TForm1.FormCreate(Sender: TObject); begin

SQL En la práctica

Edit1.Text:= 'root';

Usuario

Edit2.Text:= '99130440';

Contraseña

Edit3.Text:= 'localhost';

Servidor

Edit4.Text:= '80';

Puerto

Edit5.Text:= 'mysql';

Catálogo de Conexión

10


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

end; Antes de continuar debemos de agregar un par de componentes (controles para aquellos que usan VS) en nuestro formulario, nos servirán para poder conectar la APP con el Gestor de Base de Datos. Así que; en la Paleta de Componentes ubicaremos la llamada SQLdb. Y agregaremos un componente MySQLConnection50 a nuestro formulario.

Ahora crearemos el evento OnClick del Botón “Conectar”. El cual nos servirá para poder asignar los valores por código a nuestro MySQLConnection50 para conectar con nuestro gestor. procedure TForm1.Button2Click(Sender: TObject); begin end; Y en el codificaremos las lineas que nos permitirán realizar la conexión de nuestra App con MariaDB / MySQL, como dije anteriormente. procedure TForm1.Button2Click(Sender: TObject); begin try begin MySQLConnection.Close; MySQLConnection.UserName := Edit1.Text; MySQLConnection.Password := Edit2.Text; MySQLConnection.HostName := Edit3.Text; MySQLConnection.port := StrToInt(Edit4.Text); MySQLConnection.DatabaseName:= Edit5.Text; MySQLConnection.Open; Button2.Caption := 'Conectado'; MessageDlg('Conexión realizada con éxito.', mtInformation, [mbok], 0); end; except Button2.Caption := 'Error en la conexión';

11

Práctica 1

raise;


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

MessageDlg('Problemas mtInformation, [mbok], 0);

al

realizar

la

Conexión.',

end; end; En este caso usé un manejador de excepciones, Try - Except, en el cual intentaremos realizar la conexión al Gestor de Base de Datos, si una de las lineas de código falla o provoca un error, se interrumpe y pasa al bloque del Except, en el cual indicamos al usuario que existió un “Error en la conexión” . MySQLConnection.Close; Cierra la conexión hacia el Gestor de la Base de Datos, se tiene que hacer para evitar un conflicto de apertura doble, es decir que no se encuentre abierto el Gestor de Base de Datos. MySQLConnection.UserName := Edit1.Text; Asignamos el valor contenido en la caja de texto, a la propiedad UserName de nuestro componente de conexión al Gestor de Bases de Datos, el cual es el usuario de el propio gestor. Normalmente, si la instalación del Gestor fue sucia, el usuario se llamará “root”. MySQLConnection.Password := Edit2.Text; Asignamos el valor contenido en la caja de texto, a la propiedad Password de nuestro componente de conexión al Gestor de Bases de Datos, el cual es la contraseña del propio gestor. La contraseña de acceso al Gestor, depende puramente de cada uno de nosotros. MySQLConnection.HostName := Edit3.Text; Asignamos el valor contenido en la caja de texto, a la propiedad HostName de nuestro componente de conexión al Gestor de Bases de Datos, el cual es el nombre del servidor web donde se encuentra instalado el Gestor de Bases de Datos. Generalmente, si la instalación fue sucia, el nombre de tu servidor será “localhost”. MySQLConnection.port := StrToInt(Edit4.Text); Asignamos el valor contenido en la caja de texto, a la propiedad port de nuestro componente de conexión al Gestor de Bases de Datos, el cual es el numero de puerto del servidor web. Generalmente, si no ha sido administrado el servidor, será el puerto “80”. MySQLConnection.DatabaseName:= Edit5.Text; Asignamos el valor contenido en la caja de texto, a la propiedad DatabaseName de nuestro componente de conexión al Gestor de Bases de Datos, el cual es el nombre de la Bases de Datos a la cual nos vamos a conectar. Yo seleccione el catalogo base de MariaDB / MySQL “mysql”.

SQL En la práctica

MySQLConnection.Open; Abrimos la conexión con el servidor, con los parámetros asignados, sino son incorrectos todo el código siguiente continuará. En caso contrario puede quedarse pasmada la App. Button2.Caption := 'Conectado'; Cambiamos el letrero del Botón “Conectar”, a “Conectado”, porque en teoría, ya se conectó al servidor y a la base de datos.

12


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

MessageDlg('Conexión realizada con éxito.', mtInformation, [mbok], 0); Mandamos un mensaje al usuario para que sepa que ya se conectó al servidor. La parte del Except, nos permite mandar un mensaje de error al usuario, para indicar que la conexión no se pudo realizar. Llegó la hora de probar esta parte de la aplicación, como los datos de conexión son correctos, obtendremos el mensaje de “Conexión realizada con éxito”, tal y como se puede ver en la imagen de la página siguiente.

Supongamos que los datos de conexión son incorrectos, obtendremos el mensaje de “Problemas al realizar la Conexión.”, tal y como se puede ver en la imagen de la página siguiente.

13

Práctica 1

Lo haremos más profesional, al tratar de cargar la App, justo después de intentar la conexión al server, con un poquitín de cambios al formulario.


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Entre los cambios que realizare, serán eliminar el código del evento click del botón “Conectar” y el propio botón “Conectar”. Coloque una imagen en el formulario y la adapte al contenedor central. El código del evento OnCreate del Formulario, lo edite quedando de la siguiente manera. try begin MySQLConnection.Close; MySQLConnection.UserName := 'root'; MySQLConnection.Password := '99130440'; MySQLConnection.HostName := 'localhost'; MySQLConnection.port := 80; MySQLConnection.DatabaseName:= 'mysql'; ; MySQLConnection.Open; MessageDlg('Conexión realizada con éxito.', mtInformation, [mbok], 0); end; except MessageDlg('Problemas al realizar la Conexión.', mtError, [mbok], 0);

SQL En la práctica

end;

En otras palabras, coloque los valores de conexión de forma directa a las propiedades del componente MySQLConnection. Ahora al momento de ejecutar la App, primero intentará hacer la conexión al server. En caso de conectarse sin problema obtendremos el siguiente resultado.

14


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Y posteriormente al hacer click sobre el botón “Aceptar”, se mostrará la ventana principal, ya tuneada, de nuestra App.

Recordemos que en este punto la base de datos aun no se crea, así que vamos a crearla. Para poder crear nuestra base de datos por código, necesitaremos agregar un componente llamado SQLQuery, y un componente llamado SQLTransaction, que los encontraremos en la pestaña SQLdb de la Paleta de Componentes.

Este control nos permitirá, trabajar en conjunto con el SQLConnection, colocado con anterioridad, para poder interpretar y ejecutar, todas las instrucciones del lenguaje SQL, en este caso para poder crear la base de datos. Así que configuremos el primer componente. Una vez seleccionado el SQLQuery, buscaremos en sus propiedades aquella llamada Database, y seleccionaremos MySQLConnection1, el componente de conexión a MariaDB / MySQL. Ahora buscaremos la propiedad llamada Transaction y elegiremos de la lista SQLTransaction1. Llegó la hora de codificar o mejor dicho actualizar nuestro código, que se encuentra en el evento OnCreate, el cual quedará de la siguiente manera (solo el código en azul se anexó al ya existente). try begin MySQLConnection.Close; MySQLConnection.UserName := 'root'; MySQLConnection.HostName := 'localhost';

15

Práctica 1

MySQLConnection.Password := '99130440';


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

MySQLConnection.port := 80; MySQLConnection.DatabaseName:= 'mysql'; ; MySQLConnection.Open; MessageDlg('Conexión realizada con éxito.', mtInformation, [mbok], 0); end except MessageDlg('Problemas al realizar la Conexión.', mtError, [mbok], 0); end; try begin SQLQuery1.Close; SQLQuery1.SQL.Clear; SQLQuery1.SQL.Add('create database if not exists CoffeeDrops); SQLQuery1.ExecSQL; end; except MessageDlg('Problemas al crear la base de datos. Lo sentimos', mtError, [mbok], 0); Application.Terminate(); end;

Una vez que se conectó al servidor, por medio del primer try - except, éste segundo bloque, servirá para crear la base de datos.así que entendamos las lineas de código. SQLQuery1.Close; Terminamos la consulta SQL que pudiese estar activa. SQLQuery1.SQL.Clear; Eliminamos cualquier código SQL que se encuentre definido en la propiedad SQL. SQLQuery1.SQL.Add('create database if not exists CoffeeDrops); Agregamos la(s) linea(s) de código SQL que deseamos definir y ejecutar en el servidor, en este caso, crear la base de datos CoffeeDrops sino existe. SQLQuery1.ExecSQL; Y por ultimo ejecutamos la instrucción SQL.

SQL En la práctica

En caso de que algo falle en el try, tenemos preparado nuestro mensaje de error y una nueva instrucción, Application.Terminate(); la cual termina el proceso de la App, en la memoria de nuestra computador, así que nuestra aplicación se cierra. Esto lo hacemos así porque, no tiene caso continuar con la

16


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

App abierta intentando conectar una y otra vez en el servidor y realizar las tareas SQL. Accediendo a nuestro servidor web podemos observar que en la opción bases de datos, se mostrara el listado de estas, incluyendo la recién creada CoffeDrops.

CONECTANDO UNA APP WEB En hora buena, ahora terminamos una pequeña app en Lazarus (aunque también funciona en Delphi) que permite crear una Base de Datos en nuestro servidor local. Llegó el momento de hacerlo para una aplicación web basada en HTML5 + CSS3 + JavaScript + PHP. La AppWeb que acontinuación realizaré, consta de lo siguiente. Crearé una carpeta, la cual yo llamaré CD (CoffeeDrops), y que estará almacenada en servidor web local. Y con ayuda de un editor de código web como Brackets, en mi caso, aunque puede ser SublimeText o cualquier otro, crearemos el archivo principal de nuestra AppWeb de instalación. El archivo se llamara index y sera de tipo php.

En el archivo index.php, que actualmente tenemos vacio, generamos la estructura básica de un archivo php, y posteriormente definimos 4 variables

17

Práctica 1

Como pudiste ver en la imagen anterior, ahora eh creado una carpeta justo dentro de la carpeta raíz CD, con el nombre de instalación, pero no nos desviemos de lo primero, el archivo index.


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

para albergar los datos de conectividad al servidor web de MariaDB / MySQL. En este caso $server, $username, $password y $database_name. Los valores que asignaremos a cada una de estas variables, son los propios de su servidor web (los mismo que usamos en la App Lazarus), la unica diferencia es que ahora trataré de conectarme directamente a CoffeeDrops, nuestra base de datos, por lo cual no deberá de existir en nuestro server.

Agregaremos un bloque Try - Catch, algo similar al de Lazarus/Delphi, con el cual podremos intentar la conexión al Servidor con nuestro catalogo, y continuar hacia la pagina de Login, si algo falla en la conectividad hacia el Servidor, interrumpimos y mandamos pantalla de error. El código completo se muestra después de la imagen del Try - Catch. El bloque Try, deberá de contener el siguiente código. try { $con = new PDO('mysql:host='.$server.';dbname='.$database_name, $username, $password); header('Location:login.html'); } Definimos la variable con (acrónimo de conexión), creamos la instancia a la clase PDO, sin importar el controlador que usemos. El constructor, que generamos, acepta parámetros para especificar el origen de la base de datos (conocido como DSN) y, opcionalmente, el nombre de usuario y la contraseña (si la hubiera), los cuales ya tenemos en las variables previamente declaradas. En otras palabras, en esta linea realizara el intento de conexión al servidor con los datos ya especificados. Si todo esta bien continuará con la siguiente linea.

SQL En la práctica

La función header( ) envía una cabecera HTTP pura a un cliente. Es importante notar que la cabecera header( ), debe ser llamada antes de enviar cualquier salida real. En este caso mandaremos a header la url de nuestra pagina de login.html, la cual aún no tenemos generada e indicará que la conexión fue satisfactoria.

18


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Ahora codificaremos el bloque Catch. catch (PDOException $e) { if($e->getCode()==1049) { header('Location:instalacion/install_1.php'); } else { echo "Problemas de conectividad con el servidor. Disculpe las molestias."; } die(); } $con =null; El parametro e, que se encuentra en la definición catch, es definido de tipo excepción PDO, para poder capturar el valor resultante de ejecutar la instrucción PDO del bloque try (contemplando que esta falló), en este caso el valor resultante será 1049, en caso de que la base de datos no se encuentre registrada en el Servidor Web, contemplemos que si deseamos validar la contraseña será el valor 1045, pero para fines prácticos, no nos importa por el momento. Como es de suponerse, validaremos el código resultante por medio de un IF, si es este valor el encontrado por la excepción, entonces quiere decir que la base de datos no se ha creado, y por lo tanto nuestra AppWeb la creará en la siguientes interfaces. Para ello dentro del bloque IF, lanzamos la pagina install_1.php, la cual aún no creamos y se encontrará dentro de la carpeta instalación.

19

Práctica 1

En el bloque ELSE, solo mandamos a pantalla un mensajito al usuario, indicando que existen algunos problemas de conectividad, aquí debemos contemplar que; en una AppWeb formal debemos incluir en lugar del mensaje simple un mensaje estilizado o una pagina de error diseñada para la muerte del proceso.


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Por último, fuera del bloque ELSE, utilizaremos el método die( );, para terminar cualquier tipo de conectividad con el servidor. Y justo fuera del Catch, eliminamos los datos de conexión. En forma de resumen, recordemos que este archivo index.php, solo permite conectarse al Servidor y evaluar si la Base de Datos existe, si es así, lanzará la página de login.html, en caso de no existir la Base de Datos, lanzará la primer pagina del instalador, llamada Install_1.php, la cual tiene la siguiente interfaz gráfica de usuario.

Después de una perorata, típica de programador, de este simple instalador continuemos, tengo dos botones en donde podre hacer click, me interesa Instalar. Nos encontramos ahora en esta interfaz ya que, no existe base de datos creada, en nuestro caso CoffeeDrops. El código de install_1.php se muestra a continuación en forma de imagen, excepto el código CSS.

SQL En la práctica

20


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

El botón instalar solo lanza la apertura de install_2.php, el cual permite ejecutar la instrucción SQL para crear la Base de Datos CoffeeDrops. Asi que vamos a verlo.

Como puedes ver, lo único que contiene, a diferencia de install_1.php, es el DIV carbonForm y un fragmento de código embebido de php, el cual solo manad abrir e interpretar el archivo creacion.php, el cual se encontrará en una carpeta llamada php, misma que crearemos al interior del folder llamado instalacion. Entonces, vamos a crear un nuevo archivo llamado creacion,php, y lo almacenamos en el folder antes descrito.

Nuevamente usaremos un bloque Try - Catch, para hacer la conexión al servidor por medio de PDO y despues realizaremos la consulta SQL, para crear la base de datos CoffeeDrops.

21

Práctica 1

Como podrás ver en la imagen de la pagina siguiente, definimos las variables de conexión al servidor, con el valor mysql, en el nombre de la base de datos, ya que necesitamos conectarnos al server para crear la base de datos CoffeeDrops.


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

En este punto, linea 10, la conexión al servidor ya se realizó, y dicha conexión esta activa en $con, por esta razón, usamos query( ), con nuestra variable de conexión y el código que ya conocemos para crear la base de datos. El resto son solo mensajes embebidos de HTML-CSS, para indicar que la base de datos ya fue creada, por ultimo usamos nuevamente header( ); pero con un pequeño cambio, no solo lanzaremos una pagina, sino que lo haremos con un tiempo de 3 segundos, en este caso lanzaré a install3.php, que permitirá crear las tablas los datos por defecto que deberá de contener nuestro sistema de bases de datos. Pero en este punto será suficiente, para probar que funciona y crea la base de datos CoffeDrops, en caso de existir nos mandara a log_in.html, así que por último crearé dicho archivo.

SQL En la práctica

22


BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Listo, en este punto ya creamos una aplicación de escritorio y una web, que permiten conectarse al Servidor de MariaDb / MySQL y crear una base de datos, no existente, algo así como un instalador.

23

Práctica 1

Puedes contactarme a ribugonzalez@gmail.com, si tienes alguna duda con el documento.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.