miércoles, 8 de mayo de 2013

Resumen de MySQL


MySQL es uno de los sistemas de gestión de bases de datos más populares del mercado. Se trata de un SGBD basado en el modelo relacional, con licencia dual GPL y propietaria, desarrollado por MySQL AB, una compañía propiedad de Sun Microsystems, creadores de Java, desde Enero de 2008.
En esta entrada veremos algunos de los comandos básicos utilizados a la hora de trabajar con MySQL. Si programas en Java también te puede interesar nuestra entrada sobre JDBC; si programas en Python, nuestra entrada sobre DB-API.
Para iniciar el cliente indicando el nombre de usuario (en este caso root):
1.            CREATE DATABASE base_datos; 
Si ya existe una base de datos con ese nombre, MySQL devolverá un error. Si queremos crear una base de datos solo cuando no exista ya una del mismo nombre (y por lo tanto no obtener este error) podemos añadir el texto IF NOT EXISTS:

Podemos ver una lista de los juegos de caracteres admitidos por MySQL mediante el comando SHOW CHARACTER SET;. Algunos juegos de caracteres comúnmente utilizados son:
•             ascii, de American Standard Code for Information Interchange; también conocido como US-ASCII. Es una codificación de caracteres de 7 bits basado en el alfabeto inglés con 95 caracteres imprimibles.
•             latin1, el juego de caracteres por defecto en MySQL. Contrariamente a lo que cabría esperar se trata de la codificación ANSI / CP1252 / WinLatin1 / Windows-1252 y no del estándar de la ISO 8859-1 o del estándar de la IANA ISO-8859-1 (nótese el guión extra; se trata de un super conjunto de ISO 8859-1), que son los que se suelen conocer como Latin-1. Los tres son bastante parecidos, por lo que a menudo se consideran equivalentes erróneamente, y son causa de confusión habitual (de hecho el propio MySQL tenía un bug relacionado). En concreto CP1252 se diferencia de ISO-8859-1 en que se utiliza el rango 0×80-0x9F para representar distintos caracteres imprimibles, como el símbolo del euro o el de la libra, en lugar de caracteres de control. A diferencia de ASCII, CP1252, y por lo tanto ISO 8859-1 e ISO-8859-1, son juegos de caracteres de 8 bits, por lo que permiten representar 256 caracteres distintos. Los tres incluyen los caracteres necesarios para representar textos en las lenguas de Europa occidental: afrikaans, alemán, aragonés, asturiano, catalán, danés, escocés, español, feroés, finés, francés, gaélico, gallego, inglés, islandés, italiano, neerlandés, noruego, portugués, sueco y vasco.
•             utf8, de 8-bit Unicode Transformation Format. Unicode es un acrónimo de “Universal Code” (código universal) y es, como su nombre indica, un juego de caracteres con el que podemos representar textos escritos en la mayoría de los alfabetos del planeta: latino, árabe, hebreo, griego, japonés, chino, coreano, cirílico, … UTF-8 en concreto utiliza de 1 a 4 bytes para representar los caracteres, dependiendo del símbolo.

Para crear una tabla nueva se usa el comando CREATE TABLE tabla al que se le pasa la definición de las columnas, las posibles restricciones (constraints) y las opciones de la tabla y de partición.
view plaincopy to clipboardprint?
1.            CREATE TABLE usuario ( 
2.                id_usuario INT PRIMARY KEY AUTO_INCREMENT, 
3.                nombre VARCHAR(50) NOT NULL, 
4.                direccion VARCHAR(50) NOT NULL, 
5.                ciudad VARCHAR(20) NOT NULL, 
6.                edad TINYINT NOT NULL 
7.            ); 
view plaincopy to clipboardprint?
1.            CREATE TABLE blog ( 
2.                id_blog INT PRIMARY KEY AUTO_INCREMENT, 
3.                id_usuario INT REFERENCES usuario(id_usuario), 
4.                titulo VARCHAR(30) NOT NULL 
5.            ); 
Los tipos de las columnas pueden ser números enteros, números decimales, fechas, horas, cadenas y los tipos espaciales del Open Geospatial Consortium, que se omitirán en esta explicación.
Para crear una tabla nueva se usa el comando CREATE TABLE tabla al que se le pasa la definición de las columnas, las posibles restricciones (constraints) y las opciones de la tabla y de partición.
view plaincopy to clipboardprint?
1.            CREATE TABLE usuario ( 
2.                id_usuario INT PRIMARY KEY AUTO_INCREMENT, 
3.                nombre VARCHAR(50) NOT NULL, 
4.                direccion VARCHAR(50) NOT NULL, 
5.                ciudad VARCHAR(20) NOT NULL, 
6.                edad TINYINT NOT NULL 
7.            ); 
view plaincopy to clipboardprint?
1.            CREATE TABLE blog ( 
2.                id_blog INT PRIMARY KEY AUTO_INCREMENT, 
3.                id_usuario INT REFERENCES usuario(id_usuario), 
4.                titulo VARCHAR(30) NOT NULL 
5.            ); 
Los tipos de las columnas pueden ser números enteros, números decimales, fechas, horas, cadenas y los tipos espaciales del Open Geospatial Consortium, que se omitirán en esta explicación.
Mala noticia para los que conocían o han adivinado la utilidad de FULL OUTER JOIN. En efecto, esta operación añade tanto las tuplas de la tabla izquierda como las de la derecha que no tengan correspondencia con la otra tabla. Sin embargo no está implementada en MySQL, aunque podemos simularla con UNION ALL (UNION se utiliza para combinar los resultados de varios SELECT; la palabra clave ALL tiene el efecto de que no se eliminen las tuplas duplicadas, como sería el caso del comportamiento deUNION por defecto).

No hay comentarios.:

Publicar un comentario