`INSERT` 语句用于向数据库表中插入新的记录。其基本语法如下:
```sql
INSERT INTO 表名 (字段名1, 字段名2, 字段名3, ...)
VALUES (值1, 值2, 值3, ...);
```
示例
插入单条记录 ```sql
INSERT INTO student2 (name) VALUES ('焯');
INSERT INTO student2 (name) VALUES ('哈哈2');
INSERT INTO student2 (name, sex) VALUES ('林', '男');
INSERT INTO student2 (name, sex) VALUES ('张三', '男');
INSERT INTO student2 (name, sex) VALUES ('李四', '男');
```
插入多条记录
```sql
INSERT INTO student2 (name) VALUES ('嘻嘻'), ('呼呼');
```
使用子查询插入多条记录
```sql
INSERT INTO student2 (name, sex)
SELECT name, sex FROM (VALUES ('林', '男'), ('张三', '男'), ('李四', '男')) AS temp (name, sex);
```
注意事项
字段名和值的对应关系:
插入的数据必须与表中的字段名一一对应,且顺序要一致。
主键自增:
如果表的主键是自动自增的,可以省略主键字段的值,数据库会自动处理。
使用英文符号:
SQL 语句中的关键字和符号应使用英文,例如使用 `INSERT` 而不是 `插入`。
值的范围:
插入的值可以是字符串、数字或其他数据类型,但需要根据字段类型进行相应的处理。
示例代码(C语言)
```c
include include include void insert(char *table, char values, int num_values); int main() { char *values1[] = {"焯", "哈哈2", "林", "男"}; char *values2[] = {"嘻嘻", "呼呼"}; char *values3[] = {"林", "男"}; char *values4[] = {"张三", "男"}; char *values5[] = {"李四", "男"}; insert("student2", values1, 4); insert("student2", values2, 2); insert("student2", values3, 2); insert("student2", values4, 2); insert("student2", values5, 2); return 0; } void insert(char *table, char values, int num_values) { char query; sprintf(query, "INSERT INTO %s (name, sex) VALUES ", table); for (int i = 0; i < num_values; i++) { strcat(query, "('"); strcat(query, values[i]); strcat(query, "'),"); } // Remove the trailing comma query[strlen(query) - 1] = '\0'; // Execute the query (assuming a database connection is established) // int result = sqlite3_exec(db, query, NULL, NULL, NULL); // if (result != SQLITE_OK) { // fprintf(stderr, "SQL error: %s\n", sqlite3_errmsg(db)); // } printf("Inserted data into %s\n", table); } ``` 请注意,上述C语言代码中的 `sqlite3_exec` 函数用于执行SQL查询,需要包含SQLite库并初始化数据库连接。实际应用中,应根据所使用的数据库系统和连接方式进行相应的调整。