FUNCIN Y SINTAXIS DE LAS SENTENCIAS DE SQL
ALTER DATABASE le permite cambiar las caractersticas globales de una base de datos. Estas caractersticas se almacenan en el fichero db.opt en el directorio de la base de datos. Para usar ALTER DATABASE, necesita el permiso ALTER en la base de datos. La clusula CHARACTER SET cambia el conjunto de caracteres por defecto de la base de datos. La clusula COLLATE cambia la colacin por defecto de la base de datos. El conjunto de caracteres y la colacin se discuten en ALTER TABLE le permite cambiar la estructura de una tabla existente. Por ejemplo, puede aadir o borrar columnas, crear o destruir ndices, cambiar el tipo de columnas existentes, o renombrar columnas o la misma tabla. Puede cambiar el comentario de la tabla y su tipo. La sintaxis para varias de las alteraciones permitidas es similar a clusulas del comando CREATE TABLE. Esto incluye modificaciones table_options , para opciones tales como ENGINE, AUTO_INCREMENT, y AVG_ROW_LENGTH. Consulte Seccin 13.1.5, Sintaxis de CREATE TABLE. CREATE DATABASE crea una base de datos con el nombre dado. Para usar CREATE DATABASE, necesita el permiso CREATE en la base de datos. Las reglas para nombres de bases de datos permitidos se dan en Seccin 9.2, Nombres de bases de datos, tablas, ndices, columnas y alias. Ocurre un error si la base de datos existe y no especifica IF NOT EXISTS. En MySQL 5.0, las opciones create_specification pueden darse para especificar caracterstica de la base de datos. Las caractersticas se almacenan en el fichero db.opt en el directorio de la base de datos. La clusula CHARACTER SET especifica el conjunto de caracteres por defecto de la base de datos CREATE TABLE crea una tabla con el nombre dado. Debe tener el permiso CREATE para la tabla.
Las reglas para nombres de tabla permitidos se dan en Seccin 9.2, Nombres de bases de datos, tablas, ndices, columnas y alias. Por defecto, la tabla se crea en la base de datos actual. Ocurre un error si la tabla existe, si no hay base de datos actual o si la base de datos no existe. En MySQL 5.0, el nombre de tabla puede especificarse como db_name.tbl_name para crear la tabla en la base de datos especfica. Esto funciona haya una base de datos actual o no. Si usa identificadores entre comillas, entrecomille el nombre de base de datos y de tabla por separado. Por ejemplo, `mydb`.`mytbl` es legal, pero `mydb.mytbl` no. Puede usar la palabra TEMPORARY al crear una tabla. Una tabla TEMPORARY es visible slo para la conexin actual, y se borra automticamente cuando la conexin se cierra. Esto significa que dos conexiones distintas pueden usar el mismo nombre de tabla temporal sin entrar en conflicto entre ellas ni con tablas no TEMPORARY con el mismo nombre. (La tabla existente se oculta hasta que se borra la tabla temporal.) En MySQL 5.0, debe tener el permiso CREATE TEMPORARY TABLES para crear tablas temporales DROP DATABASE borrar todas las tablas en la base de datos y borrar la base de datos. Sea muy cuidadoso con este comando! Para usarDROP DATABASE, necesita el permiso DROP en la base de datos. IF EXISTS se usa para evitar un error si la base de datos no existe. DROP SCHEMA puede usarse desde MySQL 5.0.2. Si usa DROP DATABASE en una base de datos enlazada simblicamente, tanto el enlace como la base de datos se borran. DROP DATABASE retorna el nmero de tablas que se eliminan. Se corresponde con el nmero de ficheros .frm borrados. DELETE borra los registros de tbl_name que satisfacen la condicin dada por where_definition, y retorna el nmero de registros borrados. Si realiza un comando DELETE sin clusula WHERE se borran todos los registros. Una forma ms rpida de hacerlo, cuando no quiere saber el nmero de registros borrados, se usa TRUNCATE TABLE
INSERT inserta nuevos registros en una tabla existente. Las formas INSERT ... VALUES y INSERT ... SET del comando insertan registros basados en valores explcitamente especificados. La forma INSERT ... SELECT inserta registros seleccionados de otra tabla o tablas. INSERT ... SELECT se discute en Seccin 13.2.4.1, Sintaxis de INSERT ... SELECT. tbl_name es la tabla en que los registros deben insertarse. Las columnas para las que el comando proporciona valores pueden especificarse como sigue:
La lista de nombres de columna o la clusula SET indican las columnas explcitamente. Si no especifica la lista de columnas para INSERT ... VALUES o INSERT ... SELECT, los valores para cada columna en la tabla deben proporcionarse en la lista VALUES o por el SELECT. Si no sabe el orden de las columnas en la tabla, use DESCRIBE tbl_name para encontrarlo.
SELECT se usa para recibir registros seleccionados desde una o ms tablas. MySQL 5.0 incluye soporte para comandos UNION y subconsultas. Consulte Seccin 13.2.7.2, Sintaxis de UNION y Seccin 13.2.8, Sintaxis de subconsultas.
Cada select_expr indicata una columna que quiere recibir. table_references indicata la tabla o tablas desde la que recibir registros. Su sintaxis se describe en Seccin 13.2.7.1, Sintaxis de JOIN. where_definition consiste en la palabra clave WHERE seguida por una expresin que indica la condicin o condiciones que deben satisfacer los registros para ser seleccionados.