SQL es uno de los lenguajes de consulta más confiables y sencillos. Provee una sintaxis clara, la cual se lee fácilmente sin muchas abstracciones alejadas del significado real de la funcionalidad.

Si quisieras algo de historia del lenguaje, así como algunos echos interesantes, puedes leer la parte de la introducción del artículo SQL Update Statement article.

En este artículo, recorreremos las partes más importantes de la creación de una tabla en SQL. Mi "sabor" preferido de SQL es SQL Server, pero la información acerca de la creación de tablas es algo ubicua entre todas las variaciones de SQL.

Si nunca antes usaste SQL o no sabes lo que es una tabla, ¡no temas! En resumen, una tabla es un objeto de una base de datos que almacena o contiene los datos dentro de esa porción de la base de datos. Almacena los datos dentro de columnas nombradas y renglones numerados, la cual te será familiar si has utilizado programas de hojas de cálculo. Cada renglón representa un registro de la base de datos completa.

Si los datos fueran cajas, una tabla sería una sección de los estantes de la bodega donde almacenamos las cajas.

Foto por Nana Smirnova en Unsplash

Estoy simplificando la explicación bastante, y hay mucha más información sobre las tablas SQL, pero eso está fuera del alcance de este artículo. Si estas ansioso por más información sobre tablas, te recomiendo profundizar en la documentación de Microsoft Database Design.

Antes de aprender cómo crear una tabla, es importante aprender cuales son los tipos de datos que pueden almacenar las columnas.

Tipos de Datos

Las tablas SQL pueden almacenar texto, números, combinaciones de texto y números, así como imágenes y enlaces.

Cuando se crea una tabla, nosotros designamos el tipo de dato que almacenarán los renglones y columnas. A continuación, la clasificación de datos:

  • Numéricos Aproximados
  • Cadenas
  • Fecha y Hora
  • Cadenas de Texto Unicode
  • Numéricos Exactos
  • Otros

A continuación, enumeraré algunos de los tipos de datos más comunes abajo.

Aquí tienes los tipos de datos más comúnmente usados de acuerdo a mi experiencia, sin ningún orden particular:

  • char(tamaño) - cadena de tamaño fijo que puede contener letras, números, caracteres especiales
  • varchar(tamaño) - cadena de tamaño variable que puede contener letras, números, y caracteres especiales
  • boolean - Cero (o valores que son igual a 0) es falso, no-cero es verdadero
  • int(tamaño opcional) - un número de hasta 10 caracteres en longitud, acepta números negativos y positivos
  • bigint(tamaño opcional) - un numero de hasta 19 caracteres en longitud, acepta números negativos y positivos.
  • float(tamaño, d) - un número donde el tamaño total del número es representado por el tamaño y la cantidad de caracteres después del punto decimal representado por una d
  • date - fecha en el formato YYYY-MM-DD
  • datetime - fecha y hora en el formato YYYY-MM-DD hh:mm:ss
  • time - tiempo en el formato hh:mm:ss

Bien, ahora que sabemos que tipos de datos pueden contener los renglones y las columnas, ¡vamos a la parte divertida!

Creando una Tabla

Foto por Nikhil Mitra en Unsplash

Antes de que iniciemos, es importante anotar que estaré proporcionando todos mis ejemplos independientes de cualquier programa.

Sin embargo, si quieres iniciar a escribir consultas y no estás seguro de cómo empezar, echa un vistazo al SQL Server Management Studio. Es gratis, un programa robusto ampliamente usado y soportado por la comunidad.

Alternativamente, hay muchas opciones incluyendo DB Fiddle que te permite construir esquemas y escribir consultas directamente en tu navegador.

Empezaremos con una declaración simple para crear una tabla básica:

CREATE TABLE table_name ( column1_name datatype, column2_name datatype, column3_name datatype, column4_name datatype, column5_name datatype,)

Hay otros parámetros que podemos adicionar después de datatype para aumentar las columnas:

  • NOT NULL - pasando este parámetro asegurará que la columna no almacene un valor NULL
  • UNIQUE - pasando este parámetro va a prevenir que la columna almacene el mismo valor más de una vez
  • UNIQUE KEY - pasando este parámetro designará la columna como identificador único. Esencialmente, es una combinación de los dos parámetros anteriores.

Ahora, vamos a crear una tabla (nombrada doggo_info, la cual debe adherirse a los identificadores estándar para bases de datos) para almacenar información sobre los residentes de Woof Woff Retreat, un estancia para perros de ficción que se me acaba de ocurrir :)

CREATE TABLE doggo_info ( ID int UNIQUE KEY, Name varchar(50) NOT NULL, Color varchar(50), Breed varchar(50), Age int, Weight int, Height int, Fav_Food varchar(100), Fav_Toy varchar(100), Dislikes varchar(500), Allergies varchar(500) NOT NULL )	

Y aquí esta nuestra nueva tabla que acabamos de crear:

Name Color Breed Age Weight Height Fav_Food Fav_Toy Dislikes Allergies

‌Notarás que nuestra tabla está completamente vacía y esto es porque no le hemos añadido ningún dato aún. Adicionar datos esta más allá del enfoque de este artículo, pero quería que estuvieras al tanto de esa parte.

Crear una Tabla desde una Tabla Existente

También es posible crear una tabla basándonos en otra tabla preexistente.

Es muy fácil y no requiere mucha sintaxis adicional. Necesitamos seleccionar la tabla y las columnas desde donde copiar:

CREATE TABLE new_table_name AS SELECT column1, column2, column3, column4 (usar * para seleccionar todas las columnas para ser adicionadas a la tabla nueva) FROM current_table_name WHERE conditions_exist

Entonces, convenientemente, he adicionado algunos datos a nuestra tabla doggo_info y ahora se ve como el ejemplo de abajo:

Name Color Breed Age Weight Height Fav_Food Fav_Toy Dislikes Allergies
daisy red standard dachshund 1 14 6 salmon flavored kibble squeeky ball birds flying over the yard cats, baths, cleanliness
chief black/tan rottweiler 3 41 17 literally anything rope tug staying off the couch listening, behaving, not slobbering on everything
sammie light honey golden retriever 9 46 19 beef flavored kibble her bed rambutcious puppies none known

Ahora podemos crear otra tabla basada en los datos que tenemos en nuestra tabla doggo_info ejecutando la consulta siguiente:

CREATE TABLE puppies_only AS SELECT * FROM doggo_info WHERE Age < 4

Queremos crear una tabla nueva con todas las columnas de la tabla doggo_info pero solo donde las edades son menos de 4. Después de ejecutar esta consulta, nuestra nueva tabla se verá como sigue:

Name Color Breed Age Weight Height Fav_Food Fav_Toy Dislikes Allergies
daisy red standard dachshund 1 14 6 salmon flavored kibble squeeky ball birds flying over the yard cats, baths, cleanliness
chief black/tan rottweiler 3 41 17 literally anything rope tug staying off the couch listening, behaving, not slobbering on everything

Espero que puedas ver que tan poderosa puede ser esta declaración.  Con unas cuantas líneas en nuestra consulta, esencialmente hemos copiado los datos de una tabla a otra, pero solo los renglones que queríamos.

Esto no solo es una herramienta práctica para tener en tu cinturón de herramientas de desarrollador - esto te ahorrará cantidad de tiempo incalculable cuando necesites mover datos entre tablas.

Resumiendo

Ahora que sabes como crear (o copiar) una tabla en SQL, sin importar la situación que se te presente, ¡puedes ahora iniciar a llenar de datos las columnas y renglones para almacenar!

La declaración CREATE TABLE es extremadamente útil y poderosa. Tu estas listo para darle buen uso.

Si este artículo te sirve, revisa el blog (de Jonathan Sexton) donde frecuentemente publica artículos sobre desarrollo web, la vida y aprendizaje.

Cuando estés ahí, porque no registrarse al boletín. Puedes hacer eso en la parte superior derecha de la página principal del blog. Le gusta enviar artículos interesantes (De Jonathan y de otros), recursos, y herramientas para desarrolladores de vez en cuando.

Si tienes preguntas sobre este artículo, o solo en genera, déjamelo saber - ven a saludar en Twitter o cualquiera de las otras redes sociales que puedes encontrar abajo el el perfil de FCC :)

¡Ten un excelente día! ¡Feliz aprendizaje y feliz programación, amigo!

Traducido del artículo de Jonathan Sexton - SQL Create Table Statement - With Example Syntax