SqlServer:插入数据

SQL 语句插入#

INSERT 语句#

输入记录的 SQL 语句是 INSERT,其格式如下所示。在命令格式中 INTO 可以省略,如果输入所有列的内容,则列名列表可以省略。如果只输入部分列的值,则列名列表不可以省略。注意 VALUES 后面的值必须与列名列表要一一对应,同时插入数据不能违反任何约束,否则将回滚不能插入。

Copy Highlighter-hljs
INSERT [INTO] 表名 [(列名1[,列名2.…])] VALUES(值1[,值2…])

也可以使用 INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。

Copy Highlighter-hljs
INSERT INTO table2 SELECT * FROM table1;

如果是只希望部分列插入存在的表,也可以进行指定。

Copy Highlighter-hljs
INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;

插入样例#

样例一#

使用简单的 INSERT,创建表 T1 并且插入一行。

Copy Highlighter-hljs
CREATE TABLE T1 (column_1 int, column_2 varchar(30)) INSERT T1 VALUES (1, 'Row #1')

样例二#

插入与列顺序不同的数据,使用 column_list 及 VALUES 列表显式地指定将被插入每个列的值。

Copy Highlighter-hljs
CREATE TABLE T1 (column_1 int, column_2 varchar(30)) INSERT T1 (column_2, column_1) VALUES ('Row #1',1)

样例三#

插入值少于列个数的数据,INSERT 语句插入的行只有部分列包含值。

Copy Highlighter-hljs
CREATE TABLE T1 ( column_1 int identity, column_2 varchar(30) CONSTRAINT default_name DEFAULT ('column default'), column_3 int NULL, column_4 varchar(40) ) INSERT INTO T1 (column_4) VALUES ('Explicit value') INSERT INTO T1 (column_2,column_4) VALUES ('Explicit value', 'Explicit value') INSERT INTO T1 (column_2,column_3,column_4) VALUES ('Explicit value',-44,'Explicit value')

文本导入#

BULK INSERT 语句#

BULK INSERT 以用户指定的格式,复制一个数据文件至数据库表或视图中,数据文件可以是 txt 文件等。

Copy Highlighter-hljs
BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }

插入样例#

首先创建学生表:

Copy Highlighter-hljs
create table student ( Sno char(3) not null primary key, --学号 Sname nchar(4) not null, --学生姓名 Ssex nchar(1) not null, --学生性别 Sbirthday date, --学生出生年月 Class char(5) --学生所在班级 )

需要插入的数据如下,将这些数据保存进 txt 文件中。

Copy Highlighter-hljs
Sno Sname Ssex Sbirthday class 108 曾华 1977-09-01 95033 105 匡明 1975-10-02 95031 107 王丽 1976-01-23 95033 101 李军 1976-02-20 95033 109 王芳 1975-02-10 95031 103 陆君 1974-06-03 95031

使用 BULK INSERT 语句就可以把对应路径下的 txt 文件的数据导入表中。

Copy Highlighter-hljs
BULK INSERT student FROM '' --单引号内写上 txt 文件路径

Excel 导入#

想要从 excel 导入数据,就需要借助 “SqlServer 导入和导出向导”。右击需要导入的目标数据库,选择“任务”选项中的“导入数据”。

进入到 “SqlServer 导入和导出向导”工具,直接进入下一步。

数据源选择 “Microsoft Excel”,然后写上 excel 的文件路径和 Excel 的版本。

接着选择需要插入数据的目标数据库:

接下来指定是从数据源复制一个或多个表和属兔,还是从数据库复制查询结果,导入 excel 的话选择第一项。

选择要插入数据库的数据,来源于 excel 中的哪些表。

选择是否保存或运行包,此处可以选择直接运行,然后就可以实现插入了。

参考资料#

《SqlServer 2014 数据库技术实用教程》,胡伏湘、肖玉朝 主编,清华大学出版社
[数据库]Bulk Insert命令详细
SQLServer数据导入Excel表格数据

posted @   乌漆WhiteMoon  阅读(4239)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-05-19 MySQL:增、删、改
点击右上角即可分享
微信分享提示
CONTENTS