Вы находитесь на странице: 1из 7

3.1.

Conectarse al y desconectarse del servidor


Para conectarse al servidor, generalmente se le porporcionar a mysql un nombre de usuario y una contrasea. Si el servidor se est ejecutando en un ordenador distinto a donde est estableciendo la conexin, tambin se deber especificar el nombre de host. Consulte con su administrador para saber los parmetros de conexin (nombre de usuario, contrasea y host) que debe emplear. Una vez que conozca los parmetros apropiados, debera poder conectarse de este modo:
shell> mysql -h host -u user -p Enter password: ******** host y user representan el nombre del ordenador donde se est ejecutando el servidor de

bases de datos MySQL y el nombre de usuario de la cuenta que se usar para conectarse. Reemplcelos por los valores apropiados para elcaso. Los asteriscos (********) representan la contrasea, debe ingresarse cuando mysql muestra Enter password:. Si todo funciona bien, se ver una informacin de ingreso seguida por el prompt mysql>:
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>

El prompt anuncia que mysql est listo para procesar comandos. Algunas instalaciones de MySQL permiten conectarse como usuario annimo (sin nombre) si el servidor se est ejecutando en el ordenador local. Si esto sucede en su caso, deberia poder conectarse al servidor ejecutando mysql sin ningn parmetro:
shell> mysql

Despus de haberse conectado, puede desconectarse en cualquier momento escribiendo


QUIT (o \q) en el prompt mysql>: mysql> QUIT Bye

En Unix, tambin puede desconectarse presionando Control-D. La mayora de los ejemplos en las secciones siguientes asumen que ya se ha conectado al servidor. Por eso muestran el prompt mysql>.
http://dev.mysql.com/doc/refman/5.0/es/connecting-disconnecting.html

3.2. Entrar consultas


Cercirese de haberse conectado al servidor, tal como se describe en la seccin anterior. Esto en s mismo no selecciona ninguna base de datos para trabajar. En este punto es ms importante aprender un poco ms acerca de cmo realizar consultas que ir directamente a crear tablas, cargar datos, y recuperarlos. Esta seccin describe los principios bsicos del ingreso de comandos, empleando varias consultas que puede realizar para familiarizarse con la forma en que funciona mysql. Aqu tiene un comando simple que ordena al servidor que muestre su nmero de versin y la fecha actual. Ingrselo a continuacin del prompt mysql> y presione Enter:
mysql> SELECT VERSION(), CURRENT_DATE; +----------------+--------------+ | VERSION() | CURRENT_DATE | +----------------+--------------+ | 5.0.7-beta-Max | 2005-07-11 | +----------------+--------------+ 1 row in set (0.01 sec) mysql>

Esta consulta le muestra varias cosas acerca de mysql:


y

Un comando normalmente consiste en una sentencia SQL seguida de punto y coma. (Hay excepciones donde el punto y coma puede omitirse. QUIT, mencionado anteriormente, es una de ellas. Luego conocer otras.) Cuando ingresa un comando, mysql lo enva al servidor para ser ejecutado e imprime los resultados. A continuacin muestra de nuevo el prompt mysql> para informarle que est listo para otro comando. mysql imprime los resultados de la consulta en forma tabulada (filas y columnas). La primera fila contiene etiquetas para las columnas. Las filas siguientes son los resultados de la consulta. Generalmente, el nombre de cada columna es el nombre del campo que trae desde la base de datos. Si est trayendo el valor de una expresin, en lugar del contenido de un campo o columna de una tabla (como en el ejemplo anterior), mysql etiqueta la columna usando el texto de la expresin. mysql informa cuntas filas fueron devueltas y cunto tiempo le tom ejecutarse a la consulta, lo cual da una idea aproximada del rendimiento del servidor. Estos valores son imprecisos porque representan tiempo de reloj corriente (no tiempo de CPU), y adems porque estn afectados por factores como la carga del servidor o la latencia de red. (Para simplificar los ejemplos de este capitulo, a partir de ahora no se mostrar la lnea rows in set.)

Las palabras clave pueden ingresarse en cualquier combinacin de minsculas y maysculas. Las siguientes consultas son equivalentes:
mysql> SELECT VERSION(), CURRENT_DATE; mysql> select version(), current_date; mysql> SeLeCt vErSiOn(), current_DATE;

Aqui tiene otra consulta que demuestra que mysql puede usarse como calculadora:
mysql> SELECT SIN(PI()/4), (4+1)*5; +------------------+---------+ | SIN(PI()/4) | (4+1)*5 | +------------------+---------+ | 0.70710678118655 | 25 | +------------------+---------+ 1 row in set (0.02 sec)

Las consultas mostradas hasta ahora han sido relativamente cortas, sentencias de una sola lnea. Se puede inclusive ingresar mltiples sentencias en una misma lnea. Solamente deben separarse con punto y coma:
mysql> SELECT VERSION(); SELECT NOW(); +----------------+ | VERSION() | +----------------+ | 5.0.7-beta-Max | +----------------+ 1 row in set (0.00 sec) +---------------------+ | NOW() | +---------------------+ | 2005-07-11 17:59:36 | +---------------------+ 1 row in set (0.00 sec)

No es necesario que un comando sea ingresado en una sola lnea, de ese modo, comandos extensos que requieren varias lineas no son un problema. mysql determina cuando una sentencia ha llegado a l final observando si termina en un punto y coma, no si se lleg al final de la lnea fsica. (En otras palabras, mysql acepta un formato libre para las entradas: recolecta lineas pero no las ejecuta hasta que encuentra el punto y coma.) Aqui tiene una sentencia de mltiples lneas:
mysql> SELECT -> USER() -> , -> CURRENT_DATE; +---------------+--------------+ | USER() | CURRENT_DATE | +---------------+--------------+ | jon@localhost | 2005-07-11 | +---------------+--------------+ 1 row in set (0.00 sec)

Observe en este ejemplo que el prompt cambia de mysql> a -> despus que se ha ingresado la primera lnea de una consulta de mltiples lneas. Esta es la forma en que mysql advierte que no se ha completado la sentencia y an espera por el resto. El prompt es un aliado,

puesto que suministra informacin valiosa. Si se emplea, siempre se sabr lo que mysql est esperando. Si durante el ingreso de un comando decide que no quiere ejecutarlo, canclelo tipeando \c:
mysql> SELECT -> USER() -> \c mysql>

Una vez ms observe el prompt. Cambia a mysql> despus de que ingresa \c, informndole que mysql est listo para un nuevo comando. La siguiente tabla muestra cada uno de los indicadores que podr ver y sintetiza lo que dicen acerca del estado en que se encuentra mysql: Prompt Significado mysql> Listo para un nuevo comando.
-> Esperando la siguiente lnea en un comando de mltiples lneas. '> "> `> /*>

Esperando la siguiente lnea, se encuentra abierta una cadena que comienza con apostrofo ('''). Esperando la siguiente lnea, se encuentra abierta una cadena que comienza con comillas dobles ('"'). Esperando la siguiente lnea, se encuentra abierta una cadena que comienza con tilde ('`'). Esperando la siguiente lnea, se encuentra abierto un comentario que comienza con /*.

El prompt /*> fue introducido en la serie 5.0 a partir de MySQL 5.0.6. Es frecuente que se origine una sentencia de mltiples lineas cuando accidentalmente le da entrada a un comando de una sola lnea pero olvida terminarlo con punto y coma. En ese caso, mysql aguarda por ms caracteres:
mysql> SELECT USER() ->

Si esto le ocurre (considera que ha ingresado una sentencia completa pero solamente obtiene un prompt ->), la mayora de las veces es porque mysql est esperando por el punto y coma. Si no advierte lo que el indicador trata de decirle, podra demorar un buen tiempo en hacer lo que necesita. Ingrese un punto y coma para completar la sentencia, y mysql la ejecutar:
mysql> SELECT USER()

-> ; +--------------------+ | USER() | +--------------------+ | joesmith@localhost | +--------------------+

Los prompts '> y "> aparecen durante el ingreso de cadenas. Puede escribir cadenas delimitadas por ''' o '"' (por ejemplo, 'hola' o "adios"), y mysql le permite ingresar cadenas divididas en mltiples lneas. Cuando ve un prompt '> o "> significa que ha comenzado a ingresar una cadena comenzando con ''' o '"' pero no ha ingresado el correspondiente caracter de terminacin. A menudo esto significa que inadvertidamente omiti este carcter. Por ejemplo:
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30; '>

Si ingresa esta sentencia SELECT, presiona ENTER y espera por el resultado, nada ocurrir. En lugar de asombrarse por el tiempo que consume la consulta, note lo que el prompt '> le est diciendo. Indica que mysql espera por el final de una cadena inconclusa. (Ve el error en la sentencia? La cadena 'Smith no tiene el apstrofo de cierre.) Qu hacer llegado a este punto? Lo ms simple es cancelar el comando. No obstante, no puede simplemente tipear \c en este caso, porque mysql interpretar que es parte de la cadena que est ingresando!. En lugar de eso, tipee el caracter de cierre que falta y entonces ingrese \c.>:
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30; '> '\c mysql>

El prompt cambia de nuevo a mysql>, informando que mysql est listo para un nuevo comando. El prompt `> es similar a '> y "> , pero informa que est pendiente de completar un identificador delimitado por tildes. Es importante conocer el significado de estos indicadores, ya que si por error se ingresa una cadena incompleta, todo lo que se ingrese posteriormente ser aparentemente ignorado por mysql incluyendo el comando QUIT. Esto puede ser sumamente desconcertante, en particular si no se conoce lo que debe hacer para terminar la lnea y cancelar el comando.
http://dev.mysql.com/doc/refman/5.0/es/entering-queries.html

Una vez que se sabe la forma de ingresar comandos, es el momento de acceder a una base de datos. Suponga que en su hogar posee varias mascotas y desea registrar distintos tipos de informacin sobre ellas. Puede hacerlo si crea tablas para almacenar sus datos e introduce en ellas la informacin deseada. Entonces, podr responder una variedad de preguntas acerca de sus mascotas recuperando datos desde las tablas. Esta seccin le muestra como:
y y y y y

Crear una base de datos Crear una tabla Introducir datos en la tabla Recuperar datos desde la tabla de varias maneras Emplear mltiples tablas

La base de datos menagerie (palabra inglesa que en espaol significa "coleccin de animales") se ha hecho deliberadamente simple, pero no es difcil imaginar situaciones del mundo real donde podra usarse un tipo similar de base de datos. Por ejemplo, para un granjero que desee hacer el seguimiento de su hacienda, o para los registros de los pacientes de un veterinario. En el sitio web de MySQL pueden descargarse archivos de texto con datos de ejemplo y algunas de las sentencias empleadas en las siguientes secciones. Se encuentran disponibles en formato tar (http://downloads.mysql.com/docs/menagerie.tar.gz) y Zip (http://downloads.mysql.com/docs/menagerie.zip). Mediante la sentencia SHOW se encuentran las bases de datos que existen actualmente en el servidor:
mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | | tmp | +----------+

Probablemente la lista obtenida sea distinta en su ordenador, pero es casi seguro que tendr las bases de datos mysql y test. La base de datos mysql es necesaria porque es la que describe los privilegios de acceso de los usuarios. La base de datos test se provee para que los usuarios hagan pruebas. Tenga en cuenta que si no tiene el privilegio SHOW DATABASES, no podr ver todas las bases de datos que hay en el servidor. Consulte Seccin 13.5.1.3, Sintaxis de GRANT y REVOKE. Si la base de datos test existe, intente acceder a ella:
mysql> USE test Database changed

Advierta que, al igual que QUIT, USE no necesita que ponga un punto y coma al final (aunque puede hacerlo si lo desea). La sentencia USE tiene otra particularidad: debe escribirse en una sola linea. Puede colocar los ejemplos siguientes en la base de datos test, si tiene acceso a ella, pero si trabaja en un ambiente compartido, lo que deposite all puede ser fcilmente borrado por alguien ms que tenga el acceso. Por este motivo, debera pedirle a su administrador permiso para usar una base de datos propia. Suponga que quiere llamarla menagerie. El administrador necesitar ejecutar un comando como este:
mysql> GRANT ALL ON menagerie.* TO 'su_nombre_mysql'@'su_host_cliente';

Donde su_nombre_mysql es el nombre de usuario que se le asign, y su_host_cliente es el host u ordenador desde donde se conectar.
http://dev.mysql.com/doc/refman/5.0/es/database-use.html

Вам также может понравиться