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
© Copyright 2024 ExpyDoc