1. 插入单行数据
最基本的INSERT
语句用于向表中插入单行数据。语法如下:
INSERT INTO 表名 (列1, 列2, 列3, ..., 列N)
VALUES (值1, 值2, 值3, ..., 值N);
示例:
INSERT INTO station (
areaId,
stationNo,
stationName,
stationType,
stationEquipment,
locationCode,
CreatedTime,
ModifiedTime,
Deleted )
VALUES
( 3,'1024','2号下料口',1,'PLC04', 'A2' GETDATE(),GETDATE(),0);
2. 插入多行数据
一些数据库系统(如MySQL、PostgreSQL、SQLite等)支持在单个INSERT
语句中插入多行数据,这可以通过在VALUES
子句中指定多组值来实现,每组值之间用逗号分隔。
INSERT INTO 表名 (列1, 列2, 列3, ..., 列N)
VALUES
(值1_1, 值1_2, 值1_3, ..., 值1_N),
(值2_1, 值2_2, 值2_3, ..., 值2_N),
...
(值M_1, 值M_2, 值M_3, ..., 值M_N);
示例:
INSERT INTO station (
areaId,
stationNo,
stationName,
stationType,
stationEquipment,
locationCode,
CreatedTime,
ModifiedTime,
Deleted )
VALUES
( 3,'1022','2号下料口',1,'PLC04', 'A2' GETDATE(),GETDATE(),0),
( 3,'1023','3号下料口',1,'PLC05', 'A3' GETDATE(),GETDATE(),0),
( 3,'1024','4号下料口',1,'PLC06', 'A4' GETDATE(),GETDATE(),0),
( 3,'1025','5号下料口',1,'PLC07', 'A5' GETDATE(),GETDATE(),0);
3. 插入查询结果
你可以通过INSERT INTO ... SELECT
语句将查询结果直接插入到表中。这可以用于复制表中的数据、将多个表的数据合并到一个表中,或者基于现有数据生成新的记录。
INSERT INTO 目标表名 (列1, 列2, 列3, ..., 列N)
SELECT 列A, 列B, 列C, ..., 列X
FROM 源表名
WHERE 条件;
对查询语句的示例:
SELECT * FROM dbo.station WHERE areaId=3;
4. 插入默认值
如果你没有为所有列提供值,并且表中定义了默认值,那么INSERT
语句会自动为那些未提供值的列插入默认值。此外,你可以使用DEFAULT
关键字显式地为某个列指定默认值。
INSERT INTO 表名 (列1, 列2, 列3)
VALUES (值1, DEFAULT, 值3);
示例:
INSERT INTO station (
areaId,
stationNo,
stationName,
stationType,
stationEquipment,
locationCode,
CreatedTime,
ModifiedTime,
Deleted )
VALUES
( 3,'1022','2号下料口',1,'PLC04', 'A2' GETDATE(),GETDATE(),0),
( 3,'1023',DEFAULT,1,'PLC05', 'A3' GETDATE(),GETDATE(),0),
( 3,'1024','4号下料口',1,'PLC06', 'A4' GETDATE(),GETDATE(),0),
( 3,'1025',DEFAULT,1,'PLC07', 'A5' DEFAULT,DEFAULT,0);
5. 对所有列都插入数据
如果你想对所有列的数据都进行插入,就不用逐个写出列名,使用表名后直接将插入的值在后边排列出来即可。
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
示例(假设station表就有如下9列,示例代码如下):
INSERT INTO station
VALUES
( 3,'1022','2号下料口',1,'PLC04', 'A2' GETDATE(),GETDATE(),0),
( 3,'1023',DEFAULT,1,'PLC05', 'A3' GETDATE(),GETDATE(),0),
( 3,'1024','4号下料口',1,'PLC06', 'A4' GETDATE(),GETDATE(),0),
( 3,'1025',DEFAULT,1,'PLC07', 'A5' DEFAULT,DEFAULT,0);