数据库两种 insert的区别

本文介绍了两种不同的SQL批量插入方法:一种是一次性插入多条记录,另一种是逐条插入记录。前者通过一条SQL语句即可完成多条记录的插入,效率较高;后者虽然每条记录都需要单独的SQL语句,但其逻辑清晰易于理解。
一:

INSERT INTO tab_comp VALUES(item1, price1, qty1),
(item2, price2, qty2),
(item3, price3, qty3);

二:
insert into tab_comp values(item1, price1, qty1)
insert into tab_comp values(item1, price1, qty2)
insert into tab_comp values(item1, price1, qty3)

第一种效率高;第二种 易理解
数据库操作中,`ALTER` 和 `INSERT` 是两种具有完全不同用途的 SQL 命令。它们分别用于修改数据库结构和向表中添加数据。 ### 功能用途 `INSERT` 语句用于向表中插入新的数据行。可以插入完整的行,也可以只插入部分列的值,其余列将使用默认值或允许为空[^1]。例如,以下是一个典型的 `INSERT` 语句: ```sql INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.com'); ``` 该语句将一个新的用户记录插入到 `users` 表中。 相比之下,`ALTER` 语句主要用于修改数据库对象的结构。例如,可以使用它来添加或删除表中的列、修改列的数据类型、重命名表或列,以及添加或删除约束等。它是对数据库架构进行更改的操作,不直接影响表中的数据内容[^1]。例如,以下语句将向 `users` 表中添加一个新列: ```sql ALTER TABLE users ADD COLUMN age INT; ``` ### 操作对象 `ALTER` 操作的对象是数据库对象,如表格、视图等的结构定义。它的主要目的是调整数据库模式,而不是直接处理数据本身[^1]。 `INSERT` 操作的对象则是表中的数据本身。它用于添加全新的数据记录,通常不会影响数据库的结构。 ### 对数据库的影响 `ALTER` 语句对数据库结构进行修改,可能会导致数据库模式的变更,影响到依赖该结构的其他对象或查询。在大型数据库中,某些 `ALTER` 操作可能会消耗大量资源和时间,特别是在处理大量数据时[^1]。 `INSERT` 语句增加新的数据行,可能会影响表的大小、索引的维护以及数据库的性能。如果插入的数据违反了表的约束条件,如唯一性约束或外键约束,插入操作将失败[^1]。 ### 示例代码 以下是一些常见的 `ALTER` 和 `INSERT` 语句示例: #### 使用 `ALTER` 修改表结构 ```sql -- 添加新列 ALTER TABLE users ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP; -- 删除列 ALTER TABLE users DROP COLUMN age; -- 修改列的数据类型 ALTER TABLE users MODIFY COLUMN email VARCHAR(255); ``` #### 使用 `INSERT` 插入新数据 ```sql -- 插入完整行 INSERT INTO users (id, name, email) VALUES (2, 'Bob', 'bob@example.com'); -- 插入部分列 INSERT INTO users (name, email) VALUES ('Charlie', 'charlie@example.com'); ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值