INSERT INTO table_name (column1, column2, ..., columnN) VALUES (value1, value2, ..., valueN);
列名和值
table_name 表示要插入数据的表名,column1、column2、...、columnN 是要插入数据的列名,value1、value2、...、valueN 是要插入的数据值。需要注意的是,列名和值的数量必须相等。
自动递增主键
如果表中包含自动递增的主键列,则无需在 INSERT 语句中指定该列的值,系统会自动生成一个唯一的主键值。
插入多行数据
可以使用以下语法一次插入多行数据:
INSERT INTO table_name (column1, column2, ..., columnN) VALUES
(value11, value12, ..., value1N),
(value21, value22, ..., value2N),
...,
(valueM1, valueM2, ..., valueMN);
插入子查询结果
可以使用子查询来插入子查询返回的数据集:
INSERT INTO table_name (column1, column2, ..., columnN)
SELECT column1, column2, ..., columnN
FROM subquery;
使用占位符
可以使用占位符来动态插入数据,占位符的形式为 ?, 对应占位符的值可以在 INSERT 语句执行时通过参数传递:
INSERT INTO table_name (column1, column2, ..., columnN) VALUES (?, ?, ..., ?);
在执行 INSERT 语句时,可以使用以下代码:
sql
PreparedStatement statement = connection.prepareStatement("INSERT INTO table_name (column1, column2, ..., columnN) VALUES (?, ?, ..., ?)");
statement.setString(1, value1);
statement.setString(2, value2);
...
statement.setString(N, valueN);
statement.executeUpdate();