SQL Server中添加数据的正确姿势

在 SQL Server 中,添加数据是一个非常常见的操作,也是每个数据库开发者要掌握的基础技能之一。正确的添加数据方法不仅可以保证数据的完整性和准确性,也可以提高数据的访问效率和性能。下面,我们将介绍 SQL Server 中添加数据的正确姿势。

1. 使用 INSERT INTO 语句添加一条数据

INSERT INTO 是 SQL Server 中最常用的添加数据方法。使用 INSERT INTO 语句,您可以向一个表中添加一条或多条数据。

语法:

INSERT INTO table_name (column1, column2, column3, ...)

VALUES (value1, value2, value3, ...);

说明:

table_name:要添加数据的表名

column1, column2, column3, ...:要插入数据的列名

value1, value2, value3, ...:要插入列的值

示例:

下面是一个示例,向一个名为 student 的表中插入一条数据:

INSERT INTO student (name, age, gender)

VALUES ('张三', 18, '男');

在这个示例中,我们向 student 表中的 name、age 和 gender 列分别插入了 '张三'、18 和 '男' 的值。

2. 使用 SELECT INTO 语句从一个表中复制数据到另一个表

SELECT INTO 语句是另一种向数据库中添加数据的方法。与 INSERT INTO 语句不同的是,SELECT INTO 语句可以从一个表中复制数据到另一个表。

语法:

SELECT *

INTO new_table_name

FROM old_table_name;

说明:

new_table_name:新表的名称

old_table_name:旧表的名称

示例:

下面是一个示例,从一个名为 employee 的表中复制数据到一个名为 employee_copy 的新表中:

SELECT *

INTO employee_copy

FROM employee;

运行这条语句,会创建一个新表 employee_copy,并将 employee 表中的所有数据复制到新表中。

3. 使用 BULK INSERT 语句批量导入数据

如果您需要在 SQL Server 中导入大量的数据,那么使用 BULK INSERT 语句是一个非常有效的方法。BULK INSERT 语句可以从一个数据文件中批量导入数据到一个 SQL Server 表中。

语法:

BULK INSERT table_name

FROM 'file_path'

WITH

(

FIELDTERMINATOR = ',',

ROWTERMINATOR = '\n'

);

说明:

table_name:目标表名

file_path:数据文件的路径

FIELDTERMINATOR:字段分隔符

ROWTERMINATOR:行终止符

示例:

下面是一个示例,使用 BULK INSERT 语句从一个名为 data.csv 的 CSV 文件中导入数据到一个名为 employee 的表中:

BULK INSERT employee

FROM 'C:\\data.csv'

WITH

(

FIELDTERMINATOR = ',',

ROWTERMINATOR = '\n'

);

在这个示例中,我们使用了一个名为 data.csv 的 CSV 文件。BULK INSERT 语句会将这个文件中的数据导入到 employee 表中。我们还指定了 ',' 为字段分隔符,'\n' 为行终止符。

4. 使用 OPENROWSET 和 OPENDATASOURCE 语句连接其他数据源

如果您需要将 SQL Server 中的数据连接到其他数据源,比如 Excel、Access 或者其他 SQL Server 实例,那么可以使用 OPENROWSET 和 OPENDATASOURCE 语句。这两个语句允许您使用连接字符串连接其他数据源,从而将这些数据源的数据导入到 SQL Server 中。

语法:

SELECT *

FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\\data.xlsx',

'SELECT * FROM [Sheet1$]');

SELECT *

FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',

'Data Source=C:\\data.accdb;User ID=admin;Password=password')

..[employee];

说明:

OPENROWSET:用于连接 Excel 文件

OPENDATASOURCE:用于连接 Access 文件

'Microsoft.ACE.OLEDB.12.0':连接字符串,指示使用 Microsoft.ACE.OLEDB.12.0 提供程序连接数据源。可以根据需要更改为其他提供程序

'Excel 12.0;Database=C:\\data.xlsx':连接字符串,指示将 Excel 文件 data.xlsx 连接到 SQL Server 中

'SELECT * FROM [Sheet1$]':SQL 查询语句,用于从工作表 Sheet1 中检索数据

Data Source=C:\\data.accdb;User ID=admin;Password=password:连接字符串,指示将 Access 文件 data.accdb 连接到 SQL Server 中

employee:要导入到 SQL Server 中的表名

示例:

下面是一个示例,使用 OPENROWSET 和 OPENDATASOURCE 语句将 Excel 和 Access 文件中的数据导入到 SQL Server 中:

SELECT *

FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\\data.xlsx',

'SELECT * FROM [Sheet1$]');

SELECT *

FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',

'Data Source=C:\\data.accdb;User ID=admin;Password=password')

..[employee];

运行这条语句,会将 Excel 文件中 Sheet1 工作表的数据和 Access 文件中的 employee 表的数据导入到 SQL Server 中。

结论

使用正确的方法向 SQL Server 中添加数据可以保证数据的完整性和准确性,同时还可以提高数据的访问效率和性能。本文介绍了 SQL Server 中添加数据的四种方法:

使用 INSERT INTO 语句添加一条数据

使用 SELECT INTO 语句从一个表中复制数据到另一个表

使用 BULK INSERT 语句批量导入数据

使用 OPENROWSET 和 OPENDATASOURCE 语句连接其他数据源

希望本文的介绍可以帮助您更好地向 SQL Server 中添加数据。

数据库标签