Você está na página 1de 26

MySQL

Fuente: http://www.salnet.com.ar/inv_mysql/mysql.htm
Los sitios web modernos parecen depender cada vez mas y ms en sistemas de bases de datos complejos.
Estos sistemas almacenan todos sus datos crticos, y permiten un mantenimiento sencillo en la mayora de los
casos.
El Structured Query Languaje(SQL) es un lenguaje de base de datos muy popular y su estandarizacin hace
bastante fcil almacenar, actualizar y procesar datos. Uno de los ms poderosos servidores SQL es llamado
MySQL y sorprendentemente es libre!.
Hablar de una base de datos SQL es muy complicado ya que habra que remontarse a los orgenes mismos de
las bases de datos relacionales y el objetivo de este nforme no es tan ambicioso, simplemente intenta describir
y mostrar una implementacin especfica de un gestor de bases de datos SQL.
Objetivos
Conocer las ventajas y usos de MySQL.
Aprender a instalar y configurar un servidor de SQL.
Creacin, modificacin, y borrado de tablas.
Fundamentos del lenguaje MySQL
Destinatarios
Colegios y Universidades: Administracin de alumnos, carreras, ctedras, calificaciones, horarios, etc.
Pymes: Administracin de recursos, sueldos y jornales, empleados, gestin contable, etc.
Estudiantes: Aprendizaje.
Comercio: Gestin comercial, sueldos y jornales, control de stock, facturacin, ventas, etc.
Estado: Administracin de recursos, contabilidad, sueldos y jornales, administracin de personal, etc.
Bibliotecas: Administracin de recursos, catlogos, indices, prestamos y devoluciones, etc.
1. Introduccin
1.1. Qu es SQL?
SQL es un mtodo basado en un potente lenguaje, para organizar, administrar y consultar datos almacenados
en una computadora. SQL es una sigla que deviene de su nombre en ingls "Structured Query Language"
(Lenguaje de Consulta Estructurado). Ms especficamente SQL esta definido en torno al modelo de bases de
datos relacionales, basado en el lgebra relacional, esto le da a SQL las ventajas que lo imponen como el
sistema de mayor aceptacin. Algunas de las ventajas son:
Marco terico slido, fundamentado en el lgebra relacional
Simplicidad de conceptos (modelo de base de datos: tablas=lineas x columnas)
Definicin de vnculos en la consulta, esto le da a SQL una gran flexibilidad
Fcil y rpido aprendizaje
Arquitectura cliente-servidor
ntegracin con cualquier lenguaje de programacin
Estandarizacin
1.2.Que es MySQL ?
MySQL es un Sistema de Gestion de Base de Datos.
Una Base de Datos es una coleccion estructurada de datos. Puede ser, desde una simple lista de articulos a las
inmensas cantidades de informacion en una red corporativa.
MySQL es un gestor de bases de datos SQL (Structured Query Language). Es una implementacin Cliente-
Servidor que consta de un servidor y diferentes clientes (programas/libreras).Podemos agregar, acceder, y
procesar datos grabados en una base de datos. Actualmente el gestor de base de datos juega un rol central en
la informtica, como nica utilidad, o como parte de otra aplicacin.
Es un Sistema de Gestin de Base de Datos Relacional. El modelo relacional se caracteriza a muy grandes
rasgos por disponer que toda la informacin debe estar contenida en tablas, y las relaciones entre datos deben
ser representadas explcitamente en esos mismos datos. Esto aade velocidad y flexibilidad.
MySQL es un software de cdigo abierto esto quiere decir que es accesible para cualquiera, para usarlo o
modificarlo. Podemos descargar MySQL desde nternet y usarlo sin pagar nada, de esta manera cualquiera
puede inclinarse a estudiar el cdigo fuente y cambiarlo para adecuarlo a sus necesidades. MySQL usa el GPL
(GNU Licencia Publica General) para definir que podemos y no podemos hacer con el software en diferentes
situaciones. Entre otras cuestiones esta licencia aclara que no cuesta dinero a menos que lo incluyamos en un
software comercial y tenemos el cdigo fuente.
1.3.or!ue usar MySQL?
MySQL es muy rpido, confiable, robusto y fcil de usar tanto para volmenes de datos grandes como
pequeos (siempre, claro est, comparada con las de su categora, como veremos mas adelante en este
informe). Adems tiene un conjunto muy practico de caractersticas desarrolladas en cooperacin muy cercana
con los usuarios. Sin embargo bajo constante desarrollo, MySQL hoy en da ofrece un rico y muy til conjunto
de funciones. La conectividad, velocidad y seguridad hace de MySQL altamente conveniente para acceder a
bases de datos en nternet.
1.".#reve $istoria
BM empez a comercializar en 1.981 el SQL y desde entonces este producto ha tenido un papel importante en
el desarrollo de la bases de datos relacionales. BM propuso y fue aceptada , una versin de SQL al nstituto de
Estndares Nacional Americano(ANS) y desde entonces es utilizado de forma generalizada en las bases de
datos relacionales. En 1.983 naci DB2 la ms popular( por lo menos en los grandes ordenadores) de las bases
de datos de este tipo hasta estos mismos momentos.
En el mundo GNU, una de las bases de datos que se resea en cualquier referencia de aplicaciones de ste
tipo bajo LNUX, es MySQL aunque no est incluida en ninguna distribucin ya que no tiene licencia GNU como
tal, para comercializarla a ella o a cualquier software que la utilice o se sirva de sta habr que adquirir una
licencia.
Alrededor de la dcada del 90, Michael Windenis (monty@analytikerna.se) comenz a usar mSQL para
conectar tablas usando sus propias rutinas de bajo nivel (SAM). Sin embargo, despus de algunos testeos
llego a la conclusin que mSQL no era lo suficientemente rpido ni flexible para sus necesidades. De todo esto
surgi en una nueva interfaz SQL (claro que con cdigo mas portable) con algunas apariencias similares en la
AP de C y en los nombres y funciones de muchos de sus programas. Esto haba sido hecho para lograr con
relativa facilidad portar aplicaciones y utilidades de MiniSQL a MySQL.
El Origen del nombre MySQL no esta perfectamente claro. Algunos lo atribuyen al hecho de que un gran
numero de nuestras librerias y herramientas le asignamos el prefijo "My por costumbre. Sin embargo la hija de
'Monty' es ademas llamada My. Asi que cual de las dos razones da el nombre a MySQL es aun un misterio.
2. In%or&acin tcnica
2.1.rinci'a(es )aracter*sticas
El principal objetivo de MySQL es velocidad y robustez.
Escrito en C y C++, testado con GCC 2.7.2.1. Usa GNU autoconf para potabilidad.
Clientes C, C++, JAVA, Perl, TCL.
Multiproceso, es decir puede usar varias CPU si stas estn disponibles.
Puede trabajar en distintas plataformas y S.O. distintos.
Sistema de contraseas y privilegios muy flexible y segura.
Todas la palabras de paso viajan encriptadas en la red.
Registros de longitud fija y variable.
16 ndices por tabla, cada ndice puede estar compuesto de 1 a 15 columnas o partes de ellas con una
longitud mxima de 127 bytes.
Todas las columnas pueden tener valores por defecto.
Utilidad (samchk) para chequear, optimizar y reparar tablas.
Todos los datos estn grabados en formato SO8859_1.
Los clientes usan TCP o UNX Socket para conectarse al servidor.
El servidor soporta mensajes de error en distintas lenguas.
Todos los comandos tienen -help o -? Para las ayudas.
Diversos tipos de columnas como enteros de 1, 2, 3, 4, y 8 bytes, coma flotante, doble precisin,
carcter, fechas, enumerados, etc.
ODBC para Windows 95 (con fuentes), se puede utilizar ACCESS para conectar con el servidor.
2.2.Siste&as o'erativos so'ortados 'or MySQL+
Los siguientes son solo algunos de los Sistemas operativos que soporta MySQL:
AX 4.x con consulta nativa.
BSD 2.x con el paquete MT-pthreads incluido.
BSD 3.0, 3.1 y 4.x con consulta nativa.
DEC Unix 4.x con consulta nativa.
FreeBSD 2.x con el paquete MT-pthreads incluido.
FreeBSD 3.x y 4.x con consulta nativa.
HP-UX 10.20 con el paquete MT-pthreads incluido.
HP-UX 11.x con consulta nativa.
Linux 2.0+ con LinuxThreads 0.7.1+ o glibc 2.0.7+ .
Mac OS X Server.
NetBSD 1.3/1.4 ntel y NetBSD 1.3 Alpha (carece de la marca GNU).
OpenBSD > 2.5 con consulta nativa. OpenBSD < 2.5 con el paquete MT-pthreads incluido.
OS/2 Warp 3, FixPack 29 y OS/2 Warp 4, FixPack 4.
SG rix 6.x con consulta nativa.
Solaris 2.5 y con consulta nativa sobre SPARC y x86.
SunOS 4.x con el paquete MT-pthreads incluido.
SCO OpenServer con un puerto reciente al paquete de FSU Pthreads.
SCO UnixWare 7.0.1.
Tru64 Unix
Win95, Win98, NT, y Win2000.
La versin libre fue escrita por Michael Windenis, la versin comercial es distribuida por TCX Datakonsulter AB.
3. Insta(acin de MySQL en ,indo-s ./ .0
3.1.Insta(acin
Si no tienes una copia de la distribucin de MySQL, descrgala primero de http://www.mysql.com /.
Si planeas conectar a MySQL de algn otro programa, probablemente necesitars tambin el MyOD#) driver.
Puedes descargarlo de la pgina de MySQL.
Para instalar cualquier distribucin, descrgala en alguna carpeta vaca y ejecuta el programa de Setup.exe.
Por defecto, MySQL-Windows se configura para ser instalado en `C:\mysql '. Si quieres instalar MySQL en otra
parte debes arrancar el servidor en otra parte. Por ejemplo, si has movido la distribucin de MySQL a
'D:\programs\mysql', debes empezar mysqld con: D:\programs\mysql\bin\mysqld basedir.
3.2. 1rrancar MySQL en ,indo-s ./ o ,indo-s .0
MySQL usa 2)3I 'ara conectar un c(iente a un servidor. (Esto permitir a cualquier mquina en tu red
conectar a tu servidor MySQL.) Debido a esto, debes instalar TCP/P en tu mquina antes de empezar MySQL.
Puedes encontrar TCP/P en tu CD-ROM de Windows.
Hay 2 servidores MySQL diferentes que puedes usar:
mysqld Compilado con depuracin full y verificacion de asignacin de memoria automtico
Mysqld-opt
Perfeccionado para un procesador Pentium.
Los dos anteriores deben trabajar en cualquier procesador de ntel >= i386.
Para arrancar el servidor del mysqld, debes iniciar una ventana de MS-DOS y tipear:
C:\mysql\bin\mysqld
Para apagar el servidor de MySQL ejecuta:
C:\mysql\bin\mysqladmin -u root shutdown
Si el mysqld no arranca, verifica si el archivo ` \mysql\mysql.err ' contiene cualquier razn para esto o no.
3.3. )orrer MySQL en ,indo-s
Puedes probar si MySQL est trabajando o no ejecutando las siguientes rdenes:
C:\mysql\bin\mysqlshow (Visualiza informacin sobre base de datos que hay en el Sistema)
C:\mysql\bin\mysqlshow -u root mysql (Visualiza informacin sobre las tablas de la base de datos mysql)
C:\mysql\bin\mysqladmin version status proc
C:\mysql\bin\mysql test (Se nos presentar el prompt de la shell, con lo cual podemos enviar comandos al
servidor.)
Hay dos versiones de la herramienta para la linea de comandos de MySQL:
mysql Compilado en Windows , ofrece capacidades de edicin de texto muy limitado.
Mysqlc
Compilado con el compilador Cygnus GNU y librerias que ofrecen edicin readline.
Si quieres usar mysqlc.exe, debes copiar `C:\mysql\lib\cygwinb19.dll ' a la carpeta de ` \windows\system '.
". Insta(acin de MySQL en Linu4.
".1.Insta(acin #inario
Una vez descargado el fichero empaquetado tal como: mysql-Version.tar.gz. Se proceder a desempaquetarlo.
Se puede hacer de varias formas, pero yo prefiero hacerlo paso a paso:
1. Desempaquetar:
gunzip -dfv mysql-Version.tar.gz
2. Despus se realiza el comando tar
tar -xvf mysql-Version.tar
Este comando tar en mi instalacin lo hice en el directorio /seminario/ con lo que en ste se cre el directorio:
/seminario/mysql-3.23.31-pc-linux-gnu-i686 que como vemos no es muy prctico su manejo, con lo que se
recomienda (en la propia gua de instalacin del MySQL) que se realice un acceso directo con el comando ln
(hacer Links entre ficheros)
ln -s mysql-3.23.31-pc-linux-gnu-i686 mysql
Y haciendo cd mysql estaremos naturalmente en el directorio de MySQL
Si tu eres nuevo en MySQL y nunca lo has instalado antes, necesitas crear los permisos por default, as que
teclea... scripts/mysql_install_db para darlos de alta.
Y si todo ha funcionado perfectamente estaremos en disposicin de poder arrancar el servidor de la base da
datostecleando:
bin/safe_mysqld &
".2. Insta(acin 5uentes
Vimos que las versiones precompiladas para LNUX y las de Windows, son tan simples como desempaquetar y
ocupar. Ahora veremos que aqu la cosa no es tan simple.

Baja el archivo comprimido en tu directorio fuente y descomprimelo de la misma forma que en el apartado
anterior
Esto podra crear un directorio llamado mysql-version, el cual contiene los cdigos fuentes. Muvete al directorio
tecleando cd mysql-version y chequea los varios archivos README e NSTALL. Ellos son salvavidas en
muchas situaciones peligrosas.
MySQL viene con un script de configuracin. Simplemente teclea ./configure y deja que las cosas ocurran por si
mismas. Si tu necesitas especificar que sucede y donde, teclea ./configure --help y te da una lista de opciones
para escoger. Por ejemplo si estas compilando en una maquina con poca memoria, puedes optar por la bandera
--with-low-memory . Me gusta instalar MySQL en un rbol prximo de directorios mejor dicho en varias
localidades de mi maquina, as yo digo la localizacin de la instalacin con la bandera --prefix .
Tambin puedes especificar otras varias opciones, como que compilar y que saltarse. Asumiremos que
deseamos todas la cosas bajo /usr/local/mysql en nuestro servidor.
Esto significa que deberas de teclear ./configure --prefix=/usr/local/mysql.
El script de configuracin podra correr e inspeccionar tu sistema y entonces construir los archivos necesarios
para la compilacin exitosa. Si falla, pudieses obtener un mensaje de error de mucha ayuda dicindote el
porque. Con frecuencia, podras encontrar en el script por que fallo, cuando ests observando o buscando las
libreras de hilos. Chequea que tengas los MT-pthreads instalados en tu maquina, si no adicinalos. Los
usuarios de Linux, tendran que obtener los Linuxthreads. Estas son libreras criticas que alojan la multitarea de
MySQL. (Que sirve para correr mltiples versiones de si mismo). Las distribuciones recientes de Linux, pueden
contener estas libreras instaladas.
Si todas las cosas van de acuerdo al plan, simplemente teclea make y tomate un caf. MySQL es un programa
complejo y toma algn tiempo compilarlo. Si tienes un error, chequea la documentacin y ve si existe alguna
cosa especificada que hayas olvidado en particular para tu sistema operativo.
Despus, teclea make install y todos los archivos necesarios quedaran instalados en todos los lugares. Ahora
estas casi listo para seguir.
gual que en el apartado anterior teclea: scripts/mysql_install_db .
Estas listo para continuar. Puedes entrar al directorio raz (root) de tu instalacin de MySQL ( /usr/local/mysql ) y
teclea bin/safe_mysqld &
/. 6ti(i7acin de( ro8ra&a+
/.1. 9structura de MySQL
Una vez instalado en Linux el gestor de bases de datos tendremos los siguientes ficheros y directorios:
9n Linu4
Directorios:
bin
data
include
lib
mysql-test
scripts
share
sql-bench
suport-files
tests
ficheros:
COPVNG
COPVNG.LB
ChangeLog
NSTALL-BNARY
README
Configure
manual.html
manual_toc.html
En los ficheros README, NSTALL-BNARY, manual.html, etc., viene informacin sobre la instalacin del
servidor de bases de datos, manual de funcionamiento, etc. que es bastante completo y efectivo (parte de este
informe est basado en ellos).
9n ,indo-s+
Carpetas:
bench
bin
data
Docs
examples
include
lib
scripts
share
Archivos:
infolist
my-example
mysqlbug
Readme
Uninst.isu
Dentro del directorio 3data encontraremos como subdirectorios de este cada una de las bases de datos que
vamos creando. En el momento de la instalacin se define por defecto los archivos en los que se apoya el
sistema de seguridad, esta base de datos es "mysql". En esta base de datos es donde se guardarn todos los
permisos y restricciones a los datos de nuestras bases de datos.
El directorio 3benc: encontraremos ejemplos de SQL.
El directorio 3s:are contiene los mensajes de error del servidor en cada uno de los idiomas que est disponible.
Los directorios 3inc(ude y 3(ib se encuentran los ficheros *.h y las libreras necesarias.
El directorio 3bin estn todos los ficheros ejecutables, entre los ms importantes destacaremos:
;&ys!(; Una Shell de SQL (con readline de GNU). Se puede usar tanto interactivamente como no.
;&ys!(ad&in; Utilidades de administracin. Crear/borrar base de datos. nformacin sobre procesos y
versiones.
;&ys!(d; El SQL "deamon" ("demonio).Debe estar siempre ejecutndose.
;&ys!(s:o-; Visualiza informacin sobre base de datos, tablas y campos.
;sa%e<&ys!(d; Arranca "mysqld".
;&ys!(access; Script para chequear los privilegios de una combinacin: Host, Usuario y base de datos.
;&ys!(bu8; Se utiliza para enviar los posibles errores (bug) que encontremos en el gestor.
;&ys!(<insta((<db; Crear grandes tablas con privilegios por defecto, se ejecuta cuando se instala por primera
vez en un sistema nuevo.
;isa&c:=; Chequea, optimiza y repara tablas.
La principal herramienta de MySQL es &ys!(ad&in, la cul como parece indicar su nombre es la encargada de
la administracin.
MySQL crea por defecto al usuario root con todos los permisos posibles habilitados, podemos utilizar este
usuario como administrador o crear otro, por ejemplo &ys!(ad&i. Como el usuario root lo crea sin clave de
acceso, lo primero que debemos hacer es asignarle una:
mysqladmin -u root -p password "miclave"
A partir de ahora cualquier operacin que hagamos como root deberemos especificar la clave. Hay que destacar
que entre el modificador -p y la clave no debe haber espacios.
mysqladmin -u root -pmiclave
Pues bien, ya estamos preparado para crear una base de datos
mysqladmin -u root -pmiclave create mibasededatos
Para borrarla
mysqladmin -u root -pmiclave drop mibasededatos
Para cada base de datos que nosotros creamos, MySQL crea un directorio con el nombre que le hemos
asignado a la base de datos. Dentro de este directorio, por cada tabla que definamos MySQL va ha crear tres
archivos: &itab(a.ISD> &itab(a.ISM> &itab(a.%r&
El archivo con extensin ISD, es el que contiene los datos de nuestra tabla, el ISM contiene informacin acerca
de las claves y otros datos que MySQL utiliza para buscar datos en el fichero ISD. Y el archivo %r& contiene la
estructura de la propia tabla.
Dado que las bases de datos de MySQL son simples ficheros de un directorio, para realizar copias de
seguridad, podremos utilizar las herramientas de compresin que habitualmente usamos en nuestro sistema y
luego copiarlo a otro lugar, o simplemente esto ltimo.
/.2.1d&inistracin ?Se8uridad@
El sistema de seguridad de MySQL garantiza que cada usuario pueda hacer las cosas que le estn permitidas
(nada ms y nada menos).
El sistema decide los diferentes privilegios dependiendo de "QU USUARO" conectado a "QU BASE DE
DATOS" desde "QU HOST". El sistema de privilegios est basado, como no, en el contenido de 5 tablas, :ost>
user> db> tab(es<'riv> co(u&s<'riv de la base de datos "mysql".
La tabla user contiene informacin sobre los usuarios, desde que mquinas pueden acceder a nuestro servidor
MySQL, su clave y de sus diferentes permisos. La tabla :ost nos informa sobre que mquinas podrn acceder
a nuestro sistema, as como a las bases de datos que tendrn acceso y sus diferentes permisos. Finalmente,
las tablas db> tab(es<'riv> co(u&ns<'riv nos proveen de un control individual de las bases de datos, tablas y
columnas (campos).
Database: mysql
2ab(es
db
host
user
tables_priv
colums_priv
Las columnas de las primeras 3 tablas son:
Table: db
Field Type Null Key Default Extra
Host
Char(60) PR
Db
Char(32) PR
User
Char(16) PR
Select_priv
Char(1) N
nsert_priv
Char(1) N
Update_priv
Char(1) N
Delete_priv
Char(1) N
Create_priv
Char(1) N
Drop_priv
Char(1) N
Table: host
Field Type Null Key Default Extra
Host
Char(60) PR
Db
Char(32) PR
Select_priv
Char(1) N
nsert_priv
Char(1) N
Update_priv Char(1) N
Delete_priv
Char(1) N
Create_priv
Char(1) N
Drop_priv
Char(1) N
Table: user
Field Type Null Key Default Extra
Host
Char(60) PR
User
Char(16) PR
Password
Char(16)
Select_priv
Char(1) N
nsert_priv
Char(1) N
Update_priv
Char(1) N
Delete_priv
Char(1) N
Create_priv
Char(1) N
Drop_priv
Char(1) N
Reload_priv
Char(1) N
Shutdown_priv
Char(1) N
Process_priv
Char(1) N
File_priv
Char(1) N
He aqu una breve descripcin de los diferentes permisos:
Se(ect<'riv: Permite utilizar la sentencia SELECT
Insert<'riv: Permite utilizar la sentencia NSERT
6'date<'riv: Permite utilizar la sentencia UPDATE
De(ete<'riv: Permite utilizar la sentencia DELETE
)reate<'riv: Permite utilizar la sentencia CREATE o crear bases de datos
Dro'<'riv: Permite utilizar la sentencia DROP o eliminar bases de datos
Ae(oad<'riv: Permite recargar el sistema mediante mysqladmin reload
S:utdo-n<'riv: Permite parar el servidor mediante mysqladmin shutdown
rocess<'riv: Permite manejar procesos del servidor
5i(e<'riv: Permite leer y escribir ficheros usando comando como SELECT NTO OUTFLE y LOAD
DATA NFLE
Brant<'riv: Permite otorgar permisos a otros usuarios
Inde4<'riv: Permite crear o borrar ndices
1(ter<'riv: Permite utilizar la sentencia ALTER TABLE
Si dejamos en blanco los campos user, :ost o db, haremos referencia a cualquier usario, servidor o base de
datos. Conseguiremos el mismo efecto poniendo el smbolo C en el campo.
Se puede siempre comprobar nuestros privilegios con el script "mysqlaccess".
Un HOST debe ser un "host local", un numero P, o una expresin SQL . Si en la tabla "db" la columna host est
vaca significa "cualquier host" en la tabla de "host". Si en la tabla "host" o "user" la columna host est vaca
significa que cualquier HOST puede crear una conexin TCP con vuestro servidor.
Una columna "USER" vaca significa cualquier nombre de usuario.
Los privilegios predefinidos en Windows les dan privilegios full a todos los usuarios locales a todas las bases de
datos; ya que en la instalacin se crea el usuario root sin password. Debes crear distintos usuarios con distintos
permisos. Entre ellos, el usuario administrador de MySQL, con todos los permisos, y como recomendacin de
seguridad, el usuario nobody slo con el permiso de ver (SELECT).
Debes poner una contrasea para todos los usuarios y quitar la fila en la tabla de mysql.user que tiene Host = '
localhost ' y User = ' ' .

Tambin debes agregar una contrasea para el usuario root.
(El siguiente ejemplo empieza quitando al usuario annimo que permite a cualquiera para acceder a la base de
datos 'Test'.):
C:\mysql\bin\mysql mysql
mysql> DELETE FROM user WHERE Host='localhost' AND User='';
mysql> QUT
C:\mysql\bin\mysqladmin reload
C:\mysql\bin\mysqladmin -u root password your_password
Despus que has puesto la contrasea, si quieres bajar el servidor del mysqld, puedes hacerlo usando esta
orden as:
mysqladmin -u root -p your_password shutdown
/.3. ri&eros asos
Lo primero que debemos hacer es arrancar el servidor MySQL para realizar cualquier operacin con la base de
datos:
En Linux: La forma ms rpida de arrancar el servidor es ejecutando
mysql.server start

y para pararla:
mysql.server stop

Se puede realizar lo mismo ejecutando el script safe_mysqld como indica en la gua de instalacin, aunque al
final, de una forma o de otra, se ejecuta el fichero "mysqld".
En Windows: Solo tenemos que teclear desde una ventana de DOS lo siguiente
C:\mysql\bin\mysqld.exe
y para pararla :
C:\mysql\bin\mysqladmin -u root shutdown
Una vez realizado esto se pueden ejecutar varios comandos para comprobar que el arranque del servidor ha
sido correcto como, por ejemplo, "mysqladmin" cuyo formato completo ser:
mysqladmin [OPCONES] comando comando .

donde OPCONES puede ser:
-f, --force No realiza la pregunta para confirmar al orrar una tala.
-?, --help !isualiza esta ayuda .
-h, --host=# Cone"in con el #ost.
-p,
--password[=...]
Palara de paso para la cone"in al servidor
-P port=... Numero de puerto a usar en la cone"in.
-S socket=... $ic#ero %ocket para usar en la cone"in.
-u, --user=# &suario de cone"in si no es el usuario actual.
-V, --version 'nformacin sore la versin actual .
donde Comando puede ser uno o ms de:
Createm nombre_base_de_datos Crea una nueva base de datos
drop nombre_de_base_de_datos Borra una base de datos y todos sus tablas
kill identificador_de_procesos "mata " un proceso mysql
processlist Muestra una lista de los procesos que se ejecutan en el servidor
shutdown Para al servidor
status Obtiene un mensaje del estado del servidor
version Obtiene la versin del servidor
as que, ejecutando:
mysqladmin create nuevabasededatos
crearemos una nueva base de datos cuyo nombre ser "nuevabasededatos".
Podremos ver los procesos que se estn ejecutando en el servidor con:
mysqladmin processlist

Otro comando importante es el mysqlshow que nos permite ver las bases de datos que existen, por ejemplo, si
ejecutamos el comando tal cual:
mysqlshow

nos mostrar como resultado:
+-----------+
| Databases |
+-----------+
| mysql |
| test |
+-----------+
La shell de Mysql podemos arrancarla ejecutando en la lnea de comandos algo como la siguiente sintaxis para
entrar.
mysql -h host_name -u user_name -pyour_pass
Usualmente usted tiene que preguntar al servidor web para un nombre de usuario y password para MySQL, ya
que este es el primer servicio por el que usted preguntar primero.
Personalmente, cuando yo ingreso a mysql, lo primero que veo es:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is XXXX to server version: 3.22.22
Type 'help' for help.
Cuando usted escribe help, ver:
MySQL co&&ands+
help (\h) Display this text
? (\h) Synonym for `help'
clear (\c) Clear command
connect (\r) Reconnect to the server. Optional arguments are db and host
edit (\e) Edit command with $EDTOR
exit (\q) Exit mysql. Same as quit
go (\g) Send command to mysql server
ego (\G) Send command to mysql server; Display result vertically
print (\p) Print current command
quit (\q) Quit mysql
rehash (\#) Rebuild completion hash
status (\s) Get status information from the server
use (\u) Use another database. Takes database name as argument
Estos usualmente ayudan cuando uno se pierde durante las aventuras en MySQL...
/.". 2i'os de Datos.
Cada columna en una tabla est hecha de un tipo de datos. Hay tres tipos generales de datos: tipos numricos,
tipos de fechas y horas y tipos de cadenas de caracteres. En los siguientes ejemplos solo mostrar los tipos de
datos ms usados comnmente. M - indica el tamao mximo que se despliega. El tamao mximo legal de
despliegue es 255.
Du&eric 2y'es
NT[(M)] Un entero de tamao normal. El rango con signo es -2147483648 a 2147483647. El rango sin signo es
0 a 4294967295.
Ejemplo: Age NT;
FLOAT[(M,D)] Un nmero de punto flotante de presicin simple. No puede ser sin signo. Se permite valores
entre -3.402823466E+38 y -1.175494351E-38.
Los nmeros de punto flotante estn hechos para ser muy precisos. Si yo especifico FLOAT(6,2) entonces se
permitiran seis nmeros a la izquierda del punto decimal y 2 a la derecha.
5ec:a y $ora.
DATE Una fecha. El rango soportado es '1000-01-01' a '9999-12-31'. MySQL despliega las fechas en formato
'YYYY-MM-DD', pero permite asignar valores a columnas DATE usando cadenas o nmeros.
Ej. Today DATE;
TME Un rango hora. Este rango es '-838:59:59' a '838:59:59'. MySQL despliega las horas en formato
'HH:MM:SS', pero permite asignar valores para columnas TME usando cadenas o nmeros.
Ej. Now TME;
)adenas de )aracteres.
CHAR(M) CHAR son cadenas de caracteres de longitud fija a las que se aade espacios a la derecha hasta
llegar a la longitud que especific en M. Si usted especifica un tipo de datos como CHAR(60), y la nica entrada
son solo 20 caracteres, entonces a la entrada se aaden 40 espacios. Aunque estos espacios se removern
cuando el valor se entregue de nuevo. Estas cadenas se compararn por MySQL en forma no sensible a las
maysculas a mnos que se le d la palabra clave BNARY. El tamao mximo es de 255 caracteres.
Ej. Name CHAR(60);
VARCHAR(M) Como el nombre sugiere estas cadenas son de longitud variable. Todos los espacios extra se
removern cuando el valor sea almacenado en la base de datos. Esto es importante cuando se tiene espacio
limitado en el disco duro, pero puede ser un problema de velcidad. Puede perder hasta 50% de la velocidad de
su base de datos por usar estas cadenas. La explicacin es que en realidad se carga la longitud mxima y
guarda todo en memoria. Esto puede causar un retrazo en desarrollo. La longitud mxima es de 255 caracteres.
Ej. Name VARCHAR(60);
BLOB or TEXT Las columnas BLOB o TEXT tienen una longitud mxima de 65535(2^16 - 1). Pueden almacenar
texto y son buenos manteniendo registros grandes como artculos. La diferencia es que las bsquedas BLOB
son sensibles a las maysculas, mientras que las bsquedas TEXT no. Estas columnas son usadas cuando los
registros estn entre 255 y 65535 caracteres.
/./. )reando una #ase de Datos.
Primero, y antes de continuar, observa que todos los comandos MySQL finalizan con un punto y coma ';'.
De todas formas, creemos una base de datos llamada info. Para crearla debemos escribir:
mysql> create database info;
Si todo fue bien ahora debes estar viendo un resultado como:
Query OK, 1 row affected (0.03 sec)
Para comenzar a usar esa base de datos escribe:
mysql> use info;
Obtendrs el resultado
Database changed.
Bien, ahora hemos creado la base de datos info
/.E. )reando 2ab(as.
Aqu es donde los tipos de datos que mencionamos antes son tiles. Cuando se crea una tabla, se especifica
todas las columnas y sus tipos de datos. Es posible aadir una columna o manipular columnas existentes una
vez que se han creado, lo que luego te ensear.
Est bien, esta tabla de ejemplo se llamar usuarios, y tendr un total de tres columnas. 1, el nmero de
identificacin, 2, el nombre de la persona, y 3, la direccin de email de esa persona.
mysql> CREATE TABLE usuarios (
-> id NT NOT NULL AUTO_NCREMENT,
-> nombre VARCHAR (50),
-> email VARCHAR (50),
-> PRMARY KEY (id));
Qu significa esto?, bueno, la explicacin seria as:
La primera columna es probablemente la ms crtica. Bsicamente, le dice a MySQL que esta columna se va a
llamar id, es un entero y su valor no puede ser null, y automticamente incrementar el nmero del registro
anterior. Vers cmo se usa en la siguiente seccin: Aadiendo Datos.
La columna nombre es una cadena de longitud variable. Su longitud tiene un mximo de 50 caracteres. La
columna del email es mas o menos la misma cosa.
Qu es entonces la parte del PRMARY KEY?
El PRMARY KEY es una columna que MySQL usa como ndice. Este ndice puede hacer cosas como:
1. Hallar rpidamente filas que acierten una clausula WHERE.
2. Regresar filas de una tabla desde otras tablas cuando se realizan uniones.
3. Organizar o agrupar una tabla si el ordenado se hace en el prefijo izquierdo de la llave usable.
Esto definitivamente te va a ayudar a agilizar sus peticiones tambin.
/.F. 1Gadiendo Datos.
Aadiendo datos a una tabla no es un proceso tan difcil. Bsicamente tienes que especificar en cual tabla vas a
insertar los valores y luego los inserta. La sintaxis es como sigue:
mysql> NSERT NTO usuarios VALUES ('',
-> 'Cristian', 'cristianh79@uole.com');
La respuesta debera ser algo como la siguiente:
Query Ok, 1 row affected (0.05 sec)
Dota+ Cuando se aaden datos y no se tiene ningn valor para una columna, aun as debe tenerla listada. Por
ejemplo, si yo no tuviera una direccin de correo electrnico, la sintaxis sera como la siguiente:
mysql> NSERT NTO usuarios VALUES ('','Cristian','');
/.0. Hiendo Datos.
Luego de aadir datos a su tabla, probablemente quiera revisarlos para asegurarse de que todo va como fue
planeado. Para hacerlo, debe usar el comando SELECT.
Para ver todos los datos en la tabla, debera usar algo como:
mysql> SELECT * FROM usuarios;
Esto le dar una salida como:
+----+------------+-----------------------------+
| id | nonmbre | email |
+----+------------+-----------------------------+
| 1 | Cristian | cristianh79@uole.com |
| 2 | Sandra | s_alincastro@yahoo.com |
+----+------------+-----------------------------+
2 rows in set (0.00 sec)
Digamos que usted quiere seleccionar una fila en particular, usted debe usar un comando como:
mysql> SELECT * FROM users WHERE (name='Cristian');
Esto le entregar:
+----+---------------+---------------------------------+
| id | nombre | email |
+----+---------------+---------------------------------+
| 1 | Cristian | cristinh79@uole.com |
+----+---------------+---------------------------------+
Tambin puede seleccionar columnas especficas con:
mysql> select nombre from usuarios;
+----------------+
| nombre |
+----------------+
| Cristian |
| Sandra |
+----------------+
2 rows in set (0.06 sec)
/... Modi%icando Datos.
Si ya tienes datos en la base de datos que necesitan ser modificados, puede cambiarlos usando el comando
UPDATE en mysql.
Se usa ms o menos as:
mysql> UPDATE usuarios SET email = 'peter2mil@latinmail.com'
-> WHERE email = 'cristianh79@uole.com';
Esto cambiar todas las filas donde el email sea 'cristianh79@uole.com' a 'peter2mil@latinmail.com'. En este
caso, solo una entrada fue cambiada.
/.1I. 9(i&inando Datos.
Si quieres remover datos de la base de datos, puede usar el comando DELETE de MySQL. Su uso es como
sigue:
mysql> DELETE FROM usuarios WHERE (nombre='Sandra');
Esto eliminara la entrada de Sandra a la base de datos, dejando solamente la entrada de Cristian en ella.
Hasta el momento solo hemos cubierto una pequea porcin de los comandos de MySQL. Aun hay bastantes
comandos avanzados que puede integrar en sus peticiones SQL.
/.11. 5unciones de #Js!ueda.
Como viste en los ejemplos anteriores, MySQL tiene la habilidad de encontrar datos especficos en una
bsqueda. Aun no he cubierto las bsquedas en general, as que aqu van:
El caracter % es el caracter comodn en MySQL. Esto es que puede representar cualquier cosa, literalmente.
Para hacer una bsqueda general, usaramos la siguiente sintaxis:
mysql> SELECT * FROM usuarios WHERE
-> (nombre LKE '%B%');
Esto resultar en buscar cualquier cosa con la letra mayscula B en la columna nombre. Nota que he usado dos
%. Esto revisa cualquier cosa antes y despus de sa letra. Tambin podra haber usado uno.
Puedes colocar el signo % en cualquier lugar de la bsqueda, ya que la bsqueda est basada en la
localizacin de se carcter.
Otro carcter comodn es el carcter _. ste buscar exactamente un carcter.
Para usar un carcter literal en sus bsquedas use tambin Order By:
mysql> SELECT * FROM usuarios WHERE
-> (nombre = 'Juan%') ORDER BY id DESC;
Esto regresar todos los registros que contienen a alguien con su primer nombre Juan, y ordenar el resultado
por el nmero de identificacin en forma descendente.
Por defecto el ordenado es ascendente, por lo que si usted quiere ordenar en esta forma solo tiene que escribir
ORDER BY id o aadirle la palabra ASC.
/.12. O'eradores L8icos.
Una de las mejores caractersticas de MySQL es su soporte total para las operaciones lgicas. Ahora los
nombrar y mostrar ejemplos de ellos.
NOT !
mysql> SELECT * FROM usuarios WHERE
-> (nombre != 'Cristian');

mysql> SELECT * FROM users WHERE


-> (nombre NOT = 'Cristian');
Esta peticin regresar todos los registros sin 'Cristian' en ellos.
AND &&
mysql> SELECT * FROM usuarios WHERE
mysql> (nombre = 'Cristian') AND
mysql> (email = 'cristianh79@uole.com');

mysql> SELECT * FROM usuarios WHERE


-> (nombre = 'Cristian') &&
-> 'cristianh79@uole.com';
Esta peticin regresar todos los registros con 'Cristian' presente en el nombre Y 'cristianh79@uole.com' en el
email.
OR ||
mysql> SELECT * FROM users WHERE
-> (nombre = 'Cristian') OR
-> (email = 'peter2mil@latinmail.com');

mysql> SELECT * FROM users WHERE


-> (nonmbre = 'Cristian') ||
-> (email = 'peter2mil@uole.com');
Esta peticin regresar todos los registros que contengan a 'Cristian' presente en el nombre O los que
contengan 'cristianh79@uole.com' en el email.
/.13. Mani'u(ando 2ab(as.
Digamos que ya hiciste tu tabla, y has entrado toda clase de datos en ella. Ahora has llegado a un problema... el
lmite de caracteres para una columna es demasiado pequeo para lo que necesitas ahora. Y no deseas
eliminar todos estos datos, TENES que cambiar la tabla de alguna forma.
Puedes manipular las tablas que ya han sido creadas.
El comando para esta tarea se conoce como 1L29A 21#L9. Solo una nota: es posible mezclar todos estos
comandos, usualmente separndolos con una coma(,) o solo colocndolos todos en la misma lnea. Juega un
poco con ellos para que entiendas de qu estoy hablando.
Aeno&brando una 2ab(a.
mysql> ALTER TABLE usuarios RENAME public;
)a&biando e( ti'o de datos de una co(u&na.
mysql> ALTER TABLE public MODFY nombre CHAR(150);
Aeno&brando una tab(a y ca&biando e( ti'o de (a co(u&na a (a ve7.
mysql> ALTER table usuarios CHANGE
-> email emailaddy CHAR (100);
1Gadiendo una )o(u&na.
mysql> ALTER TABLE public ADD time TMESTAMP;
Ae&oviendo una )o(u&na.
mysql> ALTER TABLE public DROP COLUMN time;
Luego de hacer todos esos cambios a la tabla, talvez quieras optimizar la tabla(Especialmente si est usando
VARCHARSs, TEXTs o BLOBs, ya que esto optimizar la localizacin de la memoria). Tambin querrs hacerlo
si has borrado una gran parte de la tabla.
Durante la optimizacin de una tabla, la tabla original est disponible a los clientes, sin embargo, la modificacin
de la tabla es detenida hasta que la optimizacin finaliza.
La sintaxis es: OPTMZE TABLE table_name_goes_here.
/.1". 9(i&inando una 2ab(a 9ntera.
Para eliminar(drop) una tabla deberas usar la siguiente sintaxis:
mysql> DROP TABLE public;
Si deseas eliminar ms tablas a la vez, debes hacer esto:
mysql> DROP TABLE public, usuarios;
/.1/.6sando &ys!( en &odo batc:
En las secciones previas, hemos usado mysql interactivamente para introducir consultas y observar los
resultados. Tambin puedes ejecutar mysql en modo batch. Para realizarlo, escribe los comandos que quieras
ejecutar en un fichero, despus pdele a mysql que lea su entrada desde el fichero:
shell> mysql < fichero-batch
(N.T.: en algunos libros viene traducido como fichero por lotes)
Si necesitas especificar parmetros de conexin en la lnea de comandos, el
comando podra parecerse a esto:
shell> mysql -h host -u user -p < fichero-batch
Enter password: ********
Cuando usas MySQL de esta manera, ests creando un fichero script (de guin), y despus ejecutando el
script.
or !u usar un scri't? He aqu algunas razones:
* Si ejecutas una consulta repetidamente (digamos, cada da o cada semana), el construir un script con esta
consulta te permite evitar volver a teclearla cada vez que la ejecutes.
* Puedes generar nuevas consultas a partir de consultas ya existentes similares simplemente copiando y
editando los ficheros script.
* El modo batch puede ser tambin muy til cuando ests desarrollando una consulta, particularmente para
comandos multi-lnea o mltiples secuencias de comandos de mltiples sentencias. Si cometes un error, no
necesitas reescribir todo.
LOAD DATA
Para cargar una tabla puedes crear un fichero de texto, por ej. "usuarios.txt" conteniendo un registro por lnea,
con valores separados por tabuladores, y dados en el orden en el que las columnas fueron listadas en la
sentencia CREATE TABLE. Para valores perdidos (como email desconocidos), puedes usar valores NULL. Para
representar estos en tu fichero de texto, use \N. Por ejemplo, el registro para Cristian sera algo como esto
(donde el espacio en blanco entre valores es un simple caracter de tabulacin):
1 Cristian cristianh79@uole.com
Para cargar el fichero de texto "usuarios.txt" en la tabla usuarios, usa este comando:
mysql> LOAD DATA LOCAL NFLE "usuarios.txt" NTO TABLE usuarios;
Puedes especificar el valor de separacin de columna y el marcador de final de lnea explcitamente en la
sentencia LOAD DATA si lo deseas, pero por defecto equivalen a TAB y LF (intro). Estos valores por defecto son
suficientes para que la sentencia que lee el fichero "usuarios.txt" funcione
correctamente.
Aunque esto, ni remotamente, cubre todas las caractersticas disponibles en MySQL, si raspa la superficie lo
suficiente para atrapar tu inters.
E. Mys!( )o&'arado con otras #ases de Datos
El Gestor de bases de datos , MySQL , comparado con los de su categora , es considerado como el ms
rpido y robusto tanto para volmenes de datos grandes como pequeos. Pero est rapidez es a costa de no
implementar ciertos aspectos del SQL.
Estos aspectos son por una lado los Triggers y por otro lado la Lgica Transaccional.
Los triggers no es nada ms que una porcin de cdigo almacenado que se "dispara" o se ejecuta cuando se
realiza una operacin ( actualizacin, borrado, etc.) con la base de datos. Naturalmente comprobar la propia
existencia de disparador y ejecutarlo si existe consume recursos y tiempo y es como su propio manual indica, la
nica razn por la que los triggers no estn soportados.
Un aspecto muy importante en cualquier base de datos relacional es la consistencia de las diferentes tablas que
la componen, para conseguir esto de una forma ms o menos fcil es utilizando la "Lgica Transaccional, ser
el propio gestor de base de datos el que proporcione mecanismos de bloqueo de ficheros y consolidacin o
retroceso en la operaciones con las tablas. Pues bien Mysql no soporta las transacciones en aras simplemente
de la velocidad (o por lo menos as lo indican en sus comentarios) , slo nos podemos ayudar con los
comandos LOCK tables /UNLOCK tables que permiten bloquear tablas impidiendo que otros usuarios puedan
acceder a ellas pero sin la posibilidad de deshacer las operaciones realizadas con los datos.
E.1.MySQL co&'arado con &s!(
&SQL deber ser ms rpido al:
Hacer pruebas que realizan repetidas conexiones y desconexiones, ejecutando una consulta muy simple
durante cada conexin.
Operaciones NSERT muy simples en las tablas, con pocas columnas y llaves.
CREATE TABLE y DROP TABLE.
SELECT sobre algo que no sea un ndice. (examinar una tabla es muy fcil.)
Despus de que la conexin se establece, MySQL debe realizarlo mucho mejor. Por otro lado, MySQL es
mucho ms rpido que mSQL en la mayora de las otras implementaciones del SQL. Por ejemplo en lo
siguiente:
Operaciones SELECT complejas.
Recuperando resultados grandes (MySQL tiene un protocolo mejor, ms rpido, y ms seguro).
Tablas con strings de longitud variable, porque MySQL es ms eficiente al manipularlos y puede tener
ndices en columnas de VARCHAR.
Manejando tablas con muchas columnas.
Manejando tablas con grandes longitudes de registro.
SELECT con muchas expresiones.
SELECT sobre grandes tablas.
Manejando muchas conexiones al mismo tiempo. MySQL se &u(tiKen:ebra tota(&ente. Cada conexin
tiene su propio hilo de modo que ningn hilo tiene que esperar por otro (a menos que un hilo est modificando
una tabla y otro hilo quiera acceder). Una vez que en mSQL, una conexin se establece, todos los otros deben
esperar hasta que el primero ha terminado, sin tener en cuenta si la conexin est ejecutando una consulta que
es corta o que requiere mucho tiempo. Cuando la primera conexin termina, el prximo puede servirse,
mientras todos los otros esperan de nuevo, etc.
Joins. mSQL puede ponerse lento patolgicamente si usted cambia el orden de tablas en un SELECT. En
tiempo ms de 15000 veces ms lento que MySQL . Esto es debido a la falta de un optimizador en mSQL para
pedir tablas en el orden ptimo. Sin embargo, si usted pusiera las tablas en exactamente el orden correcto en
mSQL2 y el WHERE es simple y usa columnas con ndice, el Join ser relativamente rpido!.
ORDER BY y GROUP BY.
DSTNCT.
Usando TEXT o BLOB columnas.
)aracter*sticas SQL
GROUP BY y HAVNG. mSQL no soporta GROUP BY en absoluto. MySQL soporta GROUP BY a full con
HAVNG y las siguiente funciones: COUNT(), AVG(), MN(), MAX(), SUM(), y STD(). CUENTA (*) se perfecciona
para volver muy rpidamente si el SELECT recupera de una tabla, ninguna otra columna se recupera, y no hay
clusula WHERE. MN () y MAX () puede llevar argumentos strings.
NSERT y UPDATE con clculos. MySQL puede hacer clculos en un NSERT o UPDATE. Por Ejemplo:
mysql> UPDATE SET x=x*10+y WHERE x<20;
Aliasing. MySQL has column aliasing.
Qualifying column names. n MySQL, if a column name is unique among the tables used in a query, you do
not have to use the full qualifier.
L SELECT con funciones. MySQL tiene &uc:as %unciones.
Dis= S'ace 9%%iciency+Es decir, Qu tan pequea puede hacer sus tablas? MySQL tiene ti'os &uy
'recisos> 'ara !ue usted 'ueda crear tab(as !ue ocu'en un es'acio &uy 'e!ueGo. Un ejemplo de un tipo
de dato de MySQL es el MEDUMNT que tine 3 bytes . Si usted tiene 100,000,000 registros y ahorra un byte
por registro, es muy importante. mSQL2 tienen un juego ms limitado de tipos datos, por lo que es ms difcil de
conseguir tablas pequeas.
recio+ Otro problema importante es la licencia. MySQL tiene una (icencia &Ms %(e4ib(e !ue e( &SQL> y
ta&bin es &enos caro !ue e( &SQL. )ualquier producto que usted quiera usar, recuerde considerar pagar
por lo menos por una licencia o apoyo de e-mail. (Le exigen que consiga una licencia si usted incluye MySQL en
un producto que usted vende, por supuesto.)
E.2.1A2I)6LO+MySQL vs ost8reSQL
MySQL vs. PostgreSQL

Hemos estado buscando por internet informacin y comparativas sobre MySQL y PostgreSQL para ver cul
puede ser mejor, y la informacin es abundante pero confusa. Hay muchos comentarios al respecto, la mayora
de ellos catalogables dentro de las "guerras santas" como las que se producen en las comparaciones "Linux vs.
Windows", "Mac vs. PC", etc... Para hacerse una idea, basta con ver todas las pginas que aparecen en el
buscador google al buscar (postgres vs mysql( o hacer una bsqueda similar en %las#)ot.
De entre todo lo leido, podemos sacar estas conclusiones:
MySQL:
Su principal objetivo de diseo fue la VELOCDAD. Se sacrificaron algunas caractersticas esenciales en
sistemas ms "serios" con este fin.
Otra caracterstica importante es que consume MUY POCOS RECURSOS, tanto de CPU como de
memoria.
Licencia GPL a partir de la versin 3.23.19.
Ventajas:
Mayor rendimiento. Mayor velocidad tanto al conectar con el servidor como al servir selects y dems.
Mejores utilidades de administracin (backup, recuperacin de errores, etc).
Aunque se cuelgue, no suele perder informacin ni corromper los datos.
Mejor integracin con PHP.
No hay lmites en el tamao de los registros.
Mejor control de acceso, en el sentido de qu usuarios tienen acceso a qu tablas y con qu permisos.
MySQL se comporta mejor que Postgres a la hora de modificar o aadir campos a una tabla "en caliente".
nconvenientes:
No soporta transacciones, "roll-backs" ni subselects.
No considera las claves ajenas. gnora la integridad referencial, dejndola en manos del programador de
la aplicacin.
PostgreSQL:
Postgres intenta ser un sistena de bases de datos de mayor nivel que MySQL, a la altura de Oracle,
Sybase o nterbase.
Licencia BSD.
Ventajas:
Por su arquitectura de diseo, escala muy bien al aumentar el nmero de CPUs y la cantidad de RAM.
Soporta transacciones y desde la versin 7.0, claves ajenas (con comprobaciones de integridad
referencial).
Tiene mejor soporte para triggers y procedimientos en el servidor.
Soporta un subconjunto de SQL92 MAYOR que el que soporta MySQL. Adems, tiene ciertas
caractersticas orientadas a objetos.
nconvenientes:
Consume BASTANTES ms recursos y carga ms el sistema.
Lmite del tamao de cada fila de las tablas a 8k!!! (se puede ampliar a 32k recompilando, pero con un
coste aadido en el rendimiento).
Es de 2 a 3 veces ms lenta que MySQL.
Menos funciones en PHP.
En cuanto a consideraciones de estabilidad del servidor, cada comparativa da datos contradictorios. En general
parece que MySQL es ms estable (aunque tambin hay gente que opina lo contrario), y que Postgres tiende a
desperdiciar memoria y sobrecargar bastante el sistema (aunque de nuevo, hay opiniones distintas).
Como conclusin a la comparacin entre MySQL y Postgres, parece aceptado que MySQL junto con Apache y
PHP forman un buen equipo para servir pginas web con contenido dinmico, discusiones, noticias, etc., por
ejemplo al estilo de %las#)ot. En general, sistemas en los que la velocidad y el nmero de accesos
concurrentes sea algo primordial, y la seguridad no sea muy importante (pueda bastar con hacer backups
peridicos que se restaurarn tras una caida del servidor). En cambio, para sistemas ms serios en las que la
consistencia de la BD sea %unda&enta( (BD con informacin realmente importante, bancos, etc.) PostgreSQL
es una mejor opcin pese a su mayor lentitud.
Por ltimo, sealar que hace poco 'nprise*+orland ha liberado bajo una licencia Open Source (modificacin de
la MPL de Mozilla) su BD 'nter+ase ,.-. Tambin sera otra opcin a considerar.
Fuentes de informacin:
Comparativas:
P.P+uilder.com - My%/0 and Postgre%/0 Compared
Postgre%/0 versus My%/01 an uniased comparison
2#y Not My%/03
1P41 Postgres 4outs Competition in Ne5 +enc#mark 6ests
)ev%#ed - My%/0 )eveloper Contests Postgre%/0 +enc#marks
Discusiones en %las#)ot:
%las#dot 7 Postgres +eats My%ql8 'nterase8 9nd Proprietary )+s
%las#dot 7 My%/0 )eveloper Contests Postgre%/0 +enc#marks
%las#dot12#at )ataase is t#e est for a 2e %ite*%mall +usiness3
%las#dot 7 My%/0 9nd Postgre%/0 Compared
Enlaces:
2e de My%/0
2e de Postgre%/0
2e de 'nterase
F.Inter%aces BrM%icas con MySQL
9stos 'ro8ra&as nos o%recen una %or&a de co&unicarnos de &anera &Ms a&i8ab(e con e( servidor
SQL.
F.1.ara Linu4
GTKSQL.
De instalacin sencilla sin muchas complicaciones, hace lo bsico, ideal para un usuario con un poco de
entrenamiento en SQL. Te permite conectarte al servidor y hacer consultas en l.
La opcin de EXPORT permite guardar los resultados de la bsqueda en archivos de texto o en tablas con
formato HTML.
KMySQLAdmin.
Las cosas
mejoran,
kysqladmin te
permite hacer
lo mismo que
el paquete
anterior pero
con mucha
mas elegancia
en su diseo.
Crear tablas es sencillo y adems permite agregar datos.
Solo un pequeo problema, se sale cuando haces consultas demasiado grandes.
MySQLGU
El abuelito de las interfaces grficas para MySQL. Su diseo no es uniforme pero es una buena opcin si lo
nico que quieres es administrar el servidor.
F.2.ara ,indo-s
&y1d&in
El myAdmin es un rpido cliente de mysql. Corre sobre libmysql.dll de TCX, y debe ser capaz de conectar a
cualquier servidor de mysql.
Al menos por el momento puedes bajarlo de: http://members.xoom.com/qabi/myadmin/myAdmin1.0.1.0.zip.
MySQL,in1d&in
Administrador de MySQL para Windows es un simple front-end de la administracin grfica MySQL para los
usuarios de Windows.
Trabaja con Windows 95,98 y NT
F.3.':'My1d&in
Un conjunto de scripts de PHP3 para administrar MySQL sobre la Web.
? corre en Linu4 y en ,indo-s @

Versin 2.0.6 - 12/05/1999
http://www.phpwizard.net/phpMyAdmin /
Requisitos:
PHP3
MySQL (probado con 3.21.x, 3.22.x y 3.23.x, tambin trabaja en 3.20.x,
pero en este caso las ordenes "SHOW" deben comentarse fuera en
index.php3)
a web-browser (doh!)
phpMyAdmin maneja la adminstration de MySQL sobre WWW.
Generalmente puede:
- crear y eliminar bases de datos
- crear, copiar, eliminar y alterar tablas
- borrar, editar y agregar campos
- ejecutar cualquier declaracin de SQL
- manejar claves primarias en campos
- cargar archivos de texto en las tablas
- crear y leer descargas de tablas
- exportar e importar los datos de CSV
- administrar una sola base de datos
Insta(acion
phpMyAdmin puede administrar un -servidor de MySQL entero (necesidades de un Super-usuario) pero tambin
una sola base de datos. Para lograr esto ltimo necesitars un puesto como usuario de MySQL que slo pueda
leer y escribir en la bade de datos.
'asos
[1] descarga la distribucin
tar xvf phpMyAdmin_x.x.x.tar
[2] abre el archivo config.inc.php3 en tu editor favorito y cambia
Los valores para el Host, usuario y contrasea.
Mira la Documentation.html para una explicacin de todo los valores.
[3] se recomienda que protejas el directorio en que
instalas phpMyAdmin (a menos que ests en un intranet cerrado),
por ejemplo con HTTP-AUTH (en un archivo .htaccess).
[4] abre el archivo <www.your-host.com>/<your-install-dir>/index.php3
en tu browser. phpMyAdmin debe desplegar una pantalla de bienvenida y
tus bases de datos.

Você também pode gostar