mysql create table tutorial with examples
En este tutorial, exploraremos el uso del comando MySQL CREATE TABLE con ejemplos de sintaxis y programación:
La declaración CREATE TABLE es parte de DDL (lenguaje de definición de datos) de SQL.
Discutiremos las formas en las que puede CREAR una tabla en una base de datos determinada, mencionar los nombres de las columnas y el motor de la base de datos mientras crea la tabla, junto con las reglas sobre las convenciones de nomenclatura para las tablas SQL.
Lo que vas a aprender:
- Prerrequisitos
- Comando MySQL CREATE TABLE
- Conclusión
Prerrequisitos
El requisito previo para ejecutar cualquiera de los comandos SQL sería descargar el servidor MySQL. La edición comunitaria gratuita se puede descargar aquí.
También usaremos MySQL Workbench SQL Client para todos los ejemplos y discusiones en este tutorial. Puede descargar la edición comunitaria gratuita de MySQL Workbench aquí (puede elegir la versión según el sistema operativo en el que esté trabajando).
En caso de que no desee utilizar MySQL Workbench, también puede utilizar el cliente de línea de comandos MySQL que viene con la instalación predeterminada de MySQL Server.
Comando MySQL CREATE TABLE
El comando CREATE TABLE es parte del conjunto de comandos DDL (lenguaje de definición de datos) en MySQL y permite al usuario crear una nueva tabla para la base de datos dada.
Nota: El comando CREATE TABLE existe para casi todas las bases de datos relacionales, como MySQL, Postgres, SQL Server, etc.
Sintaxis de MySQL CREATE TABLE
En la forma más simple, puede usar el comando CREATE TABLE con solo las opciones básicas, es decir, el nombre de la tabla y las definiciones de columna.
|_+_|Entendamos los argumentos de sintaxis en detalle:
- nombre de la tabla: Este debería ser el nombre de la tabla que está intentando crear. Debe ser un nombre completo (en caso de que no tenga una base de datos predeterminada). Por ejemplo, databaseName.tableName
El nombre de la tabla se puede especificar sin comillas o con un símbolo de tilde como `tableName` y` databaseName``tableName` - Definición de columna: Una tabla en SQL debe constar de al menos una columna. Todas las definiciones de columna deben constar de column_name así como del tipo de datos de la columna. También puede incluir opcionalmente las otras propiedades de la columna como clave principal, nula, no nula, etc.
Veamos un ejemplo del uso de la sintaxis anterior para crear una tabla.
Crearemos una tabla llamada EMPLOYEE_DETAILS (en la base de datos - SAMPLE_DB) con columnas
- nombre: varchar (100)
- edad: En t
- dirección: varchar (100)
A continuación se muestra el resultado de la creación de la tabla:
Nota:
# 1) Observe el uso de (SI NO EXISTE) el comando opcional en la sintaxis anterior.
Por lo general, se recomienda utilizar este comando, ya que evitaría generar un error si la tabla que estamos intentando crear ya está presente en la base de datos.
A continuación, se muestra un ejemplo del uso con y sin SI NO EXISTE.
- Sin IF NOT EXISTS se generaría un error si la tabla ya existe.
- Con SI NO EXISTE no generará un error. Sin embargo, mostrará una advertencia de que la tabla ya existe.
# 2) El 'tableName' al usar el comando CREATE TABLE debe estar completamente calificado con el nombre de la base de datos, es decir, la forma en que lo hemos usado es SAMPLE_DB.employee_details
Las otras formas de especificar el nombre de la tabla son configurar la base de datos actual usando el comando 'USE'. P.ej. USE SAMPLE_DB; y luego ejecutar / usar solo el nombre de la tabla en lugar del nombre de la tabla completamente calificado.
CREAR TABLA con opciones de tabla
Las opciones de tabla se utilizan para optimizar el comportamiento de las tablas MySQL. Estos se pueden aplicar mientras se crea una tabla usando el comando MySQL CREATE TABLE (o más tarde a través del comando ALTER TABLE).
La sintaxis sigue siendo la misma con opciones de tabla adicionales que se pueden especificar.
|_+_|Discutiremos las opciones más utilizadas a continuación (se puede encontrar una lista completa de opciones de tabla aquí ).
# 1) MOTOR
Se utiliza para especificar el motor de almacenamiento de la tabla, es decir, el valor predeterminado es InnoDB. No es necesario cambiar esto a menos que existan necesidades de un motor de almacenamiento específico. Los otros valores válidos para los motores de almacenamiento son MEMORY, CSV, HEAP, etc.
La sintaxis para especificar ENGINE como parte de MySQL CREATE TABLE se proporciona a continuación.
|_+_|# 2) AUTO_INCREMENT
Esta opción se utiliza para establecer el valor AUTO_INCREMENT inicial de la tabla, es decir, el valor predeterminado es 1, pero puede anularlo por cualquier otro valor entero positivo.
Nota: AUTO_INCREMENT se puede especificar para una sola columna de la tabla y debe ser la clave principal. Veamos un ejemplo de cómo especificar el incremento automático como 10 e insertar un registro para validar si el incremento automático está configurado correctamente.
Estamos usando la misma tabla employee_details (asegúrese de eliminar la tabla existente antes de ejecutar este comando) con un campo de identificación adicional marcado como clave principal.
|_+_|Insertemos una fila sin ningún valor para el ID y asegurémonos de que los valores se insertan desde el valor que comienza en 10.
|_+_|
# 3) CHECKSUM
Esto debe establecerse en 1 si desea tener una suma de comprobación para toda la tabla almacenada. Generalmente se utiliza para garantizar que no haya tablas dañadas.
|_+_|CHECKSUM mantiene una suma de comprobación en vivo de toda la tabla durante cualquier inserción o actualización
CREAR TABLA con detalles de particionamiento
También podemos mencionar el particionamiento definido por el usuario si es necesario utilizando las opciones de particionamiento.
La partición como concepto se utiliza ampliamente para distribuir el contenido de las tablas en el sistema de archivos con el fin de garantizar tiempos de acceso más rápidos y consultas optimizadas. El particionamiento divide una tabla grande en tablas más pequeñas según las estrategias o claves de particionamiento especificadas.
Veamos cómo podemos especificar los detalles de las particiones con el comando CREATE TABLE de MySQL.
Usaremos la tabla de ejemplo employee_details y agregaremos una nueva columna entera llamada department_id que se usaría como clave hash de partición para tener una distribución uniforme de los datos.
También especificar el recuento de particiones indicaría cuántas particiones reales se crearían (en este caso 4). Si no se especifica, por defecto solo habrá 1 partición.
|_+_|Nota: Generalmente, la clave que se usaría para crear particiones dependería de los patrones de acceso anticipados que se usarían para la tabla. En este caso, supongamos que consultaríamos la tabla en función del ID de departamento la mayor parte del tiempo, entonces tiene sentido tener department_id como parte de la clave hash.
Clonación y copia de tablas MySQL
En ocasiones, es posible que desee crear un clon de una tabla existente o copiar el contenido de una tabla a otra. MySQL admite 2 formas de lograr esto, como se muestra a continuación.
- Usando el comando LIKE
- Usando el comando SELECT
Clonación de tablas usando LIKE COMMAND
Con el comando LIKE, puede crear una nueva tabla con exactamente los mismos nombres de columna y propiedades que las tablas existentes.
Aquí está la sintaxis del comando LIKE.
cómo declarar float en java|_+_|
Con el comando anterior, se crearía una nueva tabla, es decir, tableName1 con la misma estructura y propiedades de tableName2.
Tenga en cuenta que con este enfoque, solo se clonan los nombres y las propiedades de las columnas y no los datos reales de la tabla.
Intentemos crear una tabla llamada employee_details y usemos esta tabla para crear una nueva tabla llamada student_details usando la opción LIKE.
|_+_|A continuación se muestra la salida del comando anterior.
Clonación de tablas usando SELECT COMMAND
Este enfoque utiliza el comando SELECT para crear una copia de la tabla existente en una nueva tabla.
Con este enfoque, los datos de la tabla también se copian en la nueva tabla.
|_+_|Intentemos crear una tabla llamada employee_details y usemos esta tabla para crear una nueva tabla llamada student_details usando la opción SELECT.
|_+_|Convenciones de nomenclatura de tablas MySQL
En las secciones anteriores, aprendimos sobre la creación de tablas MySQL. Ahora veamos algunas reglas que deben tenerse en cuenta al nombrar las tablas junto con las restricciones que se aplican con respecto a MySQL.
Estas convenciones / reglas se aplican tanto a tablas SQL como a bases de datos.
# 1) Caracteres legales en los nombres
a) Los nombres sin comillas pueden constar de cualquier carácter del juego de caracteres predeterminado de SQL Server, con la excepción de que no todos los caracteres pueden ser dígitos. Por ejemplo, '23test' es un nombre de tabla válido pero no '2345'.
A continuación se muestra la lista de caracteres que podrían usarse para nombres sin comillas:
ASCII: (0-9, a-z, A-Z $ _) (letras latinas básicas, dígitos 0-9, dólar, guión bajo)
Extendido: U + 0080 .. U + FFFF
Más información sobre los códigos ASCII aquí
b) Los nombres de tablas y bases de datos se pueden citar con un carácter de tilde (`) y pueden contener cualquier letra / carácter, excepto el carácter de tilde en sí. Con los nombres citados, incluso puede tener nombres de tablas / bases de datos con todos los dígitos.
Tenga en cuenta que para tales tablas necesitaría usar las comillas invertidas alrededor de la tabla y / o el nombre de la base de datos para acceder a los datos dentro de dichas tablas.
c) Los nombres de tabla y base de datos no pueden contener un punto '.' Ya que se utiliza como base de datos y separador de tabla.
D) Los nombres de la base de datos y la tabla pueden contener - caracteres especiales '$' y '_'.
# 2) Longitud del nombre
La longitud máxima permitida para un nombre de base de datos o tabla en MySQL es 64 caracteres.
# 3) Calificadores de nombre
Como se discutió en las secciones anteriores, en MySQL una tabla siempre está en contexto con la base de datos de la que forma parte. Por lo tanto, para acceder a una tabla, puede usar un nombre de tabla completamente calificado, que no es más que la combinación del nombre de la base de datos separada por un punto y luego el nombre de la columna.
Por ejemplo, para seleccionar todos los elementos de la tabla 'EMPLOYEE_DETAILS' de la base de datos SAMPLE_DB, puede utilizar un nombre completo como se muestra a continuación.
|_+_|Los nombres de la base de datos y de la tabla también se pueden especificar entre comillas con comillas invertidas por separado como se muestra a continuación.
|_+_|Las convenciones y mejores prácticas recomendadas por la industria en torno a las tablas de nombres y las bases de datos se indican a continuación.
- Tablas de nombres y bases de datos en minúsculas - Esto generalmente acelera la escritura y la consulta de la base de datos, especialmente para aquellos involucrados en la consulta diaria de la base de datos.
- Utilice guiones bajos ('_') en lugar de espacios en los nombres de tablas y bases de datos - Esto hace que los nombres sean más legibles.
- Utilice nombres autoexplicativos para las tablas y bases de datos – Por ejemplo, una tabla que contiene detalles del empleado se puede nombrar de diferentes maneras, como employee_info, employee_data, employee, employee_details, employee_name_and_address. Tendría sentido elegir un nombre que se explicara por sí mismo. Por ejemplo, podemos elegir el nombre de la tabla para ser employee_details o employee_info. Aunque esta es una discusión subjetiva, debe ser acordada por varios miembros del equipo que van a usar y crear estas entidades.
- Evite el uso de números en los nombres de las bases de datos y las tablas - Como sample_db_2, test_table_1, etc.
Preguntas y respuestas frecuentes
P # 1) ¿Cómo crear una tabla en MySQL usando Index?
Responder: Puede agregar un ÍNDICE contra cualquier columna (o combinación de columnas) durante la creación de la tabla.
Veamos un ejemplo de cómo agregar un índice a la columna department_id para la tabla employee_details.
|_+_|P # 2) ¿Cómo crear una tabla con fecha en MySQL?
Responder: La fecha es un tipo de datos que debe asociarse con cualquier columna al crear una tabla.
Consulte el comando CREATE TABLE de muestra a continuación con la columna join_date con DATETIME como tipo de datos para una tabla de muestra employee_details.
|_+_|P # 3) ¿Cómo puedo ver la estructura de la tabla en MySQL?
Responder: Después de crear una tabla, si desea consultar la estructura de la tabla, como columnas, índices, etc., puede usar el comando DESCRIBE para obtener los detalles.
Sintaxis:
|_+_|Creemos una tabla y veamos el resultado del comando DESCRIBE.
|_+_|A continuación se muestra la salida del comando DESCRIBE.
P # 4) ¿Cómo agrego una CLAVE EXTRANJERA a una tabla en MySQL?
Responder: La clave externa se usa para vincular 2 tablas juntas en MySQL. Para utilizar la restricción de clave externa, ya debería haber creado la tabla a la que se refiere.
>> Más información sobre Restricción de clave externa de MySQL
Intentemos entender esto con un ejemplo. Supongamos que tenemos 2 tablas, es decir, Departamento (que tiene detalles sobre los distintos departamentos que tiene la universidad) y Detalles del estudiante (todos los detalles relacionados con los estudiantes).
El departamento tiene columnas - id (clave principal) y nombre.
Detalles del estudiante - id (clave principal), edad, dirección y departamento_id (clave externa a la que se hace referencia en la tabla de departamentos).
A continuación se muestra la sintaxis del comando CREATE TABLE para ambas tablas.
|_+_|Consulte la sintaxis de la referencia FOREIGN KEY en la tabla student_details donde hemos mencionado que la relación entre las columnas y el departamento_id debe ser referenciada por el ID de la columna de la tabla del departamento.
Conclusión
El comando CREATE TABLE en MySQL que pertenece a los comandos de la categoría de Lenguaje de definición de datos se explicó en detalle aquí.
Aprendimos sobre las diferentes opciones de la tabla como ENGINE, CHECKSUM, etc. que podrían mencionarse junto con el comando CREATE TABLE para establecer propiedades adicionales para la tabla.
preguntas y respuestas de la entrevista core java
Analizamos las formas de crear un clon de la tabla existente en MySQL. Por último, hablamos sobre las convenciones de nomenclatura para los nombres de las tablas junto con las mejores prácticas recomendadas por la industria.
¡¡Feliz lectura!!
Lectura recomendada
- Tutorial de creación de vistas de MySQL con ejemplos de código
- Tipos de datos MySQL | ¿Cuáles son los diferentes tipos de datos en MySQL?
- Insertar MySQL en la tabla: sintaxis y ejemplos de instrucciones de inserción
- Tutorial de MySQL JOIN: interno, externo, cruzado, izquierdo, derecho y propio
- Diferencia entre SQL Vs MySQL Vs SQL Server (con ejemplos)
- Cómo utilizar PL SQL Insertar, actualizar, eliminar y seleccionar instrucción
- Tutorial de creación de base de datos de MongoDB
- MongoDB Crear usuario y asignar roles con ejemplos