zoukankan      html  css  js  c++  java
  • SQL创建IP地址数据表存储过程

    主要目的:搜集整理全部单独IP地址对应的国家城市地区信息

    测试说明:数据库太大了:4129151.0009765625K=4032.37402439117431640625M

    结果说明:似乎不太可能方便更快的查询速度,也好象没有必要整理这么详细的数据.还是从别人的IP数据库好了

    失败证明:商务通IP数据库从哪里来?QQIP数据库是否适合中小型企业?不知道对俺的硬盘损坏大不大.5分钟写了800M到D盘.

    测试执行语句:--exec sp_CreateIPTable
    select top 1 * from ipdata order by id desc
    ID=1508872;IP="0.23.6.7" 查询时间:"5分钟"

    技术学习:熟练掌握SQL存储过程中的SQL循环语句使用

    存储过程代码:

    CREATE PROCEDURE sp_CreateIPTable
    AS

    --创建IP数据表
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[IPTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[IPTable]

    CREATE TABLE [dbo].[IPTable] ( 
     [ID] int identity(1,1) PRIMARY KEY CLUSTERED NoT NULL ,
     [IP] [nvarchar] (15) COLLATE Chinese_PRC_CI_AS NULL , 
     [IPCountry] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
     [IPProvince] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
     [IPAddress] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL  
    ) ON [PRIMARY]
    --查询全部时间段内的数据到临时数据表中
    declare @TempIP nvarchar(16)

    declare @FirstNumber int
    declare @SecondNumber int
    declare @ThirdNumber int
    declare @FourthNumber int

    --初始化喜欢参数

    set @FirstNumber=0
    set @SecondNumber=0
    set @ThirdNumber=0
    set @FourthNumber=0

    while @FirstNumber<256
    begin
       while @SecondNumber<256
     begin
      while @ThirdNumber<256
      begin
         while @FourthNumber<256
       begin 
         set @TempIP=convert(nvarchar(3),@FirstNumber) +'.'+ convert(nvarchar(3),@SecondNumber) +'.'+ convert(nvarchar(3),@ThirdNumber) +'.'+ convert(nvarchar(3),@FourthNumber)
           insert into IPTable (IP) values(@TempIP)
          set @FourthNumber=@FourthNumber+1
       end
       if @FourthNumber=256 set @FourthNumber=0
         set @ThirdNumber=@ThirdNumber+1
      end
      if @ThirdNumber=256 set @ThirdNumber=0
        set @SecondNumber=@SecondNumber+1
     end
     if @SecondNumber=256 set @SecondNumber=0
       set @FirstNumber=@FirstNumber+1
    end

    --select * from IpTable
    GO
     

  • 相关阅读:
    Android 性能优化 四 布局优化merge标签的使用
    一种Android换肤机制的实现
    java提高篇(十)-----详解匿名内部类 ,形参为什么要用final
    Android源码之Matrix
    android 沉浸式状态栏
    [置顶]关于java中根据身份证求生日和年龄的问题
    将博客搬至CSDN
    android——fragment长时间home或者锁屏java.lang.IllegalArgumentException:No view found for id for....
    百度搜索附近加盟店等基于LBS云搜索功能的实现
    android——拍照,相册图片剪切其实就这么简单
  • 原文地址:https://www.cnblogs.com/xqf222/p/3306876.html
Copyright © 2011-2022 走看看