Banner 1

Introducción a MySQL

0 comentarios
// © 2010 Blackubay
Justificación:
Este pequeño tutorial, tiene como finalidad introducir a todos aquellos usuarios, que quieran iniciarce en este mundo del SQL, pero que no tienen ni idea por donde empezar.

Recursos:
Por ahora solamente necesitamos instalar MySQL.

Regresando de mis dos semanas de vacaciones :D

Bueno, ya salí del colegio y decidí tomarme unas vacaciones :D, pero ya estoy de vuelta con más fuerza, con más flow y con todos los hierros jeje.

Para comenzar, escuchemos una poco de buena "musica" imposible olvidarnos del rey bruce :D

Excelente, ahora que tenemos la inspiración necesaria, vamos a aprender un poco de mysql y a manipularla desde php.

Comencemos con conectarnos al servidor mysql desde la consola, para esto abrimos nuestra terminal, bien sea "cmd" o "bash", y tecleamos la siguiente linea

mysql -h localhost -u root -p

Veamos, con el comando mysql invocamos el servidor mysql, con la opción -h indicamos que a seguir se especifica el nombre del servidor, en este ejemplo es localhost, con la opción meno -u señalamos el nombre del usuario, en nuestro caso "root", y por ultimo la opción -p con la cual obligamos al servidor a realizar la autentificación de nuestro usuario.

Una vez hecho esto, el sistema nos arroja este mensaje de entrada.


Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.0.51a-24+lenny4 (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


El promp "mysql>" nos indica que el servidor está preparado para ejecutar las ordenes SQL que ingresemos, ahora que estamos conectados al serviodor, estamos preparados para entrar en la candela.

Ahora crearemos una base de datos propia :D, pero antes debemos averiguar que bases de datos existen, para no repetir los nombres, para eso tenemos la sentencia "SHOW DATABASES".


mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.00 sec)


Nota:
no debemos olvidar utilizar punto y coma ";" al finalizar una sentencia o una consulta.

Muy bien, ahora, crearemos nuestra BD(base de datos), en mi caso particular llevara por nombre azzurri (Amo il calcio... :$), bien, para crear nuestra DB utilizamos la sentencia
"CREATE DATABASE", inmediatamente despues escribimos el nombre que llavará nuestra DB


mysql> create database azzurri;
Query OK, 1 row affected (0.01 sec)


Bueno ya la creamos, ahora, verifiquemos que está todo en orden con nuestro amigo "SHOW DATABASES".


mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| azzurri |
| mysql |
+--------------------+
3 rows in set (0.00 sec)


Excelente, ya vemos que si está :D, vamos por buen camino, ahora crearemos una tabla e insertaremos datos, para manipularlos desde php.

Para crear una tabla dentro de la base de datos debemos situarnos en ella, para eso escribimos "USE" seguido del nombre de la base de datos, y posteriormente podremos crear las tablas.


mysql> use azzurri;
Database changed


Ya estamos en la base de datos, ahora procedemos a crear la tabla, pero antes echen un vistazo a esta pagina, donde publican información muy detallada sobre los "tipos de datos SQL", pero ,¿porque es tan importante conocer los tipos de datos?, muy simple, a la hora de crear tablas, se deben especificar los tipos de datos que van a contener las columnas.

Nota:
Doy por entendido que el lector posee conocimientos sobre los tipos de datos en mysql.

Para crear una tabla se utiliza la sentencia "CREATE TABLE", la tabla de llamara equipo, y tendrá 3 columnas, para almacenar información, y 1 columna que identifique de manera inequívoca a cada jugdor que sera el id, las columnas para almacenar información se llamaran, jugador, posicion y numero.

la columna jugador sera del tipo char, porque almacenara texto al igual que la columna posicion, y la columna numero sera del tipo tinyint, porque almacenara enteros pequeños, ahora si manos a la ubre :D


mysql> create table equipo (id tinyint not null auto_increment, jugador char(25), posicion char(20), numero tinyint, primary key(id));


Ya creamos nuestra tabla, ahora, verifiquemos, utilizando "SHOW TABLES".


mysql> show tables;
+-------------------+
| Tables_in_azzurri |
+-------------------+
| equipo |
+-------------------+
1 row in set (0.00 sec)


Si, allí esta nuestra tabla, ahora vamos a insertar datos a nuestra tabla, utilizando la sentencia "INSERT".


mysql> insert into equipo (jugador, posicion, numero) values ('Gianluigi BUFFON', 'GK', 1);


Como podemos ver, bien, hasta ahora nada complicado, "insert into equipo" dictamos que haremos una inserción de datos en la tabla equipo "(jugador, posicion, numero)" especificamos, las columnas de la tabla equipo a las cuales le insertaremos los datos, "values ('Gianluigi BUFFON', 'GK', 1)" son los datos que insertaremos, en el mismo orden en el que especificamos las columnas, es decir, "Gianluigi BUFFON", lo insertaremos en la columna "jugador", y asi sucesivamente.

Ahora, vamos a verificar que todo salió bien, realizando una pequeña consulta, donde seleccionaremos todos los datos de la tabla, utilizando la sentencia "SELECT".


mysql> select * from equipo;
+----+------------------+----------+--------+
| id | jugador | posicion | numero |
+----+------------------+----------+--------+
| 1 | Gianluigi BUFFON | GK | 1 |
+----+------------------+----------+--------+
1 row in set (0.02 sec)


Excelente, ahora del mismo modo, vamos a insertar unos 20 o 30 datos mas, para que nuestro trabajo sea un poco mas interesante y divertido :D, recuerden que estos datos los manipularemos desde php, acá les dejo, para que me sigan :D


insert into equipo (jugador, posicion, numero) values ('Fabio CANNAVARO', 'DF', 5),('Daniele DE ROSSI', 'MF', 6),('Simone PEPE', 'MF', 7),('Gennaro GATTUSO', 'MF', 8),('Vincenzo IAQUINTA', 'FW', 9),('Antonio DI NATALE', 'FW', 10),('Alberto GILARDINO', 'FW', 11),('Federico MARCHETTI', 'GK', 12),('Mauro CAMORANESI', 'MF', 16),('Gianluca ZAMBROTTA', 'DF', 19),('Andrea PIRLO', 'MF', 21),('Riccardo MONTOLIVO', 'MF', 22);


Ahora que ya tenemos toda la seleccion azzurri y unos de banca, pues vamos a consultar nuestra tabla a ver como quedo de bonita :D


mysql> select * from equipo;
+----+--------------------+----------+--------+
| id | jugador | posicion | numero |
+----+--------------------+----------+--------+
| 1 | Gianluigi BUFFON | GK | 1 |
| 2 | Fabio CANNAVARO | DF | 5 |
| 3 | Daniele DE ROSSI | MF | 6 |
| 4 | Simone PEPE | MF | 7 |
| 5 | Gennaro GATTUSO | MF | 8 |
| 6 | Vincenzo IAQUINTA | FW | 9 |
| 7 | Antonio DI NATALE | FW | 10 |
| 8 | Alberto GILARDINO | FW | 11 |
| 9 | Federico MARCHETTI | GK | 12 |
| 10 | Mauro CAMORANESI | MF | 16 |
| 11 | Gianluca ZAMBROTTA | DF | 19 |
| 12 | Andrea PIRLO | MF | 21 |
| 13 | Riccardo MONTOLIVO | MF | 22 |
+----+--------------------+----------+--------+
13 rows in set (0.00 sec)


Mortal, :D(ahora solo me queda ver el trbajo del nuevo DT Cesare prandeli, limpie el nuestra fama, gracias por la copa lippi, espero te valla de maravillas :D ), ahora que ya tenemos una tabla decente, que les parece si practicamos un poco con el "SELECT", primero vamos a seleccionar solamente 2 columnas.


mysql> select jugador,posicion from equipo;
+--------------------+----------+
| jugador | posicion |
+--------------------+----------+
| Gianluigi BUFFON | GK |
| Fabio CANNAVARO | DF |
| Daniele DE ROSSI | MF |
| Simone PEPE | MF |
| Gennaro GATTUSO | MF |
| Vincenzo IAQUINTA | FW |
| Antonio DI NATALE | FW |
| Alberto GILARDINO | FW |
| Federico MARCHETTI | GK |
| Mauro CAMORANESI | MF |
| Gianluca ZAMBROTTA | DF |
| Andrea PIRLO | MF |
| Riccardo MONTOLIVO | MF |
+--------------------+----------+
13 rows in set (0.00 sec)


Ok, vamos a analizar un poco esta consulta, "select jugador,posicion" seleccionamos las columnas "jugador,posicion", de la tabla equipo, para especificar que tabla vamos a trabajar, llamamos a nuestro amigo "from" de esta manera "from equipo", ufff, veo que lo agarran rápido, pero que mas podemos hacer?, que les parece si solo seleccionamos jugadores que tengan la posicion GK, con esas dos columnas.


mysql> select jugador,posicion from equipo where posicion='GK';
+--------------------+----------+
| jugador | posicion |
+--------------------+----------+
| Gianluigi BUFFON | GK |
| Federico MARCHETTI | GK |
+--------------------+----------+


Exelente, podemos apreciar que a nuestra consulta anterior solo le agregamos "where posicion='GK'", este pedacito, indica que solo se van a seleccionar los registros que cumplan con esa condicion, ahora que tal si ordenamos de manera descentende esos registros.


mysql> select jugador,posicion from equipo where posicion='GK' order by id desc;
+--------------------+----------+
| jugador | posicion |
+--------------------+----------+
| Federico MARCHETTI | GK |
| Gianluigi BUFFON | GK |
+--------------------+----------+


Recordemos que el id, es el número identificacion que le asignamos a cada jugador.

Muy bien, ahora, tan solo nos queda, modificar y eliminar registros, para modificar registros, se utiliza la sentencia "UPDATE", vamos cambiar el nombre del jugador con el id Nº 12 por PIRLO solamente.


mysql> update equipo set jugador='PIRLO' where id=12;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0


Perfecto, ahora consultemos la tabla a ver que tal.


mysql> select * from equipo;
+----+--------------------+----------+--------+
| id | jugador | posicion | numero |
+----+--------------------+----------+--------+
| 1 | Gianluigi BUFFON | GK | 1 |
| 2 | Fabio CANNAVARO | DF | 5 |
| 3 | Daniele DE ROSSI | MF | 6 |
| 4 | Simone PEPE | MF | 7 |
| 5 | Gennaro GATTUSO | MF | 8 |
| 6 | Vincenzo IAQUINTA | FW | 9 |
| 7 | Antonio DI NATALE | FW | 10 |
| 8 | Alberto GILARDINO | FW | 11 |
| 9 | Federico MARCHETTI | GK | 12 |
| 10 | Mauro CAMORANESI | MF | 16 |
| 11 | Gianluca ZAMBROTTA | DF | 19 |
| 12 | PIRLO | MF | 21 |--->Exelente!
| 13 | Riccardo MONTOLIVO | MF | 22 |
+----+--------------------+----------+--------+
13 rows in set (0.00 sec)


Ya casi llegamos al final de esta pequeña introduccion al SQL, pero no sin antes, eliminar nuestras huellas!, primero borraremos, un registro de la tabla, luego la tabla y por ultimo la base de datos (Es dificil borrar a alguno de esa tabla :D todos son mis favoritos!), bueno primero borraremos de nuestra lista a "Federico MARCHETTI", para eso utilizaremos la sentencia "DELETE".


mysql> delete from equipo where id=9;


Creo que bastante sencillo, "delete from equipo" borramos la tabla equipo, donde id sea igual a 9 -> "where id=9".


mysql> select * from equipo;
+----+--------------------+----------+--------+
| id | jugador | posicion | numero |
+----+--------------------+----------+--------+
| 1 | Gianluigi BUFFON | GK | 1 |
| 2 | Fabio CANNAVARO | DF | 5 |
| 3 | Daniele DE ROSSI | MF | 6 |
| 4 | Simone PEPE | MF | 7 |
| 5 | Gennaro GATTUSO | MF | 8 |
| 6 | Vincenzo IAQUINTA | FW | 9 |
| 7 | Antonio DI NATALE | FW | 10 |
| 8 | Alberto GILARDINO | FW | 11 | --del 8
| 10 | Mauro CAMORANESI | MF | 16 | --salta al 10, excelente!
| 11 | Gianluca ZAMBROTTA | DF | 19 |
| 12 | PIRLO | MF | 21 |
| 13 | Riccardo MONTOLIVO | MF | 22 |
+----+--------------------+----------+--------+
12 rows in set (0.00 sec)



Ahora borramos la tabla, pero para borrar una tabla no se nos sirve delete, para eso utilizamos "DROP TABLE".



mysql> drop table equipo;


Ya borramos, ahora, comprobamos con nuestro viejo amigo "SHOW TABLES".


mysql> show tables;
Empty set (0.00 sec)


Eso!, no existe la tabla, ahora la base de datos, para eso utilizamos "DROP DATABASE".


mysql> drop database azzurri;
Query OK, 0 rows affected (0.01 sec)


Bacano, a comprobar si en verdad la borro, esto siempre lo acostumbro, porque soy medio miope o_O nunca esta de más corroborar, y mas cuando hacemos algo con urgencia
Nuevamente le hablamos a nuestro compadre "SHOW DATABASES".


mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.00 sec)


Listo, termino nuestra clase, seguro se preguntaran que paso con el php!!, nada, ahora ya tienen las bases y las referencias para investigar y poner en practica lo acá expuesto, y en una proxima entrega nos la curramos con el PHP.

Saludos.

ATT:
Blackubay
Powered by Bad Robot
Helped by Blackubay