先决条件– MS SQL Server中的Insert语句,MS SQL Server中的Select语句
考虑一个大学数据库。有两个表,即“学生”和“分数”。
万一某些学生的成绩必须从成绩表转移到成绩表,有很多方法可以做到。
可以使用子查询(嵌套在另一个查询中的查询),但这是一个复杂且耗时的过程。
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 |
如果用户要将标记转移到学生表,则查询如下:
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是可选的,当用户只想从表中提取特定数量的行时可以使用它。