|
Bases
de Datos
Hasta ahora hemos visto la funciones
básicas de PHP, lo que viene a continuación ya es sobre la forma
en como podemos acceder a bases de datos, veremos como acceder
a ellas en dos sistemas de bases de datos diferentes, los cuales
son MySQL Server y Microsoft Access.
El primer sistema que veremos es
MySQL Server, pero antes de ver código PHP, aprenderemos un
poco de este sistema, para los ejemplos en PHP ya va a ser necesario
que tengamos una base de datos creada por lo tanto pondremos
atención en las formas en que estas se crean.
Qué
es MySQL
Administrador de
Base de Datos
Una base de datos es un conjunto
de datos estructurados. Esto podría ser cualquier cosa, desde
una simple lista de compras hasta una galería de pinturas o
la gran cantidad de información que se maneja en una corporación.
Para agregar, acceder y procesar los datos almacenados en una
base de datos computacional, se necesita un sistema administrador
de base de datos tal como MySQL. Además los computadores son
muy buenos manejando grandes cantidades de datos, el administrador
de base de datos juega un rol central en la computación, ya
sea como utilidad autónoma o parte de otra aplicación.
Sistema administrador
de base de datos relacionales
Una base de datos relacional almacena
datos en tablas separadas, más bien colocando todos los datos
en un gran almacén. Esto agrega velocidad y flexibilidad. Las
tablas son enlazadas por relaciones definidas haciendo posible
combinar datos desde varias tablas solicitadas. El SQL forma
parte de MySQL, conocido como Lenguaje de Consultas Estructurado,
es el lenguaje estandarizado más común usado para acceder base
de datos.
Software de Fuente
Abierta
Fuente abierta significa que es
posible que pueda ser usado y modificado por cualquiera. Alguien
puede bajar MySQL desde Internet y usar éste sin tener que pagar
nada. Alguien puede estudiar el código fuente y cambiarlo de
acuerdo a sus necesidades. MySQL usa el GPL de la GNU, para
definir lo que se puede hacer con el software en diferentes
situaciones.
Uso de MySQL
MySQL es muy rápido, seguro y fácil
de usar. MySQL también ha desarrollado un conjunto de características
muy prácticas, en estrecha cooperación con otros usuarios. MySQL
fue desarrollado para manejar grandes bases de datos mucho más
rápido que las soluciones existentes y ha sido usado exitosamente
en ambientes de producción con altas demandas, por varios años.
Aunque está bajo un desarrollo constante, MySQL siempre ofrece
conjunto de funciones muy poderoso y eficiente. La conectividad,
velocidad y seguridad hace de MySQL una suite poderosa para
acceder a bases de datos en Internet.
Características Técnicas
de MySQL
MySQL es un sistema Cliente/Servidor
que consta de un servidor SQL multi-hilo que soporta diferentes
backends, variados programas cliente y de librerías, administrador
de herramientas y un programa de interface.
MySQL contribución para muchos
de los software disponibles
Es mucho más probable que se encuentre
que diversas aplicaciones ya soportan MySQL. Los valores centrales
de MySQL son :
- La mejor y más usada base
de datos en el mundo.
- Disponible y Accesible
para todos
- Fácil de usar
- Se está perfeccionando
continuamente mientras permanece rápida y segura.
- Divertida para usar y perfeccionar.
- Libre de molestias.
Características
principales de MySQL
A continuación se describen algunas
de las características más importantes de MySQL:
- Escrito en C y C++, testado
con GCC 2.7.2.1. Usa GNU autoconf para portabilidad.
- Clientes C, C++, Eiffel,PHP,Python,JAVA, Perl, TCL.
- Multiproceso, es decir
puede usar varias CPU si éstas están disponibles.
- Puede trabajar en distintas
plataformas y S.O. distintos.
- Sistema de contraseñas
y privilegios muy flexible y segura.
- Todas la palabras de paso
viajan encriptadas en la red.
- Registros de longitud fija
y variable.
- 16 índices por tabla, cada
índice puede estar compuesto de 1 a 15 columnas o partes de
ellas con una longitud máxima de 127 bytes.
- Todas las columnas pueden
tener valores por defecto.
- Utilidad Isamchk
para chequear, optimizar y reparar tablas.
- Todos los datos están grabados
en formato ISO8859_1.
- Los clientes usan TCP o
UNIX Socket para conectarse al servidor.
- Todos los comandos tienen
-help o -? Para las ayudas.
- Soporta diversos tipos
de columnas como enteros de 1, 2, 3, 4, y 8 bytes, coma flotante,
doble precisión, carácter, fechas, enumerados, etc.
- ODBC para Windows 95 (con
fuentes), se puede utilizar ACCESS para conectar con el servidor.
- Muy rápida usando joins,
optimizada para un barrido multi-joins.
- Todas las funciones y operadores
soportan en el SELECT y WHERE como partes de
consultas. Ejemplo:
mysql> SELECT CONCAT(nombre," ",apellido) FROM nombre_tabla
WHERE ingreso >10000 AND edad >30
- Todas las clausulas SQL
soportan GROUP BY y ORDER BY.
Instalando MySQL Server
Bien, ya conocemos que es MySQL,
ahora procedamos a instalarlo en nuestro servidor para poder
realizar los programas PHP con bases de datos MySQL.
·
Al iniciar el instalador veremos la pantalla
de "preparándose para instalar", en esta solo hay que esperar
que termine el 100%.
·
Después tenemos la pantalla de bienvenida, solo
hay que dar clic en Next.
·
La siguiente interfaz nos muestra la información
de la versión de MySQL que estamos instalando.
·
Ahora tendremos la ventana de donde queremos
instalarlo, para evitar complicaciones con archivos de configuración,
presionemos Next y se instalará en C:\mysql.
·
Hay que elegir el tipo de instalación, elijamos
Typical.
·
Esperamos un poco a que se instale.
·
Cuando termine hay que dar clic en Finish.
Después de estos sencillos pasos
ya tenemos instalado MySQL Server, ahora lo que sigue es iniciarlo,
debemos ir a la siguiente ruta en nuestro disco duro C:\mysql\bin\
y ejecutar el programa winmysqladmin.exe.
·
Cuando este en ejecución WinMySQLadmin en su
primera ocasión pedirá un nombre de usuario y contraseña para
el administrador del sistema de base de datos.
·
Ahora si ya lo tendremos ejecutándose siempre
que el sistema inicie, y estará en la barra de inicio del sistema
con un icono de un semáforo, hay que darle clic en el icono
para que nos muestre sus opciones.
·
Al darle clic en Show Me aparecerá el administrador
de MySQL, desde ahí podemos ver todas los componentes del sistema
de bases de datos.
Con esto es suficiente sobre la
instalación de MySQL Server, ahora veamos como crear bases de
datos en el.
Conectándose
y desconectándose al servidor MySQL
Para conectarse al servidor, generalmente
se necesita proveer a MySQL un nombre de usuario, y un
password. Si el servidor corre en una máquina distinta a la
que se está utilizando se debe especificar el nombre del host
(máquina). Cuando se conocen todos estos parámetros la conexión
se realiza de la siguiente manera:
shell> mysql -h host -u user -p
Enter password:********* Si la conexión
se realizó con éxito, mysql despliega el siguiente
mensaje:
Welcome to the MySQL monitor. Commands end with; or\g.
Your MySQL connection id is 459 to server version: 3.22.20a-log
Type "help" for help.
mysql>
El
prompt indica que mysql está listo para recibir los
comandos que ingrese el usuario. Algunas instalaciones de MySQL
admiten usuarios anonymous (sin nombre) cuando el servidor
corre en el host local. En este caso, se debe invocar a el servidor
mysql sin ninguna opción:
shell>mysql Una vez que se
ha realizado la conexión con éxito, para desconectarse al servidor
en cualquiera de los dos casos anteriores se debe escribir QUIT
o control-D.
Creando
y usando una base de datos
Visualización de las bases
de datos existentes en el servidor MySQL
Antes de crear una base de datos,
se debe conocer que base de datos existen actualmente en el
servidor, para ello se utiliza el comando SHOW, de la siguiente
manera:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| tmp | +----------+
Esta lista probablemente no es
igual en todas las máquinas, pero las bases de datos mysql
y test están siempre entre ellas. La base de datos mysql
se requiere porque en ella se describe la información de los
privilegios de acceso a los usuarios. La base de datos test
proporciona el espacio de trabajo para los usuarios.
Selección de una base de
datos
Para seleccionar o acceder a una
base de datos determinada se utiliza el comando USE:
mysql> USE test Database changed Una vez, que
se ha realizado la conexión con éxito se puede comenzar a trabajar
con la base de datos, pero siempre y cuando se tengan los permisos
adecuados. Si no se tienen los permisos el administrador debe
darle los permisos al usuario para poder trabajar, esto se realiza
con la ejecución del siguiente comando:
mysql> GRANT ALL ON nombre_database.* TO nombre_usuario;
Creación de una base de datos
Para crear una base de datos se
debe tener permiso para poder crear base de datos en el servidor
MySQL , si se tiene el permiso entonces la sentencia a seguir
es:
mysql> CREATE DATABASE nombre_database;
Bajo Unix, los
nombres de las bases de datos y de las tablas son sensibles,
esto quiere decir que se hace diferencia entre minúsculas y
mayúsculas, así es que para referirse a una base de datos determinada
hay que llamarla tal como se le nombro cuando fue creada.
Creación de tablas
Para crear las tablas que va a
contener la base de datos, se realiza de la siguiente forma:
mysql> CREATE TABLE nombre_tabla(campo_1 tipo(tamaño), campo_2 tipo(tamaño),...,campo_n tipo(tamaño));
El campo
indica el nombre de la columna y tipo(tamaño) específica
el tipo de dato y el espacio que se va a conservar para cada
dato almacenado en esa columna. Ejemplo: codigo int(5), nombre
char(25), fecha date, etc.. Cuando se trata de fechas no se
específica el tamaño, puesto que ya está determinado. Para visualizar
las tablas que tiene una base de datos se usa el mismo comando
utilizado para ver las bases de datos, pero con la diferencia
de que en vez de database se coloca tables, es
decir:
mysql> SHOW TABLES; Para verificar
que la tabla ha sido creada de la forma indicada, se usa el
comando DESCRIBE. Ejemplo: Se va a crear una tabla llamada clientes,
de la siguiente forma:
mysql> CREATE TABLE clientes( rut char(8),nombre char(25), direccion char(50), telefono int(10));
mysql> DESCRIBE clientes;
+----------+-----------+------+-----+--------+-------+ | Field | Type | Null | Key | Default| Extra |
+----------+-----------+------+-----+--------+-------+ | rut | char(12) | YES | | NULL | |
| nombre | char(25) | YES | | NULL | |
| direccion| char(50) | YES | | NULL | | | telefono | int(10) | YES | | NULL | |
+----------+-----------+------+-----+--------+-------+ Esto
es muy útil cuando se olvida el nombre o tipo de una columna.
El Field indica el nombre de la columna, Type
es el tipo de dato que acepta esa columna, Null indica
si la columna puede contener valores NULL, Key indica
la clave por la cual la columna se va a indexar y Default
específica el valor por defecto que tiene la columna.
Ingreso de Datos a las tablas
Para ingresar información a una
tabla se puede hacer básicamente de dos maneras. La primera
se utiliza cuando se tiene mucha información a ingresar de una
sola vez, entonces es conveniente almacenar esta información
en un archivo de texto, es decir, .txt. Una vez que
se tiene este archivo, se procede de la siguiente forma:
mysql> LOAD DATA LOCAL INFILE "nombre_archivo.txt" INTO TABLE nombre_tabla;
Para
el caso que se desee ingresar un solo registro, entonces la
sentencia a seguir es:
mysql> INSERT INTO nombre_tabla VALUES (``valor_1'',''valor_2'',...., Los
datos a ingresar se separan por comas y van entre comillas.
Estos datos indican los valores que va a tomar cada una de las
columnas, según el orden en que fueron creadas. En el caso que
se quiera ingresar un valor NULL no es necesario las comillas,
sólo se coloca NULL.
Recuperación de la Información
Para recuperar la información que
está contenida en una tabla, la sentencia general a seguir es:
mysql> SELECT qué_es_lo_que_se_desea_ver FROM nombre_tabla WHERE condiciones_a_satisfacer; Para los casos
en que, se requiera:
- Ver o seleccionar toda
la información de una tabla:
o mysql> SELECT * FROM nombre_tabla;
- Seleccionar filas en particular:
o mysql> SELECT * FROM nombre_tabla WHERE nombre_columna="lo que se desee buscar"
- Seleccionar columnas en
particular:
o mysql> SELECT nombre_columna_1, nombre_columna_n FROM nombre_tabla; Esto es
conveniente cuando no se desea ver toda la fila o registro,
entonces solo se seleccionan aquellas columnas en las que se
esté interesado.
MySQL
Front
Ya vimos como crear bases de datos
y tablas de la manera tradicional de MySQL, pero como podemos
ver es algo complejo, y como ya estamos acostumbrados a interfaces
gráficas (GUI por sus siglas en ingles), les mostraré como crear
bases de datos de una manera completamente visual para no tener
que tocar línea de comandos de MySQL, para esto utilizaremos
el software MySQL Front desarrollado por Ansgar Becker
con correo electrónico chef@anse.de y dirección de su página http://my.anse.de/forum.php en Alemania,
aunque yo personalmente he intentado entrar a esa dirección
y no he podido, pero son los datos que trae el programa, una
corrección de ultimo momento, nuestro amigo Aldo Valdés <avo@mirc.com.mx>
me mandó la dirección correcta de descarga la cual es http://www.anse.de/mysqlfront/.
Veamos como usarlo:
·
La primera vez que lo corremos no presentara
un formulario en blanco y sin forma de poder ingresar datos,
es necesario presionar el botón New, para habilitarlo.
·
Una vez presionado New aparecen unos datos ya
predefinidos, lo único que tenemos que cambiar es nuestro usuario
y contraseña.
·
Al momento de entrar nos mostrará esta interfaz.
·
Para crear una base de datos nueva, hay que ir
al menú Extra y la opción Create Database&
·
Hay que ingresar el nombre de la base de datos,
podemos crear ya la base que utilizaremos en nuestros ejemplos
de PHP, así que pongámosle de nombre basecurso.
·
Ahora hay que crear una tabla donde almacenaremos
los datos, asi que seleccionamos la nueva base y de nuevo vamos
al menú Extra solo que ahora seleccionamos Create
Table&
·
En la ventana que aparece ponemos el nombre de
la tabla el cual será tablacurso, en esa misma
pantalla crearemos los campos, los cuales serán id
(con propiedades de primario y auto incremento), nombre,
direccion, telefono, email
e imagen (todos de tipo varchar), ya que los agregamos
presionamos Create!
·
Nos mostrará la tabla creada con sus respectivos
campos y propiedades.
·
También si nosotros lo deseamos podemos ingresar
información a la base desde el mismo MySQL Front,
pero este no es el caso.
Ahora que si nosotros deseamos
usar el método de línea de comandos del MySQL la información
de la tabla es esta:
CREATE TABLE tablacurso (
id tinyint(3) unsigned NOT NULL auto_increment,
nombre varchar(30) DEFAULT '0' ,
direccion varchar(30) DEFAULT '0' ,
telefono varchar(30) DEFAULT '0' ,
email varchar(30) DEFAULT '0' ,
imagen varchar(30) DEFAULT '0'
,
PRIMARY KEY (id)
);
Después de tanta información sobre
MySQL ya es tiempo de iniciar a hacer programas PHP para manejo
de bases de datos de MySQL.
|