Mysql之insert into

本文详细讲解了INSERT INTO语句的五种常见操作:无列名插入、带列名插入、SELECT语句插入、复制表数据和异构表数据迁移。通过实例演示,帮助读者掌握SQL数据插入的高效技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

INSERT INTO 插入语句的使用

第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name VALUES (value1,value2,value3,…);
eg:

INSERT INTO Student VALUES ('03','孙风','1990-05-20','男');

第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,…)
VALUES (value1,value2,value3,…);
eg:

INSERT INTO student(SId,Sname,Sage,Ssex) VALUES('04','李云','1990-08-06','女'),('05','周梅','1991-12-01','女')

第三种方法:
INSERT INTO table_name SELECT value1,value2 union all
SELECT value1,value2;
如果插入的是数字的话,需要在数字后面加逗号n
eg:

INSERT INTO Student SELECT '07','郑竹','1989-07-01','女' UNION ALL SELECT'10','赵红','2001-01-01','女';

可以写成:

INSERT INTO Student SELECT 01,n'郑竹','1989-07-01','女' UNION ALL SELECT 10,n'赵红','2001-01-01','女';

第四种方法:(如果两个表的结构一样,复制旧表的信息到新表去
INSERT INTO new_table SELECT 语句

eg:

INSERT INTO new_student SELECT * from student where Ssex='男';

第五种方法:如果两个表的结构不一样,复制旧表信息到新表中
INSERT INTO new_table(column) SELECT 语句
eg:

insert into new_student(sname) select student.Sname from student where sname = '赵红';
### MySQL `INSERT INTO` 语句概述 MySQL 中的 `INSERT INTO` 语句用于向数据库表中插入新记录。此语句有两种主要形式: #### 形式一:指定列名 当使用特定列名插入数据时,语法如下: ```sql INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); ``` 这种情况下,只需提供要插入的数据对应的值列表即可[^2]。 #### 形式二:不指定列名 如果不指明具体的列,则需为每一列都提供相应的值,其语法为: ```sql INSERT INTO table_name VALUES (value1, value2, ...); ``` 这里需要注意的是,省略列名意味着按照定义顺序依次填充每列的值。 ### 使用 `SELECT` 结果集作为插入源 除了直接给出具体数值之外,还可以通过子查询的方式获取待插入的内容。这被称为 `INSERT INTO SELECT` 操作,适用于从其他表格复制数据到当前目标表的情况。基本格式如下所示: ```sql INSERT INTO target_table [(target_column_list)] SELECT source_columns_or_expressions FROM source_tables; ``` 此处的关键在于确保所选字段的数量和类型匹配于目的端的要求[^1]。 ### 处理保留关键字冲突问题 有时会遇到某些字段名称与SQL标准中的关键词相同的问题,在这种情形下可能会引发解析异常。对于这种情况的一种解决方案是在涉及这些特殊命名的属性周围添加反引号(\`),以此来区分它们并非真正的命令词。例如: ```sql INSERT INTO tblmultitable (`prserv`, `number`) VALUES (...); ``` 另外一种方式则是像处理 Microsoft Access 数据库那样采用方括号包裹住敏感项,不过这种方法并不推荐应用于 MySQL 环境之中[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值