专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

insert是什么意思,insert语句用法详解

来源:小易整编  作者:小易  发布时间:2023-03-23 11:14
摘要:insert是什么意思,insert语句用法详解关于SQL修改数据的语句,我们前两期聊了删和改;这期再聊下增,也就是INSERT语句。在SQL中,可以使用INSERT……VALUES语句直接向数据库中插入一行数据,其语法格式如下:INSER...

INSERT INTO 表名1 [(字段名1, 字段名2……)] SELECT 字段名1,字段名2……FROM 表名2

依然举个例子。
下图是一份名为‘试用期’的表格。

insert是什么意思,insert语句用法详解

          
现在,我们需要将考核为‘合格’的人名及对应的数据,新增到‘工资表’中。

INSERT INTO [工资表$] SELECT 姓名,性别,工龄,工资 FROM [试用期$] WHERE 考核='合格'

语句执行结果如下图所示。

insert是什么意思,insert语句用法详解

          
SELECT语句从‘试用期’的表格筛选出考核为‘合格‘的数据,并将其插入到工资表中。
INSERT INTO后的字段名做了省略处理,当省略该处字段名时,和INSERT……VALUES所不同的是,它默认读取的不是插入表的字段名,而是 SELECT语句查询结果表的字段名。
比如,以下语句,尽管SELECT语句的字段名排列顺序和工资表的字段名排列顺序不同,但数据插入位置并不会出错。

INSERT INTO [工资表$]  SELECT 姓名,工龄,工资,性别 FROM [试用期$] WHERE 考核='合格'

再比如,以下语句,由于工资表并不存在考核列,因此会收到错误提示。

INSERT INTO [工资表$]  SELECT 姓名,工龄,工资,性别,考核 FROM [试用期$] WHERE 考核='合格'

insert是什么意思,insert语句用法详解

          
当然,当INSERT INTO后有指定的字段名时,以指定的字段名顺序为准。

INSERT INTO [工资表$] (姓名,工龄,工资,性别) SELECT 姓名,0,4000,性别 FROM [试用期$] WHERE 考核='合格'

SELECT查询语句,放弃了‘试用期‘表3000的工资,更改为4000;工龄也更改为0;由于INSERT INTO语句后指定了字段名,0对应的是工龄,4000对应的字段名是工资;因此语句执行后的结果如下图所示,并无错误:

insert是什么意思,insert语句用法详解

          
……
需要说明的是,INSERT……SELECT语句可以将一张表的数据插入到指定表中,但前提是该指定表本身是存在的。
如果我们需要将查询数据插入到一张事先并不存在的表——可以使用SELECT……INTO语句。
语法如下:

SELECT 字段名 INTO 新表名 FROM 数据来源表

该语句会根据指定表名和字段名创建一份新表,并将FROM子句的查询记录放置其中。
呃,但Excel并不支持该用法。
嘿~但ACCESS支持……
比如,我们需要将一个Excel工作簿的所有工作表批量复制移动到ACCESS数据库中,可以使用以下代码。

代码看不全可以左右拖动..▼

Sub DoSql1()    Dim cnn As Object, strSQL As String    Dim sht As Worksheet, strShtName As String, strPath As String    Set cnn = CreateObject("adodb.connection")    strPath = ThisWorkbook.FullName '工作簿完整路径+名称    cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "/数据库.accdb"    '创建ACCESS数据库的连接    For Each sht In Worksheets '遍历工作表        strShtName = sht.Name '工作表的名称        strSQL = "SELECT * INTO " & strShtName & " FROM [Excel 12.0;DATABASE=" & strPath & "].[" & strShtName & "$]"        cnn.Execute (strSQL) '执行Sql语句    Next    cnn.Close '关闭连接    Set cnn = Nothing '释放cnn对象End Sub

代码通过遍历代码所在工作簿的工作表,将其数据整体复制移动到名称为‘数据库’的ACCESS文件中。代码所使用的SQL代码如下:

strSQL = "SELECT * INTO " & strShtName & " _         &"FROM [Excel 12.0;DATABASE=" & strPath _        & "].[" & strShtName & "$]"

变量strShtName是工作表的名称;[Excel 12.0;DATABASE=" & strPath & "].[" & strShtName & "$]"是ADO跨文件连接Excel工作簿的固定引用格式,可以本系列教程第4篇:SQL查询中表技巧的总结。
整个语句的意思就是获取(FROM)工作表的数据,在ACCESS中新增一个表,表名等同Excel工作表的名称,并将该表所有的字段记录(SELECT *)放置其中。
不过,当ACCESS存在和Exce工作表同名的表时,代码会返回错误。

本文地址:IT百科频道 https://www.hkm168.com/tags/937236_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!

共2页 1 2 当前是最后一页

IT百科
小编:小易整编
相关文章相关阅读
  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • skype是什么软件

    skype是什么软件

    skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话,它使用全新的p2p【对等】技术将您与其他skype用户相连接。Skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话。Sky...

  • 计算机的三类总线分别是什么?

    计算机的三类总线分别是什么?

    计算机的三类总线分别是:控制总线、地址总线和数据总线。控制总线用于将微处理器控制单元的信号,传送到周边设备;地址总线用来指定在ram之中储存的数据的地址;数据总线用于在cpu与ram之间来回传送需要处理或是需要储存的数据。总线(Bus)是计...

  • 2k屏幕是什么意思

    2k屏幕是什么意思

    2k屏幕是指分辨率能够达到2560*1440的屏幕。2k是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级;又因“16:9”的比例是高清晰度视频规格的国际标准,所以2k分辨率在视频制作、显示屏等领域常见格式为2560*1...

  • mysql中的不等于符号是什么

    mysql中的不等于符号是什么

    mysql中的不等于符号有两种:“!=”和“”;它们都可用于判断数字、字符串、表达式是否不相等。对于“!=”和“”,如果两侧操作数不相等,返回值为1,否则返回值为0;如果两侧操作数有一个是null,那么返回值也是null。本教程操作环境:w...

  • ipad a1822是什么型号

    ipad a1822是什么型号

    ipada1822是苹果ipad第5代的型号;ipad第5代是苹果公司于2017年03月21日在美国加利福尼亚州发布的平板电脑;该机型采用铝镁合金材质一体成型结构;前端外框为白色或黑色;有银色、金色和深空灰色3种外观颜色。本教程操作环境:...

  • html中浮动是什么

    html中浮动是什么

    在html中,浮动就是让元素可以向左或向右移动,直到它的外边距碰到其父级的内边距或者是上一个元素的外边距,只需要给元素设置“float:left|right|none|inherit”样式即可。本教程操作环境:windows7系统、CSS3...

  • 周排行
  • 月排行
  • 年排行

精彩推荐