Una tabla es un sistema de elementos de datos (atributo -
valores) que se organizan que usando un modelo vertical - columnas (que son
identificados por su nombre)- y horizontal filas. Una tabla tiene un número
específico de columnas, pero puede tener cualquier número de filas. Cada fila
es identificada por los valores que aparecen en un subconjunto particular de la
columna que se ha identificado por una llave primaria.
Una tabla de una base de datos es similar en apariencia a
una hoja de cálculo, en cuanto a que los datos se almacenan en filas y
columnas. Como consecuencia, normalmente es bastante fácil importar una hoja de
cálculo en una tabla de una base de datos. La principal diferencia entre
almacenar los datos en una hoja de cálculo y hacerlo en una base de datos es la
forma de organizarse los datos.
MySQL: Soporta varios motores de almacenamiento que tratan
con distintos tipos de tabla. Los motores de almacenamiento de MySQL incluyen
algunos que tratan con tablas transaccionales y otros que no lo hacen:
MyISAM: trata tablas no transaccionales. Proporciona
almacenamiento y recuperación de datos rápida, así como posibilidad de búsquedas
fulltext. MyISAM se soporta en todas las configuraciones
MySQL, y es el motor
de almacenamiento por defecto a no ser que tenga una configuración distinta a
la que viene por defecto con MySQL.
El motor de almacenamiento MEMORY proporciona
tablas en memoria. El motor de almacenamiento MERGE permite una colección de
tablas MyISAM idénticas ser tratadas como una simple tabla. Como MyISAM, los
motores de almacenamiento MEMORY y MERGE tratan tablas no transaccionales y
ambos se incluyen en MySQL por defecto.
Nota: El motor de almacenamiento MEMORY anteriormente
se conocía como HEAP.
Los motores de
almacenamiento InnoDB y BDB proporcionan tablas
transaccionales. BDB se incluye en la distribución binaria MySQL-Max en
aquellos sistemas operativos que la soportan. InnoDB también se incluye por
defecto en todas las distribuciones binarias de MySQL 5.0. En distribuciones
fuente, puede activar o desactivar estos motores de almacenamiento configurando
MySQL a su gusto.
El motor de almacenamiento EXAMPLE es un motor de
almacenamiento 'tonto' que no hace nada. Puede crear tablas con este motor,
pero no puede almacenar datos ni recuperarlos. El objetivo es que sirva como
ejemplo en el código MySQL para ilustrar cómo escribir un motor de
almacenamiento. Como tal, su interés primario es para desarrolladores.
NDB Cluster es el motor de almacenamiento usado
por MySQL Cluster para implementar tablas que se particionan en
varias máquinas. Está disponible en distribuciones binarias MySQL-Max 5.0. Este
motor de almacenamiento está disponible para Linux, Solaris, y Mac OS X. Los
autores mencionan que se añadirá soporte para este motor de almacenamiento en
otras plataformas, incluyendo Windows en próximas versiones.
El motor de almacenamiento ARCHIVE se usa para
guardar grandes cantidades de datos sin índices con una huella muy pequeña.
El motor de almacenamiento CSV guarda datos en
archivos de texto usando formato de valores separados por comas.
El motor de almacenamiento FEDERATED se añadió en
MySQL 5.0.3. Este motor guarda datos en una base de datos remota. En esta
versión sólo funciona con MySQL a través de la API MySQL C Client. En futuras
versiones, será capaz de conectar con otras fuentes de datos usando otros
drivers o métodos de conexión clientes.
La versión 5 de MySQL crea por defecto
tablas InnoDB que permiten el manejo de integridad referencial,
transacciones. Al igual que las tablas regulares de Oracle. Para saber si el
gestor de base de datos de MySQL que tenemos las soporta es necesario ejecutar
la siguiente sentencia.
SHOW VARIABLES like '%innodb%';
Comando Describe
MySQL proporciona este comando que resulta útil para conocer
la estructura de una tabla, las columnas que la forman y su tipo y
restricciones. La sintaxis es la siguiente:
DESCRIBE nombre Tabla.
DESCRIBE f1;
Comando SHOW TABLES y SHOW CREATE TABLE
El comando SHOW TABLES muestra las tablas dentro de una base
de datos y SHOW CREATE TABLES muestra la estructura de creación de la tabla.
Tablas Temporales
Las tablas temporales solo existen mientras la sesión
está viva. Si se corre este código en un script de PHP (Cualquier otro
lenguaje), la tabla temporal se destruirá automáticamente al término de la
ejecución de la página. Si no específica MEMORY, la tabla se guardará por
defecto en el disco.
CREATE TEMPORARY TABLE temporal ( Ife
INTEGER (13) PRIMARY KEY, Nombre CHAR (30) NOT NULL UNIQUE);
Este tipo de tabla solo puede ser usada por el usuario que
la crea.
Si creamos una tabla que tiene el mismo nombre que una
existente en la base de datos, la que existe quedará oculta y trabajaremos
sobre la temporal.
Tablas Memory (Head)
Se almacenan en memoria
Una tabla head no puede tener más de 1600 campos
Las tablas MEMORY usan una longitud de registro fija.
MEMORY no soporta columnas BLOB o TEXT.
MEMORY en MySQL 5.0 incluye soporte para columnas
AUTO_INCREMENT e índices en columnas que contengan valores NULL.
Las tablas MEMORY se comparten entre todos los clientes
(como cualquier otra tabla no-TEMPORARY).
CREATE TEMPORARY TABLE temporal ( Ife
INTEGER (13) PRIMARY KEY, Nombre CHAR (30) NOT NULL UNIQUE) ENGINE =
MEMORY;
Modificación
Esta operación se puede realizar con el comando ALTER TABLE.
Para usar ALTER TABLE, necesita permisos ALTER, INSERT y CREATE para la
tabla. La sintaxis para MySQL es
ALTER [IGNORE] TABLE tbl_name
alter_specification [, alter_specification]...;
alter_specification:
ADD [COLUMN] column_definition [FIRST | AFTER col_name]
ADD [COLUMN] (column_definition,)
ADD INDEX [index_name] [index_type] (index_col_name,)
ADD [CONSTRAINT [symbol]]
PRIMARY KEY [index_type] (index_col_name,)
ADD [CONSTRAINT [symbol]]
UNIQUE [index_name] [index_type] (index_col_name,)
ADD [FULLTEXT|SPATIAL] [index_name] (index_col_name,)
ADD [CONSTRAINT [symbol]]
FOREIGN KEY [index_name] (index_col_name,)
[reference_definition]
ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
CHANGE [COLUMN] old_col_name column_definition
[FIRST|AFTER col_name]
MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
DROP [COLUMN] col_name
DROP PRIMARY KEY
DROP INDEX index_name
DROP FOREIGN KEY fk_symbol
DISABLE KEYS
ENABLE KEYS
RENAME [TO] new_tbl_name
ORDER BY col_name
CONVERT TO CHARACTER SET charset_name [COLLATE
collation_name]
[DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]
DISCARD TABLESPACE
IMPORT TABLESPACE
table_options
Comentarios
Publicar un comentario