PHP crea bases de datos MySQL

La base de datos contiene una o más tablas.

Crear base de datos

La sentencia CREATE DATABASE se utiliza para crear bases de datos en MySQL.

Sintaxis

CREATE DATABASE database_name

Para que PHP ejecute las sentencias anteriores, debemos usar la función mysql_query(). Esta función se utiliza para enviar consultas o comandos a la conexión MySQL.

Ejemplo

En el siguiente ejemplo, creamos una base de datos llamada "my_db":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('No se pudo conectar: ' . mysql_error());
  }
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
mysql_close($con);
?>

Crear tabla

CREATE TABLE se utiliza para crear tablas de bases de datos en MySQL.

Sintaxis

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
.......
)

Para ejecutar este comando, debo agregar la sentencia CREATE TABLE a la función mysql_query().

Ejemplo

El siguiente ejemplo muestra cómo crear una tabla llamada "Persons", que tiene tres columnas. Los nombres de las columnas son "FirstName", "LastName" y "Age":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('No se pudo conectar: ' . mysql_error());
  }
// Crear base de datos
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
// Create table in my_db database
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons" 
(
Nombre varchar(15),
Apellido varchar(15),
Edad int
);
mysql_query($sql,$con);
mysql_close($con);
?>

Importante:Importante: Antes de crear una tabla, debe seleccionar primero la base de datos. Utilice la función mysql_select_db() para seleccionar la base de datos.

Notas:Al crear un campo de base de datos de tipo varchar, debe especificar la longitud máxima del campo, por ejemplo: varchar(15).

Type de datos de MySQL

Los tipos de datos de MySQL disponibles:

Type de datos numéricos Descripción
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
Sólo admite enteros. Se especifica el valor máximo numérico en el parámetro size.
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

Soporta números con decimales.

Se especifica el valor máximo numérico en el parámetro size. Se especifica el valor máximo de los dígitos decimales a la derecha del punto en el parámetro d.

Type de datos de texto Descripción
char(size)

Soporta cadenas de longitud fija. (Puede contener letras, números y símbolos especiales).

Se especifica la longitud fija en el parámetro size.

varchar(size)

Soporta cadenas de longitud variable. (Puede contener letras, números y símbolos especiales).

Se especifica la longitud máxima en el parámetro size.

tinytext Soporta cadenas de longitud variable, la longitud máxima es de 255 caracteres.
  • text
  • blob
Soporta cadenas de longitud variable, la longitud máxima es de 65535 caracteres.
  • mediumtext
  • mediumblob
Soporta cadenas de longitud variable, la longitud máxima es de 16777215 caracteres.
  • longtext
  • longblob
Soporta cadenas de longitud variable, la longitud máxima es de 4294967295 caracteres.
Type de datos de fecha Descripción
  • date(yyyy-mm-dd)
  • datetime(yyyy-mm-dd hh:mm:ss)
  • timestamp(yyyymmddhhmmss)
  • time(hh:mm:ss)
Soporta fechas o tiempo
Tipos de datos misceláneos Descripción
enum(value1,value2,ect) ENUM es la abreviatura de ENUMERATED List. Puede contener hasta 65535 valores en paréntesis.
set SET es similar a ENUM. Sin embargo, SET puede tener hasta 64 elementos de lista y puede almacenar más de una opción.

Campos clave principal y autoincrementales

Cada tabla debe tener un campo clave principal.

La clave principal se utiliza para identificar de manera única las filas en la tabla. Cada valor de clave principal debe ser único en la tabla. Además, el campo clave principal no puede estar vacío, ya que el motor de base de datos necesita un valor para ubicar el registro.

Los campos clave principal siempre deben estar en el índice. Esta regla no tiene excepciones. Debes crear un índice para el campo clave principal para que el motor de base de datos pueda ubicar rápidamente las filas con ese valor de clave.

El siguiente ejemplo establece el campo personID como clave principal. Los campos clave principal suelen ser números de ID y generalmente se utiliza AUTO_INCREMENT para establecerlos. AUTO_INCREMENT aumentará el valor de este campo uno a uno cada vez que se agregue un nuevo registro. Para asegurarse de que el campo clave principal no esté vacío, debemos agregar la configuración NOT NULL a este campo.

Ejemplo

$sql = "CREATE TABLE Persons" 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
Nombre varchar(15),
Apellido varchar(15),
Edad int
);
mysql_query($sql,$con);