SQL 复制表与SQL 临时表与SQL 修改表结构

发布时间 2023-09-19 15:47:44作者: 只做喜欢的事

如果要将一个 SQL 表的数据复制到同一 SQL Server 中的另一个 SQL 表中,则可以通过 SQL 中的 SELECT INTO 语句来实现。

SQL语言中的 SELECT INTO 语句将现有表中的内容复制到新表中。SQL 使用现有表的结构创建新表。

SQL 中 SELECT INTO 语句的语法

SELECT * INTO New_table_name FROM old_table_name;  

SQL 中的 SELECT INTO 语句示例

在本文中,我们采用了以下三个不同的 SQL 示例,它们将帮助您在 SQL 中如何将一个表的内容复制到另一个表中:

示例 :在此示例中,我们有一个名为Cars的表,其中包含三列:

Car NameCar ColorCar Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000

表:Car

  • 假设您要将上述 Car 表的内容复制到新表Car_Details 中。为此,您必须在 SQL 中键入以下查询:
SELECT * INTO Car_Details FROM Cars;   
  • 让我们检查一下Car_Details表是否在数据库中创建成功:
SELECT * FROM Car_Details;   
Car NameCar ColorCar Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000

表: Car_Details

SQL 中带有 WHERE 子句的 SELECT INTO 语句的语法

SELECT * INTO New_table_name FROM old_table_name WHERE [ condition ] ;  

SQL 中带有 WHERE 子句的 SELECT INTO 语句示例

在这里,我们采取了以下三个不同的 SQL 示例,这将帮助您在 SQL 中如何将一个表的内容复制到另一个具有特定条件的表中:

示例:在此示例中,我们有一个名为Cars的表,其中包含三列:

Car NameCar ColorCar Cost
Hyundai Creta Black 10,85,000
Hyundai Venue Black 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000

表: Cars 

  • 假设我们只想复制那些颜色为黑色的汽车的记录。为此,我们必须在 SQL 中键入以下查询:
SELECT * INTO Black_Car_Details FROM Cars WHERE Car_Color = 'Black'; 
  •  让我们检查一下Black_Car_Details表是否在数据库中创建成功:
SELECT * FROM Black_Car_Details;  
Car NameCar ColorCar Cost
Hyundai Creta Black 10,85,000
Hyundai Venue Black 9,50,000
Kia Seltos Black 8,00,000

表: Black_Car_Details 

SQL 临时表

SQL Server 引入了临时表的概念。它以多种方式帮助开发人员:

临时表可以在运行时创建,可以做普通表可以做的各种操作。这些临时表是在 tempdb 数据库中创建的。

根据行为和范围,有两种类型的临时表。

  1. 本地临时表
  2. 全局临时表

本地临时表

本地临时表仅在当前连接时间可用。当用户与实例断开连接时,它会自动删除。它以井号 (#) 符号开头。

CREATE TABLE #local temp table (  
User id int,  
Username varchar (50),  
User address varchar (150)  
)  
Glo

全局临时表

全局临时表名称以双哈希 (##) 开头。一旦这个表被创建,它就像一个永久的表。它始终为所有用户准备好,并且在整个连接被撤销之前不会被删除。

CREATE TABLE ##new global temp table (  
User id int,  
User name varchar (50),  
User address varchar (150)  
)  

 

SQL 修改表结构

SQL语言中的 ALTER TABLE 语句允许您添加、修改和删除现有表的列。此语句还允许数据库用户在现有表上添加和删除各种 SQL 约束。

任何用户也可以使用此语句更改表的名称。

ALTER TABLE ADD Column 语句

在许多情况下,您可能需要在现有表中添加列。您可以使用 ADD 关键字轻松添加单列和多列,而不是再次创建整个表或数据库。

ALTER TABLE ADD Column 语法

ALTER TABLE table_name ADD column_name column-definition; 

上述语法仅允许您向现有表添加单个列。如果要在单个 SQL 语句中向表中添加多个列,请使用以下语法:

ALTER TABLE table_name     
ADD (column_Name1 column-definition,    
column_Name2 column-definition,    
.....    
column_NameN column-definition);    

ALTER TABLE ADD Column 示例

在这里,我们采用了以下两个不同的 SQL 示例,将帮助您如何使用 ALTER TABLE 语句在现有表中添加单列和多列:

示例:我们以一个名为Cars 的表为例:

Car NameCar ColorCar Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000

表:Car

  • 假设您要在上表中添加新列 Car_Model。为此,您必须在 SQL 中键入以下查询:
ALTER TABLE Cars ADD Car_Model Varchar(20);

此语句会将 Car_Model 列添加到 Cars 表中。

ALTER TABLE MODIFY Column 语句

MODIFY 关键字用于更改现有表的列定义。

ALTER TABLE MODIFY Column 语法

ALTER TABLE table_name MODIFY column_name column-definition;  

此语法仅允许您修改现有表的单个列。如果要在单个 SQL 语句中修改表的多个列,请使用以下语法:

ALTER TABLE table_name     
MODIFY (column_Name1 column-definition,    
column_Name2 column-definition,    
.....    
column_NameN column-definition);    

ALTER TABLE MODIFY Column 示例

在这里,我们采用了以下两个不同的 SQL 示例,将帮助您如何使用 ALTER TABLE 语句修改现有表的单列和多列:

示例:我们以一个名为Cars 的表为例:

Car NameCar ColorCar Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000

表: Cars

  • 假设您要修改上表的Car_Color列的数据类型。为此,您必须在 SQL 中键入以下查询:
ALTER TABLE Cars ADD Car_Color Varchar(50);  

ALTER TABLE DROP Column 语句

在许多情况下,您可能需要从现有表中删除列。您可以使用 DROP 关键字来删除列,而不是删除整个表或数据库。

ALTER TABLE DROP Column 语法

ALTER TABLE table_name DROP Column column_name ;  

ALTER TABLE DROP Column 示例

在这里,我们采用了以下两个不同的 SQL 示例,它们将帮助您如何使用 ALTER TABLE 语句从现有表中删除列:

示例:我们以一个名为Cars 的表为例:

Car NameCar ColorCar Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000

表: Cars

  • 假设您想从上表中删除 Car_Color 列。为此,您必须在 SQL 中键入以下查询:
ALTER TABLE Cars DROP COLUMN Car_Color ;
  • 让我们使用以下语句检查 Car_Color 列是否已从表中删除:
SELECT * FROM Cars;  
Car NameCar Cost
Hyundai Creta 10,85,000
Hyundai Venue 9,50,000
Hyundai i20 9,00,000
Kia Sonet 10,00,000
Kia Seltos 8,00,000
Swift Dezire 7,95,000

表: Cars

ALTER TABLE RENAME Column 语句

RENAME 关键字用于更改现有表的列或字段的名称。

ALTER TABLE RENAME Column 语法

ALTER TABLE table_name RENAME COLUMN old_name to new_name;  

ALTER TABLE RENAME Column 示例

在这里,我们采用了以下两个不同的 SQL 示例,它们将帮助您如何使用 ALTER TABLE 语句更改现有表的列名:

示例:我们以一个名为Cars 的表为例:

Car NameCar ColorCar Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000

表: Cars 

  • 假设您要更改上述 Cars 表的Car_Color列的名称。为此,您必须在 SQL 中键入以下查询:
ALTER TABLE Cars RENAME COLUMN Car_Color to Colors;    

此语句将更改 Cars 表的一列的名称。要查看更改,您必须键入以下查询:

SELECT * FROM Cars;  
Car NameCar ColorCar Cost
Hyundai Creta White 10,85,000
Hyundai Venue White 9,50,000
Hyundai i20 Red 9,00,000
Kia Sonet White 10,00,000
Kia Seltos Black 8,00,000
Swift Dezire Red 7,95,000