lunes, 15 de agosto de 2011

Manual de Mysql, Guia practica para comenzar


MySQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario . MySQL AB desde enero de 2008 es una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation. Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso.

Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y los derechos de autor del código están en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del código.

Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet.

Conectarse y desconectarse del servidor

Para conectarse al servidor, generalmente se le porporcionará a mysql un nombre de usuario y una contraseña. Si el servidor se está ejecutando en un ordenador distinto a donde está estableciendo la conexión, también se deberá especificar el nombre de host.

shell# mysql -h host -u user -p
Enter password: ********

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 5.0.9-beta-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

Este prompt nos indica que mysql esta listo para recibir comandos. Algunas instalaciones permiten que los usuarios se conecten de manera anonima al servidor corriendo en la maquina local. Si es el caso de nuestra maquina, debemos de ser capaces de conectarnos al servidor invocando a mysql sin ninguna opcion:
shell# mysql

Despues de que nos hemos conectado de manera satisfactoria, podemos desconectarnos en cualquier momento al escribir "quit", "exit", o presionar CONTROL+D. La mayoria de los ejemplos siguientes asume que estamos conectados al servidor, lo cual se indica con el prompt de mysql.

Ejecutando algunas consultas
En este momento debimos de haber podido conectarnos ya al servidor MySQL, aun cuando no hemos seleccionado alguna base de datos para trabajar. Lo que haremos a continuacion es escribir algunos comandos para irnos familiarizando con el funcionamiento de mysql

mysql> SELECT VERSION(), CURRENT_DATE;
+-----------+--------------+
| VERSION() | CURRENT_DATE |
+-----------+--------------+
| 3.23.41 | 2002-10-01 |
+-----------+--------------+
1 row in set (0.03 sec)
mysql>
Aunque hasta este momento se han escrito sentencias sencillas de una sola linea, es posible escribir mas de una sentencia por linea, siempre y cuando estan separadas por punto y coma:

mysql> SELECT VERSION(); SELECT NOW();
+-----------+
| VERSION() |
+-----------+
| 3.23.41 |
+-----------+
1 row in set (0.01 sec)
+---------------------+
| NOW() |
+---------------------+
| 2002-10-28 14:26:04 |
+---------------------+
1 row in set (0.01 sec)

Un comando no necesita ser escrito en una sola linea, asi que los comandos que requieran de varias lneas no son un problema. mysql determinara en donde finaliza la sentencia cuando encuentre el punto y coma, no cuando encuentre el fin de linea.

mysql> SELECT
-> USER(),
-> CURRENT_DATE;
+-------------------+--------------+
| USER() | CURRENT_DATE |
+-------------------+--------------+
| blueman@localhost | 2002-09-14 |
+-------------------+--------------+
1 row in set (0.00 sec)
mysql>

mysql> SELECT USER()
->;
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql>

Creando y usando una base de datos

Ahora que conocemos como escribir y ejecutar sentencias, es tiempo de accesar a una base de datos. Supongamos que tenemos diversos estudiantes y deseamos tener registros de los datos acerca de ellos, de manera muy practica. Esta seccion muestra como crear una base de datos, crear una tabla, incorporar datos en una tabla, y recuperar datos de las tablas de diversas maneras. La base de datos test en la cual se creara una tabla llamada estudiantes.

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

Usaremos la sentencia CREATE TABLE para crear e indicar como estarán conformados los registros de nuestra tabla

mysql>; CREATE TABLE estudiantes(nombre VARCHAR(20), ape1 VARCHAR(20),sexo CHAR(1));

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

Después de haber creado la tabla, ahora podemos incorporar algunos datos en ella, para lo cual haremos uso de las sentencias INSERT y LOAD DATA.

mysql> describe estudiantes;
+-----------+-------------------+--------+------+-----------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------------+--------+------+-----------+-------+
| nombre | varchar(20) | YES | | NULL | |
| ape1   | varchar(20) | YES | | NULL | |
| sexo   | char(1)     | YES | | NULL | |
+-----------+-------------------+--------+------+-----------+-------+
3 rows in set (0.00 sec)

La sentencia SELECT es usada para obtener la información guardada en una tabla. La forma general de esta sentencia es:

SELECT LaInformaciónQueDeseamos FROM DeQueTabla WHERE CondiciónASatisfacer

Aqui, LaInformacion QueDeseamos es la informacion que queremos ver. Esta puede ser una lista de columnas, o un * para indicar "todas las columnas". DeQueTabla indica el nombre de la tabla de la cual vamos a obtener los datos. La claúsula WHERE es opcional. Si esta presente, la Condicion ASatisfacer especifica las condiciones que los registros deben satisfacer para que puedan ser mostrados.

Ejm:

mysql> Select * from estudiantes;
+--------+----------+------+
| nombre | ape1 | sexo |
+--------+----------+------+
| manuel | gonzalez | m |
+--------+----------+------+
1 row in set (0.00 sec)

En Mysql es posiblre seleccionar solo registros particulares de una tabla. Por ejemplo, si deseamos verificar los datos del estudiante manuel, seleccionamos solo el registro de manuel de la siguiente manera:

mysql> SELECT * FROM estudiantes WHERE nombre="manuel";
+--------+----------+------+
| nombre | ape1 | sexo |
+--------+----------+------+
| manuel | gonzalez | m |
+--------+----------+------+
1 row in set (0.00 sec)

o bien mostrar todos los usuarios por sexo:

mysql> select * from estudiantes where sexo='m';
+--------+----------+------+
| nombre | ape1 | sexo |
+--------+----------+------+
| manuel | gonzalez | m |
| mario | amador | m |
+--------+----------+------+
2 rows in set (0.00 sec)

Si no deseamos ver los registros completos de una tabla, entonces tenemos que usar los nombres de las columnas en las que estamos interesados separandolas por coma. Por ejemplo, si deseamos conocer solamente los nombres y apellidos de los estudiantes, debemos seleccionar la columna "nombre" y "ape1":

mysql> SELECT nombre, ape1 FROM estudiantes;
+--------+----------+
| nombre | ape1 |
+--------+----------+
| manuel | gonzalez |
| mario | amador |
| reyna | flores |
+--------+----------+

3 rows in set (0.00 sec)

Se debe notar en los ejemplos anteriores que las filas regresadas son mostradas sin ningun orden en particular. Sin embargo, frecuentemente es mas facil examinar la salida de una consulta cuando las filas son ordenadas en alguna forma util. Para ordenar los resultados, tenemos que usar una clausula ORDER BY.

Aqui aparecen algunos datos ordenados por orden del apellidos.

mysql> SELECT nombre, ape1 FROM estudiantes order by ape1;
+--------+----------+
| nombre | ape1 |
+--------+----------+
| mario | amador |
| reyna | flores |
| manuel | gonzalez |
+--------+----------+
3 rows in set (0.00 sec)

y por ultimo la sentencia Delete es usada para eliminar información guardada en una tabla, ver el contenido de la tabla completa, y posteriormente al ejecutar la sentencia para eliminar los datos del estudiante con nombre karen.

+--------+----------+------+
| nombre | ape1 | sexo |
+--------+----------+------+
| manuel | gonzalez | m |
| mario | amador | m |
| karen | gurdian | f |
| reyna | flores | f |
+--------+----------+------+


mysql> DELETE FROM estudiantes where nombre='karen';
+--------+----------+------+
| nombre | ape1 | sexo |
+--------+----------+------+

2 comentarios:

Unknown dijo...

Excelente manual!! publica mas acerca de MySql

Anónimo dijo...

Buena... pero quermos mas

Publicar un comentario