domingo, 1 de noviembre de 2009

MySQL (en Ubuntu) - Guía rápida

Nota:
Toda sentencia en MySQL debe terminar con un punto y coma (;).
El símbolo $ indica el símbolo de comando del interprete de comandos; por ejemplo,
en Windows es c:\>.El símbolo mysql> es el símbolo de comandos de MySQL. No se deben escribir con el comando ya que son auto-generados, al igual que el símbolo -> .

Instalación:
$sudo apt-get install mysql-server-5.1
Durante la instalación pedirá que se ingrese una contraseña para el root de mysql.
Vamos a crear una base de datos y un usuario con el que vamos a trabajar y que tendrá acceso a la nueva base de datos.
Para eso debemos conectarnos al servidor mysql mediante el comando:
$mysql -u nombredeusuario -p
Dado que en este momento sólo existe el usuario root; entonces, desde la consola o terminal escribimos el comando:
$mysql -u root -p
Nos pedirá la contraseña , así que la escribimos. Es de recordar que en la consola no aparecerá nada mientras escribimos la contraseña, así se evita que alguien más pueda verla.
Establecida la conexión aparecerá el símbolo de comandos:
mysql>
Creamos la nueva base de datos:


mysql>CREATE DATABASE newdb;

Creamos el usuario jlrvpuma y le damos permiso completo de acceso a la nueva base de datos newdb:


mysql>GRANT ALL ON newdb.* to jlrvpuma@localhost IDENTIFIED BY 'password';

Se ha creado al usuario “jlrvpuma” con contraseña “password” -puede ser cualquier cadena- y que tiene todos los permisos para la base de datos newdb y que se conectará a ella desde localhost.Si la conexión del cliente al servidor no fuera desde localhost, entonces se deberá cambiar localhost por el nombre del equipo pertinente.
A partir de este momento nos conectaremos a la base de datos con el usuario jlrvpuma:
$mysql -u jlrvpuma -p
Le indicamos a MySQL que vamos a utilizar la base de datos newdb:


mysql>USE newdb;


Creando una tabla:
Se usa la instrucción CREATE TABLE:


mysql> CREATE TABLE new_table(
-> user_id INT,
-> name VARCHAR(30),
-> last_name VARCHAR(40));


Visualizando tablas:
Se usa la instrucción SHOW TABLES :


mysql>SHOW TABLES;


Visualizando la estructura de una tabla:
Se usa la instrucción DECRIBE :


mysql>DESCRIBE new_table;


Insertando nuevos registros en una tabla:
Se utiliza la instrucción INSERT:


mysql> INSERT INTO new_table(user_id,name,last_name) VALUES(1,'Carlos','Villa');

También se puede hacer de una forma más sencilla:


mysql>INSERT INTO new_table VALUES(2,'Maritza','Rodriguez');

Pero se debe estar seguro del orden de los campos en la tabla, ya que se podría insertar datos en campos equivocados. Es recomendable usar la primera forma, de esa manera se reducen las posibilidades de errores, pues se puede apreciar el orden en que están siendo ingresados los campos.

Cambiando registros en una tabla:
Se usa instrucción UPDATE:


mysql>UPDATE new_table SET name='Yuri' WHERE user_id=2;


Eliminando registros en una tabla:
Se usa la instrucción DELETE:


mysql>DELETE FROM new_table WHERE user_id=4;

Se debe tener cuidado, ya que si no se especifica mediante WHERE qué registro debe ser eliminado, se borrarán todos los registros de la tabla.


Recuperando información de una tabla(o haciendo consultas):
Se usa la instrucción SELECT. Por ejemplo, si se quiere recuperar todos los campos, se usa el comodin *:


mysql> SELECT * FROM new_table;

O bien, si se quiere sólo algunos campos:


mysql> SELECT name,last_name FROM new_table;

usando la clausula WHERE:


mysql> SELECT name FROM new_table WHERE user_id=1;


Usando la instrucción LIKE y el comodín % :


mysql>SELECT * FROM new_table WHERE name LIKE 'Car%';

El símbolo % significa 0(cero) o más caracteres después de la cadena 'Car'.En otras palabras se recuperará los registros cuyo campo name empiece por 'Car'.
La instrucción :


mysql>SELECT * FROM new_table WHERE name LIKE '%r%';

recuperará todos los registros cuyo campo name empiece y termine por cualquier cadena pero que contenga la letra 'r'.
La instrucción :


mysql>SELECT * FROM new_table WHERE name LIKE 'M%a';

recuperará todos los registros cuyo campo name empiece con 'M' y termine en 'a'.

Usando la clausula ORDER BY:
También podemos combinar con la clausula ORDER BY para ordenar los resultado y podemos usar las palabras clave ASC y/o DESC para ordenar los resultados en orden ascendente o descendente respectivamente:


mysql> SELECT * FROM new_table ORDER BY name DESC;
mysql> SELECT * FROM new_table ORDER BY name ASC;

o bien:


mysql> SELECT * FROM new_table ORDER BY name ASC, last_name DESC;


Usando la instrucción DISTINCT :
Útil cuando tenemos valores repetidos en dos o más campos y queremos los resultados sin repeticiones:


mysql> SELECT DISTINCT name FROM new_table;

Usando la clausula LIMIT:
Permite limitar el numero de resultados o limite de fila, además permite establecer el desplazamiento; es decir el numero de fila desde dónde empezará a contar, la estructura sería mas o menos: LIMIT desplazamiento,límite de fila
La instrucción :


mysql>SELECT * FROM new_table LIMIT 1,2;

recuperará la segunda y tercera fila. El primer valor, a la izquierda de la coma, en la clausula LIMIT, se refiere al desplazamiento, en este ejemplo, al ser su valor 1, empezará a contar desde la segunda fila ya que se empieza a contar desde 0(cero). Se puede omitir el valor de desplazamiento, poniendo sólo el valor de la derecha o límite de fila, MySQL asumirá el valor 0(cero) como valor de desplazamiento predeterminado. La siguiente instrucción recuperará las dos primeras filas :


mysql>SELECT * FROM new_table LIMIT 2;


Usando funciones COUNT(), MAX(), MIN(),SUM(),AVG():
Para obtener el número de filas o registros:


mysql> SELECT COUNT(name) FROM new_table;

O bien si se quiere saber cuantos nombres diferentes hay:


mysql> SELECT COUNT(DISTINCT name) FROM new_table;


Para recuperar el mayor valor de un campo:


mysql> SELECT MAX(user_id) FROM new_table;



Para recuperar el menor valor de un campo:


mysql> SELECT MIN(user_id) FROM new_table;



Para recuperar la media :


mysql> SELECT AVG(user_id) FROM new_table;



Para recuperar el total de la suma de todos los valores de un campo:


mysql> SELECT SUM(user_id) FROM new_table;

2 comentarios: