Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 21

SEMANA 8 – PROGRAMACIÓN

PROGRAMACIÓN

SEMANA 8
Bases de datos en PHP

Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
IACCemitir, difundir, poner a disposición del público ni
permitido copiar, reproducir, reeditar, descargar, publicar,
utilizar los contenidos para fines comerciales de ninguna clase. 1
SEMANA 8 – PROGRAMACIÓN

APRENDIZAJE ESPERADO
• Programar interacción con base de datos
y tablas utilizando MySQL y PHP.

IACC
2
SEMANA 8 – PROGRAMACIÓN

APRENDIZAJE ESPERADO ................................................................................................................ 2


INTRODUCCIÓN.............................................................................................................................. 4
1. BASES DE DATOS EN PHP ........................................................................................................ 5
1.1 INTRODUCCIÓN A LAS BASES DE DATOS EN PHP Y CONCEPTUALIZACIÓN SQL ................. 6
1.1.1 SQL ......................................................................................................................... 7
1.1.2 MySQL: ................................................................................................................... 8
1.1.3 PHP Y MySQL........................................................................................................... 9
1.2 FUNCIONES PARA ACCEDER A SERVIDOR DE BASE DE DATOS MySQL .............................. 9
1.2.1 CREACIÓN DE BASE DE DATOS ............................................................................... 10
1.2.2 SELECCIÓN DE UNA BASE DE DATOS EN MYSQL ..................................................... 11
1.2.3 CREACIÓN Y BORRADO DE TABLAS EN MYSQL ....................................................... 12
1.2.4 INSERCIÓN Y BORRADO DE REGISTROS EN MYSQL................................................. 13
1.2.5 ACTUALIZACIÓN DE INFORMACIÓN DE UN REGISTRO EXISTENTE .......................... 14
1.3 CONSULTAS EN MySQL Y MySQL II ................................................................................ 14
COMENTARIO FINAL..................................................................................................................... 19
REFERENCIAS ............................................................................................................................... 20

IACC
3
SEMANA 8 – PROGRAMACIÓN

INTRODUCCIÓN
Al utilizar bases de datos combinadas con el
lenguaje de programación PHP se generan
sistemas informáticos dinámicos que tienen la
capacidad de interactuar con el usuario y,
además, guardar la información para que
pueda ser consultada y gestionada en todo
momento.

Con los datos almacenados es posible realizar


la gestión de los mismos, controlarlos,
actualizarlos, etc., con el objetivo de ayudar a
los procesos de toma de decisiones de cada
organización.

Durante esta semana se estudiarán los


conceptos asociados a la creación de tablas y
bases de datos, para posteriormente definir
conceptos y estructuras que permitirán la
realización de consultas sobre las bases de
datos específicamente bajo SQL y MySQL.

Medir el progreso del desarrollo de software por líneas de código es como medir el progreso de la
construcción de un avión por su peso.

Bill Gates

IACC
4
SEMANA 8 – PROGRAMACIÓN

1. BASES DE DATOS EN PHP


Una base de datos representa el núcleo de una aplicación web, ya que son las que incorporan a PHP
dentro de su estructura, y su función es la de almacenar información para que esté disponible al
usuario en todo momento que sea requerida. De este modo, se define que una base de datos es un
archivador electrónico que almacena información de manera organizada para que pueda
encontrarse cuando sea necesario.

Una base de datos puede tener una estructura simple. Por ejemplo, una base de datos que contenga
los títulos de todos los libros que se tiene en una biblioteca o bien, una más compleja, como la base
de datos de un sitio web que contiene toda su información.

La información que se almacena en una base de datos proviene desde muchas fuentes. Por ejemplo,
el catálogo en línea de una compañía requiere una base de datos para almacenar información sobre
todos los productos de la compañía. Un sitio web de membresía requiere una base de datos para
almacenar información sobre los miembros. Un sitio web de empleo requiere una base de datos (o
quizás dos bases de datos) para almacenar información sobre ofertas de trabajo e información de
los currículos. La información que planea almacenar podría ser similar a la información almacenada
por los sitios web en Internet, o información exclusiva de su aplicación.

• Las bases de datos son el mejor método para almacenar de datos.


Desde las grandes aplicaciones multiusuario, hasta los teléfonos
móviles y las agendas electrónicas utilizan bases de datos para la
seguridad de los datos y facilitar la labor, tanto de usuarios como
de los programadores que las desarrollaron.

IACC
5
SEMANA 8 – PROGRAMACIÓN

1.1 INTRODUCCIÓN A LAS BASES DE DATOS EN PHP Y


CONCEPTUALIZACIÓN SQL
¿Qué es una aplicación de base de datos web? Se les puede definir como un grupo de programas
que están diseñados para ser utilizados por algún usuario. Si el usuario interactúa con la aplicación
a través de un navegador web, y si la aplicación web requiere almacenamiento a largo plazo de
información utilizando una base de datos, se trata de una aplicación de base de datos web.

Una base de datos web está diseñada para ayudar a un usuario a realizar una tarea. En ese sentido,
puede tratarse de una aplicación simple que muestra información en una ventana del navegador
(por ejemplo, las vacantes de trabajo cuando el usuario selecciona un título) o un programa
complicado con funcionalidad extendida (por ejemplo, la solicitud de registro en alguna página
web).

En gran medida, la base de datos es la memoria a largo plazo de su aplicación de base de datos web.
Su aplicación radica en que permite la interacción del usuario con la información dentro de la base
de datos. Los programas crean la pantalla que el usuario ve en la ventana del navegador, hacen que
su aplicación sea interactiva al aceptar y procesar la información que el usuario escribe en la ventana
del navegador y almacenan información en la base de datos.

Las páginas web creadas solo con HTML son estáticas, lo que significa que el usuario no puede
interactuar con el sitio. Las páginas web dinámicas, por otro lado, permiten al usuario interactuar
con ellas. De este modo, diferentes usuarios pueden ver diferentes páginas web y estas páginas
pueden requerir el manejo y almacenamiento de datos lo que a través de formularios o recursos
web le dan dinamismo a la aplicación.

Por ejemplo, un usuario que mira el catálogo de productos en línea de una tienda de muebles puede
optar por ver información sobre sofás, mientras que otro usuario puede optar por ver información
sobre las mesas de café.

Cabe señalar que, para la creación de páginas web dinámicas, se debe usar otro idioma además de
HTML. Un lenguaje ampliamente utilizado para dinamizar páginas web es JavaScript. Es útil para
varios propósitos, como mouse-over (uso del mouse sobre el texto) o para aceptar y validar la
información que los usuarios escriben en un formulario web. Sin embargo, no es útil para interactuar
con una base de datos ya que a nivel de base de datos se requiere de un manejador de base de
datos y de un lenguaje de programación que facilite la integración entre el código HTML y esta. En
este sentido no se utilizaría JavaScript para mover la información del formulario web a una base de
datos. Sin embargo, PHP es un lenguaje especialmente adecuado para interactuar con bases de
datos, ya que puede aceptar y validar la información que los usuarios escriben en un formulario web
y también puede mover la información a una base de datos.

IACC
6
SEMANA 8 – PROGRAMACIÓN

Otros conceptos que se deben definir al hablar de bases de datos, se refiere a los principales
lenguajes o manejadores, es decir, a SQL y MySQL.

1.1.1 SQL
SQL (Structured Query Language, o Lenguaje de Consulta Estructurada) se puede definir como el
lenguaje estándar ANSI/ISO de creación, inserción, interacción y control de bases de datos
relacionales. Es un lenguaje declarativo, en donde solo hay que indicar qué se quiere realizar. En
comparación a los lenguajes procedimentales, es necesario ser específico de cómo hay que hacer
cualquier acción sobre la base de datos. SQL es parecido al lenguaje natural y precisamente, se
parece mucho al inglés, siendo bastante expresivo. Por ello, como lenguaje estándar, con él se
pueden acceder los sistemas relacionales.

Un modelo relacional tiene una estructura de almacenamiento de los datos a través de relaciones.
En la siguiente imagen se muestra un ejemplo de este modelo.

Imagen 1. Ejemplo del modelo relacional en base de datos.


Fuente: Elaboración propia en base a https://bit.ly/2DDHQk2

A la base de datos se le asigna un nombre, y dentro de esta se definen tablas, cada tabla posee a un
conjunto de atributos. Al trabajar con SQL, a las relaciones se les denomina tablas en lugar de
relaciones, de columnas en lugar de atributos y de filas en lugar de datos secuenciales (o tuplas). A
pesar de que la nomenclatura utilizada en SQL sea diferente, la conceptualización de estos son los
mismos.

IACC
7
SEMANA 8 – PROGRAMACIÓN

1.1.2 MySQL:
Oracle, proveedor de MySQL, define esta herramienta como un sistema para administración de
bases de datos relacional (RDBMS). Las bases de datos permiten almacenar datos, buscar
información en ellas, ordenar y recuperar sus datos de forma rápida y sólida. Su servidor controla el
acceso a los datos para el uso simultáneo de varios usuarios, proporcionar acceso a los datos que
contenga y asegurar solo tengan acceso los usuarios con autorización. Por lo cual, MySQL es un
servidor multiusuario y de subprocesamiento múltiple. Utiliza SQL, el lenguaje más usado en el
mundo para la consulta de bases de datos, este trabaja con una licencia de código abierto, y también
existen licencias comerciales.

MySQL es rápido y fácil de usar, y por ello se usa en muchos sitios web. La velocidad fue el foco
principal de los desarrolladores desde el principio, y en pos de eso, tomaron la decisión de ofrecer
menos funciones que sus principales competidores (como Oracle y Sybase). Sin embargo, a pesar
de que MySQL tiene menos funciones que sus competidores comerciales, posee todas las
características que necesita la mayoría de los desarrolladores de bases de datos.

Las bases de datos relacionales se componen de relaciones, conocidas de manera más común como
tablas. Para familiarizarse con estos elementos, se deben conocer algunos conceptos clave, tales
como:

• Tablas: Se refiere a una estructura para almacenar datos. Las tablas tienen un nombre, y
además se componen de columnas y de filas, que contienen información específica.
• Columnas: Cada columna debe tener un nombre único y cada una de estas, lleva anudado
un tipo de datos.
• Filas: Se trata de los valores asignados a cada registro. Todos tienen los mismos atributos
debido al formato tabular.
• Valores: Cada fila se compone de valores individuales que se enlazan con las columnas. Cada
valor contiene el tipo de dato especificado por su columna.

• Revisa el documento “Base de Datos MySQL”, disponible en los


Recursos Adicionales de la Semana. En este capítulo se muestra
la importancia de MySQL, sus principales características y su
funcionamiento.

IACC
8
SEMANA 8 – PROGRAMACIÓN

1.1.3 PHP Y MySQL


MySQL y PHP se usan frecuentemente juntos, por lo que a menudo se les llama “el dúo dinámico”.
MySQL proporciona la parte de la base de datos, y PHP proporciona la parte de la aplicación de su
aplicación de base de datos web. Entre las ventajas de utilizar MySQL junto a PHP están:

• Ambos son de software libre.


• Ambos están orientados a la web. Fueron diseñados para su uso en sitios web, teniendo un
conjunto de características enfocadas en la construcción de sitios web dinámicos.
• Son fáciles de usar y fueron diseñados para obtener un sitio web rápidamente.
• Son rápidos, y juntos proporcionan una de las formas más rápidas de entregar páginas web
dinámicas a los usuarios.
• Son personalizables. Ambos son de código abierto, lo que permite a los programadores
modificar el software PHP y MySQL para que se ajusten a sus propios requisitos específicos,
debido a la comunicación que hay entre estos lenguajes.

1.2 FUNCIONES PARA ACCEDER A SERVIDOR DE BASE DE DATOS


MySQL
Toda la interacción con la base de datos se logra al pasar mensajes al servidor MySQL. Se puede
enviar mensajes al servidor MySQL de varias maneras, pero el software PHP tiene declaraciones
específicas que utiliza para enviar instrucciones al servidor MySQL.

El servidor MySQL debe ser capaz de comprender las instrucciones que se envían. La comunicación
con el servidor se basa principalmente en SQL. El servidor MySQL entiende SQL, pero PHP no
entiende SQL, lo que no es necesario, ya que PHP establece una conexión con el servidor MySQL y
envía el mensaje SQL a través de la conexión. El servidor MySQL interpreta el mensaje SQL y sigue
las instrucciones. El servidor MySQL envía un mensaje de retorno, indicando su estado y lo que hizo
(o reportando un error si no pudo entender o seguir las instrucciones).

IACC
9
SEMANA 8 – PROGRAMACIÓN

Imagen 2. Relación entre PHP y MySQL.


Fuente: https://bit.ly/2TmOcbY

Para conectar con el servidor, hay que asegurarse que está funcionando y de que permite
conexiones, sean estas locales o remotas. Además, se debe contar con la autorización necesaria
para la conexión.

A continuación, se describen las principales funciones para el manejo de base de datos.

1.2.1 CREACIÓN DE BASE DE DATOS


El sistema de base de datos de MySQL admite una gran cantidad de bases de datos diferentes. Por
regla general, Se debería utilizar una base de datos por cada aplicación. Para crear una base de
datos, primero se debe escribir la siguiente secuencia de instrucciones en el símbolo de comandos
de MySQL:

mysql> create database nombre_bd;

IACC
10
SEMANA 8 – PROGRAMACIÓN

Se debe sustituir el parámetro nombre_bd por el nombre de la base de datos que se desee. Luego
de eso, la base de datos está creada, debiendo aparecer una secuencia que indica que se ha
creado correctamente.

Para borrar una base de datos, se utiliza la sentencia “drop database”:

mysql> drop database nombre_bd;

1.2.2 SELECCIÓN DE UNA BASE DE DATOS EN MYSQL


Para seleccionar una base de datos, se debe consultar sobre la base de datos que actualmente está
en uso. Esta acción se realiza de la siguiente manera:

mysql> select database();

Lo anterior, arrojaría -en un principio- como resultado que el campo está vacío porque no se estaría
haciendo uso de base de datos alguna. Para observar las bases de datos existentes en el sistema, se
realiza la siguiente consulta:

mysql> show databases;


+-------------------+
| Database |
+-------------------+
| database1 |
| database2 |
| database3 |
+-------------------+

IACC
11
SEMANA 8 – PROGRAMACIÓN

De este modo, MySQL mostraría el listado de las bases de datos existentes en el servidor. Para
trabajar con una de ellas, se debe abrir de la siguiente forma:

mysql> use database1;

1.2.3 CREACIÓN Y BORRADO DE TABLAS EN MYSQL


Teniendo la conexión con el servidor MySQL y luego de abrir una nueva base de datos, se puede
crear tablas en ella. Por ejemplo, se tiene la siguiente forma:

mysql> create table personal(


-> nombre char(30),
-> apellido char(40),
-> dirección char(15)
-> );

La sentencia “create table” genera una nueva tabla en la base de datos en uso. Esta tiene tres
columnas (nombre, apellido y dirección), cada una es de tipo carácter y su longitud. Cabe destacar
que los nombres de las columnas admiten caracteres acentuados.

IACC
12
SEMANA 8 – PROGRAMACIÓN

• En el siguiente enlace puede revisar un ejemplo de creación de una


base de datos en MySQL:

https://bit.ly/2QC4LPo

Las tablas pueden borrarse con la sentencia “drop table”, como se muestra a continuación:

mysql> drop table personal;

1.2.4 INSERCIÓN Y BORRADO DE REGISTROS EN MYSQL


La forma más simple de insertar un registro en MySQL es por medio de la sentencia INSERT. Aquí se
debe indicar la tabla a la que va a añadir un registro, y los valores para cada columna. Cabe destacar
que las columnas con tipo cadena o fechas deben estar entre comillas, mientras que para las que
sean de tipo numéricas no son necesarias las comillas, aunque pueden estar opcionalmente entre
ellas.

mysql> INSERT INTO nombre_tabla VALUES ('registro1','Fecha');

IACC
13
SEMANA 8 – PROGRAMACIÓN

Para eliminar un registro se usa la sentencia DELETE:

mysql> DELETE FROM registro1;

1.2.5 ACTUALIZACIÓN DE INFORMACIÓN DE UN REGISTRO EXISTENTE


Para actualizar la información de un registro existente se usa la sentencia UPDATE. A partir
de ella, los cambios se realizan a las filas y a las columnas que se especifique, asignando los
valores a través de la instrucción SET. Por ejemplo:

mysql> UPDATE nombre_tabla SET


registro1=registro1*10, Fecha=”Fecha2”;

1.3 CONSULTAS EN MySQL Y MySQL II


Antes de conocer los principales comandos para realizar consultas en MYSQL, es importante
formular preguntas pertinentes al respecto. Algunos ejemplos podrían ser:

• ¿Qué datos me están pidiendo en la consulta?


• ¿Dónde están almacenados los datos que nos piden dentro de la base de datos?
• ¿Qué requisitos deben tener los datos que se mostrarán?

Para responder lo anterior, observe el siguiente ejemplo:

IACC
14
SEMANA 8 – PROGRAMACIÓN

Dada la siguiente tabla, determine qué trabajadores ganan un salario mayor a 1350.

ID_EMPLEADO NOMBRE APELLIDOS F_NACIMIENTO SEXO CARGO SALARIO


1 Carlos Jiménez Clarín 1985-05-03 H Mozo 1500
2 Elena Rubio Cuestas 1978-09-25 M Secretaria 1300
3 José Calvo Sisman 1990-11-12 H Mozo 1400
4 Margarita Rodríguez Garcés 1992-05-16 M Secretaria 1325.5
Tabla 1. EMPLEADOS (Ejemplo de Consulta en SQL).
Fuente: Elaboración propia en base a https://bit.ly/2DDHQk2

Para dar respuesta a la solicitud, y siguiendo la formulación de preguntas relacionadas, se debe


considerar:

• ¿Qué datos piden en la consulta? En este caso, el nombre y los apellidos de los trabajadores.
• ¿Dónde están esos datos? Solo se muestra una tabla, entonces, en la tabla de trabajadores
está la información.
• Finalmente, ¿qué requisitos o condiciones deben cumplir los registros de búsqueda? Se
solicita que el sueldo debe ser mayor a 1350.

El Sistema de Gestión de Base de Datos (SGBD) interpreta esta información, con el fin de generar
una respuesta que se ajusta a las condiciones dadas. En este sentido y en lenguaje natural sería algo
así como:

Selecciónar el NOMBRE y los APELLIDOS del archivo EMPLEADOS donde el SALARIO sea mayor a
1350

En SQL se establece una sintaxis que traduce esta misma información, ya que la forma de operar es
parecida. Esta información se obtiene mediante la siguiente consulta:

select NOMBRE , APELLIDOS


from EMPLEADOS
where SALARIO > 1350

IACC
15
SEMANA 8 – PROGRAMACIÓN

• Los campos: NOMBRE, APELLIDOS Y SALARIO deben existir en la tabla EMPLEADOS, ya que
de lo contrario, se generará un error.
• La tabla EMPLEADOS debe existir en la base de datos.

Al ejecutar el código anterior se debe mostrar en pantalla:

NOMBRE APELLIDOS
Carlos Jiménez Clarín
José Calvo Sisman
Tabla 2. Visualización de Consulta en SQL.
Fuente: Elaboración propia en base a https://bit.ly/2DDHQk2

• Obsérvese que en la consulta anterior, los nombres de los objetos


de base de datos (tabla y campos) se escriben en mayúsculas,
mientras que para las palabras reservadas de la consulta SQL
(select, from, where) se hacen en minúsculas. Ello tiene un
propósito únicamente estético, con intención de hacer el código
más ordenado y legible. Esto también va a depender del SGBD y/o
del sistema operativo (Windows, Linux, ...) en donde trabaje el
SGBD, el que puede ser sensible a mayúsculas y minúsculas.

En general y luego de observar este ejemplo, se puede concluir que una consulta en MySQL cuenta
con una estructura definida:

select CAMPOS(separados por comas)


from TABLA
where CONDICION

IACC
16
SEMANA 8 – PROGRAMACIÓN

En donde los CAMPOS y la TABLA deben estar previamente creados en la base de datos y la
CONDICIÓN puede estar compuesta de operadores lógicos, matemáticos y relacionales.

• Utilice el siguiente entorno de prueba para cambiar la sentencia


en la tabla EMPLEADOS. Pruebe además el comando
“describe EMPLEADOS” y podrá conocer todos los campos de la
tabla:

https://bit.ly/2TfrNx4

• Revisa el documento “Consultas en SQL”, disponible en los


recursos adicionales de la semana. Aquí podrás conocer los
principales elementos para realizar consultas en SQL.

• En este enlace, puedes ver algunos ejemplos de consultas sobre


datos de una base de datos en MySQL:

https://bit.ly/2n2UZbw

IACC
17
SEMANA 8 – PROGRAMACIÓN

• Revisa el documento “Ejemplo en MySQL”, disponible en los


recursos adicionales de la semana. Aquí podrás ver en una base de
dato la implementación de consultas con los comandos vistos en
la unidad.

IACC
18
SEMANA 8 – PROGRAMACIÓN

COMENTARIO FINAL
Manejar bases de datos en SQL o MySQL es una competencia necesaria en el mundo de la
computación y la informática en la actualidad, no solo en el ámbito de PHP, sino a partir de cualquier
lenguaje, ya que estos requieren la conexión con una base de datos para la gestión de los mismos.

Al diseñar o programar sistema web, el programador se verá en la necesidad de trabajar con bases
de datos, de manera casi imprescindible. Las bases de datos le permitirán realizar consultas,
almacenar datos, eliminarlos y realizar todo el sistema de gestión.

Finalmente, en esta unidad, se dieron a conocer los comandos básicos para crear, modificar, insertar
registros y realizar consultas dentro de una colección de datos, con la finalidad de adquirir destrezas
en los comandos, cuestión que permite lograr esta interacción convirtiendo una aplicación web en
un sistema web informático dinámico.

IACC
19
SEMANA 8 – PROGRAMACIÓN

REFERENCIAS
The PHP Group. (2001 – 2018). PHP. Consultado en www.php.net

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:

IACC (2018). Bases de datos en PHP. Programación. Semana 8.

IACC
20
SEMANA 8 – PROGRAMACIÓN

IACC
21

También podría gustarte