MySQL INSERT INTO Consulta: Cómo agregar una fila en la tabla (ejemplo)
⚡ Resumen inteligente
MySQL La consulta INSERT INTO agrega nuevas filas a una tabla, ya sea nombrando explícitamente las columnas de destino o proporcionando un valor para cada columna. El correcto uso de comillas en cadenas, números y fechas determina si los datos almacenados se conservan intactos.
¿Qué es INSERTAR EN?
Insertar en Se utiliza para almacenar datos en las tablas. El comando INSERT crea una nueva fila en la tabla para almacenar los datos. Estos datos suelen ser proporcionados por programas de aplicación que se ejecutan sobre la base de datos.
Sintaxis básica
Veamos la sintaxis básica de INSERT INTO MySQL mando:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
AQUÍ
- INSERT INTO `table_name` es el comando que le dice MySQL servidor para agregar una nueva fila a una tabla llamada `table_name.`
- (columna_1,columna_2,…) especifica las columnas que se actualizarán en el nuevo MySQL fila
- VALORES (valor_1, valor_2,…) especifica los valores que se agregarán a la nueva fila
Al suministrar los valores de datos que se insertarán en la nueva tabla, se debe tener en cuenta lo siguiente:
- Tipos de datos de cadena: todos los valores de cadena deben estar entre comillas simples.
- Tipos de datos numéricos: todos los valores numéricos deben proporcionarse directamente sin encerrarlos entre comillas simples o dobles.
- Tipos de datos de fecha: incluya los valores de fecha entre comillas simples en el formato "AAAA-MM-DD".
Insertar varias filas a la vez
Una sola instrucción INSERT puede contener varias filas. Separe cada conjunto de valores con una coma. Una sola instrucción es más rápida que varias, ya que el índice se actualiza una sola vez.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL Ejemplo de consulta INSERT INTO
Supongamos que tenemos la siguiente lista de nuevos miembros de la biblioteca que deben agregarse a la base de datos.
| Nombres completos | Fecha de nacimiento | género | Dirección física | Dirección postal | Número de teléfono | Dirección de Correo Electrónico |
|---|---|---|---|---|---|---|
| leonard hofstadter | Hombre | Woodcrest | 0845738767 | |||
| Sheldon Cooper | Hombre | Woodcrest | 0976736763 | |||
| Rajesh Koothrappali | Hombre | Woodcrest | 0938867763 | |||
| Leslie Winkel | 14/02/1984 | Hombre | Woodcrest | 0987636553 | ||
| Howard Wolowitz | 24/08/1981 | Hombre | Parque del Sur | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Insertaremos los datos fila por fila, comenzando con Leonard Hofstadter. Trataremos el número de contacto como un dato numérico y no lo encerraremos entre comillas simples.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Al ejecutar el script anterior, se elimina el 0 del número de contacto de Leonard, ya que el valor se trata como numérico y un cero inicial no es significativo.
Para evitar este tipo de problemas, el valor debe ir entre comillas simples, como se muestra a continuación.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Consejo: Almacene los números de teléfono, códigos postales e identificadores similares en una columna de texto, como VARCHAR. Las columnas numéricas no pueden contener ceros iniciales.
Cambiar el orden de las columnas
Cambiar el orden de las columnas no tiene ningún efecto en la consulta INSERT en MySQL, siempre y cuando los valores correctos se hayan asignado a las columnas correctas. La siguiente consulta demuestra este punto.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Las consultas anteriores omitieron la columna de fecha de nacimiento. Por defecto, MySQL Inserta valores NULL en las columnas que se omiten en la consulta INSERT.
Ahora insertemos el registro de Leslie, que incluye la fecha de nacimiento. El valor de la fecha debe ir entre comillas simples con el formato 'AAAA-MM-DD'.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Omitir la lista de columnas
Todas las consultas anteriores nombraron las columnas y las asignaron a valores. Si proporcionamos valores para TODAS las columnas de la tabla, la lista de columnas se puede omitir. MySQL insertar consulta.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Ahora usemos el Instrucción SELECT para ver todas las filas en la tabla de miembros.
SELECT * FROM `members`;
| número de socio | nombres completos | género | fecha de nacimiento | dirección física | direccion postal | número de contacto | o enviar un email. |
|---|---|---|---|---|---|---|---|
| 1 | Janet jones | Mujer | 21-07-1980 | Primera Calle Parcela No 4 | Bolsa privada | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Mujer | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Roberto Phil | Hombre | 12-07-1989 | Calle 3 34 | NULL | 12345 | rm@tstreet.com |
| 4 | gloria williams | Mujer | 14-02-1984 | Calle 2 23 | NULL | NULL | NULL |
| 5 | leonard hofstadter | Hombre | NULL | Woodcrest | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Hombre | NULL | Woodcrest | NULL | 0976736763 | NULL |
| 7 | Rajesh Koothrappali | Hombre | NULL | Woodcrest | NULL | 0938867763 | NULL |
| 8 | Leslie Winkel | Hombre | 14-02-1984 | Woodcrest | NULL | 0987636553 | NULL |
| 9 | Howard Wolowitz | Hombre | 24-08-1981 | Parque del Sur | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Observe que el número de contacto de Leonard Hofstadter ha perdido el cero inicial, tal como se predijo. Los números citados lo conservan.
Insertar en una tabla desde otra tabla
El comando INSERT también se puede utilizar para insertar datos en una tabla desde otra tabla. La sintaxis básica es la que se muestra a continuación.
INSERT INTO table_1 SELECT * FROM table_2;
Ahora crearemos una tabla ficticia para las categorías de películas, llamada categories_archive. El script a continuación crea la tabla.
CREATE TABLE `categories_archive` ( `category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Ejecuta el script anterior para crear la tabla. Ahora vamos a insertar todas las filas de la tabla de categorías en la tabla de archivo de categorías.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Las estructuras de las tablas deben ser idénticas para que ese script funcione. Un script más robusto asigna los nombres de las columnas de la tabla de destino a los de la tabla que contiene los datos, como se muestra a continuación.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Al ejecutar la siguiente consulta SELECT se obtienen los siguientes resultados.
SELECT * FROM `categories_archive`;
| categoria ID | nombre de la categoría | comentarios |
|---|---|---|
| 1 | Comedia | Películas con humor |
| 2 | Romántico | Historias de amor |
| 3 | Épico | Películas antiguas de historia. |
| 4 | Horror | NULL |
| 5 | Ciencia ficción | NULL |
| 6 | Suspenso | NULL |
| 7 | Acción: | NULL |
| 8 | Comedia romántica | NULL |
| 9 | Dibujos animados | NULL |
| 10 | Dibujos animados | NULL |
Ejemplo PHP: Insertar en MySQL Tabla
La función mysqli_query se utiliza para ejecutar SQL Consultas desde PHP. Ejecuta sentencias Insert, Select, Update y Delete por igual, y tiene la siguiente sintaxis.
mysqli_query($db_handle,$query);
AQUÍ,
- “mysqli_query(…)” es la función que ejecuta las consultas SQL.
- “$query” es la consulta SQL que se va a ejecutar.
- “$db_handle” es el enlace de conexión al servidor que devuelve mysqli_connect.
Ejemplo
$servername = "localhost"; $username = "alex"; $password = "yPXuPT"; $dbname = "afmznf"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "INSERT INTO addkeyworddata(link, keyword) VALUES ('https://www.guru99.com/','1000')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully" . '<br>'; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }

