在MySQL中,增加语句主要使用 INSERT语句。以下是INSERT语句的基本语法和用法:
基本语法
`INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);`
使用VALUES子句插入数据
可以指定插入的列和值,例如:
```sql
INSERT INTO students (id, name, age) VALUES (1, '张三', 20);
```
如果要插入多条记录,可以使用多个VALUES子句,例如:
```sql
INSERT INTO students (id, name, age) VALUES (2, '李四', 21), (3, '王五', 22), (4, '赵六', 23);
```
使用INSERT...SET子句插入数据
可以指定部分列的值,例如:
```sql
INSERT INTO students (name, age) SET name = '张三', age = 20;
```
这种方式在插入单条数据时比使用VALUES子句更快,但在实际开发中,通常使用VALUES子句。
插入时间戳
可以使用`CURRENT_TIMESTAMP`或`NOW`函数在插入数据时自动记录当前时间戳,例如:
```sql
INSERT INTO students (name, age, insert_time) VALUES ('张三', 20, CURRENT_TIMESTAMP);
```
批量插入数据
可以将多条插入语句合并成一条,使用逗号分隔,以提高插入效率,例如:
```sql
INSERT INTO students (id, name, age) VALUES (1, '张三', 20), (2, '李四', 21), (3, '王五', 22);
```
使用INSERT DELAYED语句
将插入操作放入队列中,并在后台执行,不会阻塞其他SQL语句的执行,例如:
```sql
INSERT DELAYED INTO students (id, name, age) VALUES (4, '赵六', 23);
```
需要注意,使用INSERT DELAYED语句时,数据可能不会立即写入磁盘,而是在后台异步执行。
禁用和启用索引
在批量插入数据之前,可以暂时禁用表的索引,以减少插入过程中的索引更新操作,例如:
```sql
ALTER TABLE students DISABLE KEYS;
-- 插入数据
ALTER TABLE students ENABLE KEYS;
```
禁用索引可能会影响查询性能,因此需要评估其对查询的影响。
这些是MySQL中增加数据的主要方法,根据具体需求选择合适的插入方式可以提高插入效率和数据完整性。