Sei sulla pagina 1di 7

Pgina 1 de 7

SQL - Bases de datos - Tutorial


Esta publicidad aparece por nica vez salvo que est usando Internet Explorer 6 o llegue por un buscador, ah las ver siempre :P

La mayora de los weblogs y sitios dinmicos que hay en la red se basan en una plataforma estandard para su funcionamiento, es simple, una pgina web hecha con un script (como si fuese un programita) que se conecta a una base de datos cada vez que los visitantes quieren ver una pgina y muestra el contenido. El tener una base de datos no sirve slo para esto, todo un sistema de gestin de una empresa puede guardar sus datos ah y modificarlos constantemente, imaginen necesitar filtrar e identificar informacin precisa, hacer estadsticas, y todo en... millones de datos! con una tablita de excel o una basofia en Access no podran hacerlo, sencillamente esos programas no estn pensados para ese trabajo. Les dejo un tutorial enorme que me sali a las 4 AM Hay muchos motores de bases de datos, algunos costossimos (Oracle, Informix, MS SQL Server, DB4, etc.) pero otros pocos son de uso libre y bajo licencias abiertas (GPL, LGPL, etc.) y nos permiten a los que no tenemos ingresos elevados poder poseer en nuestras PCs un buen motor de base de datos. Que uso hogareo se le puede dar? Cualquier programa o script que necesite guardar informacin y luego reutilizarla puede hacer uso de una base de datos, la idea de la misma es poder acceder a los datos, cruzar informacin y actualizarla de forma rpida y sencilla, lo que no significa especficamente "fcil" o "amigable". Se puede usar en pequeas aplicaciones para llevar un control de gastos, un inventario, un foro, un weblog, etc.

SQL Simple Query Language, como dice en ingls, estas siglas significan un lenguaje de

Pgina 2 de 7
consulta simple, sencillo, la idea es no tener que escribir extraos cdigos o caracteres para acceder a los datos. No voy a interiorizar en la historia del SQL, slo sepan que Sybase tuvo la posta aqu y luego que los fanticos de una u otra marca se peleen, nosotros vamos a lo sencillo, alguna ideas bsicas, tampoco exagerar con la explicacin Diseo Lo primero en un sistema, sea el sistema que sea, es el establecer QUE necesitamos, PARA QUE y luego el COMO. Un sistema entonces empezar por saber que tenemos una necesidad a satisfacer, luego hay que analizar toda esa informacin de nuestras necesidades y luego a disear. El que hace todo esto al revs, es decir, disea primero la base de datos para luego fijarse para que cuernos la quera... est condenado a que su "proyecto" sea pura basura Una vez "dibujada" la idea se puede comenzar a disear algunas tablas, no voy a pedirles que sigan los pasos exactos que hace un diseador de sistemas o un analista, no viene al caso, pero como dato les dejo dicho que es mucho ms complejo de lo que aqu explico, esto es para los que quieran tener un pantallazo. Las bases de datos relacionales tienen un concepto interesante, los datos irn guardados en tablas las cuales se relacionarn entre ellas mediante datos en comn. As podemos idear una cosa as, si tenemos una persona que tiene domicilio y a la vez los datos personales podemos separarlo en tres tablas: Persona, Domicilio y Datos.

Por qu se separan los datos? bueno, no voy a dar una clase de normalizacin, pero ms adelante van a ver cmo el relacionar las tablas nos va a ayudar a comprender ms las bases de datos. Un caso tpico... si la persona tiene ms de un domicilio... y slo usasen una fila de una planilla de excel por persona... donde ponen el segundo domicilio? bueno, si el domicilio est en una tabla aparte, podrn relacionar dos domicilios con una persona, el ejemplo "dibujado"...

Pgina 3 de 7

Yo complet ms las tablas para que tengan una idea de cmo se ingresan los campos, la tabla Persona tiene un identificador, el famoso "ID" que es IdPersona, este dato (INTEGER = entero, el tipo de dato), que nos identificar a cada persona como un valor nico. por qu no uso el documento para eso? esto es una cuestin prctica, cada vez que alguien usa el documento como identificador no falta el Data Entry que ingresa mal el documento de algn cliente y arma un lo terrible. As que si uno llena la tabla persona cada dato ingresado ser identificable por este identificador, el cual es nuestra llave primaria o Primary Key (vean en el dibujito la llave)

En la tabla Domicilio tenemos en cambio su propio identificador IdDomicilio y vern un detalle.. est IdPersona... es que IdPersona es lo nico que me va a poder relacionar el domicilio con esa persona en particular. Es una Foreign Key, una clave "fornea" como le decimos los programadores En resumen, ahora podemos relacionar a la persona con uno o ms domicilios (la relacin es uno a muchos) y con uno o ms datos. Tambin pueden existir relaciones n a m (mucho a muchos) o 1 a 1, todo depende del caso, de la necesidad. como se consultan datos?

Pgina 4 de 7
Las bases de datos utilizando este lenguaje SQL pueden ser consultadas fcilmente, ejemplo: SELECT * FROM PERSONA La sentencia SELECT nos "selecciona" datos, que datos? * (asterisco) seran todos los campos de donde? de la tabla PERSONA. Esta consulta nos va a traer TODOS los datos que tenga persona. Obviamente podemos ser ms especficos e indicarle qu queremos ver, ejemplo, nombre y apellido: SELECT nombre, apellido FROM PERSONA Esto nos trae slo dos columnas, ms cmodo en muchos casos, pero supongamos que queremos UNA SOLA PERSONA de toda la tabla: SELECT nombre, apellido FROM PERSONA WHERE IdPersona = 4 Aqu utilizamos el primer filtro, WHERE, con el cual ponemos condiciones a la consulta. Y slo nos traer a la cuarta persona de la tabla.

Pero obviamente el usuario promedio no tiene ni idea de que ID tiene que persona, simplemente quiere buscar a alguien en particular, el caso normal sera: SELECT nombre, apellido FROM PERSONA WHERE apellido = 'Perez'

Ah nos buscara a todos los Perez de la tabla... pero que sucede si no sabemos exactamente cmo es su apellido? bueno podramos usar la peligrosa clusula LIKE

SELECT nombre, apellido FROM PERSONA WHERE apellido like '%Perez%' Utilizando LIKE nos "violamos" al servidor pero a la vez nos permite buscar datos ms rebuscados, por ejemplo si el apellido era "Perez Companc" ahora lo encontrara, de la forma anterior al no ser EXACTAMENTE Perez no lo encontraba. El uso indiscriminado y mal ubicado del LIKE provoca que todo ande horrendamente lento imaginen si la base de datos tiene que comparar entre millones de registros una cosa semejante! Relacionar los datos

Pgina 5 de 7

Pero ahora quiero saber el domicilio de una persona adems de su nombre y apellido, como hago? Aqu comenzamos con los JOINs, que nos permite enlazar una tabla con otra. La sintaxis y gramtica de lo que escribamos es importantsima o podemos quedarnos siempre a mitad de camino... SELECT a.nombre, a.apellido, b.calle FROM PERSONA a LEFT OUTER JOIN DOMICILIO b ON (a.IdPersona = b.IdPersona) WHERE a.apellido like '%Perez%' se complic no? si, se va complicando pero no tanto todava. Vern que les puse una letra adelante, a.nombre o b.calle. Para poder identificar qu dato viene de qu table se le da un "alias" a la tabla, por eso a persona le puse "a" y a domicilio "b". El LEFT OUTER JOIN no lo voy a explicar exageradamente pero significa que si en la tabla Domicilio no existe un dato relacionado, devuelve lo que encuentre en Persona. Un JOIN simple hara que si tenemos a la persona pero no su domicilio no nos muestre nada. Despus les dejo un documento con ms informacin al respecto. El JOIN con domicilio se relaciona entre a.IdPersona y b.IdPersona, en los casos que este dato sea igual los devolver en la misma fila, si no, nada. Insertar y actualizar Una base de datos no es nada sin, justamente, datos, para ello es necesario, luego de crear las tablas, llenarlas de datos para luego convertirla en informacin con los SELECT Para insertar datos est la sentencia INSERT y se usa as: INSERT INTO PERSONA (IdPersona, Documento, TipoDocumento, Nombre, Apellido) VALUES (8,'2525252', 'DNI','Pepe','Perez') para actualizarlos se utiliza UPDATE UPDATE PERSONA SET Nombre = 'Juancito' WHERE IdPersona = 8 En ese caso le cambiaramos el nombre solamente, si es ms de un dato va separado por comas. Como tener una base de datos? No es muy difcil, con solo descargar MySQL y usar el instalador ya nos crea una base de datos en la PC y se inicia como servidor, Para descargarlo hay que ir al sitio oficial y buscar un mirror, les dejo ya la pgina

Pgina 6 de 7
de descarga para que lo busquen. El MySQL 4.0 es suficiente y bastante estable en su versin para Windows, el 4.1 pueden usarlo tambin y el 5.0 es experimental, ni lo toquen si no saben. Para Windows hay dos descargas posibles, un .zip y uno con Windows Installer en formato .msi, este ltimo es la mejor opcin. Tip: A veces el instalador de MySQL hace cualquier cosa y graba mal los datos en el archivo c:windowsmy.ini Se "olvida" de agregar datos, as se ve el mo como ejemplo por si no les funciona el MySQL: [WinMySQLAdmin] Server=C:/Apache Group/Mysql/bin/mysqld-nt.exe [mysqld] basedir=C:/Apache Group/mysql/ datadir=C:/Apache Group/mysql/data/ Cmo accedo al MySQL? Suponiendo que todo funciona como debe ser (imagino algunos comments porque no pudieron hacerlo funcionar, jeje) el paso siguiente es conectarse, para ello hay varias aplicaciones, yo uso habitualmente el MySQL Front 2.5, es un programa abandonado y viejo pero a la vez es excelente, todava la mayora de los desarrolladores lo usan y lo pueden descargar desde este mismo sitio. Pero MySQL ahora brinda ms y nuevos programas que son muy tiles. Por ejemplo el MySQL Administrator ideal para administrar la base de datos, los backups y otras yerbas avanzadas y el Query Browser para hacer consultas muy cmodo, casi como el Front y tambin el ya descartado y que no se desarrolla ms, el Control Center. Para conectarse hay que tener en cuenta algo sencillo. Apenas al instalar el MySQL el servidor o host se llama localhost, es decir, la misma mquina, y el usuario por defecto es "root". Root, apenas instalado, carece de password. Ms adelante pnganle un password a root, creen otro usuario y no usen nunca root. Al usuario nuevo denle permisos y listo. Para hacer todo eso est el MySQL Administrator Cmo diseo bases de datos? El mejor programa que encontr hasta la fecha lo ubiqu recin esta semana, es, sencillamente, excelente, se llama DBDesigner 4 y es Open Source y gratuito. Funciona en Windows 2000 y XP perfectamente y sirve para modelar, disear, hacer ingenira inversa, exportar, etc. Con este modelador similar al Erwin (que es viejo, anticuado y pago, adems de

Pgina 7 de 7
carsimo) se puede manejar y sincronizar los cambios de la base de datos, realmente una maravilla y lo descargan gratis desde aqu.

Concluyendo Bueno, suerte en su experimentacin con SQL. Desde ya que no les servir de nada si no tienen un "fin" para el cual lo necesitan. Para ciertos trabajos a veces no se necesita tanto poder de datos, pero para los que comienzan con sus weblogs y sus sitios personales es bueno saber qu sucede all adentro. Para los que quieran profundizar les dejo este tutorial zipeado, es viejo, pero explica bien cosas del SQL que no mencion aqu. Tengan en cuenta que el SQL da para mucho ms que todo esto

Potrebbero piacerti anche