我想用一条SQL给一个表中添加1000条数据,怎么写这样的SQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想用一条SQL给一个表中添加1000条数据,怎么写这样的SQL相关的知识,希望对你有一定的参考价值。

参考技术A 弄个insert函数,每次给的参数不一样就行了啊,参数可以放在list里面,然后循环一千次呗追问

只用SQL语句,不要用Java,我在建表时想同时添加测试数据,我用Oracle数据库,您最好给写一下语句,非常感谢。

SQL:数据与运算的融合体(附用一条语句实现时间序列的增量运算)



      

SQL语言是结构化数据处理最常用的语言了,主要的规范从最早的SQL/86(SQL1)、SQL/92(SQL2)、SQL/99(SQL3)到SQL/2008、SQL/2016,其功能不断增强,从最初的简单规范到现在对文本、图像、数据挖掘、空间数据等提供统一的访问方式,但一直忠诚地支持数据库系统,为数据与运算的融合体提供了优秀的编程方法。

      

本文就介绍一个利用SQL语言来实现数据库记录前后记录运算的方法。

      

假设有一张表 abc,其结构和数据如图所示,像每个城市每天的空气质量数值、每个学校每天的上课学生数等,都与这个表结构类似。在数据分析中,我们要计算前后两天n1,n2,n3的数值增量或增比,显然用一个简单的SQL语句是无法实现的。

    


这个需求实际上是一种时间序列的运算,通常我们会想到用SQL中的CURSOR来循环运算,但是多次反复的数据表查询其计算效率很低,特别是在表比较大的情况下。为此,我们可以利用虚拟表的特性。

       

首先构建用下面的语句构建两个表a,b,注意这里增加了一个新的列表示数据的行号id,是按时间排序的。


    select a, hdate, n1, n2,n3,

        row_number() over (order by hdate desc) as id 

    from abc where a='x0001'


SQL:数据与运算的融合体(附用一条语句实现时间序列的增量运算)


那么接下来就可以利用这两张表的行号进行连接运算,并求得相关数值的增量。如下:

      select a.a, a.hdate, 

            a.n1-b.n1,        --计算增量

            a.n2-b.n2,        --计算增量

            a.n3-b.n3        --计算增量

      from 

        (select a, hdate, n1, n2,n3,

                row_number() over (order by hdate desc) as id 

         from abc where a='x0001') as a

      inner join 

        (select a, hdate, n1, n2,n3,

                row_number() over (order by hdate desc) as id 

         from abc where a='x0001' ) as b

      on a.id = b.id-1

      order by a.a


以下是增量计算结果:

SQL:数据与运算的融合体(附用一条语句实现时间序列的增量运算)

SQL:数据与运算的融合体(附用一条语句实现时间序列的增量运算)

优惠购书码:

SQL:数据与运算的融合体(附用一条语句实现时间序列的增量运算)




SQL:数据与运算的融合体(附用一条语句实现时间序列的增量运算)






图文来自网络、如涉及版权问题,请联系我们以便处理。文章内容纯属作者个人观点,不代表本网观点。


以上是关于我想用一条SQL给一个表中添加1000条数据,怎么写这样的SQL的主要内容,如果未能解决你的问题,请参考以下文章

如何查询一个表中,各个分类的前面2条数据,用一条sql语句

SQL中怎么用一条命令把表里面的数据清零,但是表并没有删除?

mysql 用一条语句删两张表中的数据

sql查询结果拼接

sqlserver关于用一个sql语句批量添加数据的问题

用一条SQL语句取出第 m 条到第 n 条记录的方法