Creacion de tablas en mysql

Solo disponible en BuenasTareas
  • Páginas : 20 (4783 palabras )
  • Descarga(s) : 0
  • Publicado : 25 de agosto de 2012
Leer documento completo
Vista previa del texto
2.1 Creación de base de datos.
Para crear una base de datos se usa una sentencia CREATE DATABASE
mysql> CREATE DATABASE prueba;
Para mostrar las bases de datos existentes en nuestro sistema se usa la sentencia SHOW DATABASES
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| mysql |
| prueba |
| test|
+--------------------+
3 rows in set (0.00 sec)

Para seleccionar una base de datos se usa el comando USE, que no es exactamente una sentencia SQL, sino más bien de una opción de MySQL mysql> USE prueba; Database changed mysql>

2.2 Creación de tablas.
La sentencia CREATE TABLE que sirve para crear tablas. La sintaxis de esta sentencia es muy compleja, ya que existen muchas opciones ytenemos muchas posibilidades diferentes a la hora de crear una tabla. Deberemos indicar el nombre de la tabla y los nombres y tipos de las columnas

mysql> CREATE TABLE gente (nombre VARCHAR(40), fecha DATE);
Query OK, 0 rows affected (0.53 sec)
Podemos consultar cuántas tablas y qué nombres tienen en una base de datos, usando la sentencia SHOW TABLES
mysql> SHOW TABLES;+-------------------------+
| Tables_in_prueba |
+-------------------------+
| gente |
+-------------------------+
1 row in set (0.01 sec)


La sintaxis para definir columnas es:

nombre_col tipo [NOT NULL | NULL] [DEFAULT valor_por_defecto] [AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'string'] [definición_referencia]

Valores nulos: Al definir cada columna podemos decidir si podrá o nocontener valores nulos. La opción por defecto es que se permitan valores nulos, NULL, y para que no se permitan, se usa NOT NULL. Por ejemplo:

mysql>CREATE TABLE ciudad1(nombre CHAR(20) NOT NULL, poblacion INT NULL);
Query OK, 0 rows affected (0.98 sec)

Valores por defecto: Para cada columna también se puede definir, opcionalmente, un valor por defecto. El valor por defecto se asignará deforma automática a una columna cuando no se especifique un valor determinado al añadir filas. Si una columna puede tener un valor nulo, y no se especifica un valor por defecto, se usará NULL como valor por defecto. En el ejemplo anterior, el valor por defecto para poblacion es NULL.

Por ejemplo, si queremos que el valor por defecto para población sea 5000, podemos crear la tabla como:mysql>CREATE TABLE ciudad2(nombre CHAR(20) NOT NULL, poblacion INT NULL DEFAULT 5000); Query OK, 0 rows affected (0.09 sec)

Claves primaria: También se puede definir una clave primaria sobre una columna, usando la palabra clave KEY o PRIMARY KEY.
Sólo puede existir una clave primaria en cada tabla, y la columna sobre la que se define una clave primaria no puede tener valores NULL. Si esto no seespecifica de forma explícita, MySQL lo hará de forma automática.

Por ejemplo, si queremos crear un índice en la columna nombre de la tabla de ciudades, crearemos la tabla así:

mysql> CREATE TABLE ciudad3 (nombre CHAR(20) NOT NULL PRIMARY KEY, poblacion INT NULL DEFAULT 5000);
Query OK, 0 rows affected (0.20 sec)

mysql> CREATE TABLE ciudad3 (nombre CHAR(20) NOT NULL, poblacion INT NULLDEFAULT 5000, PRIMARY KEY(nombre));
Query OK, 0 rows affected (0.20 sec)

Usar NOT NULL PRIMARY KEY equivale a PRIMARY KEY, NOT NULL KEY o sencillamente KEY.

Columnas autoincrementadas: En MySQL tenemos la posibilidad de crear una columna autoincrementada, aunque esta columna sólo puede ser de tipo entero.

Si al insertar una fila se omite el valor de la columna autoincrementada o si seinserta un valor nulo para esa columna, su valor se calcula automáticamente, tomando el valor más alto de esa columna y sumándole una unidad. Esto permite crear, de una forma sencilla, una columna con un valor único para cada fila de la tabla.

Generalmente, estas columnas se usan como claves primarias 'artificiales'. MySQL está optimizado para usar valores enteros como claves primarias, de modo que...
tracking img