Base de datos - cursosindustriales.

DreamWeaver
CS5 y CS6
Cursosindustriales. Curso de DreamWeaver CS6 1
DREAMWEAVER CS5.
Base de datos MySQL.
En el anterior capítulo vimos como diseñar una página en PHP y como
configurar el servidor de pruebas XAMPP para poder ejecutar nuestras páginas
en PHP.
PHP es un lenguaje que trabaja del lado del servidor, lo que lo hace ideal para
poder trabajar con páginas dinámicas. Pero voy a aclarar que significa una
página dinámica para que el lector se haga una idea de lo que quiero dar a
entender.
Este curso está redactado, diseñado, compilado y distribuido por
Cursosindustriales.net. El autor del mismo te da derecho a compartirlo,
imprimirlo, usarlo y modificarlo siempre que referencies la procedencia del
curso y que en este caso es de Cursosindustriales.net y su autor Deimos_hack.
Si has conseguido este curso y has tenido que pagar por ello, envíame un
correo a [email protected] y enseguida me pondré en
contacto contigo.
Si quieres ayudar al proyecto Cursosindustriales, haz una donación mediante
PayPal en los puntos autorizados de la Web.
Cursosindustriales. Curso de DreamWeaver CS6 2
Una página dinámica es aquella página creada en lenguaje de servidor (PHP,
ASP, JSP), que permite interactuar con el mismo y hace posible que la página
se pueda actualizar automáticamente solo introduciendo cambios en el
servidor.
Es decir, si por ejemplo tengo una página de noticias y quiero que esas noticias
se actualicen automáticamente (sin tener que acceder al sitio Web y cambiarlo
manualmente), lo que hago es crear una base de datos que se conecte al
servidor y subir el artículo nuevo a la base de datos, la cual está conectada a
mi página Web y la cual es una página dinámica.
En el dibujo superior puedes como el usuario puede cambiar el contenido de la
página Web de dos maneras diferentes.
La primera (A), es modificar directamente el contenido de la página Web a
través del servidor (server), generando una instrucción por cada elemento a
cambiar.
La otra (B), es a través de una base de datos que se conecte al servidor y que
se realicen los cambios automáticamente sin que el usuario tenga que subir el
contenido específicamente al servidor; es decir, modificar en la base de datos y
que el servidor actualice el contenido automáticamente.
Para crear páginas dinámicas con DreamWeaver CS5 vamos a utilizar el
lenguaje de programación PHP, pero podríamos usar otro lenguaje como por
ejemplo Java, o ASP.NET para dicho fin.
Como bases de datos vamos a utilizar MySQL que viene integrado en nuestra
solución XAMPP que ya nos descargamos anteriormente.
Cursosindustriales. Curso de DreamWeaver CS6 3
PHPMYADMIN
A continuación vamos a entrar en la interfaz de MySQL de nuestro servidor
Apache XAMPP.
¿Recuerdas la página de inicio? (localhost en la URL del navegador); te
muestra la página principal del servidor local.
En la ventana de la izquierda en la parte de abajo, tienes las herramientas que
tiene instaladas el servidor local.
Para abrir la herramienta del servidor de base de datos MySQL, debes de
pulsar sobre el enlace de phpMyAdmin.
Ten en cuenta que ésta herramienta es una página Web que se conecta al
servidor MySQL que tiene instalado el servidor local Apache XAMPP, por lo
que deberás de habilitar el acceso a phpMyAdmin como aparece en la
imagen:
Cursosindustriales. Curso de DreamWeaver CS6 4
Ahora ya podemos acceder al servidor de base de datos MySQL desde el
menú de Localhost o desde el botón Admin del acceso directo del panel de
control del servidor local.
Cursosindustriales. Curso de DreamWeaver CS6 5
Podemos diferenciar de ésta ventana tres partes principales:
El menú de bases de datos.
Es la parte del programa en la cual se van a guardar las direcciones de las
bases de datos que has creado y guardado en tu proyecto.
La página principal de la aplicación.
En la cual se muestran los resultados SQL y las operaciones que permitirán
manipular la base de datos MySQL.
La información del servidor de base de datos.
En la que se muestra la información de la base de datos, como el protocolo, el
usuario, la versión, etc.
Lo que vamos a hacer en éste capítulo de DreamWeaver CS5 es crear una
base de datos para después acceder a ella desde una página PHP creada por
nuestro editor.
Pero antes vamos a definir ciertos conceptos y hablaremos sobre las bases de
datos.
BASES DE DATOS.
Una base de datos es un origen de datos, que está formado por archivos
enlazados entre sí y relacionados unos con otros mediante identificadores.
Existen dos tipos principales de bases de datos:


Base relacional.
Servidor de datos.
La primera está diseñada para que el usuario con ciertos conocimientos, pueda
crear y mantener una estructura de información.
Algunos ejemplos de bases relacionales son Microsoft Access y Oracle.
En la segunda, una aplicación se encarga de manipular la información de los
datos físicamente, almacenándolos en archivos y recuperándolos en caso
necesario.
El ejemplo más claro de un servidor de datos es phpMyAdmin.
Cursosindustriales. Curso de DreamWeaver CS6 6
Arquitectura Cliente - Servidor.
Las Bases de datos se han ajustado a una arquitectura conocida como Cliente
- Servidor, en la cual los datos almacenados en la base de datos, están en una
máquina que actúa como servidor, ejecutando el programa para manipular
dicha información.
Los usuarios pueden acceder a la información de la base de datos desde
terminales remotos gracias a la instalación de los paquetes de instalación y
compatibilidad de la base de datos en otros sistemas.
Es decir, imagina que un usuario de una oficina de un edificio de 10 plantas se
quiere conectar a la base de datos que está almacenada en el servidor de la
planta primera. El usuario se podrá conectar al servidor de base de datos
(Como si fuese phpMyAdmin) desde cualquier ordenador de la red del edificio.
Arquitectura Three - Tier.
En esta configuración, el usuario se conecta al servidor de bases de datos para
manipular la información de la base de datos, pero la única diferencia con el
anterior arquitectura es que con ésta tecnología, el usuario no se conecta
directamente al servidor de la base de datos, sino que lo hace a un servidor de
aplicaciones que traduce la información del servidor de base de datos y evitar
así que el usuario pueda manipular el propio servidor de base de datos.
Proveedores y controladores.
Para acceder a los datos de una base de datos necesitamos de una aplicación
que nos facilite el tratamiento, la conexión y los derechos de manipulación de
los datos.
Cuando hablamos de bases de datos (Access, Oracle, SQL, etc.), estamos
haciendo referencia a programas que usan un lenguaje de programación de
bases de datos específico y común para todos los orígenes de datos y
servidores de bases de datos.
Un proveedor es un dispositivo que permite la implementación de componentes
en un ordenador específico para el tratamiento de la información en un origen
de dato.
Por ejemplo, phpMyAdmin, tiene un proveedor de SQL que permite usar la
base de datos MySQL, manipularla y guardarla.
Un controlador es un dispositivo que permite que el proveedor del origen de
datos, se pueda entender con el sistema en el cual se ha instalado la solución
para el lenguaje de bases de datos.
Cursosindustriales. Curso de DreamWeaver CS6 7
En este curso no te tienes que preocupar de nada de ello, ya que tanto el
proveedor como el controlador de phpMyAdmin se ha instalado
automáticamente al instalar XAMPP.
Estructuras de los datos.
Los datos en una base de datos se introducen, por norma general
(referenciando a las bases de datos relacionales), en tablas. Cada tabla tiene
una serie de atributos. Los atributos almacenan datos en un cierto dominio y,
en algunas ocasiones, establecen relaciones con otras tablas.
Entidades y atributos.
La información acumulada en una base de datos pertenece a objetos reales
que son fácilmente identificables.
Estos objetos cuentan con una serie de propiedades.
Así como, por ejemplo, una persona tiene un nombre, un DNI o un número de
la seguridad social.
Toda la información de dicha persona (objeto), es lo que se llama Entidad. El
nombre, el DNI o el número de la seguridad social son atributos de la entidad.
Atributo Atributo
Atributo
Entidad
3456789Falanito
277777772
1
A
Entidad
3456781Fulanita
277777773
2
B
Entidad
3456782Fulano
277777774
3
C
Los atributos se reparten a lo largo de la entidad, tal como ves en la tabla
superior.
Puedes ver que los atributos indican las columnas de los datos y las entidades
las filas.
Al conjunto de varios entidades distintas pero con los mismos atributos (caso
anterior), se les llama conjunto de entidades. Cada dato sería atributo de la
entidad.
En una base de datos, un conjunto de entidades sería una tabla.
En las bases de datos es habitual llamar a cada entidad registro y a cada
atributo campo.
Cursosindustriales. Curso de DreamWeaver CS6 8
Identidad de una entidad.
Por norma general el conjunto de entidades suelen contar con un atributo al
que se le aplica una restricción que le obliga a contener un valor único entre el
conjunto de entidades utilizando ese atributo como identificador del conjunto de
entidades.
Ese atributo especial proporciona una identidad a la tabla.
Relaciones entre conjunto de entidades (tablas).
Los diferentes conjuntos de entidades que guarda una base de datos en forma
de tablas, guardan ciertas relaciones entre sí.
Id Nombre
DNI
Seg.
Social
1
1
3456789277777772
A
2
2
3456781277777773
B
3
3
3456782277777774
C
Id
Nombre
1
Falanito
2
Fulanita
3
Fulano
Observa que en el conjunto de entidades primero, tenemos cuatro atributos y
en la tabla de abajo tenemos dos atributos.
La primera tabla está relacionada con la segunda ya que en el atributo Nombre
de cada entidad, hay un número que hace relación a cada entidad Id de la
segunda tabla.
Por tanto una tabla relacionada indica que los datos de dicha relación se
encuentran en la otra tabla.
Cursosindustriales. Curso de DreamWeaver CS6 9
Índices.
Al trabajar con tablas de gran tamaño, el proceso de recuperación de datos
puede verse afectado debido a la memoria del ordenador.
Para acelerar la lectura de los datos se recurre a los índices.
Un índice es una lista de claves con una estructura tal que el servidor puede
realizar búsquedas de forma muy rápida.
Las claves pueden estar formadas por el contenido de una o varias columnas
de una tabla.
Además de acelerar la búsqueda de información, un índice también puede ser
utilizado para establecer el orden en que se almacenan las filas en una tabla.
Cada vez que se inserta, modifica o elimina una tabla de la que depende uno o
varios índices, el servidor no solo actualiza la tabla de datos, sino también
todos los índices existentes a fin de que la información sea constante.
Normalización.
Al decir normalización de una base de datos estoy haciendo referencia a
racionalizar tanto el contenido de las tablas existentes en la base de datos
como las relaciones entre ellas (sin que se repita la información entre ellas),
siendo flexible.
En una base de datos normalizada lo habitual es que exista un mayor número
de tablas que en otra base de datos no normalizada.
Por ese motivo, las tablas normalizadas suelen ser más pequeñas (con menos
atributos), que unas tablas no normalizada.
Para normalizar una tabla:


Cada entidad debe de contar con un atributo de identidad (Id), que actue
como clave primaria única facilitando de esa manera la identificación de
cada una de las filas de la tabla.
Evitar la duplicidad de datos tanto dentro de una tabla como entre otras
tablas que componen la base de datos.
Transacciones.
Cuando se opera sobre un servidor de datos, todas las acciones que impliquen
manipulación de la información (no solo recuperación de datos), tiene lugar en
el ámbito de una transacción.
Una transacción asegura que los datos no sean escritos directamente a la
base de datos, sino a una región temporal.
Cursosindustriales. Curso de DreamWeaver CS6 10
Cuando se ha terminado de manipular la información de la base de datos, se
termina la transacción confirmando los cambios en la base de datos.
Las transacciones son medidas de seguridad para evitar la pérdida de datos
por errores de manipulación.
Existen unas reglas que designan el sistema de transacción:




La atomicidad de la transacción. Todas las operaciones que comprende
la transacción son traducidas por una única acción de forma que se evita
que el trabajo se quede a medias (hay que abrir y terminar el proceso de
manipulación).
Mediante la consistencia se garantiza el cumplimiento de las reglas que
llevan asociadas las operaciones introducidas en la transacción.
Con múltiples transacciones, la propiedad aislamiento, implica que las
transacciones no sean visibles en otras transacciones en vigor.
La durabilidad garantiza que una vez concluida la transacción, no se
perderá la información guardada en la zona temporal.
LENGUAJE SQL. PRIMERA PARTE
Ahora que hemos introducido términos básicos sobre las bases de datos,
veamos cual es el lenguaje por el cual se entienden las bases de datos entre
sí.
SQL es un lenguaje para consulta de datos en una base de datos.
Su finalidad básica es la manipulación de datos de una base de datos.
SQL es un estándar ANSI, por lo que cada cliente de base de datos usará el
lenguaje principalmente, aunque puede introducir sus propias mejoras en la
sintaxis del lenguajes.
El lenguaje SQL se compone principalmente de tres partes principales:



DML
DDL
DLC
A continuación describiremos cada parte principal para poder entender el
lenguaje.
Cursosindustriales. Curso de DreamWeaver CS6 11
DDL.
Esta parte del lenguaje SQL se encarga de crear una base de datos,
modificarla o eliminar la base de datos.
La creación, manipulación o borrado de los elementos de la base de datos
debe de finalizar con el identificador de punto y coma (;).
Está formado por tres comandos especiales:
Create.
Éste comando se utiliza para crear una base de datos, tablas, índices, vistas,
procedimientos, desencadenadores, etc.
Drop.
Acepta las mismas instrucciones que el comando CREATE pero con la
finalidad de eliminar el elemento indicado.
Alter.
Este comando posibilitará al lenguaje SQL para la modificación de alguna
estructura de la base de datos. No acepta todas las instrucciones de los
comandos anteriormente citados, solo parte de ellos.
Las instrucciones básicas que manipularán estas tres instrucciones son:






DATABASE: Base de datos.
TABLE: Tabla.
VIEW: Vista.
TRIGGER: Desencadenador.
INDEX: Índice.
PROCEDURE: Procedimiento almacenado.
Aplicando éstas instrucciones a la primera instrucción básica de DDL, podemos
realizar acciones básicas para la creación, modificación y eliminación de dichos
elementos de forma básica.
Creación de una base de datos.
La creación de una base de datos es un proceso complejo al tener que definir
su contenido y estructura, espacio de almacenamiento, permisos de acceso,
usuarios, etc.
La mayoría de los servidores de bases de datos cuentan con aplicaciones que
te permiten la creación de las bases de datos de manera sencilla. Pero como
desarrollador necesitamos conocer la sintaxis necesaria para poder crear una
base de datos:
Cursosindustriales. Curso de DreamWeaver CS6 12
CREATE DATABASE nombre_de_la_base;
Siendo:
CREATE, la sintaxis del lenguaje SQL necesaria para la creación.
DATABASE, hacemos referencia al objeto que queremos crear, en este caso
una base de datos (como conjunto).
nombre_de_la_base, el nombre de la base de datos, que debería de ser un
nombre relacionada con la información que contendrá.
Creación de tablas.
Con la instrucción anterior, hemos creado una base de datos. Ahora tenemos
que empezar a rellenarla con tablas, relaciones, vistas, etc.
El primer paso lógico es crear una tabla.
Para ello, teniendo en cuenta que seguimos creando elementos, seguiremos
con la instrucción CREATE del lenguaje SQL para dicho fin. Y sabiendo
que TABLE es una tabla, podemos establecer que para crear una tabla nos
queda:
CREATE TABLE nombre_de_la_tabla;
Pero SQL, exige que cuando se creen elementos dimensionales
(con entidades y atributos), se declaren al principio de la manipulación o la
creación de la misma.
Para ello, simplemente entre paréntesis se crea dicho cometido. Por cada fila
deberá de existir al menor un atributo y ese atributo deberá de tener una
configuración inicial:
CREATE TABLE nombre_de_la_tabla ( nombre_columna
tipo opción, nombre2_columna tipo opción, ... );
De los más importante que podemos declarar es el nombre que le queremos
dar a la tabla y el nombre para sus atributos(campo), cada cual tendrá un
nombre como se ha indicado y un tipo de dato que determinará la información
que contendrá ese atributo.
Como opciones adicionales podemos establecer propiedades de ese atributo.
Observa que por cada conjunto columna, tipo y propiedad se separan entre
comas (,). Esto es para indicar a SQL que la operación no ha terminado y que
todavía se va a seguir insertando más elementos.
Solo hasta que SQL no encuentre el punto y coma ( ; ), no dará por finalizado la
creación, edición o borrado.
A continuación te muestro por orden una tabla con los tipos de datos que
puede coger un atributo de una tabla:
Cursosindustriales. Curso de DreamWeaver CS6 13
INTEGER
Un número entero (máximo 32 bits).
SMALLING
Igual que el INTEGER, pero menor
(16 bits).
CHAR(N)
Una cadena de (N) carácteres de
longitud fija.
VARCHAR (N)
Una cadena de (N) carácteres de
longitud variable.
DATE
Un fecha en formato variado.
TIME
Una hora en formato variado.
FLOAT
Un número en coma flotante
(decimal).
Como opciones adiciónales de los atributos podemos establecer:
NOT
NULL
Indica que la columna no se puede
quedar sin valor. Un atributo con
VARCHAR no tomará esta
propiedad.
Ésta restricción impide que en una
columna asociada pueda existir dos
UNIQUE
valores idénticos (garantiza la
unicidad de los datos de la
columna).
Establece a la columna como clave
PRIMARY
principal de la tabla. Los valores de
KEY
la columna deben de ser únicos.
Define una columna como clave
FOREIGN
externa (hace referencia a una clave
KEY
primaria de otra tabla).
Cursosindustriales. Curso de DreamWeaver CS6 14
Así ya definidos los tipos de datos que puede almacenar una tabla y las
propiedades de cada atributo, podemos establecer ya la creación de la tabla de
la manera:
CREATE TABLE Alumnos
(Id integer primary key,
Expediente char(10) unique,
Nombre varchar(20) not null,
Apellidos varchar(50) foreign key (media),
);
Analizando la tabla creada vemos que tenemos 4 atributos (columnas), con los
nombres Id, Expediente, Nombre y Apellidos.
La primera columna es del tipo integer, y servirá de clave primaria por lo que
será ésta columna la que se intercambiará con otra tabla para hacer una
referencia.
En la segunda línea, el campo Expediente es del tipo Char y permite un
máximo de 10 caracteres alfanuméricos. También tiene la propiedad única que
tiene que tener un valor diferente por cada registro.
La tercera línea designa un tipo varchar con un máximo establecido, y como
propiedad que no pueden dejarse sin escribir estos campos (escritura
obligatoria).
El último campo me interesa hablar de él porque en su propiedad se ha
indicado que éste campo será la clave externa de una tabla llamada media y
que éste campo aparecerá en la clave principal de dicha tabla.
Modificación de la tabla.
Modificar una tabla significa modificar sus atributos, campos, columnas o
cambiar el tipo de datos o eliminar campos.
Cuando queremos cambiar algún campo o propiedad de una tabla, debemos
de indicarle principalmente al lenguaje SQL cual es la tabla que queremos
alterar y usar la sintaxis adecuada para ello.
Por eso otra parte de DDL es la opción de Alter, que se usa para alterar o
modificar elementos de una tabla (ojo, se refiere a su estructura y no a los
datos que tenga almacenada).
Para ello, se procede como te muestro a continuación:
ALTER TABLE nombre_de_la_tabla ACCIÓN
Cursosindustriales. Curso de DreamWeaver CS6 15
Como acción podemos elegir principalmente tres acciones:



ADD: Añade un nuevo elemento a la tabla.
ALTER: Modifica un elemento de la tabla.
DROP: Elimina un elemento de la tabla.
Por tanto, supón en nuestro ejemplo anterior que queremos modificar nuestra
campo cuarto para que no sea la clave externa de otra tabla:
ALTER TABLE Alumnos ALTER COLUMN Apellidos
varchar(50);
Ahora nuestra tabla queda como se muestra:
CREATE TABLE Alumnos
(Id integer primary key,
Expediente char(10) unique,
Nombre varchar(20) not null,
Apellidos varchar(50)
);
También podemos eliminar la tabla entera con la opción DROP de la forma:
DROP TABLE nombre_de_la_tabla;
Que en nuestro ejemplo sería:
DROP TABLE Alumnos;
NOTA: Ten en cuenta que para terminar la sentencia utilizo el punto y coma en
todas las instrucciones.
SQL es un lenguaje en el cual no es necesario indicar la finalización de la
instrucción mediante éste carácter.
Pero en el curso de DreamWeaver CS5 utilizaremos MySQL que es un
derivado de SQL (prácticamente funciona igual que él), pero que introduce
algunas diferencias. Entre ellas, está la forma de terminar las sentencias SQL
con punto y coma, ya que MySQL deriva del SQL que a su vez procede y tiene
nexos comunes con C.
Cursosindustriales. Curso de DreamWeaver CS6 16
ACCESO DIRECTO A BASES DE DATOS MySQL EN ESCRITORIO.
En esta parte del curso vamos a crear también un acceso directo a nuestra
aplicación phpmyadmin.
Dicho acceso directo nos servirá para ir probando y practicando en nuestro
servidor MySQL sin que tengamos que estar haciéndolo desde el entorno de
desarrollo que nos proporciona XAMPP.
Recuerda que para acceder a MySQL debes de tener conectado y
ejecutándose en el panel de control de XAMPP, la opción de base de datos
MySQL, tal como te muestra la imagen.
Si pulsas sobre Admin se te abrirá la página principal de PhpMyAdmin.
También la puedes abrir desde el navegador poniendo en la búsqueda la
opción http://localhost/phpmyadmin/.
El acceso directo lo haremos en el escritorio principal y, como ya he
mencionado con anterioridad, el sistema está instalado en Windows y el acceso
directo lo haré de acuerdo a su estructura, por lo que si tienes un sistema
distinto de Windows, deberás leer la forma de hacerlo en foros o preguntar a
Internet.
Cursosindustriales. Curso de DreamWeaver CS6 17
Primero.
Localiza el directorio principal de XAMPP. Recuerda que en una instalación
anterior pedimos que lo instalaras por defecto en la raíz principal del disco
duro. En mi caso está en C:\.
Localiza la carpeta mysql y ábrela.
Dentro de ella verás otro grupo de carpetas. Solo nos interesa una carpeta
específica, la carpeta BIN en la cual están todos los ejecutables que
necesitaremos para manipular MySQL desde el escritorio.
Cursosindustriales. Curso de DreamWeaver CS6 18
Cuando abres ésta carpeta verás archivos de configuración y ejecutables que
posee el sistema para la manipulación de la base de datos.
De todos los archivos, solo nos interesa un ejecutable en cuestión,
el mysql.exe.
Si abres el archivo verás que se ejecuta un archivo de ventana de comandos
del sistema y que muestra una página inicial.
Fíjate en la ruta que abre el archivo para hacer un acceso directo.
Segundo.
Una vez teniendo en cuenta en donde está el acceso directo que queremos
utilizar en otra ubicación, haremos el acceso directo en el escritorio del
ordenador (tú lo puedes poner donde quieras, pero ponlo en un lugar que no te
cueste abrirlo).
En el directorio en el cual hemos escogido para hacer el acceso directo,
pulsamos clic derecho del ratón y elegimos Nuevo.
En el menú que se despliega escogemos Acceso directo.
Cursosindustriales. Curso de DreamWeaver CS6 19
Se nos abrirá una ventana como la que puedes ver en pantalla.
Cursosindustriales. Curso de DreamWeaver CS6 20
En donde pone "Escriba la ubicación del elemento" debes poner la ruta hacia
el archivo mysql.exe que vimos anteriormente.
En mi caso es: C:\xampp\mysql\bin.
Pero si no te acuerdas de la ruta, puedes pulsar el botón de Examinar de la
ventana y se abrirá una ventana de búsqueda que te permitirá escoger el
archivo adecuado.
Una vez escogido el archivo, pulsa sobre Siguiente y se mostrará otra ventana
en la cual te pide que pongas un nombre al acceso directo.
Intenta ponerle un nombre que sea adecuado y que refleje la acción que va a
realizar; yo lo llamaré mysql.
Cursosindustriales. Curso de DreamWeaver CS6 21
Cuando pulses en finalizar se abra creado el acceso directo y que habrá
adquirido el icono por defecto que Windows habilita para ese tipo de archivos.
Tercero.
Esta parte es orientativa y no tienes por qué hacerla.
Como puedes ver hemos hecho un acceso directo del programa que manipula
las bases de datos de nuestro servidor XAMPP.
El icono que nos ofrece pues es el de un acceso directo de Símbolo de
sistema DOS, por lo que podremos cambiarlo de la siguiente manera:
Pulsa sobre el icono y con el botón derecho del ratón pulsa
sobre Propiedades.
Se te abre la ventana de propiedades del programa en cuestión.
Pulsa sobre el botón de Cambiar Icono y se te mostrará la ventana del sistema
en la que se guardan los iconos por defecto.
Cursosindustriales. Curso de DreamWeaver CS6 22
Escoge un icono que te resulte bonito y sea, por supuesto adecuado para el
programa, y pulsa Aceptar.
Yo escojo el icono de Subdirectorios.
Pulsa Aplicar y después en Aceptar. Ahora el icono del acceso directo ha
cambiado a:
Con esto dicho ya podemos seguir el estudio de nuestro capítulo.
Ahora en vez de programar en el entorno del XAMPP y de phpmyadmin, lo
haremos directamente desde éste acceso directo.
Cursosindustriales. Curso de DreamWeaver CS6 23
USO DE MYSQL.EXE
Ahora que vamos a utilizar el lenguaje MySQL directamente desde su
programa hemos de tener en cuenta ciertas cosas para poder trabajar
adecuadamente con el ejecutable.
En este punto vamos a ver cómo podemos acceder a la información
almacenada en phpmyadmin, ver las bases de datos y manipular el contenido
del mismo.
Además como en el punto anterior ya vimos la parte de DDL del lenguaje,
podremos crear, modificar y borrar bases de datos.
Entorno del comando.
Como puedes ver, éste archivo es un ejecutable de DOS, lo que hace que
impere la necesidad de programación mediante líneas de código.
Por tanto la programación se basa en instrucciones y asignación del INTRO
para que ejecute la instrucción.
Como primera opción veremos la opción más común de todos estos sistemas,
la instrucción HELP.
Esta instrucción te muestra parte de los comandos que puedes utilizar en el
programa para trabajar con bases de datos.
En la imagen se muestra el resultado de ésta instrucción y las instrucciones
que permite manipular.
Cursosindustriales. Curso de DreamWeaver CS6 24
Observarás que el lenguaje está en inglés. Esto es habitual porque estás
tratando con el ejecutable directamente y no con el traductor que pone a
disposición XAMPP en phpmyadmin.
Ten en cuenta que no todas las instrucciones están definidas en esta
instrucción, ya que existen otras instrucciones que no aparecen en el menú,
como por ejemplo la instrucción siguiente;
Show.
Esta instrucción indica al programa que "muestre" el elemento que queramos
ver para poder usarlo después.
Éste programa es un programa que requiere de tener una presencia física de la
base de datos que vas a usar. Por tanto cuando queremos actuar sobre una
base de datos MySQL guardada dentro de nuestro XAMPP, lo primero que
debemos de hacer es conectarnos a ella ya que no podemos modificar ningún
elemento de la base de datos sin que nos hayamos conectado a ella.
Pero curiosamente, si podemos eliminar la base de datos desde éste menú
principal del programa mysql.exe.
El comando Show, no funciona solo, es decir que tienes que agregar atributos
para su funcionamiento.
El atributo a mostrar es según el elemento que vayamos a manipular o
queramos mostrar. En este caso como lo que queremos mostrar las bases de
datos que hay guardada en phpmyadmin, escogeremos el
atributo DATABASES.
Recuerda que el lenguaje MySQL debe de terminar la instrucción con punto y
coma (;), ya que si no pones punto y coma, el programa producirá un salto de
línea esperando una instrucción válida:
Así que cuando queremos ver las bases de datos que existen en phpmyadmin,
tenemos que proceder con la instrucción show databases;, de la manera:
Cursosindustriales. Curso de DreamWeaver CS6 25
Como puedes ver nos crea una lista de las bases de datos MySQL que existen.
Las demás instrucciones de la instrucción Help resuelven soluciones para otros
menesteres. Por ejemplo para salir del sistema se usa la instrucción Exit.
Pero ahora nos interesa conectarnos a una base de datos.
Nos conectaremos por ejemplo a la base de datos que cree anteriormente
llamada books, y que está en el menú principal del phpmyadmin.
Para ello, utilizaremos la instrucción USE mas el nombre de la base de datos, y
seguido de punto y coma, tal como se muestra a continuación.
Ten en cuenta que cuando queremos realizar cualquier acción, debemos de
hacer una conexión a dicha base para después proceder a modificar lo que
queramos. Por tanto:
La sentencia que te devuelve el programa indica que la base de datos en vigor
está activa. Ahora podrás manipular los datos de esa base de datos.
Ahora que tenemos seleccionada una base de datos, podemos hacer consultas
y obtener el número de elementos que tiene la base de datos.
Con la instrucción Connect podemos obtener el número de elementos que
tiene la base de datos y el estado actual:
Cursosindustriales. Curso de DreamWeaver CS6 26
Por lo que sabemos que hay tres elementos que forman esta base de datos.
Ahora con el comando Show, podemos interrogar al programa para que nos
muestre las tablas, las relaciones u otros elementos que existan en la base de
datos.
Como ésta base de datos la he hecho yo, sé que existen tres tablas.
Para mostrar las tablas usaremos el comando ya mencionado seguido del
atribute TABLES y terminado por punto y coma, tal que así:
Creación de una base de datos.
Sabes que la creación de una base de datos viene establecida por la primera
parte del lenguaje de MySQL DDL que se encarga de la creación, modificación
y eliminación de bases de datos.
Como ya has estudiado, la sintesis correcta es el uso de la
instrucción CREATE mas el nombre de la base de datos.
No es necesario especificar el número de elementos que tendrá la base de
datos, ya que se añadirán después los elementos mediante las instrucciones
específicas.
Vamos a crear una base de datos que se llame DreamWeaver (tu podrás
ponerle otro nombre).
Utilizaremos el comando Create más el atributo correspondiente y nombre de
la base de tal forma:
Cursosindustriales. Curso de DreamWeaver CS6 27
Como puedes ver se crea la base de datos y te muestra el resultado y el
espacio que afecta.
¿Simple, no?
Pero para empezar a manipular la base de datos, por lo menos deberá de tener
una tabla para poder crear, modificar y eliminar elementos.
Por eso, crearemos una tabla que llamaré tabla1, y se utiliza la misma fórmula,
pero en vez de crear un base de datos (DATABASE), se crea una tabla
(TABLE).
Pero ten en cuenta un detalle importante. ESTAS EN UNA BASE DE DATOS
DIFERENTE A LA QUE HAS CREADO.
Por tanto si creas una tabla nueva, la vas a crear en la base de datos actual,
por lo que primero debes de cambiar a la base de datos que has creado.
Simplemente la instrucción:
USE Dreamweaver;
Esto hará que la base de datos cambie a la nueva base creada.
Ahora para crear la tabla no se puede crear la tabla ten en cuenta que las
tablas tienen una estructura (unas columnas), y hay que definirlas como se
marca en el anterior capítulo en el que se mostraba el sistema DDL.
En la imagen puedes ver que hasta que no pones punto y coma, no se acaba la
instrucción.
Como ves en cada línea entre paréntesis implica a cada columna de la tabla,
Cursosindustriales. Curso de DreamWeaver CS6 28
por lo que hay que indicar el tipo y las características de la columna específica.
Por tanto la nueva tabla creada tiene 3 columnas Id, curso y autor; y cada uno
tiene sus propias características.
Bien, con esto podemos pasar al siguiente punto.
DML.
Con DDL podemos manipular los datos propiamente dichos, efectuando
consultas para recuperar datos, modificación de los mismos, borrados parciales
de datos, etc.
La síntesis DML se divide en cuatro grandes grupos principales:
Select.
Sentencia DML por excelencia. Se utiliza para ejecutar consultas de
recuperación de datos.
Insert.
Su fin es insertar nuevas filas en la tabla.
Update.
Con este comando es posible cambiar la información alojada en una o más
filas.
Delete.
Se utiliza para eliminar una o más filas o columnas.
INSERCIÓN DE DATOS.
Una de las operaciones básicas para trabajar en una base de datos es la de
inserción de nuevos registros de datos.
De hecho será la única opción disponible a menos que la base de datos tenga
datos introducidos previamente.
La síntesis es la siguiente:
INSERT INTO nombredetabla VALUES ( valor, valor ) ;
Cursosindustriales. Curso de DreamWeaver CS6 29
Tras la palabra VALUES, y entre paréntesis se facilitarán tanto valores como
columnas existan en la tabla indicada "nombredetabla"; además del mismo
orden y el mismo tipo.
Los valores numéricos se introducen tal cual, mientras que los caracteres se
introducen entre comillas dobles (").
Volviendo a la anterior tabla que creamos con mysql.exe, insertaremos valores
dentro de ella, porque si recuerdas bien, no establecimos valor alguno.
La introducción de los valores se hace en línea según se hace en la creación.
Es decir hay que establecer el primer elemento para cada columna, por lo que
en la tabla si existen 3 campos columnas, hay que poner los tres valores para
cada una.
Recuerda que la tabla tabla1 de la base Dreamweaver, tiene tres
campos Id, curso y autor; por tanto crearemos los tres elementos para el primer
elemento de cada uno.
Observa que utilizar el atributo into y seguido el nombre de la tabla y le asigno
después los valores para rellenar la tabla.
Inserción de contenido para columna.
Cuando no queremos introducir datos en todas las columnas y solamente
queremos escribir datos en una columna, debemos de establecer entre
paréntesis la columna adecuada tal como se ve a continuación:
Insert into tabla1 (Id, curso) Values (2, "B");
Por tanto ahora tenemos dentro de la tabla otro elemento en la columna Id y en
la columna curso.
Cursosindustriales. Curso de DreamWeaver CS6 30
RECUPERACIÓN DE DATOS.
Hasta ahora hemos creado una base de datos y una tabla a la cual la hemos
asignado un contenido y la hemos rellenado con ciertos datos.
Pero necesitamos una instrucción para ver el contenido de la tabla en sí, es
decir lo que hemos introducido dentro.
Para ello, DML tiene una instrucción llamada SELECT que se encarga de éste
tipo de cosas.
La sintaxis correcta es:
SELECT columna1, columna2,...,columnaX FROM tabla;
De tal manera que para ver el contenido de por ejemplo la primera columna de
la tabla1 (la columna Id), tendremos que proceder de la forma:
Puedes visualizar tantos elementos de la tabla como quieras siempre que
separes con coma a los identificadores de los campos columnas.
Select, realiza una consulta al objeto adecuado, lo cual lee el objeto y te
devuelve una representación de los datos contenido en su interior.
Si quieres hacer una consulta a todas las columnas de la tabla, debes de
utilizar el condicional ( * ), y programarlo de la manera siguiente:
Select * from tabla1;
Cursosindustriales. Curso de DreamWeaver CS6 31
Observa que en la segunda fila solo hay contenido en las dos primeras
columnas. Eso se debe a que anteriormente insertamos contenido unicamente
en ellas dejando la tercera vacía.
Alias en la tabla.
Un alias es un nombre vulgar.
En MySQL se pueden utilizar alias a sus tablas asignándolas de la siguiente
manera:
Select A.Id, A.curso, A.autor from tabla1 A;
El alias de la tabla es productivo en bases de datos con muchas tablas, pero
resulta un poco tonto cuando se tiene una sola tabla.
Selección de filas.
Has visto que con Select, podemos visualizar tantas columnas como queramos
pero, ¿y las filas?
Para visualizar una o varias filas en cuestión hay que proceder a realizar otra
forma de proceder, eso sí, se seguirá usando la instrucción select pero se
debe de contar con condicionales y atributos especiales. La síntesis es:
SELECT columnas from tabla WHERE condición;
La condición se asemeja bastante a los condicionales a los que estás
acostumbrados a usar en lenguajes de programación como él ( = ), ( > ), ( < ), u
operadores lógicos como AND, OR, NOT, etc.
Por ejemplo, imagina que quieres ver el segundo registro de la primera fila (la
columna es la de curso); para ello debes de proceder así:
select curso from tabla1 where Id=2;
Cursosindustriales. Curso de DreamWeaver CS6 32
Puedes ver el resultado que te muestra es el único registro de ese campo que
has especificado con el condicional WHERE.
Simplemente has hecho referencia al valor acumulado en el campo Id de ese
registro en concreto, por lo que te muestra el resultado de la columna curso en
el la fila adecuada.
Estos detalles hacen posible en tablas grandes y con diferentes valores, buscar
campos que quieras comparar; por ejemplo imagina que tienes una tabla de
precios y quieres buscar productor que no superen cierto precio. Pues con el
condicional where podrías encontrar dicho precios y los productos que tienen
ese precio.
Condicionales extras.
Además de los valores relativamente fáciles de usar, el condicional where
puede utilizar otra serie de atributos para crear condiciones complejas.
IN.
En el caso de IN, es posible crear una expresión que será cierta en caso de
que la columna indicada a la izquierda contenga valores delimitados entre
paréntesis, a la derecha del operador. Por ejemplo:
Como puedes ver es muy parecida a la anterior, pero la forma de programarla
es distinta.
Recuerda que la tabla creada es pequeña por lo que apenas hace falta esto.
La potencia de este condicional se centra en que imagina que tuviésemos otros
autores en la tabla.
Cursosindustriales. Curso de DreamWeaver CS6 33
Con éste condicional solo se muestra el contenido del autor que pongas entre
paréntesis. Y como solo hay uno, te muestra el contenido de deimos_hack.
LIKE.
Este operador hace posible que podamos realizar comparaciones no absolutas
entre los valores de una columna y un valor dado; de otra forma, facilita la
búsqueda de un cierto patrón entre los valores de una columna.
Tras el operador LIKE debemos de facilitar entre comillas simples el patrón a
buscar.
Antes de ver el ejemplo, procederemos a rellenar nuestra tabla1 con más
contenido para poder ver bien los efectos.
Ahora imagina que queremos coger los registros del campo curso cuyo autor
sea deimos_hack:
Ahora vamos a agregar otra fila a la tabla:
insert into tabla1 values(6, "F", "deimosPascual");
En el anterior ejemplo, no saldrá éste último nombre porque no es el nombre de
deimos_hack, pero si después del atributo like pones una parte y el condicional
tanto por ciento (%), verás cómo cambia la cosa.
Cursosindustriales. Curso de DreamWeaver CS6 34
BETWEEN.
Este condicional hace posible la comparación de un rango de valores en el cual
deberá encontrarse una cierta columna para ser incluida en el conjunto de
resultados.
Puedes ver como la instrucción muestra los autores que están contenidos entre
el Id 2 y 5. Recuerda que el autor de la segunda fila lo dejamos en blanco.
Imagina que tienes una tabla con precios y productos. Con esta instrucción
podrías averiguar los productos que están entre un precio u otro.
ORDEN DE LAS FILAS.
Las filas recuperadas por la instrucción SELECT no aparecen en un orden
concreto, sino en el orden que el programador o el usuario lo han introducido
en la tabla. Este orden se puede ordenar mediante la instrucción ORDER BY.
El contenido de la tabla se puede dar según se desee ordenar por el campo
correspondiente, de tal manera que si queremos ordenar el campo autor,
estableceremos en ésta propiedad del lenguaje el campo autor de la siguiente
manera:
select * from tabla1 order by autor;
Esta instrucción ordenará la lista de los autores por orden alfabético.
Si escogiésemos otro campo numérico y estuviese desordenado, ésta
Cursosindustriales. Curso de DreamWeaver CS6 35
instrucción ordenaría la numeración en orden ascendente. También mueve el
contenido de sus otros campos:
Como puedes ver el primer elemento es el elemento vacío de la segunda
columna, y que es debido a que el valor cero va antes que cualquier otro
carácter.
Por defecto MySQL ordena los campos correspondientes de forma ascendente,
pero es posible realizar el orden de manera que sea descendente.
Para ello el lenguaje utiliza los atributos ASC, para ser ascendente y DESC
para un orden descendiente.
EXPRESIONES Y FUNCIONES DE RESUMEN.
Existe la posibilidad de introducir expresiones usando como operador el valor
de una o varias columnas y funciones de resumen o agregación.
Obtener datos a partir de algún cálculo y operación tan solo tenemos que
introducir la expresión adecuada como si de otra columna se tratase.
¿Cómo?, es sencillo:
En el siguiente campo multiplicamos por 1,5 los valores de cada fila para
obtener un valor específico:
Cursosindustriales. Curso de DreamWeaver CS6 36
Las operaciones se pueden llevar a cabo únicamente con datos numéricos, ya
que si intentamos usar caracteres, el lenguaje lo interpretará como valores
nulos y no realizará la operación y mostrará un cero.
Por tanto es importante usar los operadores matemáticos para campos que
tengan números y no cadenas alfanuméricas.
El resultado de la operación no afecta al contenido de la tabla en cuestión, es
decir que la tabla1 se mantiene intacta.
Además se puede no solo actuar con una única columna de la fila, sino que se
puede actuar con todas las columnas de una misma fila usando atributos y
funciones de agregación. Las más corrientes son:
Count().
Esta función cuenta el número de filas que tiene la tabla.
En el siguiente ejemplo realizo un cuenteo de las filas que posee el campo
autor de la tabla1.
Esta función devuelve un Integer, por lo que no importa el contenido de la
columna a medir sino los números de elementos que estén disponibles.
Cursosindustriales. Curso de DreamWeaver CS6 37
Sum().
Suma los valores de la columna indicada.
Como devuelve un Integer, el contenido de la columna en cuestión debe de ser
numérica. Si posee un valor distinto de un número entonces el lenguaje
devuelve un cero.
Avg().
Efectúa una media sobre los valores de la columna indicada.
Al igual que el anterior se procede a realizar la media solo con valores
numéricos.
Max().
Halla el valor máximo de la columna indicada, es decir nos indica cual el
máximo valor individual.
Min().
Halla el mínimo valor de una columna indicada.
Cursosindustriales. Curso de DreamWeaver CS6 38
Enlaces entre tablas.
Hasta este momento se ha trabajado sobre una única tabla.
MySQL es un lenguaje multifuncional es decir que puede trabajar con varios
objetos y establecer relaciones entre cada elemento y registro entre sí.
Por eso crearemos una nueva tabla llamada tabla2 en la cual insertaremos
valores tal cual:
create table tabla2 (Id integer primary key, Precio float not null);
Ahora tenemos dos tablas en nuestra base de datos dreamweaver.
Como sabes ya mediante la instrucción SELECT se selecciona la columna en
cuestión y mediante la instrucción FROM se selecciona la tabla en cuestión.
Solo puedes llamar a los campos de una columna de una tabla específica; es
decir que no puedes llamar desde una tabla a los campos de la otra, salvo que
la tabla esté relacionada.
Para ello hay que crear un vínculo entre ambas.
Para ello se define la clave primaria y la clave secundaria o externa y se
enlazan mediante el condicional FOREIGN tal cual se muestra a continuación:
foreign key (Id) reference tabla1(Id) type = innodb;
Estableciendo ésta sentencia a la hora de crear la segunda tabla.
ACTUALIZACIÓN DE DATOS.
Hasta ahora hemos visto el comando SELECT e INSERT.
Otro de los comandos de DML es el UPDATE, que se encarga de realizar una
consulta o modificación de los datos de los objetos de la base de datos.
Recuerda que DML se encarga de los objetos de la base de datos por lo que
tratará a cada objeto como lo que es y permitirá su manipulación parcial.
Es muy similar al comando ALTER de DDL, pero en realidad, el
comando UPDATE actualiza y modifica el contenido de la tabla y el
comando ALTER modifica la estructura de la misma (uno modifica el número
de columnas, por ejemplo y el otro el contenido de las mismas).
El comando update se utiliza el comando junto al condicional SET y el número
de columna y el nuevo valor de la forma siguiente:
Cursosindustriales. Curso de DreamWeaver CS6 39
update nombretabla set columna=valor, columna=valor, ....
;
Se suele usar el condicional WHERE para evitar que se produzca el cambio en
todas los campos de las columnas de tal manera que por ejemplo queremos
modificar y poner un nombre a la columna autor de la tabla1 (recuerda que
estaba vacía). Procederemos así:
Si no hubiese puesto la condición de Id=2, ese valor habría ocupado todo los
valores de la columna.
ELIMINACIÓN DE DATOS.
El último comando de DML es el comando DELETE.
Éste comando se encarga de destituir tanto elementos como registros del
objeto de la base de datos sin llegar a eliminar el propio objeto, ya que de eso
se encarga el comando DROP.
Su síntesis es:
Delete from nombretabla items_establecidos;
Es muy común del uso del condicional WHERE para no borrar todo el
contenido de una columna o una fila.
En nuestro ejemplo, supón que queremos borrar el anterior valor que
definimos.
Para ello se procede como se muestra en pantalla:
Cursosindustriales. Curso de DreamWeaver CS6 40
Como puedes ver, lo que se encarga de hacer esta función es eliminar el
contenido entero de la fila que elimines, cosa que deberás de tener muy en
cuenta a la hora de utilizar éste comando.
DCL
Es la última parte del lenguaje SQL y se encarga de la seguridad de cara al
usuario.
Resumiendo, las dos sentencias más importantes en este sub lenguaje
son GRANT y REVOKE.
La primera da permiso y la otra lo revoca.
También se pueden crear permisos o cuentas con sentencias del tipo CREATE
USER y CREATE RULE.
Por ejemplo, en el siguiente código voy a crear un nuevo usuario llamado
pascual.
Después le voy a dar permisos para insertar contenido en la tabla1.
Por lo que si introducimos contenido en la tabla1 nos permitirá el lenguaje
MySQL actuar sobre ella.
La revocación del servicio se realiza de la forma:
revoke select, update, delete on tabla1 from pascual;
Lo que significa que revocamos los derechos de selección, actualización y
borrado sobre la tabla1 al usuario pascual.
Cursosindustriales. Curso de DreamWeaver CS6 41
Por defecto el usuario que estás usando en el programa mysql.exe es un súper
usuario y habría que restringir los derechos de usuario desde la base de datos
mysql que tiene el propio programa y acceder como el usuario específico para
ver el efecto deseado.
Doy por finalizado el módulo de MySQL esperando te haya resuelto algunas
dudas. Recuerda que éste curso no es de bases de datos ni del estudio del
lenguaje SQL, por lo que lo visto en esta parte del curso de DreamWeaver CS5
es para introducir al estudiante en el mundo de las bases de datos.
En el siguiente capítulo veremos la forma de conectarnos a una base de datos
mediante el lenguaje de programación PHP integrado mediante las
herramientas de Dreamweaver CS5.
Cursosindustriales. Curso de DreamWeaver CS6 42