Tema 3.-Diseño Físico de BD

You might also like

Download as odt, pdf, or txt
Download as odt, pdf, or txt
You are on page 1of 3

Tema 3.

- Diseño físico de BD
3.1.- Manipulación de BD
• Creación de BDs:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
• Visualizar las BDs existentes en nuestro gestor:
SHOW DATABASES
• Eliminación de BDs:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
• Modificación de BDs:
ALTER {DATABASE | SCHEMA} [db_name]
alter_specification [, alter_specification] …

3.2.- Manipulación de tablas


3.2.1.- Creación de tablas:
Formato 1:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition , ...)
[table_options]
[partition_options]
Formato 2:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition , ...)
[table_options]
[partition_options]
select_statement
Formato 3:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }
• Opciones de tabla:
table_options:
table_option [[,] table_option] ...
table_option:
ENGINE [=] engine_name
|AUTO_INCREMENT [=] value
|DATA DIRECTORY [=] 'absolute path to directory'
|INDEX DIRECTORY [=] 'absolute path to directory'
|MAX_ROWS [=] value
|MIN_ROWS [=] value
• Visualizar las tablas existentes en la BD activa:
SHOW TABLES

3.2.2.- Eliminación de tablas:


DROP [TEMPORARY] TABLE [IF EXISTS]
tbl_name [, tbl_name ] ...
3.2.3.- Consulta de tablas:
• Muestra el código SQL completo, necesario para crear la tabla:
SHOW CREATE TABLE tbl_name
• Mostrar los atributos y restricciones principales de la tabla:
{DESCRIBE | DESC} tbl_name {col_name | wild}
• Es equivalente a la anterior pero nos permite filtrar mediante LIKE o WHERE:
SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{ FROM | IN } db_name]
[LIKE 'pattern' | WHERE expr]

3.2.4.- Definición de atributos. Tipos de datos


create_definition:
col_name column_definition [column_constraints]
column_definition:
data_type [NOT NULL | NULL] [DEFAULT default_value]
[AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
[COMMENT 'string']
[reference_definition]
data_type:
BIT[(length)]
| INT[(length)] [UNSIGNED] [ZEROFILL]
| INTEGER[(length)] [UNSIGNED] [ZEROFILL]
| BIGINT[(length)] [UNSIGNED] [ZEROFILL]
| REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
| DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
| FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
| DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]
| NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]
| DATE
| TIME
| TIMESTAMP
| DATETIME
| YEAR
| CHAR[(length)]
| VARCHAR(length)
| BINARY[(length)]
| VARBINARY(length)
| BLOB
| TEXT [BINARY]
| ENUM(value1,value2,value3,...)
| SET(value1,value2,value3,...)
| {BOOL | BOOLEAN} --- Sinónimo de TINYINT(1) ---
| spatial_type
column_constraints:
[CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
[index_option] ...
| {INDEX|KEY} [index_name] [index_type] (index_col_name,...)
[index_option] ...
| [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY]
[index_name] [index_type] (index_col_name,...)
[index_option] ...
| {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...)
[index_option] ...
| [CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name,...) reference_definition
| CHECK (expr)
reference_definition:
REFERENCES tbl_name (index_col_name , …)
[ON DELETE reference_option]
[ON UPDATE reference_option]
reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION
3.2.5.- Modificación de tablas:
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
table_options
| ADD [COLUMN] col_name column_definition
[FIRST | AFTER col_name ]
| ADD [COLUMN] (col_name column_definition,...)
| ADD {INDEX|KEY} [index_name]
[index_type] (index_col_name,...) [index_option] ...
| ADD [CONSTRAINT [symbol]] PRIMARY KEY
[index_type] (index_col_name,...) [index_option] ...
| ADD [CONSTRAINT [symbol]]
UNIQUE [INDEX|KEY] [index_name]
[index_type] (index_col_name,...) [index_option] ...
| ADD FULLTEXT [INDEX|KEY] [index_name]
(index_col_name,...) [index_option] ...
| ADD SPATIAL [INDEX|KEY] [index_name]
(index_col_name,...) [index_option] ...
| 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 new_col_name column_definition
[FIRST|AFTER col_name]
| MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| DROP PRIMARY KEY
| DROP {INDEX|KEY} index_name
| DROP FOREIGN KEY fk_symbol
| DISABLE KEYS
| ENABLE KEYS
| RENAME [TO|AS] new_tbl_name
| RENAME {INDEX|KEY} old_index_name TO new_index_name
3.2.6.- Eliminación de tablas:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] …
• Truncado de tablas: es similar a la sentencia “DELETE * FROM tbl_name” pero con alguna
diferencia, sobre todo en velocidad de ejecución.
TRUNCATE [TABLE] tbl_name

You might also like