comandos y sintasis mysql

Download COMANDOS Y SINTASIS MYSQL

Post on 07-Aug-2015

202 views

Category:

Documents

1 download

Embed Size (px)

DESCRIPTION

COMANDOS Y SINTASIS MYSQL

TRANSCRIPT

Guia de referencia de la sintaxis de MySQLEn este apendice se incluyen las instrucciones y la sintaxis SQL utilizadas en la version 4.0 de MySQL. Para versiones posteriores es aconsejable consultar la documentacion correspondiente a su distribucion o visitar el sitio de MySQL (www . mysql .com).

La convencion utilizada a lo largo de 10s apendices es la siguiente: Los corchetes ( [ ] ) indican un elemento opcional. Por ejemplo:SELECT expresion [FROM nombre-de-tabla [WHERE clausula-where]]

indica que la expresion es obligatoria (por ejemplo SELECT 4 2 / 10) y que la clausula WHERE es opcional per0 solamente puede existir si existe la clausula opcional FROM nombre -d e -t a b l a (podriamos tener SELECT*FROM t l , per0 no SELECT*WHERE f 1 > 1 0 , ya que entonces faltaria la clausula nombre -de -tabla). Una barra vertical ( I ) separa las distintas alternativas. Por ejemplo:CREATE [UNIQUE I FULLTEXT] INDEX indica que UNIQUE y FULLTEXT son opciones distintas.

Las llaves ( { ) ) indican que es necesario seleccionar una de las opciones. Por ejemplo:CREATE TABLE [TYPE = (BDB MRG -MYISAM I MYISAM 1 1

...

I

HEAP

I

ISAM

I InnoDB I MERGE I

Si se especifica la clausula opcional TYPE, sera necesario especificar una de las siguientes opciones: BDB, HEAP, ISAM, I n n o D B , MERGE, MRG -MYISAMo M Y I S A M . Tres puntos (...) indican que la opcion se puede repetir. Por ejemplo:SELECT expresion,

.. .

indica que la expresion se puede repetir (separada por una coma), como se 2 3 indica a continuacion: SELECT f 1, f ,f .

ALTERLa sintaxis de ALTER es la siguiente:ALTER [IGNORE] TABLE nombre-de-tabla especif icacion-alter [, especificacion-alterI

...

La sintaxis de e s p e c i f i c a c i 6 n -a 1t e r puede ser una de las siguientes:ADD [COLUMN] definition-create [FIRST I AFTER nombre-de-campo ] ADD [COLUMN] (definition-create , definition-create, . . . ) ADD INDEX [nombre-de-indice] (nombre-de-campo-de-indice, ... ) ADD P R I W Y KEY (nombre-de-campo-de-indice, . . . ) ADD UNIQUE [nombre-de-indice] (nombre-de-indice, ) ADD FULLTEXT [nombre-de-indice] (nombre-de-indice, .) ADD [CONSTRAINT simbolo] FOREIGN KEY nombre-de-indice (nombre-de-indice, in direferencia-definicih] ALTER [COLUMN] nombre-de-campo ( SET DEFAULT literal I DROP DEFAULT 1 CHANGE [COLUMN] antiguo-nombre-de-campo definition-create [FIRST AFTER nombre-de-campo] MODIFY [COLUMN] definition-create [FIRST I AFTER nombre-de-camp01 DROP [COLUMN] nombre-de-campo DROP PRIMARY KEY DROP INDEX nombre-de-indice DISABLE KEYS ENABLE KEYS RENAME [TO] nuevo-nombre-de-tabla ORDER BY nombre-de-campo opcionesde-tabla

. .. ..

I

ALTER TABLE le permite cambiar la estructura de una tabla existente. Puede aiiadir columnas ( ADD ), cambiar definiciones y nombres de columnas

( CHANGE), modificar definiciones de columnas sin cambiar el nombre (MODIFY), eliminar columnas o indices ( DROP), cambiar el nombre de las tablas ( RENAME ), ordenar datos ( ORDER ) asi como activar ( ENABLE ) y desactivar ( DISABLE) indices. Una extension MySQL que no sea ANSI es significa que ALTER TABLE puede contener varios componentes (CHANGE, AND, etc.) en una instruccion. Necesitara permiso ALTER, I N S E R T y CREATE en la tabla para utilizar ALTER TABLE. I G N O R E (extension MySQL no ANSI) hace que MySQL elimine registros que puedan generar una clave principal o unica duplicada. Normalmente MySQL cancela y ALTER falla. FIRST y ADD...AFTER le permiten especificar donde se debe aiiadir un campo a la definicion.

ANALYZE TABLEANALYZE TABLE nombre-de-tabla[,

nombre-de-tabla..

.]

En tablas MyISAM y BDB, analiza y almacena la distribucion de claves de las tablas especificadas. Bloquea las tablas con un bloqueo de lectura durante la duracion de la operacion.

BACKUP TABLEBACKUP TABLE nombre-de-tabla 'nombre-de-ruta'[

,nombre-de-tabla..

.]

TO

En tablas MyISAM, copia 10s archivos de datos y de definicion de datos en el directorio de copias de seguridad.

BEGINBEGIN

La instruccion B E G I N inicia una transaccion o un conjunto de instrucciones. La transaccion permanece abierta hasta la siguiente instruccion COMMIT oROLLBACK.

CHECK TABLECHECK TABLE nombre-tbl[, nombre-tbl-.

.. ]

[opcion [opcion..

.] 1

La opcion puede ser una de las siguientes:CHANGED EXTENDED FAST MEDIUM QUICK

Comprueba la presencia de errores en una tabla MyISAM o BDB y, en tablas MyISAM, actualiza las estadisticas del indice. La opcion QUICK no analiza las filas para comprobar 10s enlaces. La opcion FAST solamente comprueba las tablas que no se cerraron correctamente. La opcion CHANGED es la misma que FAST per0 tambien comprueba las tablas que han cambiado desde la ultima comprobacion. La opcion MEDIUM verifica que 10s enlaces eliminados son correctos y la opcion EXTENDED realiza una busqueda completa de todas las claves de todas las filas.

COMMITCOMMIT

La instruccion COMMIT finaliza una instruccion o un conjunto de instrucciones y vuelca 10s resultados en disco.

CREATELa sintaxis de CREATE puede ser una de las siguientes:CREATE DATABASE [IF NOT EXISTS ] nombre-de-base-de-datos CREATE [UNIQUEIFULLTEXT] INDEX nombre-de-indice ON nombre-de-tabla (nombre-de-campo [ (longitud) 1, . ) CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nombre-de-tabla [ (crear definicion, . . ) 1 [opciones-de-tabla] [instruction-select]

..

.

La sintaxis de crear

-

defi ni c i 6n puede ser una de las siguientes:

tipo nombre-de-campo [NOT NULL I NULL] [DEFAULT valor-predeterminado] [AUTO-INCREMENT] [PRIMARY KEY] [definition-de-referencia] PRIMARY KEY (nombre-de-campo-de-indice, . . . ) KEY [nombre-de-indice] (nombre-de-campo-de-indice, . . . ) INDEX [nombre-de-indice] (nombre-de-campo-de-indice, . . . ) UNIQUE [INDEX] [nombre-de-indice] (nombre-de-campo-de-indice, FULLTEXT [INDEX] [nombre-de-indice] (nombre-de-campo-deoindice, . . . ) [CONSTRAINT simbolo] FOREIGN KEY [nombre-de-indice](nombre-de-carnpo-deoindice,

... )

... )

[definition-de-referencia] CHECK (expr)

La sintaxis de type puede ser una de las siguientes:TINYINT [ (longitud) ] [UNSIGNED] [ZEROFILL] SMALLINT [ (longitud) ] [UNSIGNED] [ZEROFILL] MEDIUMINT [ (longitud) 1 [UNSIGNED] [ZEROFILL] INT[(longitud)] [UNSIGNED] [ZEROFILL] INTEGER[(longitud)] [UNSIGNED] [ZEROFILL] BIGINT [ (longitud) ] [UNSIGNED] [ZEROFILL] REAL [ (longitud,decimales) ] [UNSIGNED] [ZEROFILL] DOUBLE[(longitud,decimales)] [UNSIGNED] [ZEROFILL] FLOAT[(longitud,decimales)] [UNSIGNED] [ZEROFILL] DECIMAL(longitud,decimales) [UNSIGNED] [ZEROFILL] NUMERIC(longitud,decimales) [UNSIGNED] [ZEROFILL] CHAR(longitud) [BINARY] VARCHAR(longitud) [BINARY] DATE TIME TIMESTAMP DATETIME TINYBLOB BLOB MEDIUMBLOB LONGBLOB TINYTEXT TEXT MEDIUMTEXT LONGTEXT ENUM(valorl,valor2,valor3, . . . ) SET(valorl,valor2,valor3, . . . )

La sintaxis de nombre-de-campo -de-indice es la siguiente:nombre-de-campo [ (longitud) ]

La sintaxis de definici6n-de-referencia es la siguiente:REFERENCES nombre-de-tabla n nodre-de-campo-de-indice, ... )] [MATCH FULL I MATCH PARTIAL] [ON DELETE opcion-de-referencia] [ON UPDATE opcion-de-referencia]

La sintaxis de opci6n-de-referencia es la siguiente:RESTRICT I CASCADE

I SET NULL I NO ACTION I SET DEFAULT

La sintaxis de opciones -de-tabla puede ser una de las siguientes:TYPE = (BDB I HEAP I ISAM I InnoDB I MERGE AUTO-INCREMENT = # AVG-ROW-LENGTH = # CHECKSUM = ( 0 I 1)

I

MRG-MYISAM I MYISAM

)

COMMENT = cccadena" MAX-ROWS = # MIN-ROWS = # PACK-KEYS = ( 0 I 1 I DEFAULT) PASSWORD = cccadena" DELAY-KEY-WRITE = ( 0 I 1) ROW-FORMAT= ( predeterminado I dinamico I fijo I comprimido ) RAID-TYPE= ( 1 I STRIPED I RAID0 ) RAID-CHUNKS=# RAID-CHUNKSIZE=# UNION = (nombre-de-tabla,[nornbre-de-tabla . . . I ) INSERT-METHOD= (NO I FIRST I LAST ) DATA DIRECTORY="ruta-absoluta-a-directorio" INDEX DIRECTORY="ruta-absoluta-a-directorio"

La sintaxis de ins t rucc i6 n-s e 1 c t puede ser la siguiente: e[IGNORE I REPLACE] SELECT

...

(instruccion select)

La instruccion CREATE crea una base de datos, una tabla o un indice. Las tablas TEMPORARY existen siempre que la conexion este activa. Para ello necesitara el permiso CREATE TEMPORARY TABLES. De forma predeterminada, las definiciones de campos adoptan el valor NULL. Los campos numericos adoptan el valor 0 (excepto con AUTO INCREMENT) y 10s campos de cadena, una cadena vacia (excepto 10s campos ENUM, que toman de forma predeterminada la primera opcion). De forma predeterminada, 10s campos de fecha y hora completan el campo con ceros. Los campos AUTO INCREMENT empiezan a contar desde 1 de forma predeterminada y se incrementan en uno cada vez que se aiiade un nuevo registro. KEY e INDEX son sinonimos en este contexto. PRIMARY KEY especifica que el indice no puede contener duplicados y el campo (o combinacion de campos), debe especificarse como NOT NULL. UNIQUE especifica que el indice no puede contener duplicados. La opcion RAID TYPE contribuye a que 10s sistemas operativos que no pueden adrnitir archivosde gran tamaiio, superen esta limitacibn. La opci6n STRIPED es la unica que se utiliza actualmente. En tablas MyISAM, esto crea subdirectorios dentro del directorio de bases de datos, cada uno con una parte del archivo. Los primeros 1024*RAID CHUNKS IZE bytes se incluyen en la primera parte, 10s siguientes 1o ~ ~ * R A CHUNKS IZE en la siguiente y asi sucesivamente. ID DIRECTORY="directorio" e INDEX Las opciones DIRECTORY ="direct or io " especifican rutas absolutas a la ubicacion en la que se almacenan 10s datos o 10s indices. La opcion PACK KEYS=l agrupa campos numericos en el indice de tablas MyISAM (y, de f o i a predeterminada, cadenas).