一、基本用法
select into from是一种非常常见的SQL语句,它可以将一个表中的数据复制到一个新表中。它的基本语法如下:
SELECT *
INTO new_table_name
FROM existing_table_name
其中,new_table_name是新创建的表的名称,existing_table_name是现有表的名称。
比如有一个名为“students”的表,里面有学生的学号、姓名、性别、出生日期、年级等信息。我们可以使用下面的SQL语句,将students表中的信息复制到一个新表中,这个新表的名称为“new_students”:
SELECT *
INTO new_students
FROM students
执行这个SQL语句后,就会在数据库中创建一个新的表new_students,这个表和students表的结构完全相同,同时也包含了students表中的全部数据。
二、新表字段的自定义
在使用select into from语句创建新表的时候,有时候我们需要自定义新表的字段,而不是和现有的表一模一样。这个时候,需要在SQL语句中显式地指定新表的字段名。
具体来说,可以将新表的字段名以及相应的数据类型、约束条件都写在SQL语句中,例如:
SELECT student_id, student_name, sex, grade
INTO new_students
FROM students
上面的SQL语句中,我们使用了SELECT语句显式地指定了新表new_students包含的字段,这些字段分别是student_id、student_name、sex和grade。同时,由于现有的students表中还包含了出生日期等数据,因此这些数据在新表中将被忽略。
三、条件复制
有时候,我们想要将一个表中的部分数据复制到新的表中,而不是复制全部数据。这个时候,可以添加where子句进行条件筛选,例如:
SELECT *
INTO new_students
FROM students
WHERE sex = '男'
上面的SQL语句中,我们指定了条件sex = ‘男’,这意味着只有性别为男性的学生信息会被复制到新表中。
四、常用统计函数的使用
在使用select into from语句时,我们还可以对现有表中的数据进行聚合统计,并将统计结果复制到新表中。SQL语句如下:
SELECT COUNT(*) as total_count, AVG(grade) as avg_grade
INTO summary
FROM students
WHERE sex = '女'
上面的SQL语句中,我们使用了COUNT和AVG两个聚合函数,分别对现有表students中性别为“女”的学生数量和成绩取平均值,并将统计结果复制到了新表summary中。同时,我们还使用了AS关键字给统计结果命名,使得新表中的字段名更具有可读性。
五、多表数据的复制
在一些情况下,我们希望将多个表中的数据合并到一个新表中。这个时候,可以使用UNION ALL语句将多个表的数据合并,并通过select into from复制到一个新表中,例如:
SELECT *
INTO all_students
FROM (
SELECT * FROM students1
UNION ALL
SELECT * FROM students2
)
上面的SQL语句中,我们使用了UNION ALL语句将students1表和students2表的数据合并起来,并将结果复制到了新表all_students中。
六、对新表进行索引
在使用select into from语句复制表的时候,我们还可以在新表中添加索引,以提高查询效率。SQL语句如下:
SELECT *
INTO new_students
FROM students
CREATE CLUSTERED INDEX new_students_index
ON new_students (student_id)
上面的SQL语句中,我们使用了CREATE INDEX语句创建了一个聚集索引new_students_index,这个索引基于新表new_students中的学生ID字段。通过创建索引,我们可以大大提高查询新表的效率。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/243441.html