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