InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
Tutorial SQL
Introducción SQL
El lenguaje SQL
Componentes del lenguaje SQL
Tablas
Indices
Vistas
Consultar datos. SELECT
Insertar datos. INSERT
Borrado de datos. DELETE
Actualización de datos. UPDATE
Consultas combinadas. JOINS
Consultas agregadas
Subconsultas
También puedes ver ...
Instalar SQL server enterprise en Vista o XP
¿Qué es el Collation en SQL ?
Como encriptar o cifrar cadenas y campos en SQL server 2005 ENCRYPTBYPASSPHRASE y DECRYPTBYPASSPHRASE
SQL Prompt - Intellisense para SQL Server
Borrado de datos. DELETE
Consultas agregadas
Introducción SQL
El lenguaje SQL
Componentes del lenguaje SQL
Tablas

Afiliados
La Web del programador
MundoProgramacion


 

Lenguaje de manipulación de datos (II)

Insertar datos.

    Hasta ahora hemos visto como se almacenan los datos en una base de datos y como consultar esos datos almacenados, pero no hemos visto como almacenar dichos datos.

    Para almacenar datos en una base de datos debemos insertar filas en las tablas. Para ellos SQL pone a nuestra disposición la sentencia INSERT.

[arriba]


Inserción de filas

    El proceso de inserción de filas consiste en añadir a una tabla una o más filas y en cada fila todos o parte de sus campos.

    Podemos distinguir dos formas de insertar filas:

  • Inserción individual de filas.
  • Inserción multiple de filas.

    La sintaxis de la sentencia INSERT es diferente según cual sea nuestro proposito.

    Sólo podremos omitir un campo al efectuar una inserción cuando este acwepte valores nulos.

[arriba]


Inserción individual de filas

    Para realizar la insercción individual de filas SQL posee la instrucción INSERT INTO.La insercción individual de filas es la que más comunmente utilizaremos. Su sintaxis es la siguiente:


INSERT INTO
<nombre_tabla>
[(<campo1>[,<campo2>,...])]
values
(<valor1>,<valor2>,...);

    Como se puede observar la sentencia tiene dos partes claramente diferenciadas, por un lado la propia INSERT INTO seguida de la lista de campos en los que queremos insertar los datos, y por otro la lista de valores que queremos insertar en los campos. La mejor forma de ver esto es a través de un ejemplo.


INSERT INTO
tCoches
(matricula,
marca      ,
modelo     ,
color      ,
numero_kilometros)
values
('M1111CA',
'RENAULT',
'MEGANE TR100',
'NEGRO DIAMANTE',
78000);
Nota:Hemos utilizado el color rojo para los datos de tipo texto, entrecomillados con la comilla simple, y el azul para 
los numericos.

    Con esta sentencia INSERT creamos un registro en la tabla tCoches con los valores especificados, es decir, la matricula tendrá el valor M-1111-CA, la marca será RENAULT y así sucesivamente.

    ¿Que ocurriría si ya existiera un coche con la matricula M-1111-CA? Se producirá un error, porque hemos definido la clave primaria en el campo matricula, y como hemos visto la clave primaria debe ser única.

    Si omitimos algún par " campo-valor " en la sentencia INSERT, pueden ocurrir varias cosas:

  • Que se produzca un error , si el campo  no acepta valores nulos.
  • Que se grave el registro y se deje nulo el campo, cuando el campo acepte valores nulos.
  • Que se grave el registro y se tome el valor por defecto, cuando el campo tenga definido un valor por defecto.

    Que hacer en cada cada momento dependerá del programa.

    Por ejemplo, la siguiente sentencia creará un registro en la tabla tCoches con el campo numero_kilometros cero, ya que este es su valor por defecto.


INSERT INTO
tCoches
(matricula,
marca      ,
modelo     ,
color)
values
('M1111CA',
'RENAULT',
'MEGANE TR100',
'NEGRO DIAMANTE');

[arriba]


Inserción multiple de filas

La sentencia INSERT permite tambien insertar varios registros en una tabla. Pare ello se utiliza una combinación de la sentencia INSERT junto a una sentencia SELECT. El resultado es que se insertan todos los registros devueltos por la consulta.


INSERT INTO
<nombre_tabla>
[(<campo1>[,<campo2>,...])]
SELECT
[(<campo1>[,<campo2>,...])]
FROM
<nombre_tabla_origen>;

Para poder utilizar la inserción multiple de filas se deben cumplir las siguientes normas:

  • La lista de campos de las sentencias insert y select deben coincidir en número y tipo de datos.
  • Ninguna de las filas devueltas por la consulta debe infringir las reglas de integridad de la tabla en la que vayamos a realizar la inserción.

Pongamos un ejemplo, vamos a crear una tabla con las diferentes marcas que tenemos en la base de datos. La sentencia SQL para crear la tabla es la siguiente:


CREATE TABLE
 tMarcas
(
codigo    integer not null identity(1,1),
marca     varchar(255),
constraint PK_Marcas primary key (codigo) 
);
Nota: Hemos incluido la función identity para el campo codigo, esta función es propia de SQL Server e indica que 
el código se genera automáticamente cada vez que se inserta un registro con un valor autonumérico. Praticamente
todos los gestores de bases de datos dan la opción del campo autonumerico o incremental, si bien el modo varias.
Para SQL Server utilizaremos la funcion identity, para ORACLE las secuencias ...

Una vez que tenemos creada la tabla de marcas vamos a insetar otro par de registros en la tabla de coches, para ello utilizamos una sentencia insert into para una única fila.


INSERT INTO tCoches
(matricula,
marca      ,
modelo     ,
color)
values
('M2233FH',
'SEAT',
'LEON FR',
'ROJO');

INSERT INTO tCoches
(matricula,
marca      ,
modelo     ,
color)
values
('M1332FY',
'FORD',
'FIESTA',
'GRIS PLATA');

    Ahora tenemos tres marcas diferentes en la tabla tCoches, y queremos insertarlas en la tabla de marcas, para ello podemos realizar tres inserciones individuales, pero ¿que pasaria si no supieramos de antemano el número de marcas?¿y si fueran unas cincuenta marcas?. Nos podriamos pasar el día entero escribiendo sentencias insert into.

    Afortunadamente podemos realizar una inserción multiple del siguiente modo:


INSERT INTO
tMarcas
(marca)
SELECT DISTINCT marca FROM tCoches;
 

    Como resultado obtenemos un registro en la tabla tMarcas por cada marca de la tabla tCoches. El campo codigo se ha generado automáticamente ya que está definido como identidad.

CODIGO MARCA
1 FORD
2 RENAULT
3

SEAT

    Demonos cuenta de que el orden de generación no ha sido el mismo que el de inserción, sino que se ha aplicado el orden en el que han sido devueltos los datos por la sentencia SELECT.

    Ahora deberiamos cambiar los datos de la tabla tCoches, para guardar el código de la marca en lugar de su descripción, pero para ello necesitamos saber como modificar un dato grabado ... Es momento de pasar al siguiente punto, la actualización de datos.

[arriba]



Inicio | Tutorial SQL Consultar datos. SELECTTutorial SQL Borrado de datos. DELETE Versión para imprimir Foros de consulta

 
NO ENCONTRE LO QUE NECESITABA por ELIZABETH
Respuesta recibida el [25/05/2007 10:24:37]
NO ENCONTRE LO QUE BUSCABA SOBRE BASE DE DATOS PERO ES UNA MUY BUENA AYUDA ESTA PAGINA. GRACIAS

 
Insertar mas de 1000 filas por Vero
Respuesta recibida el [09/06/2007 01:14:31]
en una practica un maestro nos dejo que tomaramos datos de diferentes tablas y los insertaramos en una sola tabla la consulta la tenemos con un join pero como pasamos esos datos de la consulta a la tabla
Otra cosa que son las banderas en SQL nos pidieron investigar eso si pudieran ayudarnos seria grandioso muchas gracias!!!!!!!!

 
hola por carlos
Respuesta recibida el [19/06/2007 06:27:44]
hola a todos los de la uni

 
saludos a una niña por carlos
Respuesta recibida el [19/06/2007 06:28:54]
hola bebita (basurrilla) como as estado te mando muchos saludos carlos

 
angel se roban tu carro por carlos
Respuesta recibida el [19/06/2007 06:35:40]
angel se llevan tu carro corre

 
FQfFueWbfNaEJc por Anónimo
Respuesta recibida el [01/07/2007 12:15:31]
CSbejT Test myfunction comment

 
que viva el sexo por carlos
Respuesta recibida el [05/07/2007 05:18:33]
ajajajajajajajaja

 
Insertar mas de 1000 filas por Vero por D-Lo
Respuesta recibida el [17/07/2007 07:42:53]
Tienes q poner:

SELECT [CAMPOS DE LA CONSULTA] INTO [TABLA A LA Q VAN LOS DATOS]FROM [TABLA ORIGEN DE LOS DATOS]
WHERE...

 
eQAmgFjXqWrNWqQ por Anónimo
Respuesta recibida el [23/07/2007 05:18:40]
7Neg4D Hi!
Very good source !
Nice to meet you :-)

 
peregunta por Pedro Herrarte Sánchez
Respuesta recibida el [09/08/2007 05:44:42]
necesito orientacion en oracle form builder 6i en lo siguiente.
quiero que por medio de un cursor pueda tener control sobre sobre la tabla que se ilustra en la grilla y colocarle con dicione y ejecutarla si tienes un ejemplo que pueda servirme me puedes envia al rrrrf1@yahoo.com espero te pronta colaboracion...
gracias

 
Insertar datos mediante la sentencia Insert por Walter
Respuesta recibida el [14/08/2007 12:44:31]
Les agradecería si me pueden ayudar en lo siguiebnte como Ingreso datos en una tabla de SQL Insert into Pruea(Nombre,Número,Fecha) values(Pedro,2,14/5/07) se que me está faltando definir los tipos de dato es decir,(Pedro,nchar(50))no se como definirlo,muchas gracias.

 
merge por cris
Respuesta recibida el [03/09/2007 12:11:31]
hola pedro, muy buena tu pagina. una recomendacion deberias agregar instrucciones tipo merge, decode y case q tambien son sumamente utiles

 
Algunas de esas funciones esta... por Devjoker
Respuesta recibida el [03/09/2007 01:19:18]
Algunas de esas funciones estan incluidas en los tutoriales de PL/SQL y Transact SQL, este solo pretende ser un tutorial de SQL ANSI por lo que no incluyo operaciones particulares de extensiones SQL. Tienes los enlaces en el menu de la izquierda.

 
no sirve para nada... por Anónimo
Respuesta recibida el [11/10/2007 03:43:12]
no sirve para nada

 
Gracias!! por Angelica
Respuesta recibida el [05/11/2007 09:58:33]
Realmente bienen muchas cosas buenas en la pagina... 
Gracias por tenerla al dia

 
no se por parka
Respuesta recibida el [22/11/2007 09:32:16]
oye necesito tutorial o manual de SQL Server 2000 donde lo consigo en la red de ante mano gracias.

 
a por a
Respuesta recibida el [05/12/2007 05:06:10]
a

 
como insertar datos!!! por hola
Respuesta recibida el [05/12/2007 05:10:58]
de que manera inserto datos en sql
server mediante tablas que tiene constraint FK y PK, le trato de insertar y me manda Herror.
PE:
Coches(patente, modelo, año ,color, rut)

persona(rut,nombre, direccion,nºlic)

 
buenisimo el insert con select por martin g
Respuesta recibida el [18/01/2008 01:36:19]
buenisimo, no lo sabia.
gracias, muy buen curso

 
importante por malitos
Respuesta recibida el [25/01/2008 06:52:39]
maduren pelados.................. parecen bobos......quieren es que todo se lo digan............investigu+++++++++++++++++++++++++++++++++++++en

 
analisis de computadores por yasiris fragosopimiente
Respuesta recibida el [28/01/2008 04:22:03]
quiero saber como son las funciones update ,insert into,min,max gracia por su colaboracion

 
inserccion de datos por bere
Respuesta recibida el [25/02/2008 02:01:08]
hola soy nueva en eso de programar pero deseo saber de manera sencilla: como inserto datos sql en lenguaje java pero por teclado. me salvarian mucho si me ayudan....

 
AtnKxrLD por Anónimo
Respuesta recibida el [04/03/2008 09:47:35]
XNgCET r u crazzy? I told u! I can't read!

 
pIKZSRTLpqfiSRCUC por AlMdcEuTYJdK
Respuesta recibida el [04/03/2008 09:49:33]
4n35kz r u crazzy? I told u! I can't read!

 
YhSrLnjMxReNMaZS por ArcTIeIvWZa
Respuesta recibida el [04/03/2008 09:52:21]
SCQ26d r u crazzy? I told u! I can't read!

 
thanks a lot por leillo
Respuesta recibida el [09/03/2008 05:56:24]
excelente pagina ehh gracias

 
Excelente Ayuda por Carlos paria ramos
Respuesta recibida el [17/04/2008 07:57:03]
Esta pagina es la mejor ayuda que he encontrado, una pequeña critica.
No se encuentra muchas instrucciones sql con insert into

 
shop wide choice por Freddy
Respuesta recibida el [12/05/2008 06:43:20]
[url=http://fancy-watch.atspace.com/id418.html]online pharmacy[/url] [url=http://fancy-watch.atspace.com/id10.html]loss weight online[/url]

 
Insertar en campos BLOB por Jimmy Fernandez
Respuesta recibida el [22/05/2008 08:12:31]
Por favor un ejemplo de como insertar registros que contengan campos BLOB

 
INSERT por MONSE
Respuesta recibida el [27/05/2008 04:30:02]
ESTOY EN PREPA Y DESEO SABER COMO UTILIZAR UN INSERT PARA GUARDAR DATOS DE VISUAL BASIC A ACCESS

 
server por Javier
Respuesta recibida el [30/05/2008 06:44:57]
como utilizar estos metodos cuando estoy en diseños de paginas por ej con un edit

 
prepaid credit por Uruguay
Respuesta recibida el [01/06/2008 10:19:06]
Nice Site!
http://google.com

 
fix credit por Singapore
Respuesta recibida el [02/06/2008 08:09:58]
Nice Site!
http://google.com

 
m,añana presentare un examen y... por Anónimo
Respuesta recibida el [03/06/2008 11:04:13]
m,añana presentare un examen y no se nada de dar vistas

 
muy malo por muy malo
Respuesta recibida el [15/06/2008 11:07:47]
no hicieron un insert condicionado que les pasa, en que estan..... Que maldita porquería. 

 
hijos de la chingada por perras
Respuesta recibida el [15/06/2008 11:10:19]
son unos malditos vagos no saben hacer un maldito insert con una chingada condicion que focking perras.....!!! 

 
Migracion datos en Oracle por Sonis
Respuesta recibida el [18/06/2008 12:01:00]
Necesito insertar multiples registros (mas de 100) a una tabla temporal... pero no estan en ninguna tabla.. es por sentencias Insert... en el ORACLE SQL*Plus... solo inserta 36 inserts cada vez.. Que comando puedo utilizar para insertar las 700 registros.

En SQL me ejeucta estas mismas lineas de una.. y no hay problema

Graciasss

 
HOLA A TODOS por JUAN
Respuesta recibida el [02/07/2008 08:34:05]
ALGUIEN ME PODRIA AYUDAR CON LA SINTAXIS DEL INSERT INTO OK

 
EIT por JESUS
Respuesta recibida el [22/07/2008 11:58:36]
INSERT INTO TABLA (CAMPOS) VALUES(VALORES_CAMPOS)

 
SQL avanzado por Estudiante Estudiado
Respuesta recibida el [30/07/2008 01:19:47]
Hola

con que sentencia SQL puedo insertar todas las filas combinadas de 3 tablas de una BD access que tengo en una memoria usb, en una DB postgreSQL que no tiene tablas y que se solo se puede acceder por ssh?

 
Gracias por el select,distinct,insert por Rigoberto giraldo
Respuesta recibida el [01/09/2008 05:00:54]
Me gusto mucho lo del insert con el select y el distinct, fue de gran ayuda a un problema que tenia gracias

 
insert por adrian
Respuesta recibida el [14/10/2008 11:21:19]
es una buena opcion dfe consulta

 
insert into por peyin
Respuesta recibida el [16/10/2008 10:52:44]
como es la sintaxis de insert into en sqlserver express me podrian hacer el favor de ayudarme

 
INSERCION EN VARIOS REGISTROS EN UN STORED PROCEDURE por brunope
Respuesta recibida el [28/10/2008 11:50:42]
Estoy haciendo un store procedure y necesisto insertar varios datos en varias tablas ose una insercion multiple alguien me pudiera mostrar un ejemplo.
gracias.

 
insertar varias dtos de varias tablas en una sola por ana
Respuesta recibida el [31/10/2008 05:20:24]
q instruccion puedo usar para pasar una serie de tabls  una sola lo q necesito es x ejm. tengo la tabla 1, 2,3 etc todas con la misma estructura, esas 3 las quiero poner la tabla 4 q tbm tiene la misma estructura
como lo debo hacer?

 
Estudien por Autodidacta
Respuesta recibida el [03/11/2008 08:05:36]
Pinches principiantes estudien todo
lo quieren facil, valoren este tutorial.....

 
Muy, pero muy basico... por DBA
Respuesta recibida el [27/11/2008 02:41:30]
Muy, pero muy basico

 
La cagaste burlancaster por TEMPEST
Respuesta recibida el [02/12/2008 10:19:21]
¿Gravar o grabar?. Abusado.

 
Vivan y dejen vivir por Castropolo
Respuesta recibida el [08/01/2009 07:50:27]
Antes de preguntar cosas tan simples, deberían investigar primero


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



Inicio | Tutorial SQL Consultar datos. SELECTTutorial SQL Borrado de datos. DELETE Versión para imprimir

Insertar datos. INSERT
Autor: Pedro Herrarte Sánchez
Visitas: 131486 Fecha de publicación: 22/10/2005
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.

Posee mas de diez años de experiencia trabajando para las principales empresas de España.

Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.

Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).

Es fundador, diseñador y programador de www.devjoker.com.




Visitas: 42 | Comentarios: 0 | Archivo: Articulos
Visitas: 109 | Comentarios: 0 | Archivo: Articulos
Visitas: 155 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 33 | Comentarios: 0 | Archivo: Articulos
Categorias: TFS
Visitas: 285 | Comentarios: 1 | Archivo: Articulos
Categorias: Visual Basic .NET|C#
Visitas: 842 | Comentarios: 2 | Archivo: Articulos
Categorias: C#|ASP.NET|HTML DHTML|XML|JavaScript|ASP.NET|ASP|PHP|Visual Studio
Visitas: 712 | Comentarios: 1 | Archivo: Articulos
Categorias: Administración|Tutorial SQL
Visitas: 451 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 1053 | Comentarios: 1 | Archivo: Articulos
Categorias: ASP.NET|CSS|ASP.NET
Visitas: 250 | Comentarios: 0 | Archivo: Articulos
Categorias: TFS

Útimos temas recibidos en los foros ...
FORMULARIO ACCESS por jcifuentes ... [Access] 11 29/05/2007
Ysmael por Ysmael ... [SQL] 0 08/01/2009
Reflection por Maurito22 ... [C#] 2 06/01/2009
Programador por Robert ... [ORACLE] 0 07/01/2009
como insertar registros en un formulario de visual basic.net desde la base de datos sql server por orlan ... [SQL Server] 8 09/06/2008
quierocodigo de autogenerado del seguro por edwin garcia ramirez ... [Visual Basic .NET] 0 07/01/2009
Video gratis sobre AJAX con ASP.NET por alexxe ... [ASP.NET] 1 06/01/2009
calcular saldo acumulativo por cben ... [SQL] 5 30/12/2008
comparar 2 campos de 2 tablas usando el like por nani ... [SQL Server] 1 06/01/2009
Apagar ordenador remoto en C# por victoryiyo ... [C#] 1 07/01/2009
numero de AUTOGENERADO IPSS por carlos ... [Visual Basic .NET] 5 30/10/2008
Como mandar mensaje a Celular por Pako ... [C#] 63 13/03/2007

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
14/05/2007 Fundamentos de Transact SQL    forma parte de...Tutorial de Transact SQL
28/06/2006 Excepciones en PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Vistas    forma parte de...Tutorial SQL
12/06/2006 Parámetros de configuración del Driver de Oracle. Funcion y significado.
05/08/2007 Como ver peliculas descargadas en Windows Vista
19/09/2007 Triggers en Transact SQL    forma parte de...Tutorial de Transact SQL
12/01/2008 SQL dinámico en Transact SQL    forma parte de...Tutorial de Transact SQL
26/07/2006 PL/SQL y Java    forma parte de...Tutorial PL/SQL
26/08/2007 Transacciones en Transact SQL    forma parte de...Tutorial de Transact SQL
01/04/2006 Estructuras de control en PL/SQL    forma parte de...Tutorial PL/SQL

 

Encuesta
¿A que perfil te adaptas mejor?