Instituto Tecnologico Superior de Coatzacoalcos (ITESCO). MySQL: Guía de Referencia Farid Alfredo Bielma Lopez fbielma@fbielma.org http://fbielma.org/course/fbielma/curso_mysql.pdf
Resumen del curso Algunas situaciones que aprenderas en este curso incluyen: Como usar sentencias SQL para hacer select, sort, y sumarios. Como determinar intervalos entre fechas o tiempos. Como remover registros duplicados. Como guardar imágenes en MySQL y mostrarlas en una pagina web. Como obtener mediantes sentencias LOAD DATA el contenido de archivos.
Resumen del curso Algunas situaciones que aprenderas en este curso incluyen: Como copiar el contenido de una tabla o una base de datos en otro Servidor. Como realizar patrones de búsquedas Cuales son los tipos de datos y tipos de tablas soportadas por MySQL
Introduccion El sistema manejador de Base de Datos MySQL ha llegado a ganar recientemente una gran popularidad. Esto ha sido especialmente cierto debido a las comunidades de Software Libre, pero Mysql está presente en el sector comercial incrementándose muy bien. Esto es debido a muchas razones: 3. MySQL es rápido 4. Fácil de instalar, usar y administrar. 5. MySQL corre bajo una gran variedades sistemas Unix y Windows 6. Los programas basados en MySQL pueden ser escritos en muchos lenguajes.
Instalación
Estableciendo un usuario MySQL Problema: Necesitas crear una cuenta para un usuarios para conectarse al Servidor Solución: Usa la sentencia GRANT para establecer una cuenta de usuario para MySQL.
Estableciendo un usuario MySQL El siguiente ejemplo muestra como usar el programa mysql para conectar al Server y ejecutar una sentencia GRANT con privilegios para accesar a una Base de Datos llamada curso: % mysql -h localhost -p -u root Enter password: ****** mysql> GRANT ALL ON curso.* TO farid'@'localhost' IDENTIFIED BY fbielma.org'; Query OK, 0 rows affected (0.09 sec) mysql> QUIT Bye
Creando una Base de Datos Problema: Quieres crear una base de datos y establecer tablas en esa base de datos. Solución: Usa una sentencia CREATE DATABASE para crear una Base de Datos, una clausula CREATE TABLE para cada tabla que quieras usar.
Creando una Base de Datos El siguiente ejemplo muestra como usar el programa mysql para conectar al Server y ejecutar la sentencia Create Database: % mysql -h localhost -p -u farid Enter password: fbielma.org mysql> CREATE DATABASE curso; Query OK, 1 row affected (0.08 sec)
Creando una Base de Datos Para crear la tabla e insertar un registro se sigue lo siguiente: mysql> USE curso; mysql> CREATE TABLE materia (curso VARCHAR(20), creditos INT, folio INT); mysql> INSERT INTO materia (curso,creditos,folio) VALUES( historia',8,2); mysql> INSERT INTO materia (curso,creditos,folio) VALUES( derecho',8,3); mysql> INSERT INTO materia (curso,creditos,folio) VALUES( ingles',8,10); mysql> INSERT INTO materia (curso,creditos,folio) VALUES( informatica',8,8);
Iniciando y Terminando MySQL Problema: Se desea iniciar y detener el programa mysql. Solución: Invoca mysql desde la línea de comandos para iniciar, especificando los parametros de conección. Para dejar mysql usa una cláusula QUIT.
Iniciando y Terminando MySQL Para iniciar el programa mysql, solo se tiene que tipear su nombre en la línea de comandos: % mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 18427 to server version: 3.23.51-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
Iniciando y Terminando MySQL Para terminar una sesion de mysql use la clausula QUIT: mysql> QUIT Además, puedes terminar la sesión usando Exit o bajo UNIX tipeando Ctrl-D.
Iniciando y Terminando MySQL Las condiciones cuando especificas parametros de conección para mysql además aplica a otros programas MySQL como mysqldump y mysqladmin. % mysqladmin -p -u root shutdown Enter password:
Especificando un parametro de conección usando Option Files Problema: No se desea tipear los parametros de conección cada vez que se invoca desde la línea de comandos a mysql. Solución: Coloca los parametros en un Option File.
Especificando un parametro de conección usando Option Files El siguiente ejemplo ilustra el formato usado para escribir un Option Files: # general client program connection options [client] host=localhost user=farid password=mi_password_ultra_secreto # options specific to the mysql program [mysql] no-auto-rehash # specify pager for interactive mode pager=/usr/bin/less
Especificando un parametro de conección usando Option Files Si tu quieres encontrar cuales opciones son tomadas desde el Option File usa este comando: % mysql --print-defaults o: % my_print_defaults client mysql
Protegiendo Option Files Problema: Tu MySQL username y password están guardados en tu Option File, y no quieres que otro usuario lo lea. Solución: Cambia el file's mode para hacerlo accesible solamente por ti.
Protegiendo Option Files Si usas un sistema operativo multiusuario como UNIX, deberias proteger tu Option File para prevenir que alguein se conecte a mysql usando tu cuenta. Usa chmod para hacer el archivo privado para ser accesado solamente por ti: % chmod 600.my.cnf
Minimizando Option Files Problema: No quieres guardar tu MySQL password en un option file, pero no quieres entrar tu username y server host manualmente. Solución: Coloca el username y host en el option file, y especifica el password interactivamente cuando invoques a mysql.
Minimizando Option Files Para especificar "no password cuando en el Option File se encuentre en blanco, usa p desde la linea de comandos: % mysql -p Enter password: press Return here
Enviando Consultas Problema: Has iniciando mysql y ahora tu quieres enviar consultas al MySQL server. Solución: Justamente tipea la consulta, pero ten la seguridad que mysql te permita saber donde termina cada linea.
Enviando Consultas Para enviar una consulta al mysql> prompt, tipea y agrega un semicolon ( ;), esto significa el fin de la consulta y presiona Return. El semicolon es el mas comun terminador, pero ademas puedes usar \g ("go") como un sinonimus para el semicolon. mysql> SELECT -> NOW( )\g
Seleccionando una BD Problema: Quieres decirle a mysql cual base de datos se va a usar. Solución: Nombra a la base de datos en la linea de comandos de mysql o coloca la clausula USE desde mysql.
Seleccionando una BD. Puedes especificar la database en la linea de comando cuando inicias mysql: % mysql curso Si ya tienes iniciada una sesion, puedes seleccionar una base de datos con la clausula USE: mysql> USE cookbook; Database changed
Seleccionando una BD. Si has olvidado la base de datos actual, usa esta sentencia: mysql> SELECT DATABASE( ); +------------+ DATABASE() +------------+ curso +------------+
Seleccionando una BD. El comando STATUS (y su sinonimo, \s) ademas muestra la base de datos actual, adicionalmente muestra otras piezas de información: mysql> \s -------------- Connection id: 5589 Current database: curso Current user: farid@localhost Server version: 3.23.51-log Protocol version: 10 UNIX socket: /tmp/mysql.sock Uptime: 9 days 39 min 43 sec Open tables: 52 Queries per second avg: 0.054 --------------
Decirle a mysql que lea consultas desde un archivo Problema: Quieres que mysql lea consultas guardadas en un archivo y no entrarlos manualmente. Solución: Redirige mysql's input o usa el comando SOURCE.
Decirle a mysql que lea consultas desde un archivo Para crear un script SQL para mysql ejecuta en un batch, coloca tus consultas en un archivo de texto, entonces invoca mysql y redirige la entrada desde ese archivo: % mysql curso < filename
Dudas o Comentarios? Farid Alfredo Bielma Lopez fbielma@fbielma.org http://fbielma.org/course/fbielma/curso_mysql.pdf