SQL Server如何插入数据示例代码
作者:GT-一二 发布时间:2024-01-13 16:42:33
前言
在进行下面的操作前,先在数据库中新建两张数据表:
(以下是创建数据表的代码)
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;
来源:https://blog.csdn.net/AAAAA1235555/article/details/123414115


猜你喜欢
- 目录安装pytest插件编写测试用例忽略 HTTPS 错误和设置自定义视口大小持久上下文playwright结合Pytest为您的 Web
- Vue中子组件调用父组件的三种方法:1.直接在子组件中通过“this.$parent.event”来
- 最近想研究下SQL SERVER2012 Enterprise版本的数据库,听说功能很强大。我是在win7上安装的,安装的过程很顺利,我在用
- 目录1.编写模块结构1.1 git创建空文件1.2 编写包功能函数1.3 包必备函数1、README.md文件是在git上生成的说明项目的文
- 本文实例为大家分享了Python KNN分类算法的具体代码,供大家参考,具体内容如下KNN分类算法应该算得上是机器学习中最简单的分类算法了,
- 本文实例讲述了Python socket连接中的粘包、精确传输问题。分享给大家供大家参考,具体如下:粘包:发生原因:当调用send的时候,数
- jQuery 1.4 源码 449 行(core.js 431 行),判断是否为函数的方法如下(思路来源于 Douglas Crockfor
- python判断字符串的前两个字母是否是”id"你可以使用 Python 的字符串切片来判断一个字符串的前两个
- 1、配置Git签名(1)语法$ git config 配置文件作用域 user.name '用户名'$ git config
- 在计算机科学中,精确的小数计算是一个常见的问题,因为在计算机中使用二进制表示小数时,有些小数可能无法用二进制表示精确的十进制数。这导致了在计
- 1.安装Apachea) 双击文件Apach_2.2.8_win32-x86-no_ssl.msi,弹出欢迎界面。单NEXT按钮,进入到Li
- 假设你有一套登录注册业务。一开始很简单,老板说只需要常规的注册登录就行。但是到了后面,接口被刷,老板然你在注册登录前加个验证码然后没过多久,
- 在做web端自动化测试用例编写过程中,大家有没有遇到窗口切换的情况,比如如下截图所示的商品列表页,点击任何一款产品后切换到这块产品详情页的情
- Jupyter Notebook读取csv文件失败1.IndentationError: expected an indented bloc
- 见下表:序号保留字序号保留字序号保留字1ADD80ESCAPE159OR2ABSOLUTE81EXCEPT160ORDER3ACTION82
- 使用distinct在mysql中查询多条不重复记录值的解决办法如何使用distinct在mysql中查询多条不重复记录值?有时候想用dis
- js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^var arr = new Array();ar
- 例:公司员工采取三个轮班制度:凌晨0:00到早上8:00为第一班,早上8:00到下午4:00为第二班,下午4:00到晚上12:00为第三班。
- 前言:牛奶冻曲线(blancmange curve),因在1901年由高木贞治所研究,又称高木曲线。在单位区间内,牛奶冻函数定义为:分形曲线
- 名片管理系统一、思路1、定义名片操作选项2、把增加的名片信息存储到字典中3、所有名片信息存储到列表4、对于误操作给出提示二、用到的知识点1、