Invision Power Scard

¡Conéctate o Regístrate si no tienes Cuenta de Usuario!
(Es necesario para ver todos los Mensajes en su totalidad)

CPH Hacking & Security

Últimos temas

» Hack Hotmail MSN Messenger (Original)
Jue Feb 09, 2012 10:09 pm por Mercury15

» Mitos sobre la CPU (Verdades/Mentiras)
Jue Mar 03, 2011 9:56 pm por Mercury15

» Todo lo que hay que saber sobre el Exploit WMF
Jue Ago 05, 2010 8:12 pm por Mercury15

» Tutorial crear troyano profesional by Panzerfaust
Vie Jul 16, 2010 8:41 pm por Mercury15

» ¿Cómo comprar con Ukash en España? [Xat.com]
Vie Jul 16, 2010 7:54 am por Mercury15

» Descargar Text Aloud + Voces Crack [FullPack]
Jue Jul 15, 2010 8:39 pm por leon

» Ultimas novedades
Sáb Jul 03, 2010 10:58 am por Mercury15

» Ausencia de Mercury15 [2010]
Vie Jun 25, 2010 12:31 pm por Naruto

» Tengo una duda
Jue Jun 24, 2010 10:58 am por Naruto

Conectarse

Recuperar mi contraseña

Navegación


    Bases de Datos + SQL + PHP

    Comparte
    avatar
    Mercury15
    Staff
    Staff

    Mensajes : 51
    Reputación : 230
    Fecha de inscripción : 06/06/2010
    Edad : 30
    Localización : España

    Bases de Datos + SQL + PHP

    Mensaje por Mercury15 el Sáb Jun 19, 2010 5:11 pm

    TUTORIAL DE BASES DE DATOS + SQL + PHP DESDE CERO



    PRESENTACIÓN.


    Hola a todos. Hace ya mucho tiempo desde que escribí mi ultimo tutorial, manual o como lo quieran llamar, y creo que ya es hora de traer algo nuevo!!
    En esta ocasión, vamos a aprender para que sirve una base de datos, como crearla, el uso de SQL, formularios... etc. Comenzaremos desde cero, con los conceptos basicos y aprendiendo a base de ejemplos, ya que es la mejor forma de ver este tipo de cosas...

    ¿QUE ES UNA BASE DE DATOS?


    Una base de datos en si, puede considerarse como una especie de archivador electrónico; dicho de otra manera, un lugar donde almacenar un conjunto de archivos e información.

    El usuario de una base de datos pude realizar entre otras cosas las siguientes tareas:

    - Agregar nuevos archivos a la base de datos.
    - Insertar datos nuevos en los archivos ya existentes
    - Obtener datos almacenados.
    - Borrar datos.
    - Obtener datos de una manera especifica y personalizada

    y otra serie de cosas que veremos mas adelante...

    Por lo tanto, podríamos decir que en definitiva una base de datos es un sistema computadorizado cuyo propósito general es mantener información y hacer que esta sea accesible cuando se solicite.

    Si aun te cuesta ver que es una base de datos, imagínate la sala de archivos del ayuntamiento de tu ciudad, donde tienen almacenados archivos y documentos en grandes armarios, carpetas, cuadernos... de una forma ordenada por ejemplo alfaveticamente, por zonas, por tipologia... etc. Pues una base de datos en informatica es en esencia lo mismo, pero con las siguientes ventajas:

    - Es compacta. No hacen falta archivos de papeles que pudieran ocupar mucho espacio y con el tiempo pueden perderse, traspapelarse...etc .

    - Es rapida. La maquina puede obtener, modificar y añadir datos con mucha mayor velocidad que un ser humano.

    - Es menos laborioso. Se elimina gran parte del tiempo y esfuerzo de mantener archivos a mano en un espacio físico.

    - La posibilidad de hacer copias de seguridad fácilmente (backups).

    Posiblemente existirán algunas otras ventajas que se me olviden, pero principalmente podemos quedarnos con estas.

    SISTEMA GESTOR DE BASES DE DATOS.


    Un sistema gestor de bases de datos (SGBD) es un software que permite la interacción entre la base de datos, el usuario y las aplicaciones creadas.

    Existen sistemas gestores libres y otros de pago.

    El mas popular y conocido por su seguridad, estabilidad y fiabilidad es ORACLE, aunque también hay que decir que es un poco caro y esta mas bien destinado a empresas que al usuario común.

    Entre los SGBD libres, destacan MySQL, SQLite y PostgreeSQL.

    Un sistema gestor "de pago" y que posiblemente todos tengamos en nuestro PC y con el que trabajaremos inicialmente es ACCESS de Microsoft.

    CREANDO NUESTRA PRIMERA BASE DE DATOS


    Sin mas preámbulos, crearemos ya nuestra primera base de datos.

    El primer paso en la creación de una base de datos, es la creación del esquema conceptual, es decir, estudiar previamente como sera nuestra base de datos.

    Las tareas a realizar en el diseño conceptual son las siguientes:

    1. identificar las entidades.
    2. identificar las relaciones.
    3. identificar los atributos.
    4. determinar los dominios de los atributos.
    5. Determinar los identificadores.
    6. Determinar las jerarquías de generalización (si las hay).
    7. Dibujar el diagrama entidad-relación.
    8. Revisar el esquema conceptual local con el usuario.

    No se asusten por toda esta terminología... en realidad es mas sencillo de lo que parece.

    Para nuestra primera base de datos no seguiremos todo este estudio paso a paso, pues podríamos estar mucho tiempo analizando, pero veremos lo fundamental.

    Comenzamos!!!

    La primera base de datos que vamos a crear para este tutorial, va a ser muy sencilla. En ella almacenaremos a USUARIOS, FOROS y Nº DE POST.

    Las bases de datos se componen por TABLAS.

    Para nuestro ejemplo, necesitaremos 3 tablas que seran; la tabla USUARIOS, POST y FOROS.

    - TABLA USUARIOS:

    En todas las tablas tiene que haber un campo clave o principal, el cual sera diferente para cada campo de la tabla. Un ejemplo de esto puede ser el DNI, Nº de pasaporte, un ID que establezcamos...etc, pero nunca podremos establecer como clave principal un nombre, apellido, fecha de nacimiento... ya que puede dar la casualidad de que se repita para dos datos de la tabla.

    Por lo tanto uno de los campos de nuestra tabla sera el ID_Usuario

    También añadiremos otros que serán; Nick, Pais y Email, con estos serán suficientes para nuestro ejemplo.

    Por lo tanto, la tabla USUARIOS quedaría de la siguiente forma:

    Código:
    ID_Usuario
    Nick
    Pais
    Email

    - TABLA FOROS:

    En esta tabla asignaremos como clave a ID_Foro y pondremos ademas los campos Nombre y Descripcion de tal forma que nuestra tabla FOROS quedara de la siguiente forma:

    Código:
    ID_Foro
    Nombre
    Descripcion

    - TABLA POST:

    La tabla POST surge en realidad como relacion de muchos a muchos entre la tabla USUARIOS y la tabla FOROS.

    Existen varios tipos de relaciones;

    - Relacion de 1 a muchos. (hay que poner la clave de la tabla 1 en la tabla muchos)
    - Relacion de muchos a muchos. (hay que crear una tabla intermedia con las claves de ambas tablas)

    Mas adelante estudiaremos todos tipos de relaciones... de momento no quiero liaros mas.

    Entonces, como iba diciendo, entre USUARIOS y FOROS hay una relación de muchos a muchos, porque un usuario puede postear en muchos foros, y un foro puede ser posteado por muchos usuarios. Por esta razón, surge una tabla intermedia donde se almacenaran los post que hace cada usuario en los foros. Dicha tabla a de contener las claves principales de los foros relacionados.

    La tabla POST tendrá por lo tanto la siguiente estructura:

    Código:
    ID_Usuario
    ID_Foro
    Post

    ID_Usuario e ID_Foro serán las claves principales de la tabla POST.



    Una vez visto esto, abramos el Microsoft Access, y comencemos a crear nuestras tablas!!
    [Tienes que estar registrado y conectado para ver este vínculo]

    Una vez abierto access, hacemos clic en NUEVO > BASE DE DATOS EN BLANCO, y seleccionamos un nombre o dejamos el que esta por defecto.

    Se nos abrirá una tabla por defecto y sino, damos a crear nueva tabla.

    Nos aseguramos de estar trabajando en vista diseño:
    [Tienes que estar registrado y conectado para ver este vínculo]

    Una vez estamos en VISTA DISEÑO metemos los campos de la tabla USUARIOS.

    [Tienes que estar registrado y conectado para ver este vínculo]

    Prestamos atención a las Mayúsculas y minúsculas, podremos barra baja _ y no guiones (-) espacios ni barras ( / ) el nombre de la tabla la llamaremos USUARIOS todo con mayúsculas o como quieran... pero deben acordarse o seguir siempre un orden, porque sino luego las sentencias SQL fallaran!

    Creamos las dos tablas que nos quedan, la de USUARIOS y POST de la misma forma...

    CREAR > TABLA EN VISTA DISEÑO

    e insertamos los campos.

    Una vez tengamos las tres tablas, tendremos algo asi:
    [Tienes que estar registrado y conectado para ver este vínculo]

    Ahora que ya tenemos las tablas creadas, hacemos clic en HERRAMIENTAS DE BASES DE DATOS >> RELACIONES

    [Tienes que estar registrado y conectado para ver este vínculo]

    Nos aparecerá una ventana para donde AGREGAREMOS nuestras 3 tablas.

    A continuación, para hacer las relaciones, hacemos clic en el id_foro de la tabla FOROS y lo arrastramos hasta el id_foro de la tabla POST. Nos aparecera una ventana de relaciones donde deberemos marcar la casilla de exigir integridad referencial.

    [Tienes que estar registrado y conectado para ver este vínculo]

    Hacemos lo mismo para id_usuario.

    Al final de las relaciones tendremos lo siguiente:

    [Tienes que estar registrado y conectado para ver este vínculo]

    Ahora ya podemos cerrar las relaciones y GUARDAR!!!

    Asta aquí, hemos creado ya nuestras tablas y establecido las relaciones entre ellas, a continuación, procederemos a meter datos en las tablas.

    Hacemos clic en la tabla USUARIOS y se nos abrirá por defecto en vista de datos. Meted 5 o 6 usuarios...

    por ejemplo:
    [Tienes que estar registrado y conectado para ver este vínculo]

    Seguimos añadiendo datos a las tablas POST y FOROS:

    por ejemplo:
    [Tienes que estar registrado y conectado para ver este vínculo]

    Pues bien, con esto ya tenemos nuestra base de datos creada!!

    GUÁRDENLA pues con ella trabajaremos mas adelante cuando veamos SQL! que sera en el siguiente apartado.

    Aquí les dejo la Base de datos que he creado en este tutorial por si alguien a tenido algun problema o se la quiere descargar:
    [Tienes que estar registrado y conectado para ver este vínculo]

    INTRODUCCIÓN AL LENGUAJE SQL


    SQL significa Structured Querly Languaje, o LENGUAJE ESTRUCTURADO DE CONSULTA.

    SQL no nació por si solo... sino que fue creado por los desarrolladores de aplicaciones de bases de datos para responder a una serie de necesidades.

    Con SQL podremos ejecutar muchos tipos de instrucciones que nos permitirán leer datos de las tablas, borrarlos, insertar datos, obtener datos de una manera especifica...etc.

    Una sentencia SQL es como una "frase" escrita en ingles con la que decimos lo que queremos obtener y de donde obtenerlo.

    Todas las sentencias empiezan con un "verbo" (palabra reservada) seguida del resto de clausuras...(algunas obligatorias y otras condicionales).

    Si quieren pueden informarse un poco mas sobre el lenguaje SQL por la red, pero teniendo estos conceptos básicos sera mas que suficiente por ahora.

    CONSULTAS SQL.


    Todas las consultas que realicemos, deberán tener una sintaxis ordenada que iremos viendo a lo largo de este capitulo.

    Las consultas que realizaremos por ahora seguirán la siguiente sintaxis:

    SELECT campos FROM tablas WHERE condiciones

    Ahora, volvamos a nuestra Base de Datos y vallamos a CREAR >> DISEÑO DE CONSULTA >> y se nos abrira un cuadro llamado "Mostrar tabla" pero lo CERRAMOS.

    [Tienes que estar registrado y conectado para ver este vínculo]

    Ahora vamos a VISTA SQL tal y como vemos en la imagen:

    [Tienes que estar registrado y conectado para ver este vínculo]

    Ahora ya estamos en la consola desde donde podremos ejecutar consultas SQL.

    Comenzaremos con una serie de consultas sencillas. Solo tienen que escribir la consulta y dar a ejecutar para ver los resultados:

    [Tienes que estar registrado y conectado para ver este vínculo]

    Comenzaremos con la siguiente consulta:

    Código:
    SELECT * FROM USUARIOS;
    Como ven, les muestra todos los datos de la tabla usuarios.

    Siempre que pongamos * nos referiremos a "todos"

    Volvamos a vista SQL y probemos:
    Código:
    SELECT Nick, Email, Pais FROM USUARIOS;

    ¿Se hacen una idea de como funciona verdad?

    Si traducimos la sentencia veremos que estamos diciendo... SELECCIONA "el" Nick, Email, Pais DE USUARIOS.

    Aquí van otros ejemplos:
    Código:
    SELECT Nick, Email, Pais FROM USUARIOS WHERE ID_Usuario=1;
    Código:
    SELECT * FROM USUARIOS WHERE ID_Usuario=1;
    Código:
    SELECT Nombre, Descripcion FROM FOROS;

    Ahora que ya hemos visto como funciona esto de las consultas SQL, en el siguiente capitulo veremos un manual de SQL un poco mas especifico y cosas mas avanzadas.

    TUTORIAL SQL


    Ahora que ya hemos visto un poco de SQL, vamos a pasar a estudiarlo un poco mas detalladamente.

    - Sintaxis de la sentencia SELECT (consultas simples)

    Citar
    SELECT

    • ALL (viene por defecto (muestra todas las tablas))
    • DISTINCT (no muestra las repeticiones)
    • TOP n - PERCENT - (saca las tuplas que quieras, puede ir en función de un porcentaje)

    FROM (especificación de tabla)

    WHERE (condición de selección)

    ORDER BY - nombre columna/nº columna -

    • ASC (ascendiente)
    • DESC (descendiente)


    La clausura WHERE nos acepta los siguientes operadores:

    = (igual)
    <> (distinto de)
    < (menor que)
    > (mayor que)
    <= (menor o igual que)
    >= (mayor o igual que)

    Veamos algunos ejemplos aplicando lo aprendido con nuestra base de datos.

    Si ejecutamos:
    Código:
    SELECT TOP 1 * FROM USUARIOS
    Nos devolverá el 1º campo de la tabla usuarios, en nuestro caso:
    [Tienes que estar registrado y conectado para ver este vínculo]

    Código:
    SELECT TOP 50 PERCENT * FROM USUARIOS
    Nos devolverá la mitad de los usuarios (el 50%) que haya en la tabla usuarios. En nuestro caso, al haber 6 usuarios, esta consulta nos devolverá los primeros 3 usuarios.

    Espero que no tengan problemas hasta aquí. Si todo les va bien, pueden ir probando por su cuenta las sentencias que quieran. Intenten meter las siguientes condiciones a alguna consulta (seguro que os sale ):

    Código:
    SELECT * FROM USUARIOS WHERE Nick='TXS';
    - WHERE ID_Usuario=1;
    - WHERE ID_Usuario=1 OR ID_Usuario=5;
    - WHERE ID_Usuario <> 3;
    - WHERE ID_Usuario >= 3 AND ID_Usuario <= 6

    -- ORDER BY Nick DESC

    Vallan practicando consultas!!! es la única forma de aprender!!!

    TEST DE RANGO (BETWEEN)
    Examina si el valor de la expresión esta comprendido entre los dos valores definidos.
    Tiene la siguiente sintaxis:

    Código:
    SELECT Nick, Pais
    FROM USUARIOS
    WHERE ID_Usuario BETWEEN 2 AND 5;

    Muestra el Nick y el Pais de los USUARIOS que estan entre los ID_Usuario 2 y 5
    Seria lo mismo que escribir:

    Código:
    SELECT Nick, Pais
    FROM USUARIOS
    WHERE ID_Usuario>=2 AND ID_Usuario<=5;

    TEST DE PERTENENCIA A CONJUNTO (IN)
    Examina si el valor de la expresion es uno de los valores incluidos en la lista de valores.
    Tiene la siguiente sintaxis:

    Código:
    SELECT Nick, Pais
    FROM USUARIOS
    WHERE ID_Usuario IN (1,2,4,6);

    Mostrara el Nick y Pais de los USUARIOS que tengan el ID_Usuario 1,2,4,6.

    Obtendríamos lo mismo que escribir:

    Código:
    SELECT Nick, Pais
    FROM USUARIOS
    WHERE ID_Usuario=1 OR ID_Usuario=2 OR ID_Usuario=4 OR ID_Usuario=6;

    TEST DE VALOR NULO (IS NULL)
    Una condición, puede dar como resultado el valor verdadero TRUE, falso FALSE o nulo NULL.

    En la base de datos que nosotros hemos creado, no hay ningún campo que sea nulo, pero supongamos que tenemos una base de datos con empleados, directores, oficinas... etc y queremos la lista de las oficinas que no tienen director. Tendríamos que ejecutar la siguiente consulta:

    Código:
    SELECT oficina, ciudad
    FROM OFICINAS
    WHERE director IS NULL;

    o por ejemplo, si queremos la lista de los empleados asignados a alguna oficina:

    Código:
    SELECT nombre, apellidos
    FROM EMPLEADOS
    WHERE oficina IS NOT NULL;

    fácil verdad??

    TEST DE CORRESPONDENCIA CON PATRON (LIKE)
    Se utiliza cuando queremos utilizar caracteres comodines para formar el valor con el que comparar.

    Los comodines mas usados son los siguientes:
    ? Representa un carácter cualquiera.
    * Representa varios caracteres.
    # Representa un dígito cualquiera (0-9)

    Por ejemplo, si queremos el Nick de los usuarios que su país empiece por E, ejecutaríamos la siguiente consulta:

    Código:
    SELECT Nick
    FROM USUARIOS
    WHERE Pais LIKE 'E*';

    o si queremos el nick y pais de los usuarios que tengan en su nombre una 'a', haríamos:

    Código:
    SELECT Nick, Pais
    FROM USUARIOS
    WHERE Nick LIKE '*a*';

    SUM (suma) AVG (media) MIN (minimo) MAX, COUNT, STDEV....
    Existen una serie de funciones que nos permiten obtener datos de nuestra base de datos de una forma concreta como son:

    SUM > suma
    MIN > minimo
    AVG > media
    MAX > maximo
    STDEV > desviacion estandar de una serie de numeros
    COUNT > cuenta datos
    ... existen otra serie de sentencias, pero para nosotros, estás son mas que suficientes.

    probemos:
    Código:
    SELECT SUM (Post) FROM POST;
    Nos devolverá el total de los post, es decir la suma de post.

    Código:
    SELECT SUM (Post) FROM POST WHERE ID_Foro=1;

    Nos devolverá el total de los post del foro 1

    Código:
    SELECT AVG (Post) FROM POST WHERE ID_Foro=3;
    Nos devuelve la media de post del foro 3

    Código:
    SELECT MAX (Post) FROM POST;
    Devuelve el máximo de post que se han publicado

    ... y el resto de sentencias siguen la misma estructura o similar, no creo que tengan problemas, y si quieren algún otro ejemplo me dicen.

    PRODUCTO CARTESIANO "Muy importante"

    La resolución del producto cartesiano a la hora de ejecutar algunas sentencias es fundamental.

    Supongamos que queremos realizar una consulta en la que intervengan 2 o mas tablas. Con lo visto hasta ahora, si os mando mostrar el nick, nombre de foro y post de los usuarios, posiblemente ariais:

    Código:
    SELECT Nick, Nombre, Post FROM USUARIOS, FOROS, POST;

    Pero al ejecutar esa sentencia, nos devolvera un monton de datos mal...

    Citar
    Nick | Nombre | Post
    TXS Hacking 22
    TXS Programacion 22
    TXS Webmaster 22
    Pasqui Hacking 22
    Pasqui Programacion 22
    Pasqui Webmaster 22
    Skywallker Hacking 22
    Skywallker Programacion 22
    Skywallker Webmaster 22
    Redrick Hacking 22
    Redrick Programacion 22
    Redrick Webmaster 22
    Dynamique Hacking 22
    Dynamique Programacion 22
    Dynamique Webmaster 22
    Xianuro Hacking 22
    Xianuro Programacion 22
    Xianuro Webmaster 22
    TXS Hacking 44
    TXS Programacion 44
    TXS Webmaster 44
    Pasqui Hacking 44
    Pasqui Programacion 44
    Pasqui Webmaster 44
    Skywallker Hacking 44
    Skywallker Programacion 44
    Skywallker Webmaster 44
    Redrick Hacking 44
    Redrick Programacion 44
    Redrick Webmaster 44
    Dynamique Hacking 44
    Dynamique Programacion 44
    Dynamique Webmaster 44
    ............
    ............
    ............
    y de esta forma seguiría la lista hasta 342 registros!!

    Para que no nos muestre toda esta "basura" es necesario resolver el producto cartesiano, es decir, establecer los datos de las tablas que están relacionados.

    En la tabla USUARIOS hay un ID_Usuario
    En la tabla POST hay un ID_Usuario

    y

    En la tabla POST hay un ID_Foro
    En la tabla FOROS hay un ID_Foro

    Estos datos es necesario relacionarlos, para ello, estableceremos en la clausura WHERE la siguiente sintaxis;

    Código:
    WHERE USUARIOS.ID_Usuario=POST.ID_Usuario AND POST.ID_Foro=FOROS.ID_Foro

    Asi indicaremos los datos que estan relacionados entre las tablas, y al realizar la consulta no nos mostrara repeticiones y lo agrupara de la manera correcta.

    De este modo, volviendo a la cuestión de mostrar el NICK, NOMBRE del foro y POST, tendríamos que ejecutar la siguiente consulta:

    Código:
    SELECT Nick, Nombre, Post
    FROM USUARIOS, FOROS, POST
    WHERE USUARIOS.ID_Usuario=POST.ID_Usuario AND POST.ID_Foro=FOROS.ID_Foro;


    Esta nos devolvería todo correctamente;

    [Tienes que estar registrado y conectado para ver este vínculo]

    Podemos seguir estableciendo clausuras como por ejemplo que solo nos muestre los de un usuario en concreto, entonces la consulta seria:

    Código:
    SELECT Nick, Nombre, Post
    FROM USUARIOS, FOROS, POST
    WHERE USUARIOS.ID_Usuario=POST.ID_Usuario AND POST.ID_Foro=FOROS.ID_Foro AND USUARIOS.ID_Usuario=1;


    o

    Código:
    SELECT Nick, Nombre, Post
    FROM USUARIOS, FOROS, POST
    WHERE USUARIOS.ID_Usuario=POST.ID_Usuario AND POST.ID_Foro=FOROS.ID_Foro AND USUARIOS.Nick='TXS';

    Con todo esto visto, ya casi estamos llegando al final del "tutorial para lumis de SQL". Ahora pasaremos a ver las sentencias para insertar datos, modificar datos, borrar filas y borrar tablas.

    Insertar una fila, INSERT INTO ... VALUES ...

    La inserción de nuevos datos en una tabla se realiza añadiendo filas enteras a la tabla, la sentencia SQL que lo permite es la orden ISERT INTO

    La inserción se puede realizar de una fila o de varias filas de golpe. Nosotros veremos como hacerlo para insertar una fila.

    Supongamos que queremos agregar un nuevo USUARIO.

    Vamos a la tabla USUARIOS, y vemos que su estructura es la siguiente:

    Citar
    | TABLA USUARIOS |
    ID_Usuario
    Nick
    Pais
    Email


    Para insertar un nuevo usuario, podríamos ejecutar la siguiente consulta:

    Código:
    INSERT INTO USUARIOS VALUES (7,'Askatasun','España','askatasun:-com');

    Esta consulta nos funcionaria, pero para hacer las cosas un poco mejor, usaremos otro método que veremos en un momento.

    Imagina que usamos la sentencia anterior para añadir una nueva fila a una tabla, pero queremos dejar algún dato en blanco o que por lo que sea nos liamos en el orden... Para eso, hay otra sentencia INSERT INTO que nos permite establecer antes las posiciones donde se añadiran los datos.

    Mejor, veamos un ejemplo:

    Código:
    INSERT INTO USUARIOS (ID_Usuario, Nick, Pais, Email) VALUES (7,'Askatasun','España','askatasun:-com')
    Esta sentencia es la recomendada, y aunque sea un poco mas larga es mejor aprenderlo asi.

    Si queremos añadir un usuario pero desconocemos el pais, simplemente tendríamos que hacer:

    Código:
    INSERT INTO USUARIOS (ID_Usuario, Nick, Email) VALUES (8,'ZeroMercy','zeromercy:-com')

    *Nota; Al ser tablas relacionadas, hay que seguir las reglas de integridad referencial.

    Modificar el contenido de las filas, UPDATE

    Supongamos que queremos poner a 0 los post del usuario 2 del foro 1:
    Código:
    UPDATE POST
    SET Post=0
    WHERE ID_Usuario=2 AND ID_Foro=1;

    o bien, supongamos que queremos doblar (multiplicar por dos) los post del usuario 1 en el foro 3

    Código:
    UPDATE POST
    SET Post=Post*2
    WHERE ID_Usuario=1 AND ID_Foro=3;

    dividir...

    Código:
    UPDATE POST
    SET Post=Post/2
    WHERE ID_Usuario=1 AND ID_Foro=3;

    Sencillo verdad?

    Borrar filas, DELETE

    La sentencia DELETE elimina filas de una tabla. Su sintaxis es la siguiente:
    Citar
    DELETE (tabla) FROM (origen) WHERE (posibles condiciones)

    Borrar una tabla, DROP TABLE

    La sentencia DROP TABLE tabla, nos permite borrar una tabla de la BD.

    Código:
    DROP TABLE USUARIOS

    Este seria un ejemplo de como eliminar una tabla, aunque en la base de datos que estamos empleando, no nos lo permitirían al estar relacionadas.

    Una vez visto esto, pasaremos a ver otro gestor de bases de datos >>> MySQL



    SGBD MySQL orientado al desarrollo web con PHP




    MySQL es un sistema gestor de bases de datos "libre" que esta desarrollado por SUN MICROSYSTEMS.

    MySQL lo podemos encontrar casi seguro instalado junto a PHPMyAdmin en cualquier hosting/servidor que compremos o que obtengamos gratuitamente para publicar nuestra web.

    Para este manual, he preferido que sean ustedes los que se monten su propio "localhost" en su PC para aprender, ¿como hacerlo?, lo veremos a continuación.

    Instalando MySQL + APACHE + PHP + PHPMyAdmin

    Existen varios programas que nos instalan automáticamente estos servicios en nuestro PC que nos permitirán trabajar con paginas web y bases de datos empleando PHP.

    Entre los mas destacados se encuentran: [Tienes que estar registrado y conectado para ver este vínculo] y [Tienes que estar registrado y conectado para ver este vínculo]

    Podremos descargar cualquiera de los dos, u otro que conozcan, aunque el que yo empleare para este tutorial y el cual os recomiendo es EASYPHP, el cual podrán descargar gratuitamente de su web.

    Una vez descargado, lo instalan y el disco donde tengan su sistema operativo. La instalación es sencilla, dejen los valores por defecto hasta que complete la instalación.

    Una vez instalado, lo podrán ejecutar desde INICIO >> PROGRAMAS >> EASYPHP >>
    [Tienes que estar registrado y conectado para ver este vínculo]
    Les aparecerá al lado del reloj de windows, un icono con el que podrán interactivo haciendo clic con el botón derecho del ratón.

    Una vez este ejecutándose, abrimos firefox y colocamos la url [Tienes que estar registrado y conectado para ver este vínculo] o [Tienes que estar registrado y conectado para ver este vínculo]

    [Tienes que estar registrado y conectado para ver este vínculo]

    Hacemos clic donde se indica en la imagen (mysqlgestion) para acceder a nuestro nuevo sistema gestor de bases de datos!!!

    Si siguen el tutorial desde el principio, puede que ya estén acostumbrados a la facilidad y entorno intuitivo de microsoft access, y a primera vista, este nuevo sistema les resulte complejo, pero enseguida verán que en base es igual y le cogerán el ritmo rápidamente.

    CREANDO UNA NUEVA BASE DE DATOS


    Partiendo desde el punto anterior, ahora nos encontramos en [Tienes que estar registrado y conectado para ver este vínculo] es decir, en el phpMyAdmin.

    Vamos a crear una base de datos nueva con la que trabajaremos y realizaremos nuestros ejercicios. Dicha BD vamos a llamarla MiWeb.

    Podemos crear la base de datos de dos formas:

    - Abriendo la pestaña SQL y ejecutando la instruccion:
    Código:
    CREATE DATABASE `MiWeb` ;

    - Mediante el entorno de phpMyAdmin tal y como vemos en la imagen:

    [Tienes que estar registrado y conectado para ver este vínculo]

    Vamos a comenzar desarrollando un ejemplo sencillo, de como crear una tabla y despues mostrar los datos mediante php en nuestra web. Mas adelante, intentaremos crear una web un poco mas compleja con usuarios, categorias, noticias...etc.

    Una vez dentro de la base de datos que acabamos de crear (MiWeb), nos aparecera la opcion de "Crear nueva tabla en la base de datos miweb"

    [Tienes que estar registrado y conectado para ver este vínculo]

    Nombraremos a la tabla como "NOTICIAS" y le asignaremos 5 campos. (mas adelante podemos agregar mas campos si lo deseamos)

    A continuación, procederemos a introducir los campos para la tabla:

    Citar
    TABLA USUARIOS
    ID_Usuario > tipo entero > clave primaria
    Usuario > tipo texto > longitud 20
    Tematica > tipo texto > longitud 20
    Fecha > tipo date
    Noticia > tipo varchar > longitud 255

    [Tienes que estar registrado y conectado para ver este vínculo]

    Tambien podemos crearla ejecutando la senencia SQL;
    Código:
    CREATE TABLE `miweb`.`NOTICIAS` (
    `ID_Noticia` INT NOT NULL ,
    `Usuario` TEXT NOT NULL ,
    `Tematica` TEXT NOT NULL ,
    `Fecha` DATE NOT NULL ,
    `Noticia` VARCHAR( 255 ) NOT NULL ,
    PRIMARY KEY ( `ID_Noticia` )
    ) ENGINE = InnoDB

    Una vez creada nuestra tabla, vamos a la pestaña INSERTAR y metemos datos para nuestra nueva tabla, o bien, ejecutáis la siguiente sentencia SQL para introducir los mios.

    Código:
    INSERT INTO `miweb`.`NOTICIAS` (
    `ID_Noticia` ,
    `Usuario` ,
    `Tematica` ,
    `Fecha` ,
    `Noticia`
    )
    VALUES (
    '1', 'TXS', 'Webmaster', '2009-06-12', 'Comenzamos un nuevo tutorial sobre Bases de Datos + SQL + PHP en nuestro foro. No se lo pierdan!!'
    ), (
    '2', 'TXS', 'Webmaster', '2009-06-14', 'ORACLE anuncia descuentos para pequeñas y medianas empresas que quieran comprar una licencia de su SGBD. Ademas, ofrece nuevos servicios y horarios de atencion las 24 horas del dia.'
    );

    Asi insertaremos 2 noticias en la tematica Webmaster.

    Añadamos 2 mas para hacking!!
    Código:
    INSERT INTO `miweb`.`NOTICIAS` (
    `ID_Noticia` ,
    `Usuario` ,
    `Tematica` ,
    `Fecha` ,
    `Noticia`
    )
    VALUES (
    '3', 'Pasqui', 'Hacking', '2009-06-15', 'El encriptador de infiernohacker ya esta totalmente a su disposicion. Cualquier duda o sugerencia no dude en ponerse en contacto con nosotros.'
    ), (
    '4', 'Skywallker', 'Hacking', '2009-06-17', 'Participa en el primer reto infiernohacker. Hay muchos premios a repartir para los primeros en conseguirlo. Suerte!'
    );


    Una vez insertadas las noticias, nuestra tabla tendrá un aspecto similar a este:

    [Tienes que estar registrado y conectado para ver este vínculo]

    Para nuestra primera toma de contacto con mysql ya es mas que suficiente. Podriamos haber añadido un campo para titulo o mas tablas, pero bueno, ya aremos algo mas complejo mas adelante!!

    CREANDO UN USUARIO PARA NUESTRA BASE DE DATOS


    La mayoría de las bases de datos traen por defecto un usuario administrador que recibe el nombre de ROOT. Pueden usar este usuario si quieren, aunque yo para este tutorial empleare otro con los mismos privilegios que crearemos a continuacion.

    Vayan a la pestaña PRIVILEGIOS del PHPMyAdmin

    [Tienes que estar registrado y conectado para ver este vínculo]

    A continuacion seleccionen *Agregar un nuevo usuario

    Denle un nombre al nuevo usuario, yo le llamare Admin, y establezcan una contraseña, que en mi caso sera 5636

    Como Servidor seleccionen LOCAL
    En Base de datos para el usuario dejen marcada *Ninguna
    En Privilegios globales Marquen todos
    Los Límites de recursos déjenlos en 0

    Hagan clic en CONTINUAR para acabar de crear su usuario.

    CONECTANDO CON NUESTRA BASE DE DATOS A TRAVÉS DE PHP


    Ahora que ya tenemos nuestra mini base de datos montada, vamos a ver como leer los datos a traves de PHP y mostrarlos en nuestra web.

    En primer lugar, abrimos el dreamweaver, bloc de notas, o el editor que utilizen y escribimos el siguente codigo:

    Código:

      Fecha y hora actual: Vie Oct 20, 2017 8:37 am