2.1. Estructura de
memoria y procesos de la instalación
Área Global del sistema (SGA): Es un grupo de
estructuras de la memoria compartida que contiene datos e información de
control de una instancia de una BD. Si varios usuarios se conectan de forma
concurrente a la misma instancia, entonces los datos se comparten en el SGA,
por lo que también se llama shared global area.
Estructura de Datos del SGA
·
Caché de los Buffers
·
Buffer del registro de Redo
·
El Pool compartido
·
Large Pool
·
Java Pool
·
Streams Pool
·
Caché de diccionario
Caché de los Buffers (Database Buffer Cache)
Contiene copias de los bloques de datos de lectura
de las páginas. Todos los procesos de los usuarios conectados concurrentemente
a la instancia comparten el acceso a ella.
Buffer del registro del
Rehacer (Redo Log Buffer)
Contiene información sobre cambios hechos a la base
de datos, la cual se almacena en las ‘entradas redo’. Estas entradas contienen
la información necesaria para reconstruir, o rehacer cambios hechos en la base
de datos mediante las operaciones INSERT, UPDATE, DELETE, CREATE, ALTER o DROP
y se usan para la recuperación de la base de datos, si fuera necesario.
El Pool Compartido
Es la parte del SGA que contiene la cache de
biblioteca, la cache de diccionario, los buffers para los mensajes de ejecución
paralela y las estructuras de control.
Large Pool
El administrador de la base de datos puede
configurar un área de memoria opcional llamado large pool que proporciona
grandes cantidades de memoria para asignar:
· Memoria
de la sesión para el servidor compartido y el Oracle XA interface (usado donde
las transacciones interactúan con más de una base de datos)
· Procesamiento
de E/S
· Copias
de seguridad y operaciones de recuperación
Java Pool
Se usa en la memoria del servidor para almacenar
todo el código y datos del JVM en las sesiones.
Streams Pool
En una única base de datos, se puede especificar
que los flujos de memoria se asignen desde un pool en el SGA llamado Streams
pool.
Cache de diccionario (Dictionary
Cache)
El diccionario de datos es una colección de tablas
y vistas de la base de datos que contienen información sobre la base de datos
(sus estructuras y sus usuarios).
Oracle accede con frecuencia al diccionario de
datos, por lo que tiene dos localizaciones especiales en memoria designadas a
mantenerlo. Una de ellas es la caché del diccionario de datos, también conocida
como la cache de fila por que contiene datos sobre las filas en vez de los
buffers (los cuales contienen bloques de datos), y la otra es el cache de
biblioteca.
El tamaño del SGA queda
determinado por muchos parámetros, aunque son los siguientes los que tienen un
gran efecto sobre el tamaño del SGA:
2.2 Estructuras físicas de la base de datos
En una base de datos almacenamos información relevante para nuestro negocio u organización y desde el punto de vista físico, la base de datos está conformada por dos tipos de archivos:
Ø Archivos de datos: contiene los datos de la base de datos internamente, está compuesto por páginas enumeradas secuencialmente que representa la unidad mínima de almacenamiento. Cada página tiene un tamaño de 8kb de información. Existen diferentes tipos de páginas, a tener en cuenta:
Páginas de datos: es el tipo principal de páginas y son las que almacenan los registros de datos.
Páginas de espacio libre (PFS Page Free Space): almacenan información sobre la ubicación y el tamaño del espacio libre.
Paginas GAM and SGAM: utilizadas para ubicar extensiones.
Páginas de Mapa de Ubicaciones de índices (IAM – IndexAllocationMap): contiene información sobre el almacenamiento de páginas de una tabla o índice en particular.
Páginas Índices: Utilizada para almacenar registros de índices.
Ø Archivo de Registro de Transacciones: El propósito principal del registro de transacciones es la recuperación de datos a un momento en el tiempo o complementar una restauración de copia de respaldo completa (full backup). El registro de transacciones no contiene páginas, sino entradas con todos los cambios realizados en la base de datos, como son las modificaciones de datos, modificaciones de la base de datos y eventos de copia de seguridad y restauración. El acceso a datos es secuencial, ya que el registro de transacciones se actualiza en el mismo orden cronológico en el que se hacen las modificaciones.
Este archivo no puede ser leído por herramientas de usuario de SQL auqnue existen herramientas de terceros que leen este archivo para recuperar los cambios efectuados. Dependiendo de la versión el registro de transacciones se utiliza para otros propósitos como por ejemplo bases de datos espejo (mirror) y transporte remoto de transacciones (log shipping).
Para muchos de los administradores de bases de datos, la imagen anterior representa la parte lógica y la parte física, donde:
Data File:
Los datafiles son los archivos físicos en los que se almacenan los objetos que forman parte de un tablespace. Un datafile pertenece solamente a un tablespace y a una instancia de base de datos. Un tablespace puede estar formado por uno o varios datafiles. Cuando se crea un datafile, se debe indicar su nombre, su ubicación o directorio, el tamaño que va a tener y el tablespace al que va a pertenecer. Además, al crearlos, ocupan ya ese espacio aunque se encuentran totalmente vacíos, es decir, Oracle reserva el espacio para poder ir llenándolo poco a poco con posterioridad. Por supuesto, si no hay sitio suficiente para crear un archivo físico del tamaño indicado, se producirá un error y no se creará dicho archivo.
Cuando se van creando objetos en un tablespace, éstos físicamente se van almacenando en los datafiles asignados a dicho tablespace, es decir, cuando creamos una tabla y vamos insertando datos en ella, estos datos realmente se reparten por los archivos físicos o datafiles que forman parte del tablespace. No se puede controlar en qué archivo físico se almacenan los datos de un tablespace. Si un tablespace está formado por 2 datafiles y tenemos una tabla en ese tablespace, a medida que vamos insertando filas éstas se almacenarán en cualquiera de los dos datafiles indistintamente, es decir, unas pueden estar en un datafile y otras en otro.
El espacio total disponible en un tablespace es lógicamente la suma de los tamaños que ocupan los archivos físicos o datafiles que lo forman. Como hemos indicado estos datafiles, al crearlos, están totalmente vacíos, simplemente es un espacio reservado y formateado por Oracle para su uso. A medida que se van creando objetos en ellos como tablas, índices, etc. y se van insertando registros en estas tablas, los datafiles se van llenando o, lo que es lo mismo, el tablespace se va llenando.
Tienen las siguientes características:
Ø Un archivo sólo puede estar asociado con una base de datos.
Ø Los archivos de datos tienen atributos que permiten reservar automáticamente para ellos extensiones cuando se acaba el espacio.
Ø Uno o más archivos de datos forman una unidad lógica de almacenamiento llamada tablespace.
Os Block:
Conocidos como Disk Block, estos mapean a los data blocks. A la hora de crear una nueva base de datos se debe indicar cuántos bloques de sistema operativo formarán un bloque de datos.
2.3 Requerimientos para la instalación
Requisitos generales
Antes de instalar cualquier SGBD es necesario:
Reconfiguración de los servicios TCP/IP y la modificación de los tipos archivos HTML para los diversos navegadores.
SQL
· RAM: 512 MB
- · Memoria virtual: 1024 MB
- · Espacio disco duro: 1 GB
- · Tamaño de la bd: 10 GB
- · Sistema operativo: Windows, Linux, unix
MySQL
- · RAM: 512 MB
- · Memoria virtual: 1024 MB
- · Espacio disco duro: 1 GB
- · Tamaño de la bd: Sin límite
- · Sistema operativo: Windows, Linux, unix
- · Arquitectura 64 bits: Sí
Oracle
- · RAM: 2GB
- · Memoria virtual: 1024 MB
- · Espacio disco duro: 11 GB
- · Tamaño de la bd: 4GB
- · Sistema operativo: Windows, Linux, unix
- · Arquitectura 64 bits: Si
2.4 Instalación del SGBD en modo transaccional
Una base de datos en modo transaccional significa que la BD será capaz de que las operaciones de inserción y actualización se hagan dentro de una transacción, es un componente que procesa información descomponiéndola de forma unitaria en operaciones indivisibles, llamadas transacciones, esto quiere decir que todas las operaciones se realizan o no, si sucede algún error en la operación se omite todo el proceso de modificación de la base de datos, si no sucede ningún error se hacen toda la operación con éxito. Una transacción es un conjunto de líneas de un programa que llevan insert o update o delete. Todo aquél software que tiene un log de transacciones (que es la "bitácora" que permite hacer operaciones de commit o rollback), propiamente es un software de BD; aquél que no lo tiene (v.g. D-Base), propiamente no lo es. Todo software de base de datos es transaccional; si el software de la BD no es "transaccional", en realidad NO es un "software" de BD; en todo caso, es un software que emula el funcionamiento de un verdadero software de BD. Cada transacción debe finalizar de forma correcta o incorrecta como una unidad completa. No puede acabaren un estado intermedio.
Se usan los siguientes métodos:
- · Begin TRans para iniciar la transacción.
- · CommitTrans para efectuar los cambios con éxito.
- · RollbackTrans para deshacer los cambios.
Y depende que base de datos uses para efectuar las operaciones, pero, es la misma teoría para cualquier BD.
Una vez que se sabe la forma de ingresar comandos, es el momento de acceder a una base de datos.
Suponga que en su hogar posee varias mascotas y desea registrar distintos tipos de información sobre ellas. Puede hacerlo si crea tablas para almacenar sus datos e introduce en ellas la información deseada. Entonces, podrá responder una variedad de preguntas acerca de sus mascotas recuperando datos desde las tablas. Los pasos serían:
- · Crear una base de datos
- · Crear una tabla
- · Introducir datos en la tabla
- · Recuperar datos desde la tabla de varias maneras
- Emplear múltiples tablas
2.5 Variables de Ambiente y Archivos Importantes para Instalación
Variables de Ambiente: Se usan para personalizar el entorno en el que se ejecutan los programas y para ejecutar en forma correcta los comandos del shell.
Toman su valor inicial generalmente de un archivo .profile, pero hay veces en que el usuario tiene que modificar los valores de alguna variable de ambiente cuando está tratando de instalar o ejecutar un nuevo programa
A continuación se comentan las opciones más utilizadas de la sección mysqld (afectan al funcionamiento del servidor MySQL), se almacenan en el archivo my.cnf (o my.ini)
basedir = ruta: Ruta a la raíz MySQL
console: Muestra los errores por consola independientemente de lo que se configure para log_error.
datadir = ruta: Ruta al directorio de datos.
default-table-type = tipo: Tipo de la Tabla InnoDB o, MyISAM.
flush: Graba en disco todos los comandos SQL que se ejecuten (modo de trabajo, sin transacción).
general-log = valor: Con valor uno, permite que funcione el archivo LOG para almacenar las consultas realizadas.
general-log-file = ruta: Indica la ruta al registro general de consultas.
language: Especifica el idioma de los lenguajes de error, normalmente esots archivos de lenguaje, están bajo /usr/local/share.
log-error = ruta: Permite indicar la ruta al registro de errores.
log = ruta: Indica la ruta al registro de consultas.
long-query-time = n: Segundos a partir de los cuales una consulta que tardes más, se considerará una consulta lenta.
og-bin = ruta: Permite indicar la ruta al registro binario.
pid-file = ruta: Ruta al archivo que almacena el identificador de proceso de MySQL.
port = puerto: Puerto de escucha de MySQL.
skip-grant-tables: Entra al servidor saltándose las tablas de permisos, es decir todo el mundo tiene privilegios absolutos.
skip-networking: El acceso a MySQL se hará solo desde el servidor local.
slow-query-log = 0|1: Indica si se hace LOG de las consultas lentas.
slow-query-log-file = ruta: Ruta al archivo que hace LOG de las consultas lentas.
socket = ruta: Archivo o nombre de socket a usar en las conexiones locales.
standalone: Para Windows, hace que el servidor no pase a ser un servicio.
user = usuario: Indica el nombre de usuario con el que se iniciará sesión en MySQL.
tmpdir = ruta: Ruta al directorio para archivos temporales.
Archivos LOG en MySQL
Hay cuatro registros (logs):
Registro de Errores (Error Log): Indica cuando arrancó y se detuvo el servidor. Se graba por defecto en la carpeta de datos de MySQL (archivo host_name.err, donde host_name es el nombre del servidor), pero la variable de sistema log_error permite indicar otra ruta si fuera necesario.
Registro General de Consultas (General Log File): Está en la carpeta de datos de MySQL, salvo que se indique la variable general-log-file. Contiene las consultas realizadas. Es el archivo host_name.log.
Registro Binario (Binary Log): Registra instrucciones DML. Los archivos binarios se almacenan por defecto en el directorio de datos. Sirve para intentar restaurar una base de datos en caso de desastre. Es binario, por lo que su manejo es complicado, para ver el contenido se usa la utilidad mysqlbinlog de esta forma: mysqlbinlog archivoLOG
2.6. Procedimiento
general de instalación
MySQL
Enterprise Edition incluye el conjunto más completo de características
avanzadas y herramientas de gestión para alcanzar los más altos niveles de
escalabilidad, seguridad, fiabilidad y tiempo de actividad. Reduce el riesgo,
costo y complejidad en el desarrollo, implementación y administración de
aplicaciones críticas de negocio MySQL.
El
MySQL Enterprise incluye las siguientes opciones:
Backup: Realiza
copias de seguridad de bases de datos MySQL en línea, de los subconjuntos de
tablas InnoDB, y la recuperación mediante puntos de restauración.
Alta
Disponibilidad: es proporcionada con soluciones certificadas que incluyen
replicación de MySQL.
Escalabilidad: permite
alcanzar el rendimiento sostenido y la escalabilidad de cada vez mayor de
usuarios, consulta, y las cargas de datos
MySQL
Enterprise Security: Proporciona listas para utilizar los módulos de
autenticación externos para integrar fácilmente las infraestructuras existentes
de seguridad, incluyendo Pluggable Authentication Modules y el directorio
activo de Windows
MySQL
Enterprise Monitor: supervisa continuamente su base de datos y de forma
proactiva le asesora sobre cómo implementar las mejores prácticas de MySQL,
incluyendo consejos y alertas de seguridad
MySQL
Query Analyzer: Mejora el rendimiento de las aplicaciones mediante el
control de rendimiento de las consultas y precisa localización de código SQL
que está causando una desaceleración
MySQL
Workbench: Cuenta con ofertas de modelado de datos, desarrollo de SQL y
herramientas de administración integral para la administración del servidor de
configuración del usuario, y mucho más.
El
proceso de instalación es muy simple y prácticamente no requiere intervención
por parte del usuario.
Comienza
el proceso; sólo nos llevará un par de minutos…
Cada
vez que veo la pantalla de la GNU GPL me lleno de felicidad. No sólo
por las condiciones y el precio: es además, para mí, una garantía de
profesionalidad.
Estadísticamente,
la instalación típica será la que mejor se adapte a tus necesidades.
todo
listo; presiona Install cuando quieras.
Una
vez instalado MySQL, la siguiente fase es la configuración del servidor en
sí mismo. Asegúrate de que la marca Launch the MySQL Instance
Configuration Wizard esté activa.
2.7 Procedimiento para Configuración de
un SGBD
Para configurar nuestro SGBD podemos
acceder a las siguientes pantallas, para Oracle o MySQL.
El esquema de una base de datos (en
inglés, Database Schema) describe la estructura de una Base de datos, en un lenguaje
formal soportado por un Sistema administrador de Base de datos (DBMS). En una
Base de datos Relacional, el Esquema define sus tablas, sus campos en cada
tabla y las relaciones entre cada campo y cada tabla.
Oracle generalmente asocia un 'username'
como esquemas en este caso SYSTEM y HR (Recursos humanos).
Por otro lado MySQL presenta dos
esquemas information_schema y MySQL ambos guardan información sobre privilegios
y procedimientos del gestor y no deben ser eliminados.
Adelante, sin miedo…
Optamos por Detailed Configuration, de modo que se optimice la configuración del servidorMySQL.
Ha llegado un momento crucial. Dependiendo del uso que vayamos a darle a nuestro servidor deberemos elegir una opción u otra, cada una con sus propios requerimientos de memoria. Puede que te guste la opción Developer Machine, para desarrolladores, la más apta para un uso de propósito general y la que menos recursos consume. Si vas a compartir servicios en esta máquina, probablemente Server Machine sea tu elección o, si vas a dedicarla exclusivamente como servidor SQL, puedes optar por Dedicated MySQL Server Machine, pues no te importará asignar la totalidad de los recursos a esta función.
De nuevo, para un uso de propósito general, te recomiendo la opción por defecto, Multifunctional Database.
InnoDB es el motor subyacente que dota de toda la potencia y seguridad a MySQL. Su funcionamiento requiere de unas tablas e índices cuya ubicación puedes configurar. Sin causas de fuerza mayor, acepta la opción por defecto.
Esta pantalla nos permite optimizar el funcionamiento del servidor en previsión del número de usos concurrentes. La opción por defecto, Decision Support (DSS) / OLAP será probablemente la que más te convenga.
Deja ambas opciones marcadas, tal como
vienen por defecto. Es la más adecuada para un uso de propósito general o de
aprendizaje, tanto si eres desarrollador como no. Aceptar conexiones TCP te
permitirá conectarte al servidor desde otras máquinas (o desde la misma
simulando un acceso web típico)
Hora de decidir qué codificación de caracteres emplearás, salvo que quieras empezar a trabajar con Unicode porque necesites soporte multilenguaje, probablemente Latin1 te sirva (opción por defecto).
Instalamos MySQL como un servicio de
Windows (la opción más limpia) y lo marcamos para que el motor de la base de
datos arranque por defecto y esté siempre a nuestra disposición. La alternativa
es hacer esto manualmente.
Además, me aseguro de marcar que los ejecutables estén en la variable PATH, para poder invocar a MySQL desde cualquier lugar en la línea de comandos.
Pon una contraseña al usuario root. Esto
siempre es lo más seguro.
Si lo deseas, puedes indicar que el usuario root pueda acceder desde una máquina diferente a esta, aunque debo advertirte de que eso tal vez no sea una buena práctica de seguridad.
Última etapa, listos para generar el fichero de configuración y arrancar el servicio.
Sólo damos al botón de Finalizar y terminamos con la configuración del DBMS.
2.8 Comandos Generales de Alta y Baja
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
No hay comentarios.:
Publicar un comentario