欢迎投稿

今日深度:

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

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


目录
  • 前言
  • 1、插入完整的行
    • 1.1、基本的insert语法(语法简单,并不安全)
    • 1.2、更安全的insert语法
  • 2、插入部分行
    • 3、插入检索出的数据
      • 4、从一个表复制到另一个表
        • 5、全部代码
          • 补充知识:SQL SERVER 循环批量插入数据
            • 总结

              前言

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

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

              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
              

              图片:

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

              例如:

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

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

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

              注意:

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

              1.2、更安全的insert语法

              更安全的写法如下

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

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

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

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

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

              示例:

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

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

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

              2、插入部分行

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

              示例:

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

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

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

              注意:

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

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

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

              3、插入检索出的数据

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

              示例:

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

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

              select *from 学生表02
              

              得到结果如下:

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

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

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

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

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

              select *into 学生表 from 学生表01
              

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

              select *from 学生表
              

              得到结果如下:

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

              示例:

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

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

              select *from 学生表03

              得到结果如下:

              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插入数据内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

              您可能感兴趣的文章:
              • SQLServer 批量插入数据的两种方法
              • SQLServer用存储过程实现插入更新数据示例
              • SQL Server中数据行批量插入脚本的存储实现
              • SQLServer批量插入数据的三种方式及性能对比
              • SQL Server 批量插入数据的完美解决方案

              www.htsjk.Com true http://www.htsjk.com/Sql_Server/45486.html NewsArticle SQL Server如何插入数据示例代码, 目录 前言 1、插入完整的行 1.1、基本的insert语法(语法简单,并不安全) 1.2、更安全的insert语法 2、插入部分行 3、插入检索出的数据 4、从一个表复...
              评论暂时关闭