先决条件 – 在 MS SQL Server 中插入语句,在 MS SQL Server 中选择语句
考虑一个大学数据库。有两个表,分别是 Student 和 Marks。
如果一些学生的分数必须从分数表转移到分数表,有很多方法可以做到。
可以使用子查询(查询嵌套在另一个查询中),但这是一个复杂且耗时的过程。
Insert Into Select语句使工作更容易。该语句用于从其他表插入。
句法 :
insert [TOP(exp)[PERCENT]]
into target_table
column_list
query
例子 –
表 –学生
Roll number | Name | Course |
---|---|---|
111 | Riya | CSE |
112 | Apoorva | ECE |
113 | Mina | Mech |
114 | Rita | Biotechnology |
115 | Veena | Chemical |
116 | Deepa | EEE |
表 –标记
Roll number | Name | GPA |
---|---|---|
111 | Riya | 9.5 |
112 | Apoorva | 9.4 |
113 | Mina | 8.7 |
114 | Rita | 8.1 |
115 | Veena | 7.7 |
116 | Deepa | 7.1 |
如果用户想把分数转移到Student表,查询如下——
insert into marks (roll number, name, gpa)
select roll number, name, course
from student
值被插入。为了验证,查询如下 –
select *
from student
输出 –
Roll number | Name | Course | Gpa |
---|---|---|---|
111 | Riya | CSE | 9.5 |
112 | Apoorva | ECE | 9.4 |
113 | Mina | Mech | 8.7 |
114 | Rita | Biotechnology | 8.1 |
115 | Veena | Chemical | 7.7 |
116 | Deepa | EEE | 7.1 |
这是插入值的另一种方式。通过使用 TOP 关键字,我们可以从表中提取所需的值 –
insert TOP (6) PERCENT
insert into marks(roll number, name, gpa)
select roll number, name, course
from student
order by roll number
输出 –
Roll number | Name | Course | Gpa |
---|---|---|---|
111 | Riya | CSE | 9.5 |
112 | Apoorva | ECE | 9.4 |
113 | Mina | Mech | 8.7 |
114 | Rita | Biotechnology | 8.1 |
115 | Veena | Chemical | 7.7 |
116 | Deepa | EEE | 7.1 |
查询略有不同,但我们得到相同的结果集。 TOP 是可选的,当用户只想从表中提取特定数量的行时可以使用它。