文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SQL Server如何插入数据示例代码

2023-01-13 12:00

关注

前言

在进行下面的操作前,先在数据库中新建两张数据表:

(以下是创建数据表的代码)

create table 学生表01(
姓名 nvarchar(10),
性别 nvarchar(1),
身高 numeric(3,2)
)

create table 学生表02(
姓名 nvarchar(10),
性别 nvarchar(1),
身高 numeric(3,2)
)

1、插入完整的行

1.1、基本的insert语法(语法简单,并不安全)

把数据插入表中最简单的方法是使用基本的insert语法:

insert into 学生表01
values('李明','男','1.70')

将上述语句执行后,使用select语句即可看到结果

select *from 学生表01

图片:

SQL Server如何插入数据示例代码

该方法将存储到表的每一列数据在values子句中给出,必须每列提供一个值。如果某列没有值应该使用NULL值(假定表允许对该列使用空值)

例如:

insert into 学生表01
values('李红',null,'1.69')

将数据插入后对该表进行查询可得:

SQL Server如何插入数据示例代码

各列必须以他们在表定义中出现的次序填充。该方法应尽量避免使用。

注意:

在某些sql实现中,跟在insert之后的into是可选的。但是,即使不一定需要,最好还是提供这个关键字,保证sql代码在DBMS之间的可移植性

1.2、更安全的insert语法

更安全的写法如下

insert into 学生表01(姓名,性别,身高)
values('李亮','女','1.60')

执行以上代码后,查询表可得结果:

SQL Server如何插入数据示例代码

该语句与前面的insert语句工作完全相同,但是在表名后的括号里明确给出了列名。

在插入行时,DBMS将用values列表中的相应值填入列表的对应项中。因为提供了列名,

values必须以指定的次序匹配指定的列名,不一定按照各列出现在表中的实际顺序

示例:

insert into 学生表01(性别,姓名,身高)
values('女','小红','1.55')

执行以上代码后,查询表可得结果:

SQL Server如何插入数据示例代码

使用该方法,即使表的结构发生变化,这条insert语句依然能正确工作

2、插入部分行

使用更安全的insert写法是明确给出表的列名。使用这种语法,还可以省略列。

示例:

insert into 学生表01(性别,姓名)
values('女','大红')

执行以上代码后,查询表可得结果:

SQL Server如何插入数据示例代码

在以上示例语句中,没有给身高提供值,依然插入成功了,只是在没有提供值得地方显示null

注意:

省略的列必须满足以下某个条件:
1、该列定义为允许NULL值(无值或空值)
2、在表定义中给出默认值。这表示如果不给出值,将使用默认值。

如果表中不允许有NULL值或者默认值,这时却省略了表中的值,DBMS就会产生错误消

息,相应的行不能插入成功。

3、插入检索出的数据

insert可以将select语句的结果插入表中

示例:

insert into 学生表02(性别,姓名,身高)
select 性别,姓名,身高
from 学生表01

执行以上代码后,使用查询语句:

select *from 学生表02

得到结果如下:

SQL Server如何插入数据示例代码

该例子使用inset select 从学生表01中将所有数据导入学生表02。

select 语句从学生表01检索出要插入的数据,而不是列出他们。

select中列出的每一列对应学生表02表名后所跟的每一列。

insert select中select语句可以包含where子句,以过滤插入的数据。

4、从一个表复制到另一个表

select *into 学生表 from 学生表01

执行以上代码后,使用查询语句:

select *from 学生表

得到结果如下:

SQL Server如何插入数据示例代码

要想只复制部分列,可以明确给出列名,而不是使用*通配符。

示例:

select 姓名 into 学生表03 from 学生表01

执行以上代码后,使用查询语句:

select *from 学生表03

得到结果如下:

SQL Server如何插入数据示例代码

5、全部代码

create table 学生表01(
姓名 nvarchar(10),
性别 nvarchar(1),
身高 numeric(3,2)
)

create table 学生表02(
姓名 nvarchar(10),
性别 nvarchar(1),
身高 numeric(3,2)
)

select *from 学生表01

insert into 学生表01
values('李明','男','1.70')

insert into 学生表01
values('李红',null,'1.69')

insert into 学生表01(姓名,性别,身高)
values('李亮','女','1.60')

insert into 学生表01(性别,姓名,身高)
values('女','小红','1.55')

insert into 学生表01(性别,姓名)
values('女','大红')

insert into 学生表02(性别,姓名,身高)
select 性别,姓名,身高
from 学生表01

select *from 学生表02

select *into 学生表 from 学生表01

select *from 学生表

select 姓名 into 学生表03 from 学生表01

select *from 学生表03

补充知识:SQL SERVER 循环批量插入数据

DECLARE @Count INT;
DECLARE @BuildingId VARCHAR(16);
DECLARE @FloorId VARCHAR(16);
DECLARE @RoomId VARCHAR(16);
DECLARE @RoomName NVARCHAR(20);
DECLARE @Name NVARCHAR(20);
BEGIN
    SET @Count = 1;
    SET @BuildingId = '0000000000000999';
    SET @FloorId = '0000000000000999';
    SET @RoomId = '0000000000009999';
    SET @RoomName = N'999';
    SET @Name = N'999';

    WHILE @Count <= 180
    BEGIN
        INSERT INTO dbo.Xq_Bed
        (
            Id,
            BuildingId,
            FloorId,
            RoomId,
            RoomName,
            Name,
            Status,
            CreateTime,
            IsDeleted
        )
        VALUES
        (NEWID(), @BuildingId, @FloorId, @RoomId, @RoomName, @Name + '-' + CAST(@Count AS VARCHAR), 99, SYSDATETIME(),
         0  );
        SET @Count = @Count + 1;
    END;
END;

总结

到此这篇关于SQL Server如何插入数据的文章就介绍到这了,更多相关SQL Server插入数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯