¿Qué es INSERT INTO?
INSERT INTO se utiliza para almacenar datos en las tablas. El comando INSERT crea una nueva fila en la tabla para almacenar datos. Los datos suelen ser proporcionados por programas de aplicación que se ejecutan en la parte superior de la base de datos.
Sintaxis básica
Veamos la sintaxis básica del comando INSERT INTO MySQL:
INSERT INTO `table_name` (column_1, column_2,…) VALUES (value_1, value_2,…);
AQUÍ
- INSERT INTO `table_name` es el comando que le dice al servidor MySQL que agregue una nueva fila en una tabla llamada` table_name`
- (column_1, column_2,…) especifica las columnas que se actualizarán en la nueva fila de MySQL
- VALUES (value_1, value_2,…) especifica los valores que se agregarán en la nueva fila
Al proporcionar los valores de datos que se insertarán en la nueva tabla, se debe considerar lo siguiente:
- Tipos de datos de cadena: todos los valores de cadena deben ir 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'.
Ejemplo:
Suponga 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 | direccion postal | Número de contacto | Dirección de correo electrónico |
---|---|---|---|---|---|---|
Leonard Hofstadter | Masculino | Woodcrest | 0845738767 | |||
Sheldon Cooper | Masculino | Woodcrest | 0976736763 | |||
Rajesh Koothrappali | Masculino | Fairview | 0938867763 | |||
Leslie Winkle | 14/02/1984 | Masculino | 0987636553 | |||
Howard Wolowitz | 24/08/1981 | Masculino | parque del Sur | Apartado de correos 4563 | 0987786553 | Esta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verlo. |
Insertemos los datos uno por uno. Empezaremos por Leonard Hofstadter. Trataremos el número de contacto como un tipo de datos numérico y no incluiremos el número entre comillas simples.
INSERT INTO `miembros` (` nombres_completos`, `género`,` dirección_física`, `número_contacto`) VALORES ('Leonard Hofstadter', 'Hombre', 'Woodcrest', 0845738767);
La ejecución del script anterior elimina el 0 del número de contacto de Leonard. Esto se debe a que el valor se tratará como un valor numérico y el cero (0) al principio se descarta porque no es significativo.
Para evitar tales problemas, el valor debe incluirse entre comillas simples como se muestra a continuación:
INSERT INTO `miembros` (` nombres_completos`, `género`,` dirección_física`, `número_contacto`) VALORES ('Sheldon Cooper', 'Hombre', 'Woodcrest', '0976736763');
En el caso anterior, no se eliminará cero (0)
Cambiar el orden de las columnas no tiene ningún efecto en la consulta INSERT en MySQL siempre que los valores correctos se hayan asignado a las columnas correctas.
La consulta que se muestra a continuación demuestra el punto anterior.
INSERT INTO `miembros` (` número_contacto`, `género`,` nombres_completos`, `dirección_física`) VALORES ('0938867763', 'Hombre', 'Rajesh Koothrappali', 'Woodcrest');
Las consultas anteriores omitieron la columna de fecha de nacimiento. De forma predeterminada, MySQL insertará valores NULL en las columnas que se omiten en la consulta INSERT.
Insertemos ahora el registro de Leslie, que tiene la fecha de nacimiento proporcionada. El valor de la fecha debe ir entre comillas simples con el formato 'AAAA-MM-DD'.
INSERT INTO `miembros` (` nombres_completos`, `fecha_de_nacimiento`,` género`, `dirección_física`,` número_contacto`) VALORES ('Leslie Winkle', '1984-02-14', 'Hombre', 'Woodcrest', ' 0987636553 ');
Todas las consultas anteriores especificaron las columnas y las asignaron a valores en la declaración de inserción de MySQL. Si estamos proporcionando valores para TODAS las columnas de la tabla, entonces podemos omitir las columnas de la consulta de inserción de MySQL.
Ejemplo:-
INSÉRTESE EN LOS VALORES de los miembros (9, 'Howard Wolowitz', 'Hombre', '1981-08-24',
'SouthPark', 'PO Box 4563', '0987786553', 'lwolowitz [at] email.me') ;
Usemos ahora la 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 | contct_ número | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Mujer | 21-07-1980 | Parcela Primera Calle No 4 | Bolsa privada | 0759 253542 | Esta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verlo. |
2 | Janet Smith Jones | Mujer | 23-06-1980 | Melrose 123 | NULO | NULO | Esta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verlo. |
3 | Robert Phil | Masculino | 12-07-1989 | 3rd Street 34 | NULO | 12345 | Esta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verlo. |
4 | Gloria Williams | Mujer | 14-02-1984 | 2da calle 23 | NULO | NULO | NULO |
5 | Leonard Hofstadter | Masculino | NULO | Woodcrest | NULO | 845738767 | NULO |
6 | Sheldon Cooper | Masculino | NULO | Woodcrest | NULO | 976736763 | NULO |
7 | Rajesh Koothrappali | Masculino | NULO | Woodcrest | NULO | 938867763 | NULO |
8 | Leslie Winkle | Masculino | 14-02-1984 | Woodcrest | NULO | 987636553 | NULO |
9 | Howard Wolowitz | Masculino | 24-08-1981 | Parque del Sur | Apartado de correos 4563 | 987786553 | Esta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verlo. |
Observe que el número de contacto de Leonard Hofstadter ha eliminado el cero (0) del número de contacto. Los otros números de contacto no han eliminado el cero (0) al principio.
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 se muestra a continuación.
INSERT INTO table_1 SELECT * FROM table_2;
Veamos ahora un ejemplo práctico. Crearemos una tabla ficticia para categorías de películas con fines de demostración. Llamaremos categorías_archivo a la tabla de nuevas categorías. El script que se muestra a continuación crea la tabla.
CREATE TABLE `category_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` remarks` varchar (500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Ejecute el script anterior para crear la tabla.
Insertemos ahora todas las filas de la tabla de categorías en la tabla de archivo de categorías. El guión que se muestra a continuación nos ayuda a lograrlo.
INSERT INTO `categorías_archivo` SELECCIONAR * DE` categorías`;
Al ejecutar el script anterior, se insertan todas las filas de la tabla de categorías en la tabla de archivo de categorías. Tenga en cuenta que las estructuras de la tabla deberán ser las mismas para que funcione el script. Una secuencia de comandos más sólida es aquella que asigna los nombres de las columnas de la tabla de inserción a las de la tabla que contiene los datos.
La consulta que se muestra a continuación demuestra su uso.
INSERT INTO `categorías_archivo` (categoría_id, categoría_nombre, comentarios) SELECCIONAR categoría_id, categoría_nombre, observaciones DE` categorías`;
Ejecutando la consulta SELECT
SELECCIONAR * DE `categorías_archivo`
da los siguientes resultados que se muestran a continuación.
categoria ID | nombre de la categoría | comentarios |
---|---|---|
1 | Comedia | Películas con humor |
2 | Romántico | Historias de amor |
3 | Épico | Películas de historia antigua |
4 | Horror | NULO |
5 | Ciencia ficción | NULO |
6 | Novela de suspenso | NULO |
7 | Acción | NULO |
8 | Comedia romántica | NULO |
9 | Dibujos animados | NULO |
10 | Dibujos animados | NULO |
Ejemplo de PHP: Insertar en la tabla MySQL
La función mysqli_query se usa para ejecutar consultas SQL.
La función se puede utilizar para ejecutar los siguientes tipos de consultas;
- Insertar
- Seleccione
- Actualizar
- Eliminar
Tiene la siguiente sintaxis.
mysqli_query($db_handle,$query);
AQUÍ,
"mysqli_query (
…) "Es la función que ejecuta las consultas SQL."$ consulta" es la consulta SQL que se ejecutará
"$ link_identifier" es opcional, se puede usar para pasar el enlace de conexión del servidor
Ejemplo
$servername = "localhost";$username = "alex";$password = "yPXuPT";$dbname = "afmznf";// Create connection$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$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".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}
Resumen
- El comando INSERT se utiliza para agregar nuevos datos a una tabla. MySql agregará una nueva fila, una vez que se ejecute el comando.
- Los valores de fecha y cadena deben ir entre comillas simples.
- Los valores numéricos no necesitan estar entre comillas.
- El comando INSERT también se puede utilizar para insertar datos de una tabla en otra.